!gcc !vi

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 再执行一次
	$ !:-


原文地址:https://www.cnblogs.com/CSE-kun/p/14915110.html