我喜欢 iTerm2 的命令历史记录功能Cmd+ Shift+ ;,可以从历史记录中快速找到命令。
但是我想从列表中删除一些命令,我已经运行命令来sed -i "" '/searchstring/d' "$HISTFILE"
从 bash 历史文件中删除它们。
但是当我运行Cmd++Shift时;,这些命令仍然显示,iTerm2 将它们存储在哪里,我该如何从中更新和删除一些命令?
答案1
可能有一个更简单的解决方案,但这是我目前发现的:
- 跑步
sqlite3 ~/Library/Application\ Support/iTerm2/ShellHistory.sqlite
- 确定要删除的行
select * from ZCOMMANDHISTORYENTRY;
- 删除它
delete from ZCOMMANDHISTORYENTRY where Z_PK = <id of entry, in first column>
- 重启 iTerm
或者如果您想删除所有包含给定字符串的命令:
delete from ZCOMMANDHISTORYENTRY where ZCOMMAND like '%example%';