Linux 输入输出重定向

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其他文件或命令中输入

标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕

错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕

空设备文件/dev/null

标准输入(stdin) 代码为0,实际映射关系:/dev/stdin -> /proc/self/fd/0

标准输出(stdout)代码为1,实际映射关系:/dev/stdout -> /proc/self/fd/1

标准错误输出(stderr)代码为2,实际映射关系:/dev/stderr ->/pro/self/fd/2

 

符号

作用

命令 < 文件

将文件作为命令的标准输入

命令 << 分界符

从标准输入中读入,直到遇见分界符才停止

命令 < 文件1 > 文件2

将文件1作为命令的标准输入并将标准输出到文件2

命令 > 文件

将标准输出重定向到一个文件中(覆写方式)

命令 >> 文件

将标准输出重定向到一个文件中(追加)

命令 2>> 文件

将错误输出重定向到一个文件中(追加)

命令 >> 文件 2>&1 或 命令 &>> 文件

将标准输出与错误输出共同写入到文件中(追加)

命令   &>  文件

把 标准输出 和 标准错误输出 都重定向到文件file中

命令  2>&1  文件

表示把标准错误的输出重定向到标准输出1,&指示不要把1当做普通文件,而是fd=1即标准输出处理

命令 2>1  文件

表示把标准错误的输出重定向到1,但这个1不是标准输出,而是一个名为1的文件。

 

command>a 2>1 、command>a 2>a 与 command>a 2>&1的区别

1. command>a 2>&1 等价于 command 1>a 2>&1

   意思为执行command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中。

2. command>a 2>a 不等价于 command 1>a 2>&1,其区别如下:

   i. command>a 2>a打开文件两次,而command 1>a 2>&1只打开文件一次;

  ii. command>a 2>a由于打开文件两次,导致stdout被stderr覆盖;

 iii. 从IO效率上来讲,command 1>a 2>&1比command 1>a 2>a的效率更高。

3. command>a 2>1 等价于 command 1>a 2>1

   意思为执行command产生的标准输入重定向到文件a中,标准错误重定向到文件1中。

管道命令符

命令A | 命令B“:把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入

tee命令--> 从标准输入中读取数据,将其内容输出到标准输出设备,同时保存成文件

例:ping google.com | tee output.txt

默认情况下,在同一个文件下再次使用 tee 命令会覆盖之前的信息。如果你想的话,可以通过 -a 命令选项改变默认设置。

 

例:ping google.com | tee -a output.txt

 

命令行通配符

 * 代表匹配零个或多个字符

 ? 代表匹配单个字符

 [0-9] 代表匹配0~9之间的单个数字的字符

 [abc] 代表匹配a,b,c三个字符中的任意一个字符

常用的转义字符

  • 反斜杠( \ ) 使反斜杠后面的变量转义为单纯的字符串
  • 单引号( ' ' ) :转义其中所有的变量为单纯的字符串
  • 双引号( " " ) :保留其中的变量属性,不进行转义
  • 反引号( `` ) :把其中的命令执行后返回结果
  • $(命令):等同反引号

 

参考链接:https://www.cnblogs.com/XingXiaoMeng/p/13020262.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值