输入输出重定向、2>&1、标准输入、标准输出、标准错误

https://zhuanlan.zhihu.com/p/47765176

./test.sh  > log.txt 2>&1

每个程序在运行后,都会至少打开三个文件描述符,分别是
0:标准输入;
1:标准输出;
2:标准错误。

2>&1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出),为什么1前面需要&?当没有&时,1会被认为是一个普通的文件,有&表示重定向的目标不是一个文件,而是一个文件描述符。在前面我们知道,test.sh >log.txt又将文件描述符1的内容重定向到了文件log.txt,那么最终标准错误也会重定向到log.txt。

文件描述符fd:

ps -ef|grep test.sh  #重新打开命令串口,使用ps命令找到test.sh的pid
hyb       5270  4514  0 19:20 pts/7    00:00:00 /bin/bash ./test.sh
hyb       5315  5282  0 19:20 pts/11   00:00:00 grep --color=auto test.sh

可以看到test.sh的pid为5270,进入到相关fd目录 /proc/5270/fd:

cd /proc/5270/fd   #进程5270所有打开的文件描述符信息都在此
ls -l              #列出目录下的内容0 -> /dev/pts/71 -> /dev/pts/72 -> /dev/pts/7255 -> /home/hyb/workspaces/shell/test.sh
### 要注意顺序,不要写成这样:
./test.sh 2>&1 >log.txt

【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误相关推荐

  1. C++ 标准输入,标准输出,标准错误和标准日志

    C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍.本章将讨论 C++ 编程中最基本和最常见的 I/O 操作. C++ 的 I/O 发生在流中,流是字节序列.如果字节流是从设备( ...

  2. pythonsys标准_python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出...

    标准输出(sys.stdout)对应的操作就是print(打印)了,标准输入(sys.stdin)则对应input(接收输入)操作,标准错误输出和标准输出类似也是print(打印). python最基 ...

  3. Linux的标准输出 标准错误 标准输入 重定向

    标准输入(STDIN)-0 默认接受来自键盘的输入 标准输出(STDOUT)-1 默认输出到终端窗口 标准错误(STDERR)-2 默认输出到终端窗口 > 把STDOUT重定向到文件 2> ...

  4. python标准输入输出用来干什么_python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出...

    标准输出(sys.stdout)对应的操作就是print(打印)了,标准输入(sys.stdin)则对应input(接收输入)操作,标准错误输出和标准输出类似也是print(打印). python最基 ...

  5. Shell:标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)介绍

    UNIX系统shell使用 1.文件描述符0与进程的标准输入(一般是键盘)相关联: 2.文件描述符1与标准输出(一般是显示器)相关联: 3.文件描述符2与标准出错输出(一般是显示器)相关联 1.输出 ...

  6. 如何理解Linux shell中的“2>1”(将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出))(尼玛>符号竟然不支持搜索,害我搜搜不到,只能搜)

    文章目录 前言 有何妙用 如何理解 总结 前言 有时候我们常看到类似这样的脚本调用: ./test.sh > log.txt 2>&1 这里的2>&1是什么意思?该如 ...

  7. (010) Linux之I/O重定向

    十年运维系列之基础篇 - Linux 作者:曾林 联系:1494445739@qq.com 网站:www.jplatformx.com 版权:文章未经同意请勿转载 一.引言 这里我们来讨论Linux中 ...

  8. Linux shell脚本IO重定向

    shell IO shell脚本或者Linux终端上,常用的IO文件描述符有三个: 0 标准输入(stdin) 1 标准输出 (stdout) 2 标准错误 (stderr) 标准输入一般为键盘,标准 ...

  9. Linux:输入/输出重定向

    文章目录 1 输入重定向 2 输出重定向 3 标准错误文件重定向 4. Here Document 5 /dev/null 文件 6. 追加重定向 一个命令通常从一个叫标准输入的地方读取输入,默认情况 ...

  10. linux 的错误输出黑洞,Linux的标准输出、标准错误输出、nohup

    1.在bash中标准输出可以用1来表示:通常来说这个1可以省略: 如./xxx >/dev/null 和 ./xxx 1>/dev/null 是一个意思 2.在bash中标准错误输出可以用 ...

最新文章

  1. 操作系统--内存管理方式
  2. 机器人x展架制作_易拉宝展架设计制作常规尺寸材质有哪些?
  3. TCP/IP详解--第十七章
  4. Leetcode 876. 链表的中间结点 (每日一题 20210918)
  5. 微信小程序从零开始开发步骤(三)底部导航栏
  6. ASP.NET基础教程-Web 自定义控件的使用-根据属性值从数据库中提取数据并在页面上自动生成一个表格...
  7. iptables for循环
  8. 如何设置Pycharm在打开Terminal终端时,自动进入虚拟环境?
  9. Matlab——输出一个矩阵到txt文件
  10. python读取txt文件并输出到表格_Python读取txt内容写入xls格式excel中的方法
  11. android 充电模式deamon_Android MarsDaemon实现进程及Service常驻
  12. 大端模式、小端模式、网络字节顺序与主机字节顺序
  13. Windows系统下的socket编程
  14. 信息学奥赛一本通答案大全
  15. MySQL闪退解决办法
  16. HTML超文本语言(1)
  17. 重磅自动驾驶数据集来了!全球首个多传感器虚拟标注数据集免费开放
  18. 运维自动化之ANSIBLE
  19. win10环境下安装elasticsearch实践
  20. 按键精灵---插件之后台发送字符串

热门文章

  1. 大数据分析之Hadoop
  2. 学会数据库读写分离、分表分库
  3. 使用Skywalking实现全链路监控
  4. 深入netty源码解析之一数据结构
  5. 【风险管理】信贷核心业务流程
  6. 首份《顶级数据团队建设全景报告》重磅发布: 逾半数据团队称人才储备不足
  7. java多态替换switch_使多态性无法解决那些switch / case语句的麻烦
  8. 学习笔记Kafka(七)—— Kafka 与Spark集成 —— 原理介绍与开发环境配置、实战
  9. mysql 修改字段为1-10的随机数
  10. android transform xml xsl,XslCompiledTransform.Transform 方法 (System.Xml.Xsl) | Microsoft Docs