如何使用历史命令将部分命令行保存到新文件中?

如何使用历史命令将部分命令行保存到新文件中?

我是 Bash 的初学者。我知道该类型

history

可以显示所有命令行,并且 .bash_history 可以保存所有命令行。但如果我想要部分命令行(例如,当前会话)并将它们保存到新文件中,我该怎么做?我检查了

history --help

但仍然不明白该怎么做。提前感谢帮助!

答案1

您需要-a与文件名一起使用。如中所述help history

历史:历史 [-c] [-d 偏移量] [n] 或历史 -anrw [文件名] 或历史 -ps arg [参数...]

(...)

-a 将本次会话的历史记录行附加到历史文件中

后来:

如果给出了 FILENAME,则将其用作历史文件。否则,如果 $HISTFILE 有值,则使用该值,否则为 ~/.bash_history。

例如,开始一个新会话并输入以下内容($是一个提示符,在您的系统上很可能会有所不同):

$ echo a-new-session started at $(date)
$ history -a /tmp/new-history

在这种情况下/tmp/new-history将是:

echo a-new-session started at $(date)
history -a /tmp/new-history

答案2

当前会话:

您可以通过在终端中运行以下命令来实现此目的:

history -a ~/current_session.txt

current_session.txt当前会话的历史记录将保存到您的主目录中名为的文件中。


某些输入:

您还可以搜索特定输入的所有历史记录并将输出保存到文件中。例如,要保存其中包含的所有行install,请在终端中运行以下命令:

history | grep install > ~/search_results.txt

搜索结果将保存到search_results.txt您的主目录中名为的文件中。

更改install为您想要搜索的内容。

要搜索多个输入,请将它们放在两个引号之间 "",用管道符分隔|,然后放在-E它们前面,如下所示:

history | grep -E "install|update|upgrade" > ~/search_results.txt

祝你好运

答案3

虽然答案较差,但确实有效,

键入历史记录以获取历史记录。鼠标滑动以选择要复制的内容,按 ctrl-shift-c 进行复制,按 ctrl-v 进行粘贴到文本编辑器中。

就我而言,终端是 konsole,文本编辑器是 Kate。

这使您可以复制和粘贴历史记录的选定部分。

还可以从历史记录中复制并粘贴到终端中,使用 crtl-shift-v 进行粘贴

答案4

bash您可以将历史记录放在单独的每个会话文件中,从而跳过上述答案。

请参阅我的回答使用多个终端进行 Bash 历史记录处理

相关内容