用实例讲解输出/输入重定向/管道以及标准错误
来源:互联网 发布:java int 多少字节 编辑:程序博客网 时间:2024/06/06 11:42
输入重定向:
命令执行的结果,默认情况是输出到终端设备的,但是如果加上重定向符号,也可以输出到文件:
[root@localhost travel_life]#echo first time > a.txt
[root@localhost travel_life]#cat a.txt
first time
[root@localhost travel_life]#echo second time > a.txt ---- 用一个’>’,把当前的内容覆盖文件中已存在的内容
[root@localhost travel_life]#cat a.txt
second time
[root@localhost travel_life]#echo third time >> a.txt ---- 用两个’>’,则不会覆盖已存在的内容,而是追加到原来内容的尾部
[root@localhost travel_life]#cat a.txt
second time
third time
也可以用cat把一个文件的内容追加到另一个文件后面:
[root@localhost travel_life]# cat b.txt
aaaa
[root@localhost travel_life]#cat a.txt >> b.txt
[root@localhost travel_life]#cat b.txt
aaaa
second time
third time
[root@localhost travel_life]#cat a.txt b.txt ---- cat后面指定两个文件名,就把两个文件的内容相继显示出来,为什么是这样?因为是cat是catenate(连接)的缩写。
second time
third time
aaaa
second time
third time
输入重定向:
比如想知道当前有多少用户登录,可以把who运行结果的行数先输出重定向到文件a.txt,然后再让输入重定向到a.txt从而让wc –l打印出行数也就是用户的个数。
[root@localhost travel_life]# who
root pts/0 2014-10-11 23:23 (10.201.222.58)
root pts/1 2014-10-11 23:23 (10.201.222.58)
[root@localhost travel_life]#who > a.txt
[root@localhost travel_life]#wc -l < a.txt
2
当然还有更简单方法显示当前用户数,就是即将要讲的管道。
管道:
管道,顾名思义,就是一根管子,我们可以假定管子左右两边分别有两个人,左边的人在执行一个命令,做完之后把结果(想象成一个球)扔进管子,球会沿着管子滚到右边那一侧,右边的人拿到结果后,可以接着做事情。相当于左边第一条命令的标准输入作为第二条命令的标准输入。
[root@localhost travel_life]#who | wc -l
2
标准错误:
跟标准输入和标准输出一样,标准错误也是一种标准设备。UNIX把大部分错误信息都写到这里。与其他两类设别一样,标准错误默认也是终端。大多情况下,根本分不清标准输出和标准错误。
比如上篇文章里的ln错误:
[root@localhost travel_life]#ln /boot/xen-syms-2.6.18-53.el5 .
ln: creating hard link `./xen-syms-2.6.18-53.el5' to `/boot/xen-syms-2.6.18-53.el5': Invalid cross-device link
即使输出重定向到a.txt,仍然会在终端打印错误信息:
[root@localhost travel_life]#ln /boot/xen-syms-2.6.18-53.el5 . > a.txt
ln: creating hard link `./xen-syms-2.6.18-53.el5' to `/boot/xen-syms-2.6.18-53.el5': Invalid cross-device link
[root@localhost travel_life]#
但是如果真想让错误不显示在终端,而是输出重定位到某个文件,可以用’2>’,务必注意2和>之间不能有空格。实际,这个我们经常会用到,比如把执行一个大型shell脚本中遇到的错误全部打印到一个文件,执行完之后再看这个文件。
[root@localhost travel_life]#ln /boot/xen-syms-2.6.18-53.el5 . 2> a.txt
[root@localhost travel_life]# cat a.txt
ln: creating hard link `./xen-syms-2.6.18-53.el5' to `/boot/xen-syms-2.6.18-53.el5': Invalid cross-device link
- 用实例讲解输出/输入重定向/管道以及标准错误
- 重定向标准输入,输出以及错误流
- 重定向标准输入,输出以及错误流
- linux 重定向 标准输入 标准输出 标准错误输出
- Python重定向标准输入、标准输出和标准错误
- 标准输入标准输出标准错误重定向
- 重定向标准输入/输出
- 标准输入、输出和错误和文件重定向
- 标准输入、输出和错误和文件重定向
- 标准输入、输出和错误和文件重定向
- 标准输入、输出和错误和文件重定向
- Linux重定向及标准输入、输出、错误相关
- 重定向标准错误输出
- 重定向标准错误输出
- 重定向标准错误输出
- echo、read、tee、标准输入0、输出1、错误输出2、重定向>、追加重定向>>
- linux:输入/输出、重定向、管道
- 输入/输出重定向与管道
- String类常用的一些方法
- Windows下程序向Linux下移植
- HDU 2948 Geometry Darts(点在圆,三角形,矩形内判定)
- 浅谈Android的BaseAdapter适配器模式
- WebView解析文档
- 用实例讲解输出/输入重定向/管道以及标准错误
- JSP中的有关作用域的问题
- MONTHS_BETWEEN函数
- 通过一道试题深入理解指针及数组内存布局
- android拍照图片选取与图片剪裁
- 向博主学习Revit开发: Revit 二次开发实战速成(三天培训), 上海. 11月中旬
- 水樹 奈々 Blog 20140910 チェリーボーイズと共にモノトーンで☆译文
- 【交互设计】互联网产品的若干思考
- Magento日期相关方法