Linux下,如果想执行一条或多条以前输入的命令,该怎么办?很多人会想到使用上下箭头来查找历史输入的命令。这当然是可能的。除了这种方法,本文还介绍了另外5种方法来实现这种效果。在正式开始之前,我们先随便执行几条命令,以备后面的演示。为了节省篇幅,暂时不列出执行结果。$ls-l$pwd$date$uname-a方法一:!!是的,两个感叹号也是一个命令,它会重复上次执行的命令。$!!此命令等效于以下命令:$!!uname-aLinuxVM_0_16_centos3.10.0-514.26.2.el7.x86_64#1SMPTueJul415:04:05UTC2017x86_64x86_64x86_64GNU/Linux如果需要root权限,只需在它前面添加sudo即可。$须藤!方法二:!un如果我们在运行的时候输入了很多条命令,现在要重复执行其中一条,怎么办呢?有一个简单的方法,就是使用上下箭头来搜索,但是如果你之前输入的命令太多,可能搜索的时间会很长。这时候!un命令就发挥作用了。记住,这个un不是固定的,它代表你要重复的命令的前几个字符。比如在这个例程中,我们要反复执行命令uname-a,就这样执行:$!ununame-aLinuxVM_0_16_centos3.10.0-514.26.2.el7.x86_64#1SMPTueJul415:04:05UTC2017x86_64x86_64x86_64GNU/Linux如果输入了多个以un开头的命令,可能需要多输入几个字符。$!uname方法三:!-1比较灵活,!-1表示重复最后一条命令,!-2表示重复倒数第二条命令,!-n表示重复倒数第二条命令。$!-1uname-aLinuxVM_0_16_centos3.10.0-514.26.2.el7.x86_64#1SMPTueJul415:04:05UTC2017x86_64x86_64x86_64GNU/Linux$!-3#注意前面的!-1也是算作一个命令,所以倒数第二个命令是date,不是pwddateSunMay1918:30:26CST2019方法四:ctrl+rctrl+r这个快捷键可以搜索你之前输入过的所有命令。其实梁旭更喜欢这个快捷键,因为它会让你看到即将执行的命令。如果是!!命令,它直接执行最后一条命令。如果这个命令是安全的还好,但是如果是rm-rf/*这样的命令就悲剧了。如果我现在想重复执行uname-a,我们可以先按ctrl+r组合键,然后依次输入'u''n''a'。如果之前输入的命令比较少,基本上我们只需要输入Au或n就会找到你要输入的命令。(reverse-i-search)`u':找到uname-a后,再次回车,重复你要输入的命令。如果您想对找到的命令进行一些小的更改,只需点击向左或向右箭头即可。方法五:ctrl+porctrl+n和ctrl+o如果你是懒癌晚期,不想敲任何字母,只想搜索你要的命令执行,你怎么办它?如前所述,您可以使用向上和向下箭头查找历史记录中输入的命令。但这并不是最高效的,我们可以使用ctrl+p和ctrl+n达到同样的效果。这样效率更高,因为您的手不必抬起并移动到箭头处。通过ctrl+p/n的组合找到想要的命令后,我们就可以按ctrl+o来执行这条命令了。这个组合键和回车不一样,因为它除了回车外还跳到最后一个命令。通过不断地ctrl+p/n,然后ctrl+o,你可以高效地重复你想要执行的命令。总结重复以前执行的命令在我们的工作中经常使用。命令比较短的话还好,再敲一遍也用不了多少时间。而且如果命令很长,重复输入会花费更多的时间,效率也比较低。除了使用上下箭头,我们还有很多方法可以达到同样的效果。掌握这些技巧,绝对能大大提高你的工作效率!最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以加入我的行列,把这本电子书做得更加完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站
