程序: 指令+数据
程序:io
可用与输入的设备:文件
键盘设备、文件系统上的常规文件、网卡等
可用于输出设备:文件
显示器、文件系统上的常规文件、网卡等
程序的数据流有三种:
输入的数据流 <-- 标准输入(stdin),键盘:
输出的数据流--> 标准输出(stdout),显示器:
错误输出流: --> 错误输出(stderr):显示器:
fd: file descriptor,文件描述符
标准输入:0
标准输出:1
错误输出:2
IO重定向:
输出重定向: >
特性:覆盖输出
输出重写向 >>
特性:追加输出
# set -C
禁止覆盖输出重定向至已存在的文件(仅在当时shll环境有效)
强制覆盖输出可用:>|
# set+C
关闭上述特性
错误输出流重定向 2> ,2>>
合并正常输出流和错误输出流:
&>,$>>
COMMAND > /PATH/FROM/SOMEDILE 2>&1
COMMAND > >/PATH/FROM/SOMEDILE 2>&!
输入重定向: <
tr命令
tr ts1 ts2 把ts1当中的字符,对位替换成ts2
用法1:tr ts1 ts2 < /PATH/FROM/SOMEDILE
用法2:tr -d ts1< /PATH/FROM/SOMEDILE
tr
注意:不修改原文件
<<
cat << EOF
cat > /PATH/TO/SOMEFILE << EOF
管道:连接程序,实现将前一个命令的输出之间定向后一个程序当作输入
tee命令 将数据分方向发送
COMMAND | tee /path/to/somefile/
将command结果输出至屏幕上并且又保存至指定文件
练习1:吧/etc/passwd文件前6行的信息转换为大写字符后输出:
head -n 6 /etc/passwd | tr ‘a-z’ ‘A-Z’