1、!!
该指令通常是用来执行上一条指令的
例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令:
$ whereis bash #执行命令
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
$ !! #再次执行上一条命令
whereis bash
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
!!代表了上一条执行的命令。可以看到,当输入两个感叹号时,它显示上条命令的同时会执行上一条命令。当然了,通常我们还会想到使用“UP”键来完成这个事情。但是如果是基于上条命令扩充,!!就来得更加方便了。
比如,你想查看某个文件,但是忘了输入more:
$ /opt/user/test.txt #忘记输入more
$ more !! #这样是不是快多了?
2、!$
使用上个命令的最后一个参数
比如,你在使用ls列出目录内容时,没有带任何参数,但是想再次执行,带上-al参数,又不想输入长长的参数,可以使用下面的方式:
$ ls /proc/1/task/1/net/tcp
/proc/1/task/1/net/tc
$ ls -al !$
ls -al /proc/1/task/1/net/tcp
-r--r--r-- 1 root root 0 12月 22 17:30 /proc/1/task/1/net/tcp
3、!^
执行上个指令的第一个参数
而使用上条命令的第一个参数只需要使用!^,例如:
$ cat /tmp/111.txt /tmp/222.txt /etc/hosts /etc/resolv.conf
<略>
$ ls -l !^ !$
ls -l /tmp/111.txt /etc/resolv.conf
-rw-r--r-- 1 root root 52 2021/02/15 21:22:35 /etc/resolv.conf
-rwxr-xr-x 1 root root 1285 2021/02/15 20:29:49 /tmp/111.txt
$
4、!+关键字
例如,执行上一条find命令:
$ !find #执行上条以find开头的命令