在使用Linux或macOS系统时,很多人会用到终端模拟器来执行各种命令。比如安装软件、管理文件、配置开发环境等。用得多了,难免会忘记之前输过的命令。其实,终端早就把你的操作记录下来了,只需要几个简单方法就能翻出来。
用上下箭头快速浏览历史
最常用的方式就是按下键盘上的上箭头键。每按一次,就会显示前一条输入过的命令。下箭头则用来往回走。这个方法适合找回刚刚用过的命令,比如你刚装完Python又想再装个pip,直接上箭头调出来重跑就行。
使用 history 命令查看完整记录
如果想看更久之前的命令,可以直接输入:
history
执行后会列出最近几百条命令,前面带编号。比如第150条是 sudo apt install nginx,下次要用时就可以输入 !150 快速执行,或者用 !nginx 搜索以“nginx”开头的记录。
搜索你用过的命令
当记录太多时,滚动查找很麻烦。可以按 Ctrl + R 进入反向搜索模式。接着输入你想找的关键词,比如“ssh”,终端会实时匹配出最近一次包含ssh的命令。继续按 Ctrl + R 可以往前翻更多匹配项。
历史记录存放在哪里
这些命令之所以能被记住,是因为每次关闭终端前都会保存到一个文件里。大多数shell(如bash)会把记录存在 ~/.bash_history 中。你可以用cat查看内容:
cat ~/.bash_history
而如果你用的是zsh(macOS默认),那文件就是 ~/.zsh_history。注意,这个文件在终端关闭时才会写入,所以当前会话的新命令不会立刻出现在里面。
自定义历史行为
有些人喜欢清干净,有些人希望多留点痕迹。可以通过修改shell配置文件来自定义保留多少条记录。比如在 ~/.bashrc 里加上:
export HISTSIZE=5000
export HISTFILESIZE=5000
这样就把历史条数从默认的500提升到了5000条。同时还可以设置不记录重复命令或以空格开头的命令:
export HISTCONTROL=ignoredups:ignorespace
以后打临时测试命令时,开头加个空格就不会被记住了。
小技巧:一键执行上次命令
有时候只是想重跑一遍上条命令,比如重启服务或者重新编译。除了按上箭头回车外,更省事的是直接敲两个叹号:
!!
这行会自动展开并执行上一条命令。配合sudo还能轻松提权重跑,比如输错权限时可以补一句 sudo !! 来挽救。