I/O重定向以及管道

I/O重定向
ide

    一般对于程序来说,输入输出可使键盘、鼠标、显示器等;固然有时候输入的数据是程序自身内部所具备的。一样,输出的数据也有显示器或文件,所以咱们到底从哪里输入数据,产生的数据又存放在哪里。
spa


程序:指令+数据3d

读入数据:Inputblog

输出数据:Outputip

标准输入:键盘文档

标准输出:显示器get

程序的数据流有三种:
it

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

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

    错误输出流:--> 标准输出(stdout),显示器


fd(File descriptor):即文件描述符,内核利用fd来访问文件

    标准输入:键盘,0

    标准输出:显示器,1

    标准错误输出:显示器,2


输出重定向:COMMAND > NEW_POS 或 COMMAND >> NWE_POS

    >:覆盖重定向,会将目标文件内容覆盖

wKiom1efNFmDBD1aAAAnDW151Ec983.png

    >>:追加剧定向,将输出的内容追加至目标文件尾部

wKioL1efNOGgUywCAAAoeL-orB8126.png


set -C:禁止输出重定向覆盖文件内容

    强制覆盖,可以使用>|

wKiom1efNnjycdIPAAA5TWf_fRU440.png

set +C:容许输出重定向覆盖文件内容

    

错误输出重定向:COMMAND 2> NEW_POST 或 COMMAND 2>> NEW_POS

    2>:覆盖错误输出重定向,覆盖指定的文件内容

    2>>:追加覆盖,将错误输出内容追加至文件尾部

wKioL1efN7njJUwlAAAuspLgqZQ251.png


合并标准输出和错误输出

    (1)&>:覆盖标准输出和错误输出,覆盖指定文件内容

wKiom1efOuehFAkdAAAEQMgE2bg843.png

      &>>:追加输出

wKioL1efOxCjfiQyAAAEgDOL588921.png

    (2)2>&1:

wKiom1efOzeT9X7XAAAErtYX7zE383.png

wKioL1efPG6gXzaOAAAFCDwOIgc717.png


输入重定向:<    COMMAND < INPUT_FILE

    把另外一个文件的内容当作程序的输入

wKiom1efPceSPFqFAAAFy2Uuxh8653.png


两个特殊文件:

    /dev/null:数据黑洞,可将全部可有可无要的输出信息输出至此设备当中,通常在编写脚本时用的比较多

    /dev/zero:吐零机,可无限输出000数据,通常用于生成文件 或覆盖文件


tr命令:删除或转换字符

    tr [OPTIONS...] SET1 [SET2]

        -c:取字符集的补集

        -d:删除SET1定义的字符

        -s:把连续的字符显示一次

        -t:第一个字符集对应字符转化为第二字符集对应的字符

wKiom1efPzHzGpIOAABctibqhMo073.png

wKioL1efP4ugVJdAAAAhJlGvRBk325.png

Here Document:<<

    cat << EOF

    cat << EOF > aa.txt

wKiom1efQCfj85zBAAAZBpLxq-0708.png


管道:|

    将一个命令的输出当作下一条命令的输入,实现命令连接

    COMMAND1 | COMMAND2 | COMMAND3 |...

wKiom1efQRKCWiLdAAAGKaeLsK0780.png将/etc/passwd文件内容转换为大写并输出至aa.txt文件中


tee命令:将标准的输入和标准输出和文件

    COMMAND | tee /PATH/TO/SOMEFILE

wKiom1efQb6R1QRYAAAPE7YMGiI103.png将输入的文档输出至标准输出并保存至aa.txt文件中

相关文章
相关标签/搜索