众所周知,当你在一台服务器上不记得或者不知道以前执行过什么命令时,可以使用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
本文介绍了在Linux命令行中如何利用历史命令提高效率,包括使用`!num`执行特定序号的命令,`!!`执行上一条命令,`!?xxx?`搜索并执行历史命令,以及通过Ctrl+r进行反向搜索。这些快捷方式帮助用户无需重复输入,快速执行或找到先前执行过的命令。
4575

被折叠的 条评论
为什么被折叠?



