共计 1735 个字符,预计需要花费 5 分钟才能阅读完成。
Linux 下,如果要执行一条或多条之前输过的指令,要怎么解决?很多人会想到应用高低箭头去翻查历史输出的命令。这当然是能够了,除了这种办法,本文再介绍另外 5 种办法来实现这样的成果。
在正式开始之前,咱们先轻易执行几条命令,便于前面演示。为了节约篇幅,执行后果临时不列出来。
$ ls -l
$ pwd
$ date
$ uname -a
办法 1:!!
没错,两个叹号也是一条命令,它会反复执行最初执行的那条命令。
$ !!
这条命令等同于如下成果:
$ !!
uname -a
Linux VM_0_16_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
如果须要 root 权限,同样只需在后面加 sudo 即可。
$ sudo !!
办法 2:!un
如果咱们在操作的过程中输出了十分多的命令,当初要反复执行其中的一条,该怎么解决?有一种简略的办法,就是利用高低箭头去翻查,但如果之前输出了太多命令,翻查起来能够要找半天。
这时候,!un 这种命令就显现出它的作用来了。记住,这个 un 不是固定的,它是代表你想要反复输出的命令的前几个字符。
比方在这个例程中,咱们想反复执行 uname -a 这条命令,只需这样执行:
$ !un
uname -a
Linux VM_0_16_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
如果你之前输出的命令有多个是以 un 结尾的,那么你可能须要多输出几个字符。
$ !uname
办法 3:!-1
这个办法就比拟灵便了,!-1 代表反复执行最初一条命令,!-2 示意反复执行倒数第二条命令,!-n 示意反复执行倒数第 n 条指令。
$ !-1
uname -a
Linux VM_0_16_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ !-3 # 留神,后面的 !-1 也算一条指令,所以倒数第 3 条指令是 date,而不是 pwd
date
Sun May 19 18:30:26 CST 2019
办法 4:ctrl+r
ctrl+r 这个快捷键能够让你搜寻你之前输出过的所有的命令。其实良许更喜爱这个快捷键,因为它会让你看到你将要执行的命令。而如果是 !! 命令的话,它是间接执行最初一条命令。如果这条命令是平安的还好,要是像 rm -rf /* 这样的命令,那就喜剧了。
如果我当初要反复执行 uname -a,咱们能够先按一下 ctrl+r 这个组合键,而后再顺次敲入‘u’ ‘n’ ‘a’,如果之前输出的命令比拟少的话,根本只需敲一个 u 或 n 就能够找到你要输出的命令了。
(reverse-i-search)`u': uname -a
找到之后,再敲一下回车,即可反复执行你要输出的命令了。
如果说你要对找到的那条命令进行一些小批改,那么只需敲一下左或右的箭头即可。
办法 5:ctrl+p 或 ctrl+n 配合 ctrl+o
如果你是懒癌早期,不想再敲任何字母,只想翻查找到想要的命令并执行,要怎么操作?
后面提到,翻查历史输出的命令,能够应用高低箭头。但这不是最高效的,咱们能够应用 ctrl+p 和 ctrl+n 来达到同样的成果。这样更高效,因为你的手不必抬起来并挪动到箭头区。
通过 ctrl+p/n 的组合键找到想要的命令之后,咱们能够按 ctrl+o 来执行这条命令。这个组合键与回车不太雷同,因为它除了回车之外,还另外跳转到最初一条命令。通过一直地 ctrl+p/n,而后 ctrl+o,就能够高效的反复执行你要执行的命令了。
小结
反复执行之前执行过的命令在咱们的工作中十分常常用到。如果命令比拟短还好,再输一遍也花不了多少工夫。而如果命令很长,那再反复输出就比拟耗时间了,效率也比拟低。除了应用高低箭头之外,咱们还有很多办法去实现同样的成果。将这些技巧把握了,必定会大大晋升你的工作效率!
福利:豆花同学为大家精心整顿了一份对于 linux 和 python 的学习材料大合集!有须要的小伙伴们,关注豆花集体公众号:python 头条!回复关键词“材料合集”即可收费支付!