在Linux/Ubuntu/Debian中使用 tee 命令将输出显示在终端并写入文件中

maxkb输出结果到指定文档

Linux将命令行输出保存至文件linux命令输出到文件

嘿,想知道如何在 Linux 中将命令行输出保存到文件中?这对我来说是熟悉的事情。
我以前在公司做项目的时候就这么做过。

最正确的方法是使用输出重定向>啊。
你看,例如,如果你想将ls中的所有文档保存在a.txt文件中,只需输入ls > a.txt即可。
这个操作超级简单。
运行命令后,输出将发送到a.txt。
如果文件中没有任何内容,则意味着它是有效的。

但有时您不仅想看到屏幕,还想保存输出文件。
你应该做什么?只需与管道一起使用即可。
例如,ls | tee a.txt,该命令会将ls输出发送到第一个tee,并将tee数据发送到标准输出(即你的屏幕),同时将副本保存在a.txt中。
这样你既可以读取又可以保存,这很棒。
还有一个附录方法>>,与之不同。
它将内容添加到文件末尾,而不是每次都清除文件并重写它。
最近我经常将其与其他日志一起使用,例如 ls >> a.txt。
每次运行此命令时,ls 都会添加到 a.txt 文件的末尾。
这适合标记和其他东西,以便您可以读取时间。

对了,还有一个东西的覆盖物,它有更重要的功能。
使用 screen -L > b.txt 您可以将整个会话期间的所有命令和输出保存到 b.txt。
我在某服务器上调试了半天,最后用 screen -L> debug.log 记录了整个过程,非常值得一看。

简而言之,在保存命令输出时,Linux 为您提供了许多选项可供选择。
就像 >,>; 一样简单如果您想查看屏幕并保存文件,请使用 T 恤;如果您想录制整个会话,请使用屏幕。
哪一种适合您的情况取决于您。

linux终端输出信息保存为txt

说白了,在Linux中将终端输出保存到TXT有四种可靠的方法。
这取决于您是要覆盖还是添加。

首先使用>覆盖写入。
去年我们运行监控系统,发现日志文件直接被>error.log覆盖。
结果,之前的所有错误都消失了。
说实话,当时挺尴尬的。
所以请记住,>这是一种暴力覆盖,就像重置文件的内存一样。
另一点是 >> 附加写入对于连续显示进程输出特别有用,例如 top -n 1 -b >> process.log。
每秒更新不会覆盖历史记录。
很多人不注意这一点。

一开始我以为tee是>的改进版,但后来发现这是错误的。
这是管道的产物。
例如,dmesg | tee -a debug.log不仅可以读取终端字符还可以保存文件。
如果使用顺利的话,可以省去很多麻烦。
还有另一个关键细节。
脚本命令是懒人的救星。
运行脚本来测试全屏输出并直接使用 script -a test.log 记录它并退出。
这比使用 Ctrl+S 手动录制屏幕要省事。

但是提醒一下:用>覆盖时,如果文件权限不正确,比如其他用户写入的文件,会直接报错。
记得先使用 chmod u+w 重写权限。