2017-05-02 92 views
0

对于SQL编辑器,有一个spool命令来记录所有输出和活动。我想为linux终端提供相同的功能。在终端上键入的所有命令输入和输出应记录到一个文件中,而提供的输出也应在我正在使用的控制台的stdout上可用。如何将Linux终端的所有输出记录到文件

回答

2

这是script(自带bsdutils)的工作。

可以启动script启用终端会议通过:

script /path/to/out_file 

如果不提供任何文件名保存在终端内容,输出全部从那里script是被保存在一个typescript文件目录调用。

另请检查man script

+0

注被发现'script'捕获**产生的所有**的字符,包括Ctrl键字符结尾一样'按Ctrl-J'线(也许是'^ J')。如果你需要向非技术人员展示这些信息,请留出额外的时间来清理'out_file' ;-)祝你好运。 – shellter

0

记录在Linux终端命令的输出最简单,最简单的方法是使用重定向操作符即“>”

比方说,我们要记录在一个文件中ls -alt命令的输出。这样的命令是:

ls -alt > output.txt 

这将创建一个文件output.txt中和输出写入到它,如果文件已经存在,那么它会覆盖该文件,(现有的信息时便会消失)

如果你想将输出追加到现有文件中使用“>>”而不是:

ls -alt >> output.txt 

这将创建或附加到文件的情况下,它已经存在。

录制输出和打印在stdout的命令应该是

ls -alt | tee output.txt 

这rdirects您输出到文件以及stdout

如果你想botn stdoutstderr那么你已经重定向并使用2>&1命令将它们组合起来,该命令将如下所示:

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

这里2stderr文件描述符和1stdoutstdin fd是0),所以我们重新定向,并与stdout结合stderr,因为只有stdout可以输送。

更多信息可以在here

相关问题