"!"是Linux/bash命令行中一个非常强大但常被新手忽略的操作符。它可以帮助你快速重复、修改和执行历史命令,大幅提高工作效率。
!!
这会直接执行上一条命令。例如:
$ apt update
Permission denied
$ sudo !!
# 等同于执行 sudo apt update
!n
执行历史记录中第n条命令(可通过history
查看编号)
!-n
执行倒数第n条命令。例如!-2
执行倒数第二条命令
!string
例如:
$ vim /etc/hosts
$ !vim # 会再次执行vim /etc/hosts
^old^new
将上一条命令中的第一个"old"替换为"new"并执行
!!:gs/old/new
将上一条命令中的所有"old"替换为"new"并执行
!n:m
引用历史记录中第n条命令的第m个参数
!!:$
引用上一条命令的最后一个参数
!!:^
引用上一条命令的第一个参数
!n:p
显示但不执行历史记录中第n条命令
$ grpe "pattern" file.txt
Command 'grpe' not found
$ ^grpe^grep
$ ls -l /var/log
$ cd !!:$
# 等同于 cd /var/log
$ tar -czvf backup.tar.gz /home/user/documents
$ scp !$ user@remote:/backups/
# 等同于 scp backup.tar.gz user@remote:/backups/
!n:p
查看将要执行的命令掌握"!"操作符可以让你在命令行中的工作效率提升数倍,建议多加练习这些技巧!