2016-04-21 73 views
1

我想要一个快照,我将在文件中执行并输出(stdout,stderr)的所有命令以供稍后查看。通常我需要查看它以进行调试。将命令的输出重定向到文件和stdout [只有一次,而不是在每个命令]

这个链接给出了一个命令的输出: How to redirect output to a file and stdout

不过,我不想把它写每个命令,因为它是费时。另外,这不记录我执行的命令。

实施例的功能:

bash> start-logging tmp.txt 
bash> echo "Hi" 
Hi 
bash> cat 1.txt 
Contents of 1.txt 
bash> stop-logging 



    Contents of tmp.txt 
bash> echo "Hi" 
Hi 
bash> cat 1.txt 
Contents of 1.txt 

理想我想上述行为。 任何其他具有某些缺失功能的命令(可能缺少从tmp.txt执行的命令)也会有所帮助。

+1

为什么bash历史不存储命令? – 123

+0

此外,您链接的问题仅保存输出,而不是输入的命令 – 123

+0

@ 123也许OP在考虑本地'.bash_history',而不是远程? – andlrc

回答

1

您可以使用

$ bash | tee log 

开始记录,然后

$ ^D 

(这是按Ctrl-d)

停止记录。

创建一个新的bash会话,该会话将记录,然后在不需要时终止它。

但不幸的是,bash似乎没有将其提示和命令写入stderr,因此您只会捕获命令输出。

相关问题