重定向
- 输入重定向
command < input-file
- 输出重定向
command > output-file
- 合并输入输出重定向
command < input-file > output-file
command > output-file < input-file
- 带文件描述符的输入、输出重定向
UNIX内核为每一个打开文件关联一个小的整数,该整数成为该文件的文件描述符。标准输入、标准输出和标准错误的文件描述符分别是0、1和2.
利用文件描述符,在Bourne shell、Korn shell、Bash shell和POSIX shell中分别可用操作符0< 和>1来重定向标准输入和标准输出。因此命令cat 1> outfile 等价于 cat > outfile,它从标准输入读取输入并将结果送到文件outfile,错误信息显示在屏幕上。
文件描述符0可用在操作符<前面,从而显示地说明输入从定向的文件中。
- 标准错误重定向
command 2> error-file
作用:将‘command’产生的错误信息发送到已重定向到‘error-file’的标准错误文件中
- 在一个命令中重定向标准输出与标准错误
cat lab1 lab2 lab3 1> cat.out.errors 2>&1
该命令讲命令cat的stdout和stderr重定向到文件cat.output.errors中,因此在同一个文件(cat.output.errors)中包含了cat的输出及所有命令可能产生的错误信息
在该命令中,字符串2>&1告诉命令shell讲描述符2作为描述符1的一个副本,这样一来错误消息和命令的输出就都被发送到相同的地方。
- 在一个命令中重定向标准输入、标准输出和标准错误
command 0<input-file 1> output-file 2>error-file
- 不覆盖文件内容的重定向(添加)
只需用操作符»替代>。带»的默认文件描述符是1,而文件描述符2可用于在文件添加错误信息。
UNIX管道
UNIX系统允许某条命令的标准输出连接到另一命令的标准输入上。
command1 | command2 | ... |commandN
注:
C shell的输入、输出和添加操作符可以向其他shell中一样工作。然而C shell中,文件描述符不能和这些操作符一起使用。
本人用zsh,非常强大,平常用的应该都够了,大家可参考池建强的随想录