如何将Linux终端的所有输出记录到文件中

时间:2017-05-02 03:39:19

标签: linux terminal spool

对于SQL编辑器,有一个用于记录所有输出和活动的假脱机命令。我想要linux终端的相同功能。在终端上键入的所有命令输入和输出应记录到文件中,而提供的输出也应该在我正在使用的控制台的标准输出上。

2 个答案:

答案 0 :(得分:2)

这是script的作业(随bsdutils提供)。

您可以通过以下方式启动script启用的终端会话:

script /path/to/out_file

如果您没有提供任何文件名来保存终端内容,则所有输出都将保存在调用typescript的目录中的script文件中。

同时检查man script

答案 1 :(得分:0)

记录Linux终端中命令输出的最简单方法是使用重定向运算符,即'>'

假设我们想在文件中记录ls -alt个命令输出。所以命令是:

ls -alt > output.txt

这将创建一个文件output.txt并将输出写入它,如果文件已存在则会覆盖该文件,(现有信息将消失)

如果您想将输出附加到现有文件,请使用'>>'相反:

ls -alt >> output.txt

这将创建或附加到文件,以防它已经存在。

要记录输出并在stdout上打印,命令应为

ls -alt | tee output.txt

这会将您的输出转发到文件以及stdout

如果你想要botn stdoutstderr,那么你可以使用2>&1命令重定向并组合它们,它们看起来像:

ls -alt 2>&1 | tee output.txt

此处2stderr的文件描述符,1stdoutstdin fd是0),因此我们重定向并合并{{ 1}}与stderr,因为只有stdout可以通过管道传输。

更多信息可在here

中找到