如何在 Linux 上访问命令历史记录
通过掌握 shell 的命令历史记录功能来避免不必要的重新输入。
凭借大量成熟的功能集,很容易理解为什么 Bash 是许多 Linux 发行版上的默认 shell。然而,它面临着来自 Zsh 等替代品对高级用户的竞争。
Bash 和 Zsh 的一项特别有用的功能是它们的历史记录机制,这使得您可以轻松回忆起过去输入的命令。了解如何通过充分利用 shell 的命令历史记录来节省时间并避免手动搜索复杂的命令。
壳牌的历史是什么?
shell 历史记录是您在命令行上发出的命令的列表。 Bash 将此历史记录存储在主目录中名为 .bash_history 的文件中。在 Zsh 中,它称为 .zsh_history。您可以使用 history 命令来显示历史记录的当前内容:
您可以通过设置 HISTFILE 环境变量来更改此文件的位置。
您可以使用 HISTFILESIZE 环境变量设置历史记录项的最大数量:
HISTFILESIZE=1000
这会将历史文件大小设置为 1,000。
当您想要重复之前键入的命令或更改它而不必完全重新键入一行时,Shell 历史记录非常有用。 !! 命令将重复先前键入的命令。如果您想更改先前命名的命令中的某些内容,请输入^old^new。这里,“old”是您要替换的命令行部分,“new”是其替换部分。
如果您想在使用 ls / 列出 / 后列出 /bin 目录,则可以更改命令:
^/^/bin
这与您输入 ls /bin 的效果相同。
命令行编辑
Bash 和 Zsh 都支持命令行编辑。这是一种比历史扩展更灵活的访问命令历史记录的方法。默认情况下,键盘命令与 Emacs 编辑器使用的命令类似。如果您愿意,您可以将它们切换为更像 Vim 的工作方式。但请注意,即使 Vim 作为通用文本编辑器非常出色,但使用 vim 快捷方式进行命令行编辑还是比较尴尬。
当您想调用命令时,只需按键盘上的向上箭头即可。您可以按向上键浏览所有以前的命令,而向下箭头则让您移动到最近的命令。您还可以使用 Ctrl + P 和 Ctrl + N 上下滚动历史记录。
要向后搜索,请按 CTRL + R,然后开始键入内容以搜索历史记录,直到看到要编辑的命令。按 Ctrl + S 向前搜索。
要更改命令行,您可以使用向右和向左箭头键在命令行上来回移动。 Alt + F 将向前移动一个字,Alt + B 将向后移动。要转到行首,请按 Ctrl + A。要转到末尾,请按 Ctrl + E。要完全删除一行,请按 Ctrl + K。
现在您可以访问 Shell 历史记录
通过一些简单的方法,您可以找到 shell 历史记录并更改命令,而无需重新输入整行。 Bash 和 Zsh 都具有命令行编辑功能,使其变得非常容易。您可以选择 Linux 上的 shell。哪一款最适合您?请继续阅读,找到适合您工作风格的 Linux shell。