1.输出两种类型
- 程序运行结果 – 输送到一个叫做标准输出的特殊文件(stdout)
- 得到的状态和错误信息 – 标准错误的文件(stderr)
注:标准输出和标准错误都连接到屏幕,而不是保存到磁盘
2.标准输入
许多程序从标准输入的设备得到输入,默认标准输入连接到键盘
一般地,输出送到屏幕,输入来自键盘,但是通过 I/O 重定向,我们可以改变输入输出方向。
3.重定向标准输出
使用 ” > ” 符号
将ls命令运行结果输送到文件 ls-output.txt
$ ls -l /usr/bin > ls-output.txt
删除文件内容或创建新的空文件
$ > ls-output.txt
将重定向结果追加到文件内容后面,文件不存在会新建
$ ls -l /usr/bin >> ls-output.txt
4.重定向标准错误
重定向标准错误缺乏专用的重定向操作符,必须 参考它的文件描述符。一个程序可以在几个编号的文件流中任何一个上产生输出。把这些文件流的前三个看作标准输入、输出、错误,shell内部参考它们为文件描述符0、1、2。
$ ls -l /bin/usr 2> ls-error.txt
5.重定向标准输出和错误到同一文件
$ ls -l /bin/usr > ls-output.txt 2>&1
注:标准错误的重定向必须总是出现在标准输出重定向之后,要不然它不起作用
单单一个表示法 &> 来重定向标准输出和错误到文件 lsoutput.txt
//方法2
$ ls -l /bin/usr &> ls-output.txt
6.处理不需要的输出
隐瞒错误信息
$ ls -l /bin/usr 2> /dev/null
注:“/dev/null”这个文件是系统设备,叫做位存储桶,它可以接受输入,并且对输入不做任何处理。
7.cat – 连接文件
读取一个或多个文件,然后复制它们到标准输出
cat [file]
如果 cat 没有给出任何参数,它会从标准输入读入数据
$ cat > lazy_dog.txt
The quick brown fox jumped over the lazy dog.
下一步,输入 Ctrl-d(按住 Ctrl 键同时按下 “d”),来告诉 cat,在标准输入中,它已经到达文件末尾(EOF)
使用“<”重定向操作符,我们把标准输入源从键盘改到文件 lazy dog.tx
$ cat < lazy_dog.txt
The quick brown fox jumped over the lazy dog.
8.wc -打印行,字和字节数
$ wc ls-output.txt
7902 64566 503634 ls-output.txt