linux里面如何在屏幕上显示命令的结果的同时也把命令的结果保存在文本文件里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux里面如何在屏幕上显示命令的结果的同时也把命令的结果保存在文本文件里相关的知识,希望对你有一定的参考价值。

是同时。
谢谢。

换个思路:先保存到文件,然后使用more、cat、head等命令显示文件内容即可。

示例:执行ls命令,将结果保存到文件,并显示在屏幕上。

参考技术A tee命令

ls | tee ls.txt #将会在终端上显示ls命令的执行结果,并把执行结果输出到ls.txt 文件中
ls | tee -a ls.txt #保留ls.txt文件中原来的内容,并把ls命令的执行结果添加到ls.txt文件的后面。
参考技术B 简单吧

输出重新定向

用 命令 >> yourtextfile

就是 中间的两个大于号
参考技术C 重定向之后再输出那个文件就可以了啊~
可以在重定向到文件之后加个分号再cat该文件
ls /etc > test; cat test追问

有别的更好的办法吗?

追答

像楼下说的,用tee~

参考技术D 双向重定向,tee file 具体使用自己找man去,或者百度也行本回答被提问者采纳

[Linux 005]——IO重定向

  通常在 Shell 中执行命令的时候,我们会在输入命令的下方看到执行结果,操作系统默认将命令的执行结果输出到显示器上。当然,我们也可以手动的指定输出路径,或者输入路径,这就是 I/O 重定向。

  1.标准输出重定向

  使用 cat 命令,命令的执行结果将会打印在屏幕中。

技术分享

  我们使用 > 来进行输出重定向,此时屏幕上不再打印命令执行结果了,而是将执行结果保存到了 ./target.xxx 文件中。

技术分享

  来看一下 ./target.xxx 文件中的内容:

技术分享

  2.标准输入重定向

  tr 命令可以从键盘上读取标准输入,然后打印出命令的执行结果:

  技术分享

  底下的光标表示 tr 命令在等待用户的输入,然后将它们打印在屏幕上。ctrl + c 可以终止此命令执行。默认情况下,tr 从键盘上读取内容输出,如果我们要在其他文件中读取内容,就要使用标准输入重定向。

技术分享

  3. >> 和 <<

  在使用 > 进行输出重定向的时候,后一次的输出会覆盖前一次的输出,如果我们不想进行覆盖,就使用 >> 进行追加重定向。

  和 >> 不同的是, << 并不表示追加重定向,而是进行文档输入,或者多行输入。使用 << 的时候需要使用定界符标志,关于这个命令,学过 PHP 的同学应该比较了解了。定界符可以任意取名,只要两端保持一致即可。

技术分享

  输入重定向和输出重定向也可以连接配合使用,这里使用 << 和 >> 举例:

技术分享

  4.标准错误输出流(STDERR)

  除了标出输入流(STDIN),标准输出流(STDOUT),还有标准错误输出流(STDERR)。标准错误输出流和标准输出流是不同的数据流。

技术分享

  如果命令发生了错误,屏幕上会打印错误信息,由于 STDERR 和 STDOUT 属于不同的数据流,因此该错误信息并不会输出到 ./result 中。

  标准错误输出流使用 2>(覆盖) 或者 2>> (追加)进行重定向:

技术分享

  屏幕上没有打印错误信息,将错误信息输出到 ./result 文件中。

  如果我们想将命令执行的结果(正常结果和出错信息)一并输出到某个文件中,可以使用 >> 和 2>> 连接进行操作,也可以使用 &> 或者 &>> 重定向 STDOUT 和 STDERR 到同一个文件中:

技术分享

  5.管道

  管道表示数据的流向:数据在某处进行处理后,通过管道传输到另一处进行处理。Linux 中使用 | 作为管道连接符,表示将上一次命令的执行结果作为下一次命令的输入。下面是管道的两个实例用法:

技术分享

  6.set 命令

  set 是 bash 中的一个内建命令,可以进行一些功能的开启或者关闭。为了安全起见,我们一般是不允许进行覆盖重定向的,这是可以使用 set -C 表示禁止覆盖重定向。

技术分享

  使用 set +C 命令表示允许覆盖重定向。

  如果在使用 set -C 禁止覆盖重定向之后,我们还是想执行这样的操作呢?我们可以使用 COMMAND >| FILE,通过在 > 后加一个竖线,可以实现此操作。

  7.总结

  本文介绍了 Linux 中的 I/O 重定向的实现,包括标准输入、输出重定向,以及标准错误输出重定向,还有覆盖重定向和追加重定向的区别。最后介绍了 Linux 中的管道,我们使用管道对命令进行连接,前一个命令的输出作为后一个命令的输入。内容比较简单,作为一个单独的知识点,还是将其独立成文,方便以后查阅。下篇文章会介绍 grep 命令和正则表达式,学会使用 grep 命令之后,我们在 Linux 上处理文件将会非常的方便快捷。

 


 

作者:Charleylla  转载请注明出处:http://www.cnblogs.com/charleylla/p/5988213.html 

 


 

以上是关于linux里面如何在屏幕上显示命令的结果的同时也把命令的结果保存在文本文件里的主要内容,如果未能解决你的问题,请参考以下文章

linux运行交互式脚本输出结果实时屏幕输出的同时重定向到文件,并屏幕和文件中都有时间戳?

Linux下Shell命令的输出信息同时显示在屏幕和保存到日志文件中

Linux命令之保存命令结果到文件并且输出到屏幕tee

linux 怎么查找文件关键词

linux中文件内容太多,屏幕不能一下全部显示出来,怎样查看被掩盖的上部分的内容?

[Linux 005]——IO重定向