管道符、重定向与环境变量
- 输入输出重定向
-
- 输入重定向用到的符号及其作用
- 输出重定向用到的符号及其作用
- 管道命令符
- 命令行通配符
- 常用的转义字符
- 重要的环境变量
输入输出重定向
**输入重定向:**把文件导入到命令中
**输出重定向:**把原本要输出到屏幕的数据写入到指定文件中,输出重定向分为两种:1. 标准输出重定向(文件描述符为1)默认输出到屏幕;2. 错误输出重定向(文件描述符为2)默认输出到屏幕。
输入重定向用到的符号及其作用
命令 < 文件
将文件作为命令的标准输入
命令 << 分界符
从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2
将文件1 作为命令的标准输入并将标准输出到文件2
输出重定向用到的符号及其作用
命令 > 文件
将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件
将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件
将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件
将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1或命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的
后面)
管道命令符
其格式为:命令A | 命令B
解释:就是把命令A原本要输出到屏幕的数据当作是命令B的标准输
入
可以使用多次管道符:命令A | 命令B | 命令C
命令行通配符
通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c 三个字符中的任意一个字符。
常用的转义字符
常用的转义字符:
反斜杠(\)使反斜杠后面的一个变量变为单纯的字符串。
单引号(’’):转义其中所有的变量为单纯的字符串。
双引号(""):保留其中的变量属性,不进行转义处理。
反引号(``):把其中的命令执行后返回结果。
反引号是第二行数字键最左边的一个,不是单引号
图中$$表示进程,因此需要添加反斜杠’\’
重要的环境变量
在我们执行一条命令之后,Linux系统中执行了四个步骤:
第1步: 判断是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是,则直接执行
第2步: Linux 系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。可以用alias 命令来创建一个属于自己的命令别名,格式为“alias 别名=命令”。若要取消一个命令别名,则是用unalias 命令,格式为“unalias 别名”。我们之前在使用rm 命令删除文件时,Linux 系统都会要求我们再确认是否执行删除操作。
第3步::Bash 解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4 继续处理。可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令。
**第4步:**系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash 解释器待执行的命令可能存放的位置,然后Bash 解释器就会乖乖地在这些位置中逐个查找。PATH 是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash 解释器对Linux 命令的查找。
export可以将变量提升为全局变量