Home » Code » Linux » Linux基础知识之IO重定向

Linux基础知识之IO重定向

程序的数据流有三种:

  • 输入数据流,<–,标准输入(stdin),键盘,文件描述符(fd,file descriptor)用0表示;
  • 输出数据流,–>,标准输出(stdout),显示器,用1表示;
  • 错误输出流,–>,错误输出(stderr),显示器,用2表示。

将数据流重定向

标准输出覆盖重定向,>,将会覆盖目标文件中已有内容。执行set -C,将会禁止覆盖重定向,若仍要执行覆盖重定向,使用 “>|”。执行set +C则关闭上述特性。

标准输出追加重定向,>>,内容追加到已有文件末尾。

错误输出重定向,2>,2>>。

特殊输出设备:/dev/null,输出到该设备无任何结果及影响。

合并正常输出流与错误输出流

&>、&>>, COMMAND &> /path/to/somefile,COMMAND > /path/to/somefile 2>&1,COMMAND >> /path/to/somfile 2>&1。

输入重定向

使用符号 <。如tr命令(转换或删除字符):tr [option]… set1 [set2]。tr [a-z] [A-Z],小写转换为大写。从文件输入tr [a-z] [A-Z] < /etc/issue。注:tr命令添加-d选项,不需要set2参数,表示删除set1字符。

输入没有追加一说<<,<<表示Here Document,文档输入。一般用法cat > /tmp/cat.out << EOF,换行不停输入,最后输入EOF,多行保存到文档中。

PS:tee命令,输出到文件及下一个命令,COMMAND | tee /path/to/file | COMMAND …

练习:

1、把/etc/passwd文件的前6行转换为大写后输出:

head -n 6 /etc/passwd |tr ‘a-z’ ‘A-Z’。

–来自51cto-马哥Linux免费视频教程

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Time limit is exhausted. Please reload CAPTCHA.