linux中的>、>>、2>&1、管道命令
2021/8/27 7:07:43
本文主要是介绍linux中的>、>>、2>&1、管道命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
认识一下linux中的输入输出
每一个命令运行的时候都会连接三个stream流
- STDIN (0) - 标准输入,描述符为0
- STDOUT (1) - 标准输出,描述符为1,用&1表示标注输出流
- STDERR (2) - 标准错误,描述符为2
可以使用重定向或管道命令连接输入和输出。
<
:将文件重定向到标准输入中。不常用,一般需要标准输入的命令,都能自己读取。而且,从标准输入中读数据,无法获取到文件名。
# cat展示 sout 中的内容 cat < sout #从 sout 中查询redis grep redis < sout #这是我知道的一个比较好的用法 #docker cp 可以将输入流中的tar拆包后放入容器的指定目录中 docker cp - ub:/opt < ifstat-1.1.tar
>
:将标准输出重定向到某个文件中,覆盖文件内容
#将 ll 的标准输出输出到文件 sout 中,可以通过cat out.txt查看 ll 的执行结果 ls > sout #上面的命令等同于。>符号前面的1表示标准输出,可以省略。 ls 1> sout #执行上面的命令不会有任何输出,因为上面的命令的执行结果被放到了 sout 中 #asdjkfhka是一个不存在的目录,这时控制台会输出错误,这个命令只把标准输出重定向到了 sout 中,标准错误依然输出到屏幕 ls asdjkfhka > sout #将标准输出输出到 sout 中,将标准错误也输出到 sout 中。 ls asdjkfhka > sout 2> sout #将标准输出输出到 sout 中,将标准错误输出到标准输出中 #&1必须紧跟2>不然会报错 #因为标准错误重定向引用了标注输出的重定向,所以标准输出的重定向必须先设置 ls asdjkfhka > sout 2>&1 #上面用&1表示标准输出流,如果不加&,则会被解析成文件名,则会被重定向到文件 1 中
>>
:将标准输出重定向追加到某个文件中。
#将 ll 的标准输出结果追加到文件 sout 中 ls >> sout
|
:将它前面的命令的标准输出重定向到它后面的命令的标准输入中。
#将ll的标准输出重定向给less命令 ll | less #用的较多的场景 ps -ef | grep redis #会将 ls 的输出重定向给 cat,cat 将输出重定向到 out ls | cat > out #dkjfahgf是一个不存在的文件,管道并没有把ls的标准错误重定向给 cat,而是直接输出在了命令行 ls dkjfahgf | cat > err
参考:
- https://www.cnblogs.com/alan666/p/8311890.html
- http://ryanstutorials.net/linuxtutorial/piping.php
这篇关于linux中的>、>>、2>&1、管道命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法