sav*_*123 14 command-line bash history bash-history
如何找到我在终端中运行的旧命令?
我使用了一个 appengine 命令,并希望在我的本地命令历史记录中找到它,而无需再次在线研究它。
M. *_*rra 23
历史就是你要找的。
运行history以获取最近 1000 个命令的列表,或运行:
history | grep command_to_search
Run Code Online (Sandbox Code Playgroud)
在历史生成列表中搜索某种模式,例如:
history | grep apt
Run Code Online (Sandbox Code Playgroud)
要搜索任何apt相关命令,请注意grep不会将您的模式锚定到字符串的任一端,因此在大多数情况下不需要通配符。
该history 列表是从存储在~/.bash_history(默认情况下存储最后 2000 个)中的最后 1000 个命令(默认情况下)生成的,并且只有在您干净地退出 Bash 会话时才会更新此类文件。这意味着,在您关闭终端之前,当前会话中的所有命令都不会在该文件中。如果您终止 shell 进程,它们也不会被写入。
因此,也可以~/.bash_history通过以下任一方式在 中找到命令历史记录(2000 条最后一条命令):
less ~/.bash_history 或者,例如 gedit ~/.bash_history.bash_history文件。既history和~/.bash_history行为可以被改变,加入或修改的选项~/.bashrc,这些是几个例子:
追加export HISTCONTROL=ignoreboth:erasedups或修改现有HISTCONTROL行,以删除重复的命令,即如果在echo Hello之后立即运行,则在echo Hello中只会出现一个bash_history。
修改HISTSIZE=1000以扩展或减少显示的命令数量history
修改HISTFILESIZE=2000以扩展或减少存储在bash_history. 设置HISTFILESIZE=-1为无限。
附加HISTFILE=/path/to/file以将历史记录保存在其他地方。
来源和进一步阅读:
Byt*_*der 13
有很多方法可以找到最近执行的命令。
最简单的方法是按一下?键并逐行循环浏览您的命令历史记录,直到找到您要查找的内容。
也可以按Ctrl+R键进入所谓的(reverse-i-search)模式。
这是一个搜索提示,将自动完成您开始键入的内容,并使用最近运行的包含此字符串的命令。当它显示您要查找的内容时,按Enter运行它,或Esc退出搜索提示,同时将命令保留在提示上,以便您可以对其进行编辑。要放弃结果并退出搜索,请点击Ctrl+ C。
您可以使用history内置的Bash 来显示历史记录中记录的命令的完整列表。
您可以使用例如grep、 like过滤该列表以查找与特定模式匹配的行history | grep 'appengine'。
history可以通过键入 找到有关 Bash 内置命令的更多信息help history。
使用 bang-expansion 直接运行最近执行的包含字符串的命令。这将用历史记录中的匹配行替换您键入的行并立即运行,无需确认,所以要小心。
只需键入!string,它就会用最新的以“string”开头的命令行替换它。
如果要运行最后一个以“string”结尾的命令,请输入!?string。
或者,如果您希望最后一个命令行在任何地方包含“字符串”,请键入!?string?.
通过键入可以找到有关历史爆炸扩展的更多信息man history。