如何在 Linux 上访问命令历史记录

凭借庞大而成熟的功能集,很容易理解为什么 Bash 是许多 Linux 发行版上的默认 shell。 然而,它面临着来自 Zsh 等替代品的对高级用户的竞争。

Bash 和 Zsh 的一个特别有用的特性是它们的历史机制,它可以很容易地回忆你过去输入的命令。 通过充分利用 shell 的命令历史,了解如何节省时间并避免手动搜索复杂的命令。

什么是壳牌历史?

shell 历史记录是您在命令行上发出的命令的列表。 Bash 将此历史记录存储在一个名为 .bash_history 在您的主目录中。 在 Zsh 中它被称为 .zsh_history. 您可以使用 历史 命令以显示历史记录的当前内容:

您可以通过设置 历史文件 环境变量。

您可以使用 历史文件大小 环境变量:

HISTFILESIZE=1000

这会将历史文件大小设置为 1,000。

当您想要重复先前键入的命令或更改它而不必完全重新键入一行时,Shell 历史记录很有用。 这 !! command 将重复先前键入的命令。 如果要更改先前命名的命令中的某些内容,请输入 ^旧^新. 在这里,“旧”是您要替换的命令行部分,“新”是它的替换。

如果你想列出 /bin 列出后的目录 /ls /,这是您更改命令的方式:

^/^/bin

这与您输入的内容相同 ls /bin.

命令行编辑

Bash 和 Zsh 都支持命令行编辑。 这是一种比历史扩展更灵活的访问命令历史的方法。 默认情况下,键盘命令类似于 Emacs 编辑器使用的命令。 如果需要,您可以将它们切换为更像 Vim 的工作。 但请注意,vim 快捷方式在命令行编辑中使用起来更加笨拙,即使 Vim 作为通用文本编辑器非常出色。

当您想调用命令时,只需按键盘上的向上箭头即可。 您可以按向上键来浏览所有以前的命令,而向下箭头可让您移动到最近的命令。 你也可以使用 Ctrl + PCtrl + N 上下滚动浏览您的历史记录。

要向后搜索,请按 CTRL + R,然后开始输入以搜索历史记录,直到看到要编辑的命令。 按 Ctrl + S 向前搜索。

要更改命令行,您可以使用左右箭头键来回移动命令行。 Alt + F 会前进一个字并且 Alt + B 将向后移动。 要转到一行的开头,请点击 Ctrl + A. 要走到最后,请点击 Ctrl + E. 要完全删除一行,请按 Ctrl + K.

现在您可以访问 Shell 历史记录

通过一些简单的方法,您可以找到您的 shell 历史记录并更改命令,而无需重新键入整行。 Bash 和 Zsh 都具有命令行编辑功能,使其非常容易。 您可以选择 Linux 上的 shell。 哪一个最适合你? 继续阅读以找出适合您工作风格的 Linux shell。