Linux终端笔记
Part 0 前言
Linux是一个重要的操作系统,著名发行版有 Ubuntu 等。服务器多采用Linux系统,掌握常见的Linux命令对远程使用服务器有重要意义。同时,OS课程要求在Linux环境中完成实验。
本博客主要作为个人笔记。
Part 1 相关资源
- 菜鸟教程-Linux教程 适合作为字典查阅
Part 2 常用指令
以下指令在Linux终端中执行
clear
清屏。
cd
change directory,进入某个目录。
cd xxx
:进入xxx目录(需要xxx目录在当前位置下)。
cd ..
:进入上层目录。
touch
创建新文件。
1 | touch |
mkdir
make directory,创建文件目录(类似windows下的文件夹)
1 | mkdir |
pwd
print working directory,查看当前的绝对路径。
rmdir
删除目录,目录不能为非空;如果想要删除非空目录,需要使用rm -rf filename
1 | rmdir |
rm
rm
:删除一个目录中的一个或多个文件或目录
1 | rm - remove files or directories |
此外,rm 命令可以用 -i 选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入 y 并按 Enter 键,才能删除文件。如果仅按 Enter 键或其他字符,文件不会被删除。与之相对应的就是 -f 选项,强制删除文件或目录,不询问用户。使用该选项配合 -r 选项,进行递归强制删除,强制将指定目录下的所有文件与子目录一并删除可以达到毁灭性效果。例如:rm –rf / 即可强制递归删除全盘文件,绝对不要尝试!
使用rm命令要格外小心,因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
很多优秀的程序员会在目录下建一个文件夹类似回收站,如果要使用rm指令,先把要删除的文件移到这个文件夹里,然后再进行rm,一定时间之后再对回收站里的文件进行删除。
cp
复制文件。
1 | cp |
move
移动文件。
1 | 写mv hello_world.c trashbin/就是将hello_world.c移动到trashbin这个文件夹了。 |
echo
回声。
1 | 如果你在屏幕上输入echo hello_world, 你会发现它给你回显了一个hello_world,看起来是一个复读机的功能 |
echo one > test.txt
:将one
输入test.txt,为覆盖式,即覆原有所有文件,并在第一行写入one
echo two >> test.txt
:将two
追加到test.txt后面
事实上,这个指令非常万用。比方说,需要将一个特定字符串打印进入某个文件,可以用它;需要将某个字符串输入进另一个指令,也可以用它结合重定向实现。
ls
显示当前目录下的所有文件。
1 | ls |
事实上,对于隐藏文件,ls
仍然不能访问,需要使用la
。
Ctrl + C
终止当前程序执行。
Ctrl + Z
挂起当前程序。
Ctrl + D
终止输入。
Ctrl + L
清屏,效果和clear相同。
cat /proc/version
查看Linux版本
watch nvidia-smi
查看服务器的GPU情况,确定对应的CUDA版本
arch
查看CPU架构,可能获得x86_64
等答案。
lsb_release -a
查看Ubuntu版本
screen
系列指令
screen -S <会话名>
:创建并进入名为<会话名>的screen会话screen -ls
:查看当前存在的所有screen
会话screen -x <会话ID>
:重新接入会话ID为<会话ID>的screen会话(配合screen -ls
使用screen -r <会话名>
:重新接入会话名为<会话名>的screen会话,与-x参数作用相同screen - X -S <会话ID>
:kill会话- ctrl + a, d:退出当前会话窗口
- ctrl + a, w:列出当前所有的会话窗口
- ctrl + a, k:杀死当前窗口,同时结束当前窗口
exit
:在某一个screen中使用该命令可以退出并kill该窗口
java
java -version
:查看jdk版本
netstat
用于显示网络状态。
参考文献:Linux netstat命令
参数 | 说明 |
---|---|
l |
listening,显示监控中的服务器的socket |
n |
numeric,直接使用IP地址,而不通过域名服务器 |
t |
tcp,显示TCP传输协议的连线状况 |
p |
programs,显示正在使用Socket的程序识别码和程序名称 |
ln
用于创建软链接。
ln -s [源文件或目录] [目标文件或目录]
:创建软链接rm -rf [软链接名称]
:删除软链接
scp
secure copy protocol,允许用户在两个主机之间传输数据
1 | scp [选项] <file_source> <file_target> |
参数 | 说明 |
---|---|
-r | 递归,用于复制整个目录 |
zip
压缩
1 | zip [选项] <file_target> <file/dir_source> |
参数 | 说明 |
---|---|
-r | 递归,用于压缩整个目录 |
符号链接
创建符号链接指向可执行文件,从而可以直接使用。
如,/home/yujk/data/zdns/zdns
是一个可执行文件,一般使用时需要形如 ../../../yujk/zdns/zdns
来使用,不方便。通过符号链接到 zdns
后,可以直接使用 zdns
来运行。
- 创建符号链接
sudo ln -s /home/yujk/data/zdns/zdns /usr/local/bin/zdns
- 确保
usr/local/bin
在PATH
中echo $PATH
- 赋予可执行文件执行权限
sudo chmod +x /home/yujk/data/zdns/zdns
Part 3 查看文件信息
head
用于查看文件开头内容。
1 | head [选项] [文件名] |
无选项运行
显示名为 file_name
的文件的开头(默认前 10 行)
1 | head file_name |
显示前 N 行 -n N
显示名为 file_name
的文件的前 N
行()
1 | head -n N file_name |
tail
用于查看文件末尾内容。
wc
word count,计算文件单词量等
1 | wc [选项] [文件名] |
显示文件行数 -l
显示名为 file_name
的文件行数
1 | wc -l file_name |
显示多个文件行数
1 | wc -l file_name1 file_name2 file_name3 |
du
disk usage,显示文件和目录的磁盘使用情况
1 | du [选项] [文件或目录] |
以人类可读方式 -h
以人类可读(KB/MB/GB)方式显示 path/to/directory
目录/文件磁盘使用情况
1 | du -h /path/to/directory |
Part 4 杂项
判断Linux是CentOS还是Ubuntu
1 | lsb_release -a |
参考这篇博客,其中使用apt-get和yum判断比较快捷。
下载指令
参考文章:ubuntu几种不同的下载指令(apt-get,wget,git clone,pip etc)
从指定url下载文件:wget
查看内存信息
free -h
:可显示总内存、已使用内存、空闲内存等
查看硬盘信息
df -h
This is copyright.