一:I\O重定向
linu系统中的三种I/O设备所代表的编号分别是:
标准输入(STDIN),文件描述符为0,默认从键盘获取输入;
标准输出(STDOUT),文件描述符为1,默认输出到显示屏;
标准错误(STDERR),文件描述符为2,默认输出到显示屏。
I/O重定向就是为了改变默认输入、输出的位置:
>:表示标准输出覆盖重定向;
>>:表示标准输出追加重定向;
2>:表示错误输出覆盖重定向;
<:输入重定向;
<<:多行输入;
tr 命令
[root@zjxdd]# tr 123 abc
1111
aaaa
^C
[root@zjxdd]# tr 'a-z' 'A-Z'
asdfgh
ASDFGH
^C
[root@zjxdd]# tr -d 'ace'
ace111ace222ace444ace
111222444
^C
二:进程管道
管道(使用符号“|”表示)用来连接多个命令
格式:
命令1 | 命令2 | 命令3|...
管道中的 - 符号
管道中有时会使用 - 符号
示例:
将 /home 里面的文件打包,但打包的数据不是记录到文件,而是传送到 stdout,经过管道后,将 tar -cvf - /home 传送给后面的 tar -xvf - , 后面的这个 - 则是取前一个命令的 stdout, 因此,就不需要使用临时fifile了
tar -cvf - /home | tar -xvf -
tee 命令
利用tee命令可以重定向到多个目标
格式:
命令1 | tee [-a ] 文件名 | 命令2
以上可以把命令1的STDOUT保存在文件中,做为命令2的输入
选项:
-a 追加
功能:
保存不同阶段的输出
复杂管道的故障排除
同时查看和记录输出
范例:
[root@zjxdd]#cat <<EOF | tee /etc/motd
> welcome to magedu
> happy new year
> EOF
welcome to magedu
happy new year