我们知道当我们用键盘敲字并在屏幕上面显示过来,主要是通过I/O设备来交互完成的。那么什么是I/O设备呢?

系统默认的将键盘当做标准输入设备,将显示器当做标准输出设备和标准错误输出设备

标准输入:也可以叫STDIN,用0来标识

标准输出:也可以叫STDOUT,用1来标识

标准错误输出:STDERR,用2来标识


那么什么是I/O重定向呢?

I/O重定向就是改变数据的输入来源和数据的输出位置

I/O重定向包括:

    标准输入重定向,用<表示,默认标准输入的内容来至键盘,当然标准输入也可以来至文件。

    标准输出重定向,用>表示,默认标准输出的内容会显示到屏幕,也可以重定向到文件中。

    标准错误输出重定向,用2>,默认标准错误输出的内容会显示到屏幕,也可以重定向到文件中。

注意:当使用标准输出和标准错误输出重定向文件时,会覆盖原来文件的内容。

I/O重定向及管道命令

<<:表示生产文档的意思

    例如:cat << eof > word.txt

    意思是将键盘输入的数据生产文档然后重定向到word.txt文件中

>>:以追加的方式来进行输出重定向(在原有的文件后面追加)

2>>:以追加的方式来进行输出错误重定向(在原有的文件后面追加)


那如何将标准输出和标准错误输出重定向到一个文件去了?

使用&>:将标准输出和标准错误输出重定向到一个文件

&>>:以追加的方式将标准输出和标准错误输出重定向到一个文件

例如:

I/O重定向及管道命令


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

    >|:可以强制覆盖输出

set +C:关闭上述功能,即可以使用重定向功能了

示例如下

I/O重定向及管道命令



管道命令

所谓管道就是将前一个命令的标准输出当做后一个命令的标准输入

用|表示管道命令

语法格式 命令1 | 命令2 | 命令3...


tee:就是从标准输入读取数据源,然后将数据源标准输出到指定文件并在屏幕上打印

俗称一个输入两个输出

示例如下:

I/O重定向及管道命令