linux中有三种标准输入输出,分别是 STDIN,STDOUT,STDERR,对应的数字是 0,1,2。

STDIN 是标准输入,默认从键盘读取信息; 
STDOUT 是标准输出,默认将输出结果输出至终端,也就是显示器之类的东西; 
STDERR 是标准的错误信息,默认也会显示在终端上。 
由于STDOUT与STDERR都会默认显示在终端上,为了区分二者的信息,就有了编号的0,1,2的定义,用1表示STDOUT,2表示STDERR。

下面举例说明:

以普通用户登陆(Cent OS 7),执行 find /etc -name passwd 命令,默认会将命令的执行结果(STDOUT)与错误信息(STDERR)都输出至终端显示器。

体验一下编号 1,2 的作用,find /etc -name passwd 1>find.out 2>find.err ,这里会将 STDOUT 与 STDERR 分别存放至 find.out 和 find.err 中

个人理解就是 find /etc -name passwd 的命令的执行结果输出正确的输出(STDOUT)被1接收,错误的信息(STDERR)被2接收。

若要将所有的输出及错误信息都显示出来,可以用&表示全部1和2的信息,例如: 
find /etc -name passwd &>find.all

有时候希望将错误的信息重新定向到输出,就是将2的结果重定向至1中就有了”2>1”这样的思路,如果按照上面的写法,系统会默认将错误的信息(STDERR)2重定向到一个名字为1的文件中,而非所想的(STDOUT)中。因此需要加&进行区分。就有了 2>&1 这样的用法:

find /etc -name passwd 2>&1 |less

有时候还能看到这样的用法: 
find /etc -name passwd &2>&1 | less 
这里可以分解成 
find /etc -name passwd & 表示前面的命令放到后台执行。 
2>&1 | less 表示将错误信息重定向至标准输出,并用less进行分页显示。

最新文章

  1. mysql workbench连接不上远程数据库,xshell无法连接远程主机的问题
  2. windows 10 开始菜单和cortana无法工作的问题
  3. PHP HTML代码反转义
  4. Qt之添加QLabel的点击事件
  5. 建立MySQL的ODBC
  6. java 24 - 1 GUI之GUI的概述和基本代码
  7. 安装DRBD的一些问题
  8. 整理了一些jQuery关于事件冒泡和事件委托的技巧
  9. 检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下:
  10. jQuery两句话实现HTML转义与反转义
  11. Hibernate HQL查询的参数绑定
  12. dispatch队列
  13. CentOS 7 修改hostname
  14. 克隆虚拟机后修改MAC地址
  15. 1684: [Usaco2005 Oct]Close Encounter
  16. GBDT与LR融合提升广告点击率预估模型
  17. Python第一天自学,变量,基本数据类型
  18. ASP.NET Core使用静态文件、目录游览与MIME类型管理
  19. RHEL7.2安装
  20. vs2017 x64 ibatis.net 平台调用 Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342 x64

热门文章

  1. 学习笔记-nodejs报错
  2. HDU2243 考研路茫茫――单词情结
  3. UESTC 1599 wtmsb【优先队列+排序】
  4. Codeforces Round #328 (Div. 2)_B. The Monster and the Squirrel
  5. excel数据导出新妙招
  6. SSL数字证书Nginx配置部署
  7. Myeclipse2014 已有项目更换JDK
  8. Django App(四) Submit a form
  9. Use LiveCD to acquire images from a VM
  10. WEBZIP为什么打不开网页