叹号(!)一般在表达式或者代码中表示非或者取反值的意思,在 Linux 终端命令行中叹号可以有很多花里胡哨的操作。我们敲命令的时候使用叹号不一定会提升效率,但是可以在联调对线的时候秀一把,问题没解决不重要,过程一定要浪,接下来我们一起学习每日装逼小技巧:
1、逻辑非操作
栗子:
删除当前目录除了 .conf 后缀结尾的所有文件
$ rm !(*.conf)
2、替换上一条命令的字符串
栗子:
$ ls /home/test
把上一条命令的 test 字符串替换成 lk
$ !!:gs/test/lk
注意
g 表示全局替换,所有匹配的字符串都会被替换掉,去掉 g 只替换第一个匹配的字符串。
3、执行上一条命令
栗子:
$ !!
4、执行前面第 n 条命令
栗子:
执行往前数第 5 条命令
$ !-5
5、快速执行历史命令
栗子:
执行 history 的第 1024 条命令
$ !1024
6、执行前面包含关键字的命令
栗子:
执行上一条带有 lk 关键字的命令
$ !?lk?
7、执行前面以关键字开头的命令
栗子:
执行上一条以 sudo 开头的命令
$ !sudo
8、使用前面指定命令的某个参数
栗子:
$ ls -l /home/lk/a.sh
使用上一条 ls 命令的 第二个参数(/home/lk/a.sh)
$ cat !ls:2
9、使用上一条命令的所有参数
栗子:
$ ls 1.c 2.c 3.c
删除 1.c 2.c 3.c
$ rm !*
10、使用上一条命令的第一个参数
栗子:
$ ls 1.c 2.c 3.c
查看 1.c 的内容
$ cat !^
11、使用上一条命令的最后一个参数
栗子:
$ ls 1.c 2.c 3.c
查看 3.c 的内容
$ cat !$
12、去掉上一条命令的最后一个参数,然后执行
栗子:
$ ls 1.c 2.c 3.c
去除 3.c 再执行一次
$ !:-