第三章 管道符、重定向与环境变量
第一节 输入输出重定向
输入重定向是指把文件导入到命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中。
- 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其他文件或命令中输入。
- 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
- 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
如上图,第一个文件存在,输出信息是改文件的相关权限所有者等信息,这也是标准输出信息,而第二个文件不存在,报错信息就是该命令的错误输出信息。
输入重定向中用到的符号及其作用:
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,知道遇见分界符才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
输出重定向中用到的符号及其作用:
符号 | 作用 |
---|---|
命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中 |
对于重定向的标准输出模式,可以省略文件描述符 1 不写,二错误输出模式的文件描述符 2 是必须要写的。
第二节 管道命令符
管道符的作用可以用一句话来概括 “把前一个命令原本要输出到屏幕的数据当做是后一个命令的标准输入” ,格式为:命令A | 命令B。
第三节 命令行的通配符
通配符就是通用的匹配信息的符号,比如星号(*)代表匹配领个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,中括号内加上字符[ab12]则是代表匹配a、b、1、2 四个字符中的任意一个。
第四节 常用的转义字符
- 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
- 单引号("):转义其中所有的变量为单纯的字符串。
- 双引号(""):保留其中的变量属性,不进行转义处理。
- 反引号(’):把其中的命令执行后返回结果。