智用指南
第二套高阶模板 · 更大气的阅读体验

轻松掌握 Bash 命令历史,提升命令行效率

发布时间:2026-01-21 12:40:31 阅读:148 次

在 Linux 或 macOS 的终端里,每天敲命令是常事。比如你想重新运行昨天查日志的那条 grep 命令,但记不清具体参数了。这时候,Bash 命令历史就能帮上大忙。

什么是 Bash 命令历史

Bash 会自动记录你输入过的命令,保存在一个叫 ~/.bash_history 的文件里。每次打开终端,它都会加载之前的记录,让你可以快速找回用过的命令。

查看命令历史

直接输入 history 就能看到最近用过的命令列表:

history

输出类似这样:

 1  ls -la
 2  cd /var/log
 3  grep "error" system.log
 4  tail -f app.log

每一行前面的数字是命令编号,后面是具体内容。

重复执行某条命令

如果你想要再次执行第 3 条命令,可以直接输入:

!3

终端就会自动运行 grep "error" system.log

也可以用前缀搜索。比如输入 !tail,就会执行最近一条以 tail 开头的命令。

上下箭头更常用

实际使用中,大多数人不会去记编号。更方便的是按键盘上的“上箭头”键,一条条翻看之前的命令,找到就回车执行。下箭头则是往回走。

这个操作就像微信聊天记录往上翻,谁还没发过的话,再发一遍。

搜索历史命令

如果你记得关键词但不确定完整命令,可以用 Ctrl + r 进行反向搜索。

按下 Ctrl + r 后,输入 grep,终端会实时显示匹配的历史命令。继续按 Ctrl + r 可以查找更早的匹配项。

修改历史记录行为

默认情况下,Bash 只保存一定数量的命令。你可以通过设置环境变量来调整。

比如,在 ~/.bashrc 文件中添加:

export HISTSIZE=5000
export HISTFILESIZE=5000

这会让系统最多保存 5000 条命令历史,避免被过早清除。

还可以让多个终端窗口共享历史记录,避免切换窗口时找不到刚用过的命令:

shopt -s histappend
export PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

小心别留下敏感信息

命令历史会明文保存,如果里面包含了密码或密钥,比如:

curl -u admin:123456 http://localhost/api/data

那就可能被别人看到。建议这类命令用脚本封装,或者执行前手动从历史中删除:

history -d 100

这条命令会删除第 100 条历史记录。

也可以临时清空整个历史:

history -c

小技巧:给命令加注释

有时候一条复杂命令过几天自己都看不懂。可以在执行前先加个注释:

# backup config before update; cp ~/app/config.yml ~/backup/

这样 history 里也会显示这行注释,方便回忆用途。