如何执行`history`命令而不使用行号以便复制多行命令?

Mic*_*ant 5 command-line bash command-history

有时我会执行history命令,这样我就可以连续看到 4 个命令。

我想复制这些命令,以便我可以再次运行它们。

我通常用鼠标和 shift-ctrl-c 选择它们,这可以正常工作,但我也得到了行号。

我该怎么做history而没有行号?

我尝试了手册页,但不知所措。

rus*_*ush 6

请注意,历史输出可能取决于本地环境。在我的机器上它看起来像:

 $ history | tail -1
 2993  2012-08-13 17:42:17 echo "test"
Run Code Online (Sandbox Code Playgroud)

你的答案都不会在我身边工作。

一个有用的选项是fc(通常是内置的),它完全独立于您的本地设置。

fc具有-n抑制输出数字的选项。所以你的命令看起来像:

fc -l -n
Run Code Online (Sandbox Code Playgroud)

它只输出最后几个命令。

要以这种风格输出整个历史,请使用:

fc -l -n 1  
Run Code Online (Sandbox Code Playgroud)

要在开头不带空格的输出,您可以使用 sed 删除它们:

fc -l -n 1 | sed 's/^\s*//'
Run Code Online (Sandbox Code Playgroud)


Tim*_*Tim 3

使用 awk:

history | awk '{$1="";print}'