1、输入输出重定向可分为:
    标准输入:由键盘输入
    标准输出:由监视器输出
    错误输出:与标准输出相同,但是他们是具有各自的数据流,各占一个数据流
    通常用标识符对位:标准输入用0,标准输出用1,错误输出用2。

重定向:顾名思义就是将标准的输入和输出位置重新定向
    覆盖重定向:>    每一次的输出都要覆盖源文件中的内容
    追加重定向:>>
    错误重定向:2>
    错误追加重定向:2>>
    整合错误和标准输出:2>&1
    输入重定向:<
    追加输入重定向:<<


在/dev/null 这个文件是一个虚拟的软件设备,用于存放命令执行的结果,而所有的结果进入后都将不在存在!

Linux中各个命令的执行结束后,无论成功与否都有一个退出码:成功执行是:0;错误执行:1-255;不同的错误类型具有不同的退出码;
获取刚刚执行命令的退出码用到命令:#echo $?


例子:
    1、ll /ddev/null 2> /dev/null 这里我将dev输入错误为ddev所以这个命令会执行错误而这时我将这个错误信息输入到/dev/null中!


    2、ls /home/ >> /tmp/a.txt 这里我将/home下中的所有文件名追加写入到/tmp/a.txt文件中!


    3、cat > /tmp/b.txt << END 这里我将cat的内容重定向写入到/tmp/b.txt文件中,并且/tmp/b.txt事先不存在哦,当输入END时结束输入!



2、管道:把前一个命令的输出通过一个内部的用到送给后一个命令,并且后一个命令将其作为输入。用"|"(竖线)来表示。

   
例如:
    1、#ls /etc | more 将/etc下所有的文件列表用more来打开
    2、#ifconfig eth0 | grep "inet addr:" | cut -d: -f2 | cut -d' ' -f1  查看eth0的网卡信息,将其送个grep,搜索出存在"inet addr:"的一行内容,在送个cut,以:为分隔符切开取第二段结果在送个cut,以空格为分隔符切开,取其第一段,最后输出的就是网卡eth0的IP地址。
    3、ls /var | tee /tmp/test/a.txt 将/var目录下的所有文件名写入到/tmp/test/a.txt文件中



*    tee    把一个命令的执行结果显示到标准输出并且写入到文件中