录制 bash 会话

mar*_*arc 2 linux bash command-line logging

出于审计和文档目的,我想找到一个命令,以便将给定 bash 会话中发生的所有事情都写入文件。

即,我想最终得到一个文件,该文件显示我运行的所有命令以及这些命令的所有输出。

我知道我可以使用历史文件(命令运行)获得一部分,通过重定向输出获得一部分。

但是,我觉得bash本身应该有这种能力,只是我没有找到。

例子:

> bash --some-kind-of-magic output.txt
$ cat file1.txt
this is the content of file1.txt
$ grep test file2.txt
this is the output of the command
$ exit
> cat output.txt
$ cat file1.txt
this is the content of file1.txt
$ grep test file2.txt
this is the output of the command
$ exit
Run Code Online (Sandbox Code Playgroud)

Hen*_*nes 5

您可以script用来记录命令的所有输出,甚至可以用来启动命令。您可以启动的一个命令是 shell 的新问题。例如 script my_log /usr/local/bin/bash

如果这不是一次性的,那么请在您的帖子中提及。(在这种情况下,您可能希望在该用户的登录脚本中设置它,可能是 exec 脚本并将日志放置在无法操作日志的地方)。