快捷键
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} |