众所周知,当你在一台服务器上不记得或者不知道以前执行过什么命令时,可以使用hsitory或者history [num],来查看历史记录。默认会显示历史上执行过的命令的序号和具体命令。
root@test:~/test# history 5
434 kubectl get pod -A
435 kubectl get pod -A | grep -v kube-system | wc-l
436 kubectl get pod -A | grep -v kube-system | wc -l
437 history
438 history 5
当我们不知道本文要介绍的快捷键时,往往是用鼠标找到我们要用的命令,然后复制粘贴。如果想偷懒怎么办?有没有快捷键可以快速执行之前执行过的命令?
(1)!num ,执行序号为num的命令。
root@test:~/test# history 2
439 ls -al
440 history 2
root@test:~/test# !439
ls -al
total 20
drwxr-xr-x 1 root root 4096 Nov 11 10:33 .
drwx------ 1 root root 4096 Nov 11 10:33 ..
(2)!! ,执行上一条命令(除非你非常确信上一条命令没什么影响,否则存在风险)
root@test:~/test# !!
ls -al
total 20
drwxr-xr-x 1 root root 4096 Nov 11 10:33 .
drwx------ 1 root root 4096 Nov 11 10:33 ..
(3)!?xxx?,该命令用于从下向上搜多history中的记录,会执行匹配到xxx的最近的一条命令。(除非你非常确信搜索到的命令没什么影响,否则存在风险)
root@test:~/test# !?ls?
ls -al
total 20
drwxr-xr-x 1 root root 4096 Nov 11 10:33 .
drwx------ 1 root root 4096 Nov 11 10:33 ..
(4)ctrl + r(本人使用比较多)
命令行状态下使用ctrl + r后,输入想要搜索的命令,则可开始按history倒叙搜索执行过的命令。
- 匹配到第一条命令后,如果要继续查下一个则再按ctrl + r。
- 按回车键则执行查到的命令。
- 按方向键,则保留查到的命令,并回到命令行模式。可以修改命令后执行。
- ctrl + c 结束搜索
root@NJXDGD07607:~#
(reverse-i-search)`ls': ls -al