1.Linux给程序提供三种I/O设备
标准输入-0 默认接受来自键盘的输入
标准输出-1 默认输出到终端窗口
标准错误-2 默认输出到终端窗口
在dev下有个fd设备,打开的文件都有一个fd:file dexcriptor 文件描述符
I/O重定向:改变默认位置
2.把输出和错误重新定向到文件
> 把正确输出重定向出去
2> 把错误输出重定向出去
> 2>&1 (把错误结果转换成正确结果) 或&> 把所有输出重定向到文件
> 相当于touch 可以创建文件 echo abc > filename 此时>是覆盖的意思
>>追加
>| filename 强制覆盖
set -C禁止将内容覆盖已有文件,但可以追加
set +c 允许覆盖
&>把所有输出重定向到文件
():合并多个程序的输出(注意命令之间用;来分隔)
3.tr 转换和删除字符
tr -s ” 多个中(重复的元素)取一个
tr -d ” 删除 tr -d abc < /etc/fstab 删除fstab文件中所有abc
tr -t ” 没有转换的对象就不转换
tr -c “取字符的补集(和t s结合使用)
tr -cs”
tr -cd “反向删除
tr ‘1-9’ ‘a-j’ < test 这是将指定文件test中的‘1-9’改为‘a-j’ 但test中的内容不变
<输入重定向
当abc转换成edf后,后面没有要转换的东西,所以就不转换了;当abc转换成edf后,还要转换d,但是没有转换的对象,此时转换的对象应是上一个字母转换的对象,所以将d转换成f
对应的字符:
\NNN 用八进制值NNN字符(1到3八进制数字)
\\ 反斜杠
\b 退格
\n 新行
\r 回车
命令显示的内容可以导入一个文件中
-d和-s的效果 -d不保留回车 -s保留一个回车
cat > listfile < filename 单纯敲cat > listfile 就会等待你输入 你可以手动输入,也可以使用文件导入 在后面加< 跟个文件
<<后面跟的是终止词(命令从键盘多行重导入), 敲入 cat > test << ?? 就会等待你输入,当输入??时,就会终止输入,此时输入完毕。
4.管道 | 将正确结果重定向给下一条命令
命令1 | 命令2 | 命令3….将命令1的输出发送到命令2的输入,再将命令2的输出发送到命令3的输入….
错误的输出不能通过管道的发送,需要通过2>&1 | 或|& 来实现
2>&1 | 或 |& 全部结果重定向
组合多种工具的功能
ls | tr ‘a-z’ ‘A-Z’
mail发邮件 echo 123456 | mail -s “nihao” magedu
ls -l /etc/passwd | less 一页一页的查看输入
5.mail 发邮件
格式:mail -s “nihao” magedu “nihao “是主题 magedu是你要发送邮件的对象
敲完mail -s “nihao” magedu 就会让你输入发送邮件的内容 敲 .就可以结束输入了
mail -s “nihao” magedu < /etc/passwd (很少使用) 或cat /etc/passwd | mail -s “nihao” magedu(大多数使用)这种格式是直接将文件导入,不用输入
6.tee
格式:命令1 | tee [-a]filename | 命令2 把命令1显示的内容保存在文件中,作为命令2的输入
-a 是追加 若不加-a,当这个文件存在时就会覆盖,文件不存在时,直接创建该文件并保存。若加-a,当文件存在时就会追加。
本次博客的内容就到这里,欢迎大家指点。
原创文章,作者:fuming,如若转载,请注明出处:http://www.178linux.com/81894