管道符、重定向

原创 2016年08月29日 13:49:31

一、管道命令符
命令1 | 命令2 | 命令3
将前一个命令的标准输出 作为后一个命令的标准输入

#grep -v “/sbin/nologin” /etc/passwd | wc -l

二、输入输出(I/O)重定向
输出重定向符(>,>>)
命令 > 文件 #将标准输出重定向到一个文件中,会清空原来的文件数据
命令 >> 文件 #将标准输出重定向到一个文件中,追加原有内容后面

命令 2> 文件 #将错误输出重定向到一个文件中,会清空原来的文件数据
命令 2>> 文件 #将错误输出重定向到一个文件中,追加原有内容后面

命令 >> 文件 2>&1 或 命令 &> 文件
#将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

补充:如何理解&1 重定向到 标准输出

输入重定向符(<,<<)
命令 < 文件 #将文件作为命令的标准输入
命令 << 分界符 # 标准输入中读入,直到遇见分界符 才停止 一般分界符用EOF

命令 < 文件1 > 文件2 #将文件1做为命令的标准输入并将标准输出重定向到文件2,,会清空原来的文件数据

重定向&>file、2>&1、1>&2的区别
默认输出设备:标准输出,STDOUT,描述符 1
默认输入设备:标准输入,STDIN,描述符 0
标准错误输出:标准错误,STDERR,描述符 2

>默认为标准输出重定向,与 1> 相同
2>&1 标准错误输出 重定向到 标准输出.
&>file 标准输出 和 标准错误输出 都重定向到文件file中

用例子说话:

#grep da * 1>&2
#rm -f $(find / -name core) &> /dev/null
上面两例中的 & 如何理解,&不是放到后台执行吗?

牛解:

1.&>file或n>&m均是一个独立的重定向符号,不要分开来理解。

2.明确文件和文件描述符的区别。

3.&>file表示重定向标准输出和错误到文件
例如:
rm -f $(find / -name core) &> /dev/null,/dev/null是一个文件,这个文件比较特殊,所有传给它的东西它都丢弃掉。

4.n>&m表示使文件描述符n成为输出文件描述符m的副本。这样做的好处是,有的时候你查找文件的时候很容易产生无用的信息,如:2> /dev/null的作用就是不显示标准错误输出;另外当你运行某些命令的时候,出错信息也许很重要,便于你检查是哪出了毛病,如:2>&1
例如:
注意,为了方便理解,必须设置一个环境使得执行grep da *命令会有正常输出和错误输出,然后分别使用下面的命令生成三个文件:
#grep da * > greplog1
#grep da * > greplog2 1>&2
#grep da * > greplog3 2>&1 //grep da * 2> greplog4 1>&2 结果一样
#查看greplog1会发现里面只有正常输出内容
#查看greplog2会发现里面什么都没有
#查看greplog3会发现里面既有正常输出内容又有错误输出内容

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

grep和管道符

linux下管道符的应用
  • svod
  • svod
  • 2010年08月03日 22:53
  • 5261

Linux学习---重定向和管道符

输出重定向>代表以覆盖的方式将命令的正确输出输出到指定的文件或设备当中。 >>代表以追加方式输出。常用的输出重定向: 1.命令 >> 文件 2>&1 :以追加的方式,把正确输出和错误输出都保存在文...

关于重定向符>>与>的区别与作用

echo "hello"> a.txt echo hello >a.txt 用hello覆盖a.txt内的内容 echo "hello">>a.txt echo hello>>a.txt ...

输入重定向,输出重定向,管道相关内容及实现方法

近期,通过实现shell了解了输入重定向,输出重定向,管道- 用自己的话总结定义: 输入重定向:把 输出重定向:把运行>左边命令得出的结果输入到>右边的文件中。 (若以>输出到一个已经存在的文...

linux基本操作学习04:管理输入输出 (重定向、管道符)、vim、gedit

#unit4##1.管理输入输出#在linux系统中,正确输出的编号为1,错误输出编号为2在系统中用普通用户执行 “student” find /etc -name passwd 因为stude...

RHEL三(输入输出重定向、管道符)

输出信息包括正确信息和错误信息。标准的输出设备:显示器,标准输入设备:键盘,扫描仪等。 使用命令 ll /dev/std*可以查看输入输出设备:   lrwxrwxrwx. 1 root root...

bash的基本功能(重定向、管道符、通配符)

输出重定向 注:linux中一切皆文件,为方便记忆,在sh中以0,1,2分别表示这三种输入输出 管道符 注: 1. 可通过data;X;X;…...

Linux学习----Shell基础(环境变量,命令别名与快捷键、历史命令、输出重定向、管道符、通配符)

Shell是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统程序,用户可以用Shell来启动、挂起、甚至是编写一些程序。     Shell 还是一个功能相当强大的编...

管道符、重定向符、命令行通配符、转义字符与环境变量

《Linux就给这么学》学习笔记

Linux管道符、重定向和环境变量学习

管道符 重定向 环境变量
  • Witta
  • Witta
  • 2017年10月30日 20:31
  • 154
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:管道符、重定向
举报原因:
原因补充:

(最多只允许输入30个字)