IO重定向及管道

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO重定向及管道相关的知识,希望对你有一定的参考价值。

IO重定向及管道


  程序:指令+数据

    程序:IO


    可用于输入的设备:文件

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

    可用于输出的设备:文件

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


    程序的数据流有三种:

输入的数据流;<-- 标准输入(stdin),键盘;

输出的数据流:--> 标准输出(stdout),显示器;

错误输出流:  --> 错误输出(stderr),显示器;


    fd: file descriptor,文件描述符

标准输入:0

标准输出:1

错误输出:2


  IO重定向:


    输出重定向:>

特性:覆盖输出

    输出重定向:>>

特性:追加输出


    # set -C

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

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

    # set +C

关闭上述特性


    错误输出流重定向:2>, 2>>


    合并正常输出流和错误输出流:

(1) &>, &>>

(2) COMMAND > /path/to/somefile 2>&1

   COMMAND >> /path/to/somefile 2>&1


特殊设备:/dev/null


    输入重定向:<


    tr命令:

tr [OPTION]... SET1 [SET2]

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


用法1:

   tr SET1 SET2 < /PATH/FROM/SOMEFILE

用法2:

   tr -d SET1 < /PATH/FROM/SOMEFILE


注意:不修改原文件


    Here Document:<<


cat << EOF

cat > /PATH/TO/SOMEFILE << EOF


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

COMMAND1 | COMMAND2 | COMMAND3 | ...


tee命令:

COMMAND | tee /PATH/TO/SOMEFILE


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

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


    命令总结:tr, tee


以上是关于IO重定向及管道的主要内容,如果未能解决你的问题,请参考以下文章

IO重定向及管道

IO重定向及管道

管道及IO重定向

管道及IO重定向

Linux基础入门--IO重定向及管道

2.2-IO重定向,管道及文本处理工具