在日常使用 Linux 或 macOS 系统时,很多人会通过终端模拟器执行命令。比如安装软件、管理文件、启动服务等操作,往往都离不开命令行。用得多了,难免会想回头看看之前输过什么命令。这时候,查看历史命令就成了一个实用的小技能。
快捷键快速翻阅
最简单的方式是使用键盘上下箭头。当你打开终端后,按下上箭头,就能逐条看到之前输入过的命令。比如你昨天更新了系统,今天想再执行一次,但记不清完整命令,这时按几下上箭头,找到 sudo apt update && sudo apt upgrade 就能直接回车运行。
如果命令太多,一条条往上翻太慢,可以先输入一个前缀,比如 git,再按上箭头,终端只会显示以 git 开头的历史命令,像 git status、git commit 这类就很容易筛选出来。
使用 history 命令
除了键盘操作,还可以直接输入 history 查看完整的命令记录。
history
执行后会列出带编号的命令列表,例如:
1001 ls -la
1002 cd /var/log
1003 tail syslog
1004 sudo reboot
你可以根据编号重新执行某条命令,比如输入 !1002,就会自动执行 cd /var/log。
搜索历史命令
当记录越来越多,靠翻页或编号都不够高效。可以用 Ctrl + R 启动反向搜索。按下组合键后,输入关键字,比如 nginx,终端会实时匹配出最近一次包含这个词的命令,如 sudo systemctl restart nginx。继续按 Ctrl + R 可以循环查找更早的匹配项。
这种方式特别适合在服务器维护时快速找回复杂的配置命令,省得翻笔记或查文档。
历史记录存放在哪?
终端的历史命令通常保存在用户家目录下的 .bash_history 文件中(如果是 zsh,则是 .zsh_history)。可以直接用 cat 查看内容。
cat ~/.bash_history
这个文件在关闭终端时会自动保存最近的命令,但数量有限制,默认一般保留 1000 条左右。可以通过修改 ~/.bashrc 中的 HISTSIZE 和 HISTFILESIZE 来调整。
小技巧提升效率
有时候不小心执行了带密码的命令,比如 curl http://api.example.com?token=xxxx,这条记录会留在历史里,存在泄露风险。可以在执行前临时清空历史:
history -c
或者更精细地删除某一行,比如删掉第 1004 条:
history -d 1004
另外,在命令前加一个空格,有些配置下可以让该命令不被记录。前提是设置了 HISTCONTROL=ignorespace,这样像 mysql -uroot -ppassword 这种敏感操作就不会留在历史里。
掌握这些查看历史命令的方法,能让终端操作更流畅,也减少重复输入的麻烦。不管是开发、运维还是日常使用,都是值得熟练的小习惯。