linux-IO重定向及管道,tr、tee

1.输入输出设备

输入输出设可用于输入的设备:文件

键盘设备、文件系统上的常规文件、网卡等;

可用于输出的设备:文件

显示器、文件系统上的常规文件、网卡等;


2.fd: file descriptor,文件描述符

标准输入:代码为0; 标准输入(stdin),键盘;

标准输出:代码为1;标准输出(stdout),显示器

错误输出:代码为2;错误输出(stderr),显示器;



3.IO重定向

  • 标准重定向符号

 输出重定向到一个个文件和设备,覆盖原来的文件

>! 输出重定向到一个个文件和设备,强制覆盖原来的文件

>> 输出重定向到一个个文件和设备,追加原来的文件

<   输入重定向到一个程序


  • 标准错误重定向符号

2> 将一个标准错误输出重定向到一个文件或设备,覆盖原来的文件

2>> 将一个标准错误输出重定向到一个文件或设备,追加到原来的文件

2>&1  合并正常输出流和错误输出流重定向到标准输出(1 代表标准输出)

|&  将一个标准错误 管道 输送 到另一个命令作为输入


  • 设置文件覆盖已存在文件的默认值

 ~]#set -C

禁止覆盖输出重定向至已存在的文件;

此时可使用强制覆盖输出:>|

~]#set +C

关闭上述特性


  • 特殊设备:/dev/null 

数据黑洞,任何数据输出给/dev/null 都是被丢弃的,当输出的结果对我们没有意义时,都可以输出到/dev/null


 获取状态值$?


4.命令

tr:

可以对来自标准输入的字符进行替换、压缩和删除

tr [OPTION]... SET1 [SET2]

把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符

-d SET1 :删除所有属于SET1字符集的字母


  • 大小写字母转换 

tr 'a-z' 'A-Z' < test 

cat test | tr 'a-z' 'A-Z'


  • 删除匹配set1 的字符

tr -d 'lo' < test

cat test |  tr -d 'lo'



tee:
会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

tee [选项]... [文件]...
 -:将输入内容复制到标准输出
-a:内容追加到给定的文件而非覆盖

  • 重复标准输出tee -


  • 把标准输出保存为文件,默认覆盖,-a 不覆盖

cat test | tee test2

cat test | tee -a test2




5.管道符 |

管道:连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流

COMMAND1 | COMMAND2 | COMMAND3 | ...


把/etc/passwd文件的前6行的信息转换为大写字符后输出;

head -n 6 /etc/passwd | tr 'a-z' 'A-Z'



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值