Linux提供三种IO
STDIN:standard INPUT 标准输入:默认键盘
STDOUT :standard OUTPUT 标准输出 :默认终端
STDERR::standard ERROR 错误输出:默认终端
重定向
> :正确输出重定向
2> :错误输出重定向
&> :所有结果重定向
>> :追加 (正确的追加)
2>> &>> :错误的追加、所有追加
&> /dev/null :丢弃全部结果(尽可能的把过程丢掉)
2>&1 :把错误的当正确输出
管道 | (错误的无法通过管道,但是可以通过2>&1 将错误的信息作为正确的输出)
command1|command2|command3......
less : ls -l /etc | less //将前面命令执行的结果作为分屏显示的输入
mail : echo "test email" | mail -s "test" [email protected]
lpr : echo "test print" |lpr
echo "test print" | lpr -P printer_name
重定向不能重定向到文件里面,到文件里面就结束了,智能重定向到屏幕上才可以继续管道。
find /etc/ -name passwd 2>&1 >find.out |wc -l
合并输出()
(cal 2017,cal 2018) > cal.txt
tee 重定向多个结果
|tee file.txt |tee aa.txt | tee a.txt
键盘作为标准的输入设备
输入重定向
<
cat < /etc/passwd :原本cat是捕捉标准输入源,现/etc/passwd文件的内容作为输入源。这个过程完成了一次输入重定向。
输入重定向作用:
1、tr :转换功能
tr `A-Z` `a-z` < .bash_profile 将文件中的所有大写转换成小写
2、管道也使用了输入重定向
如何捕捉多行输入
<< :将多次输入的结果一次输出
mail -s "zhuti" [email protected] << END
XXXXX
XXXXX
END //END 作为结束符
cat >> test <<END
****
****
****
END //结束符
for循环
for NAME in joe jane julie
do
ADDRESS="[email protected]"
MESSAGE="Projects are due today!"
echo $MESSAGE |mail -s Reminder $ADDRESS
done