5 种方法重复执行历史命令

系统 Linux
Linux 下,如果要执行一条或多条之前输过的指令,要怎么处理?很多人会想到使用上下箭头去翻查历史输入的命令。这当然是可以了,除了这种方法,本文再介绍另外 5 种方法来实现这样的效果。

Linux 下,如果要执行一条或多条之前输过的指令,要怎么处理?很多人会想到使用上下箭头去翻查历史输入的命令。这当然是可以了,除了这种方法,本文再介绍另外 5 种方法来实现这样的效果。

[[330069]]

在正式开始之前,我们先随便执行几条命令,便于后面演示。为了节约篇幅,执行结果暂时不列出来。

  1. $ ls -l 
  2. $ pwd 
  3. $ date 
  4. $ uname -a 

方法1:!!

没错,两个叹号也是一条命令,它会重复执行最后执行的那条命令。

  1. $ !! 

这条命令等同于如下效果:

  1. $ !! 
  2. uname -a 
  3. 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 即可。

  1. $ sudo !! 

方法2:!un

假如我们在操作的过程中输入了非常多的命令,现在要重复执行其中的一条,该怎么处理?有一种简单的方法,就是利用上下箭头去翻查,但如果之前输入了太多命令,翻查起来可以要找半天。

这时候,!un 这种命令就显现出它的作用来了。记住,这个 un 不是固定的,它是代表你想要重复输入的命令的前几个字符。

比如在这个例程中,我们想重复执行 uname -a 这条命令,只需这样执行:

  1. $ !un 
  2. uname -a 
  3. 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 开头的,那么你可能需要多输入几个字符。

  1. $ !uname 

方法3:!-1

这个方法就比较灵活了,!-1 代表重复执行最后一条命令,!-2 表示重复执行倒数第二条命令,!-n 表示重复执行倒数第 n 条指令。

  1. $ !-1 
  2. uname -a 
  3. 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 
  4. $ !-3    # 注意,前面的 !-1 也算一条指令,所以倒数第 3 条指令是 date ,而不是 pwd 
  5. date 
  6. Sun May 19 18:30:26 CST 2019 

方法4:ctrl+r

ctrl+r 这个快捷键可以让你搜索你之前输入过的所有的命令。其实良许更喜欢这个快捷键,因为它会让你看到你将要执行的命令。而如果是 !! 命令的话,它是直接执行最后一条命令。如果这条命令是安全的还好,要是像 rm -rf /* 这样的命令,那就悲剧了。

假如我现在要重复执行 uname -a ,我们可以先按一下 ctrl+r 这个组合键,然后再依次敲入 ‘u' 'n' 'a' ,如果之前输入的命令比较少的话,基本只需敲一个 u 或 n 就可以找到你要输入的命令了。

  1. (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」。良许,世界500强外企Linux开发工程师,公众号里分享大量Linux干货,欢迎关注!

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-03-30 08:45:31

Linux命令

2020-05-12 10:32:25

Python列表重复

2019-12-11 11:25:48

Linux命令行邮件

2019-09-05 09:54:01

Java产品经理人生第一份工作

2019-04-29 09:19:04

Linux命令行

2010-11-15 14:42:03

Oracle查询重复记

2020-05-26 09:08:23

命令循环Linux

2012-05-10 10:53:10

Linuxhistory

2020-09-01 09:56:26

云端云计算云服务

2009-12-21 14:31:39

Fedora core

2010-04-29 15:58:51

Oracle存储过程

2010-09-02 10:36:51

SQL删除

2010-07-01 12:29:27

SQL Server重

2023-09-21 11:03:31

开发轮子工具

2014-03-17 09:22:43

Linux命令

2021-02-25 10:46:21

云计算云服务器云安全

2020-05-28 13:33:30

React Hook前端开发

2018-11-01 10:10:35

网络安全网络攻击网络威胁

2021-08-18 11:55:25

Python函数代码

2020-07-24 20:45:51

Spark数据集函数
点赞
收藏

51CTO技术栈公众号