![保存终端历史记录](https://linux22.com/image/916439/%E4%BF%9D%E5%AD%98%E7%BB%88%E7%AB%AF%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95.png)
我目前正在上 Linux 课程,并在命令行中处理一个项目。我最后要做的就是将我的所有工作保存到一个日志文件中。确切的措辞是:“创建一个日志文件,记录到目前为止您使用过的所有命令。将此文件命名为 Log_File.txt 并下载以供提交”下载部分是通过 IDE 完成的,但我花了很长时间才找到如何制作一个文件来保存我在项目中所做的一切的答案。任何事情都会有帮助。-谢谢
答案1
我想你只需要运行:
history > filename.txt
答案2
要管理 shell 的会话历史记录,bash
可以使用history
命令。让我们看一下相关部分help history
:
$ help history history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] Display or manipulate the history list. Display the history list with line numbers, prefixing each modified entry with a `*'. An argument of N lists only the last N entries. Options: -a append history lines from this session to the history file -w write the current history to the history file If FILENAME is given, it is used as the history file. Otherwise, if HISTFILE has a value, that is used, else ~/.bash_history.
当bash
shell 启动时,它会从用户的历史文件(默认情况下~/.bash_history
)中读取最后(默认情况下为 1000)行,并在 RAM 中建立会话历史记录。现在,当您执行命令行时,它会将此行保存到会话历史记录中,而删除第一行 - 会话历史记录一旦达到 1000 行的限制,就不会超过此限制。
在此之后,为了节省会话历史记录即,您在文件中的这个特定终端窗口中执行的命令行~/session_history
是:
history -a ~/session_history
但是如果你想保存 1000 行历史记录会话当前保存在内存中,即来自旧会话和当前会话的命令,它是:
history -w ~/session+old_history
如果你想拯救整个迄今为止关闭的所有会话的历史记录,默认限制为2000行,你只需要复制你的默认历史文件:
cp ~/.bash_history ~/closed-sessions_history
如果要在不关闭会话的情况下手动将会话的历史记录保存到此文件,请执行以下操作:
history -a
如果你在每个打开的终端中都这样做,那么你的历史文件就会包含你到目前为止使用过的所有命令行,现在复制它会给你一个完整的闭门会议和公开会议的历史:
cp ~/.bash_history ~/all-sessions_history