快捷键

Tab:命令补全

Ctrl+c:结束程序,但不终止终端

Ctrl+a:将光标移至输入行首,相当于Home键

Ctrl+e:将光标移至输入行末,相当于End键

Ctrl+k:删除从光标所在位置到行末

Ctrl+u:删除从光标所在位置到行首

Ctrl+b:光标左移一个字母

Ctrl+h:删除光标前一个字符,同 backspace 键相同

Ctrl+w:移除光标前的一个单词

Ctrl+t:交换光标位置前的两个字符

Ctrl+y:粘贴或者恢复上次的删除

Ctrl+d:删除光标所在字母,如果当前命令行中没有任何字母命令,则退出当前shell

Ctrl+f:光标右移

Alt+Backspace:向前删除一个单词

Shift+PgUp:将终端显示向上滚动

Shift+PgDn:将终端显示向下滚动

Ctrl+l:清屏

Ctrl+z: 将当前程序移到后台执行,如同输入的命令后面加&

Ctrl+r: 查询最近执行过的命令

 

快速执行过往的命令

执行上一条命令

$ !!

将上一条命令中出现的”foo”改为”bar”并执行

$ ^foo^bar

执行最近第3条命令

$ !-3

执行最近一次以”net”开头的命令

$ !net

如果你忘了最近一次”net”开头的命令是什么,你可以用下面的方法查询

$ !net:p

该操作只打印命令,但不执行。

以管理员权限执行,你可以加上”sudo”

$ sudo !net

使用上条命令的最后一个参数

$ cp ./a.txt /home/user
$ cd !$

这条命令的效果等同于cd /home/usr。如果要使用第一个参数,就改为!^,比如上例中vi !^就等同于vi ./a.txt。

使用特定命令的最后一个参数

$ dpkg -L !apt$

表示搜索最近以”apt”开头的命令的最后一个参数

让上述表达式和参数符号在执行前显示原形

$ bind Space:magic-space

执行完这个命令后,在输入上述表达式和参数符号后,按一下空格,这些表达式和符号就立即变成它们所代表的历史命令和参数。可以将其放到”.bashrc”中。

快速复制为备份文件

$ sudo cp /etc/hosts{,_bak}

将”/etc/hosts”文件在同一目录下复制一份副本,并命名为”/etc/hosts_bak”。

回到上一个目录

$ cd -

 

Shell常用通配符

字符

含义

*

匹配 0 或多个字符

?

匹配任意一个字符

[list]

匹配 list 中的任意单一字符

[!list]

匹配 除list 中的任意单一字符以外的字符

[c1-c2]

匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]

{string1,string2,…}

匹配 sring1 或 string2 (或更多)其中一字符串

{c2..c2}

匹配 c1-c2 中全部字符,如{1..10}