在日常使用Linux或macOS系统时,很多人会频繁地在终端里输入命令。比如你刚执行了一个复杂的find查找命令,过一会儿又想用,但记不清具体参数了。这时候翻历史记录就特别实用。
最简单的查看方式:history命令
直接在终端输入以下命令:
history
它会列出最近使用过的所有命令,每条前面带一个编号。比如:
1001 ls -la
1002 cd /tmp
1003 mkdir test
1004 history
看到编号后,你可以用 !加编号快速执行某条命令。例如,输入 !1002 就会重新运行 cd /tmp。
搜索你用过的命令
如果你记得命令的一部分,比如之前用过包含“ssh”的命令,可以按 Ctrl + R 进入反向搜索模式,然后输入:
ssh
终端会实时匹配出最近一次使用的相关命令。继续按 Ctrl + R 可以往前翻更多匹配项。
限制显示的历史条数
默认情况下,history会显示全部记录,但如果只想看最近10条,可以这样:
history 10
这样输出更简洁,适合快速回顾。
清除部分或全部历史
有时候你不希望别人看到你执行过的某些命令,比如包含了密码的curl请求。可以删除特定行:
history -d 1003
这会删除编号为1003的那条记录。如果想清空整个历史列表,运行:
history -c
注意:这只是清除了当前会话的历史,不会影响已经写入文件的记录。
历史保存在哪?
每次关闭终端,命令历史会被保存到当前用户的 ~/.bash_history 文件中。下次打开终端时,系统会自动加载这里面的内容。
如果你想永久修改历史记录保存的数量,可以编辑 ~/.bashrc 文件,添加或修改这两行:
export HISTSIZE=5000
export HISTFILESIZE=5000
这样就把最大保存条数设成了5000条。改完后运行 source ~/.bashrc 立即生效。
小技巧:避免记录某些命令
有些命令你不想被 history 记下来,比如包含敏感信息的操作。可以在命令前加一个空格(前提是HISTCONTROL包含ignorespace):
export HISTCONTROL=ignorespace
echo secret > /tmp/passwd
# 前面加个空格,这条就不会进历史
rm /tmp/passwd
这个习惯养成了,能有效保护隐私。