插件窝 干货文章 Linux命令行新手指南:详解“!”操作符的用法

Linux命令行新手指南:详解“!”操作符的用法

命令 执行 bash 上一 403    来源:    2025-05-13

Linux命令行中的"!"操作符详解

"!"是Linux/bash命令行中一个非常强大但常被新手忽略的操作符。它可以帮助你快速重复、修改和执行历史命令,大幅提高工作效率。

基础用法

1. 重复上一条命令

!!

这会直接执行上一条命令。例如:

$ apt update
Permission denied
$ sudo !!
# 等同于执行 sudo apt update

2. 执行历史命令

!n

执行历史记录中第n条命令(可通过history查看编号)

!-n

执行倒数第n条命令。例如!-2执行倒数第二条命令

3. 执行以特定字符串开头的最近命令

!string

例如:

$ vim /etc/hosts
$ !vim  # 会再次执行vim /etc/hosts

高级用法

1. 替换上条命令的部分内容

^old^new

将上一条命令中的第一个"old"替换为"new"并执行

!!:gs/old/new

将上一条命令中的所有"old"替换为"new"并执行

2. 引用历史命令的部分

!n:m

引用历史记录中第n条命令的第m个参数

!!:$

引用上一条命令的最后一个参数

!!:^

引用上一条命令的第一个参数

3. 执行但不立即运行(先显示)

!n:p

显示但不执行历史记录中第n条命令

实用示例

  1. 快速修复拼写错误:
$ grpe "pattern" file.txt
Command 'grpe' not found
$ ^grpe^grep
  1. 重用上一个命令的参数:
$ ls -l /var/log
$ cd !!:$
# 等同于 cd /var/log
  1. 组合使用:
$ tar -czvf backup.tar.gz /home/user/documents
$ scp !$ user@remote:/backups/
# 等同于 scp backup.tar.gz user@remote:/backups/

注意事项

  1. 使用前最好先用!n:p查看将要执行的命令
  2. 在脚本中慎用,可能导致不可预期的行为
  3. 某些特殊字符可能需要转义

掌握"!"操作符可以让你在命令行中的工作效率提升数倍,建议多加练习这些技巧!