Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将命令的输出重定向到文件和标准输出[仅一次,而不是每次命令]_Linux_Bash_Io_Stdout - Fatal编程技术网

Linux 将命令的输出重定向到文件和标准输出[仅一次,而不是每次命令]

Linux 将命令的输出重定向到文件和标准输出[仅一次,而不是每次命令],linux,bash,io,stdout,Linux,Bash,Io,Stdout,我想在一个文件中创建我执行和输出的所有命令(stdout、stderr)的快照,以便以后查看。我经常需要查看它以进行调试 此链接提供单个命令的输出: 但是,我不想为每个命令编写它,因为它很耗时。此外,这不会记录我执行的命令 示例功能: bash> start-logging logger.txt bash> echo "Hi" Hi bash> cat 1.txt Contents of 1.txt bash> stop-logging logger.txt的内容 b

我想在一个文件中创建我执行和输出的所有命令(stdout、stderr)的快照,以便以后查看。我经常需要查看它以进行调试

此链接提供单个命令的输出:

但是,我不想为每个命令编写它,因为它很耗时。此外,这不会记录我执行的命令

示例功能:

bash> start-logging logger.txt
bash> echo "Hi"
Hi
bash> cat 1.txt
Contents of 1.txt
bash> stop-logging
logger.txt的内容

bash> echo "Hi"
Hi
bash> cat 1.txt
Contents of 1.txt
理想情况下,我想要上述行为。 任何其他功能缺失的命令(可能是从tmp.txt执行的缺失命令)也会有所帮助。

您可以使用

$ bash | tee log
开始记录日志,然后

$ ^D
(这是Ctrl-D)

停止日志记录

创建一个新的bash会话来记录日志,然后在不需要时终止它


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

为什么bash history不存储命令?此外,您链接的问题只保存输出,而不是已保存的命令typed@123也许OP考虑的是本地的
.bash\u历史记录
,而不是远程的?对不起.bash_history将命令存储在退出时,这就是我无法在.bash_history中找到该命令的原因。我会更新这个问题。我是否可以得到执行命令的输出?