Linux文件描述符和输入输出重定向
前言
环境:centos7.9
文件描述符
在执行一个shell命令是通常会自动打开3个标准文件,如下:
标准输入文件(STDIN,文件描述符为0):默认从键盘输入,也可以与重定向配合指定从文件或命令输入;
标准输出文件(STDOUT,文件描述符为1):默认输出到屏幕,也可以与重定向配合指定输出到文件;
错误输出文件(STDERR,文件描述符为2):默认输出到屏幕,也可以与重定向配合指定输出到文件;
STDIN对应/dev/stdin设备,STDOUT对应/dev/stdout设备,STDERR对应/dev/stderr设备;
输入输出重定向符号及作用
除了能从键盘输入和输出到屏幕,还应能从文件输入和输出到文件中保存信息,这就改变了原始的输出输出反向,这种改变就是重定向,重定向又分为输入重定向和输出重定向,而输出重定向又分为输出覆盖重定向和输出追加重定向。
command < file 等价于 command 0> file #将文件作为标准输入,即文件作为命令的标准输入,默认就是0,0可以不写
command << delimiter 等价于 command << delimiter #从标准输入中读入,直到遇到delimiter分隔符command > file 等价于 command 1> file #将命令的标准输出内容覆盖到文件file,标准输入默认就是1,1可以不写
command >> file #命令的标准输出内容追加到文件末尾,默认就是1,1可以不写command 2> file #命令的错误输出内容覆盖到文件,错误输出必须要写文件描述符2
command 2>> file #命令的错误输出内容追加到文件末尾,错误输出必须要写文件描述符2command > file 2>&1 # 2>&1意思是把 标准输出和错误输出 都重定向覆盖到 file文件
command &>file #等价于上面一条,把 标准输出和错误输出 都重定向覆盖到 file文件command >> file 2>&1 # 2>&1意思是把 标准输出和错误输出 都重定向追加到 file文件
command &>> file #等价于上面一条,把 标准输出和错误输出 都重定向追加到 file文件
还可以将标准输出和错误输出方便重定向到不同的文件:
command >> file1 2>>file2 # 标准输出重定向追加到 file1文件,错误输出重定向追加到 file2文件
演示示例:
test.txt文件是不存在的
ls /usr/local/apache/conf/ test.txt >>/stdout.txt 2>>stderr.txt #标准输出内容追加到stdout.txt,错误输出内容追加到stderr.txt
ls /usr/local/apache/conf/ test.txt &>>/stdout.txt #表示标准输出和错误输出内容都追加到相同文件
ls /usr/local/apache/conf/ test.txt >>/stdout.txt 2>&1 #同上
总结
标准输入:stdin 文件描述符 0 < 、<< 0< 、0<< 标准输入默认就是0,0可以省略不写
标准输入:stdout 文件描述符 1 > 、>> 1>、1>> 标准输出默认就是1,1可以省略不写
错误输出:stderr 文件描述符 2 > 、>> 2>、2>> 错误输出是2,2必须要写
2>&1 和 &符号
ls -l /etc/* fu.txt >>outInfo.txt 2>&1 #表示把标准输出和错误输出信息内容都追加到outInfo.txt文件
ls -l /etc/* fu.txt &>>outInfo.txt #等价于上一条
ls -l /etc/* fu.txt >>outInfo.txt 2>>err.txt #标准输出和错误输出内容分别追加到不同的文件
/dev/null 是一个无底洞,可以把不想要保留的信息丢进这个洞里
Linux文件描述符和输入输出重定向相关推荐
- linux文件描述符、软硬连接、输入输出重定向
引用链接:https://blog.csdn.net/qq769651718/article/details/79459346 文件描述符的作用: 文件描述符是linux操作系统中特有的概念.其相当于 ...
- 玩转linux文件描述符和重定向,玩转Linux文件描述符和重定向
本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入.输出相关联的整数,它们用来跟踪已打开的文件.有需要的朋友参考下. 原文出处: linux下的文件描述符是与文件输入.输出相关联 ...
- 玩转Linux文件描述符和重定向
本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入.输出相关联的整数,它们用来跟踪已打开的文件.有需要的朋友参考下. 原文出处:http://www.jbxue.com/arti ...
- <Linux基础--文件描述符fd、重定向、文件流指针FILE*概念理解>
文章目录 1.文件描述符fd 2.重定向 3.文件流指针:FILE* 4.动态库和静态库 1.文件描述符fd 文件描述符:实际上就是内核中一个进程打开的文件描述信息数组(file* fd_array[ ...
- Linux文件描述符详解
文章目录 一.概念 `1.1.特点` 优点 缺点 二.手动创建文件描述符 `2.1.语法` 2.1.1.创建 2.1.2.调用 2.1.3.关闭 `2.2.重定向输出的文件描述符` `2.3.重定向输 ...
- [转帖]linux文件描述符文件/etc/security/limits.conf
linux文件描述符文件/etc/security/limits.conf https://blog.csdn.net/fanren224/article/details/79971359 需要多学习 ...
- linux文件描述符导致squid拒绝服务
linux文件描述符导致squid拒绝服务 前几天因工作需要在RHEL4.8上面架设了一个squid双网代理,刚开始测试一切正常,然后就在前台负载均衡服务器把这个代理地址加上,运行一段时间后,客服 ...
- Linux C:文件描述符、IO重定向、恢复标准输入输出
目录 一.文件描述符 二.IO重定向 三.重定向回终端.伪终端 四.恢复标准输入输出 一.文件描述符 在Linux中,文件描述符是一个非负整数的数据类型.是FILE结构体中的一个成员属性. 每打开或者 ...
- 网络与IO知识扫盲(一):Linux虚拟文件系统,文件描述符,IO重定向
系统IO原理 在 Linux 中: VFS(Virtual Filesystem Switch):虚拟文件系统,是一个目录树.树上不同的节点可以映射到物理的文件地址,可以挂载. 相当于一个解耦层,在具 ...
- linux 文件描述符
linux中一切皆文件,socket,磁盘,线程,显示器,键盘等操作都是进行文件的操作. 文件类型 标记符 目录(directory) d 字符设备(character) c 块设备(block) b ...
最新文章
- 50本程序员圣经级别书籍!包邮送到家!一书在手,天下我有!
- Css2.0+Css3.0+jQuery手册 chm
- jquery入门与实践案例教程
- Linux下面makefile编写
- java怎么引入html文件路径_如何在public_html中读取文件但在域外?使用相对路径...
- postgresql+postgis安装
- 软件测试学习资料汇总
- Origin坐标轴上的连字符修改为负号
- 为什要使用BindService?为了调用服务中的方法
- python的学习结构
- 一文详说idea创建自定义的xml文件,比如创建mybatisConfig.xml等
- getReader()/getInputStream() has already been called for this request
- Python运维开发学习(一)
- 2021Java面经:最便宜java培训机构
- 华为和H3c--交换技术
- MySQL线上600W纪录的MyISAM表,要把存储引擎改为innoDB,一alter表就立马锁死的问题探讨
- nodejs解析zip文件
- 2020年美容师(中级)模拟考试及美容师(中级)考试软件
- 0基础、其他行业转行,适合学Python吗?
- Tomcat9环境配置