终端历史记录

终端历史记录

我在寻找终端历史记录。不仅是通过键入显示的命令历史记录,history还包括命令内的终端进程。也就是说,我想记录终端中命令显示的输出。

例如,你想安装一个软件包,sudo apt-get install xxxx然后输入,当终端告诉你正在做什么时,它会要求确认,安装其他软件包等。-

答案1

保留您输入的命令的历史记录,这就是命令history为您提供的。 您在终端中运行的命令的输出没有自动历史记录。 一旦关闭终端,除非您将输出保存在某处,否则输出将丢失。

您可以通过运行以下命令来保存终端会话的完整记录:script命令。如果您运行命令script,您将获得一个新的 shell 提示符;您从此时输入的所有命令及其输出都将输入到日志中。当您退出子会话时,日志文件将关闭script(这会将您返回到父 shell — 输入exit或再次按Ctrl+可退出父 shell)。D

默认历史文件名为typescript(在当前目录中)。如果已存在同名文件,则会覆盖该文件。您可以通过将其作为参数传递给 来指定其他文件名script,例如script hello.txt

如果你想在关闭终端后保留历史记录,但不介意在关闭计算机时丢失历史记录,你可以运行屏幕或者tmux

答案2

请参阅man history更多详细信息:

描述

许多程序每次读取一行用户输入。GNU History 库能够跟踪这些行,将任意数据与每行关联,并利用前几行的信息编写新行。

历史扩展

历史库支持与 bash 中的历史扩展相同的历史扩展功能。本节介绍可用的语法功能。

历史扩展将历史列表中的单词引入输入流,从而可以轻松重复命令、将前一个命令的参数插入到当前输入行中或快速修复前一个命令中的错误。

历史扩展通常在读取完整行后立即执行。它分为两个部分。第一部分是确定在替换期间使用历史列表中的哪一行。第二部分是选择该行的部分以包含到当前行中。从历史记录中选择的行是事件,而对该行进行操作的部分是单词。可以使用各种修饰符来操作所选单词。行被分解为单词的方式与 bash 读取输入时的方式相同,因此,当用引号括起来时,原本应该分开的几个单词会被视为一个单词(请参阅下面对 history_tokenize() 的描述)。历史扩展由历史扩展字符的出现引入,默认情况下为 !。只有反斜杠 () 和单引号可以引用历史扩展字符。

事件指示器:

事件指示符是对历史列表中的命令行条目的引用。除非引用是绝对的,否则事件与历史列表中的当前位置相关。


现在,回答你的问题!以下是保存 bash-history 的目录。是的,还有命令历史记录,你可以在终端中使用-key 访问它,位于:

~/.bash_history    
/root/.bash_history

您可以使用cat ~/.bash_history,查看以前使用过的命令的列表/内容。您还可以使用 ,打开“.bash_history”,以gnome-open ~/.bash_history编辑列表,或者rm ~/.bash_history,[rm=remove] 历史记录(“.bash_history”将自动​​生成,因此删除它是安全的)。

历史命令预览

相关内容