Mac终端:如何在命令提示符下打印历史命令而不执行它?

Mac终端:如何在命令提示符下打印历史命令而不执行它?

我键入history然后点击Enter查看最新的命令,我可以使用类似的命令打印命令!123:p,但这会在命令提示符后打印它,然后显示一个空的命令提示符。

我想运行一个命令来实际将历史记录中的某一行放到命令提示符上,以便我可以编辑它或点击Enter运行它。

答案1

我认为您正在寻找以下histverify选项:

我不记得 Mac 上开箱即用的文件有哪些,但我有:

$ cat ~/.bash_profile
[[ -f ~/.bashrc ]] && source ~/.bashrc

$ cat ~/.bashrc
...
shopt -s histverify
...

启用该选项后,当您使用历史记录替换时,您将获得在执行命令之前对其进行编辑的选项。从bash手册页:

历史验证
如果设置并且正在使用 readline,则历史替换的结果不会立即传递到 shell 解析器。相反,生成的行将加载到读取行编辑缓冲区中,从而允许进一步修改。

答案2

向上箭头将从最后一个命令开始浏览命令。我建议您将其与最近运行过的命令一起使用,这样您就不必疯狂地使用向上箭头。

您还可以使用:

CTRL +r

之后开始输入命令,它将根据您的输入显示。然后,您可以ESCAPE在提示符下点击获取它而不执行它,或者Enter如果您愿意,也可以使用 键执行它。

答案3

如果您在命令行上键入历史记录,则会列出过去的命令列表,前面带有数字。如果您键入感叹号,后跟命令编号,则该命令将重复。例如 !12 将列出历史列表中的第 12 个命令并运行该命令。

相关内容