前言
终端命令有很多很多,我们不需要都记住,有些常用的简单记住就可以了,就算记不住也没关系,能在记住命令的前前几个字母,然后按两次tab键,就会触发自动补全的然后找到你要用的命令就行了,如果一个都没记住也没关系啊,百度 或则google一下就可以了,日常工作中我们只需要知道有这个命令,用到了就用,忘记了就上网上查看,时间长了,自己而然就好了,不需要把时间花在背命令上。
Ctrl + R : 用于查找使用过的命令
例如,我查找 date 这个命令,就可以用 Ctrl + R 组合键,然后只输入 da,因为我之前使用过 date 这个命令,它就为我自动补全了 date 命令,如下图:
history 命令
history 这个命令,用于列出之前使用过的所有命令,如下图:
而且,history 列出的使用过的命令,是有编号的,如上图所示。如果要重新运行对应编号的命令,可以用 !编号 这样的格式。
例如在我的情况下,!30 就会再次运行 date 命令,因为在上面的截图中,我们可以看到编号 30 的那个命令是 date。
pwd 命令
显示当前目录的路径
pwd
所以,pwd 命令和看命令行提示符都证明了我目前所在的目录就是 /home/oscar。
which 命令
which 命令接受一个参数,也就是你想要知道其可执行程序位于哪里的那个命令。
which pwd
因此,pwd 命令对应的 pwd 这个可执行程序位于 /bin 目录中。
ls 命令
列出文件和目录
ls -a
可以看到比单独用 ls 时多了那些以点开头的文件和目录.
ls -A
我们有一个大写的参数 -A,它的作用和小写的 -a 几乎一样,唯一不同就是 -A 不列出 . 和 … 这两个文件。
ls -l
-l 这个参数算是 ls 命令最常用的了。加上 -l 参数使得 ls 命令列出一个显示文件和目录的详细信息列表.
ls -lh
可以看到几乎每个文件的大小信息那一列,都变成了 4.0K 这样的形式,也就是之前的 4096 B
ls -lt
可以看到,这是按照文件或目录最近一次修改时间的降序排列
ls -lath
效果是叠加
cd 命令
切换目录
cd usr
Ubuntu 的终端默认是有颜色标注的,一般来说:
蓝色 --> 目录
绿色 --> 可执行文件
红色 --> 压缩文件
浅蓝色 --> 链接文件
灰色 --> 其他文件
如果在你的终端里没有标明颜色,那么你可以加上参数 --color=auto 来开启颜色标注。如下:
ls --color=auto
如果你不需要颜色标注,那么可以用 --color=none 来关闭颜色标注。如下:
ls --color=none
du 命令
显示目录包含的文件大小
虽然 ls -l 命令可以显示文件和目录的大小,但是 du 命令统计的才是真正的文件大小。du
命令会深入遍历每个目录的子目录,把所有文件的大小都做一个统计。
du -h
可以看到我的家目录 /home/oscar 的总大小是 116 MB。
du -ah
可以看到总大小还是 116 MB。因为虽然 du 命令默认情况下只显示各个目录的大小,但是统计的总大小已经包括了目录中的各个文件了,只不过默认没有把文件列出来罢了。
du -sh
只想知道当前目录的总大小,可以使用 -s 参数
cat 命令
一次性显示文件的所有内容
cd /var/log
cat syslog
less 命令
分页显示文件内容
less syslog
head 命令
显示文件开头
head 在英语中是“头部”的意思,所以顾名思义,这个命令用于显示文件的开头。
默认情况下,head 会显示文件的头 10 行:
head syslog
head -n 5 syslog
tail 命令
显示文件结尾
tail 在英语中是“尾部”的意思,所以顾名思义,这个命令用于显示文件的结尾。
默认情况下,tail 会显示文件的尾 10 行。
我们也可以指定显示的行数,用 -n 这个参数:
tail -n 5 syslog
tail 命令还可以配合 -f 参数来实时追踪文件的更新:
tail -f syslog
tail -f 会每过 1 秒检查一下文件是否有新内容。你也可以指定间隔检查的秒数,用 -s 参数:
tail -f -s 4 syslog #每隔 4 秒检查一次文件是否有更新
tail -f -s 2.5 syslog #每隔 2.5 秒检查一次文件是否有更新
touch 命令
创建一个空白文件
touch new_file
mkdir 命令
创建一个目录
mkdir new_folder
cp 命令
拷贝文件或目录
cp new_file new_file_copy
复制文件到另一个目录
cp new_file one/
cp new_file one/new_file_copy
cp -r one one_copy
mv 命令
移动文件
mv new_file_2 one
以上命令将 new_file_2 这个文件移动到 one 这个目录,使得原先存在于家目录的 new_file_2 文件不存在了
mv new_folder one
以上命令是将当前目录下所有 txt 文件移动到 one 这个目录中。
mv 命令还可以用于重命名文件
mv new_file renamed_file
以上命令会将 new_file 重命名为 renamed_file。
rm 命令
删除文件和目录(rm 命令可以删除一个文件、多个文件、目录,甚至你的整个 Linux 系统)
rm new_file_copy
-f 参数:慎用,不会询问是否删除,强制删除
rm -f file
-r 参数:递归地删除
这个命令也挺危险的,用得不好可能你的子目录和文件都没了。
rm 命令加 -r 和 -f 参数:
rm -rf
下面这条命令是毁天灭地的
sudo rm -rf --no-preserve-root /
会递归删除根目录下所有文件。请你也别运行上面这句命令。
下面列举一些经常使用的快捷键:
1 Ctrl + L 用于清理终端的内容,就是清屏的作用。其实 clear 命令也有同样效果,但是你不觉得 Ctrl + L 的按键比输入 clear 这五个字母更快速吗?
2 Ctrl + D 给终端传递 EOF (End Of File,文件结束符),在运行程序时很有用。有些程序我们需要在接收到 EOF 输入时结束,那么这个快捷键就可以派上用场了。比如我们之前演示过,退出 root 用户身份,就可以用 Ctrl + D。如果你在命令行提示符后什么也不输入的情况下直接按下这组快捷键,那么就会关闭当前的终端;
3 Shift + PgUp 用于向上滚屏,与鼠标的滚轮向上滚屏是一个效果;
4 Shift + PgDn 用于向下滚屏,与鼠标的滚轮向下滚屏是一个效果。
下面的快捷键在你编辑一条比较长的命令时很有用:
1 Ctrl + A 光标跳到一行命令的开头。一般来说,Home 键有相同的效果;
2 Ctrl + E 光标跳到一行命令的结尾。一般来说,End 键有相同的效果;。
3 Ctrl + U 删除所有在光标左侧的命令字符;
4 Ctrl + K 删除所有在光标右侧的命令字符;
5 Ctrl + W 删除光标左侧的一个“单词”,这里的“单词”指的是用空格隔开的一个字符串。例如 -a 就是一个“单词”;
6 Ctrl + Y 粘贴用 Ctrl + U、 Ctrl + K 或 Ctrl + W “删除”的字符串,有点像“剪切-粘贴”。
参考资料
原文参考以及图片来自 https://www.imooc.com/read/39 慕课网专栏