首页 > 代码库 > Shell命令(2)——文件描述符和重定向符

Shell命令(2)——文件描述符和重定向符

文件描述符

  1. stdin:标准输入,接收鼠标、键盘或其他输入设备的输入信息,文件描述符是1
  2. stduot:输出所有的正常输出结果,文件描述符是2
  3. stderr:输出所有错误信息,文件描述符是3

重定向符

  1. “>":使用方法,“command > file",进程接受标准输入后,该重定向符使得标准输出改变方向,不输出到屏幕,而是输出到一个文件。标准错误输出依然不变,默认输出到屏幕或相应的设备。另外,若文件已存在,则原有内容就会被擦除。例如:

  2. ”>>" :与上面一个类似,只是在写入文件时,不将文件内容清除,而是在后面追加。目标文件不存在时,则会创建该文件。
  3. ">&":1,2均为标准输出的重定向符。若要将错误信息输出到文件中,就要用到">&"重定向。这个命令在写入文件也会清空原有内容。
  4. ">>&“:与上一个类似,只是以追加的方式写入文件
  5. "<":"command < file ",进程就会从文件中获取输入信息,而不是从屏幕上输入。
  6. "<<":重定向符的一种,其后面跟的是定界符。例如:
  7. "command %n%c file”:command 输出重定向的命令 ,%n 文件描述符,默认值为1,%c 重定向符 ,file 目标文件。
  8. 几个复杂的重定向举例:
    1. 将标准错误重定向为标准输入 command 2>&1
    2. 第一个文件既作为标准输入也作为标准输出 command <> file
    3. 把文件描述符x作为标准输入 command <&x
    4. 把标准输出重定向到文件描述符x中 command >&m
    5. 关闭标准输出 command 1>&-
    6. 关闭标准错误输出 command 2>&-
    7. 关闭标准输入 command 0<&-

Shell命令(2)——文件描述符和重定向符