linux下管道及重定向

  1. 系统默认设定:

     标准输入:STDOUT,0

     标准输出: STDIN,1

     标准错误输出: STDERR,2

2.I/O重定向:

  >:覆盖输出

 set -C :禁止对已经存在的文件覆盖重定向

   如需强制覆盖输出重定向:可使用 >|

 set +C :启用对已经存在的文件覆盖重定向

  >>:追加输出

  2> :  标准错误输出

  2>> :标准错误追加方式

  &> : 标准或错误输出至同一文件

     举例说明:ls /etc/ &> /tmp/err.txt 

  >filename 2>&1 :与&>功能一样,都是将标准或错误输出至同一文件

    举例说明: ls /etc/ > /tmp/err.txt 2>&1

  < :输入重定向

  <<EOF:EOF为结束,可以任意写结语字符

    举例说明:

    wKioL1cLr9yS_MgtAAC4PyEIlq8987.jpg

3.管道:前一个命令的输出,作为后一个命令的输入

   格式:命令1 | 命令2 | 命令3 | ...

 tee:复制一份保存至指定文件中,再打印一份输出至屏幕

 3.1.举例说明:取出/etc/passwd文件中用户名和UID,并且按UID数字降序进行显示;

          cut -d: -f1,3, /etc/passwd | sort -t: -k2 -n -r 

 3.2.举例说明:取出/etc/passwd文件中倒数第6个用户的用户名和UID以及shell,显示到屏幕上并将            其保存至/tmp/pw.txt文件中

          cut -d: -f1,3,7 /etc/passwd | tee /tmp/pw.txt

 3.3.举例说明:不使用文本编辑器,将alias copy=cp一行内容追加到当前用户的.bashrc文件中

          echo "alias copy=cp" >> ~/.bashrc