linux之 输入输出重定向及管道命令符

假装没事ソ 提交于 2019-12-23 15:51:07

输入输出重定向

介绍
输入重定向就是将文件的信息导入到命令行中,而输出重定向则是之指把原本要输出到屏幕的数据 导入指定文件中。
  1标准输入重定向(STDIN,文件描述符为 0):默认从键盘输入,也可从其他文件或命令中输入。
   2标准输出重定向(STDOUT,文件描述符为 1):默认输出到屏幕。
  3错误输出重定向(STDERR,文件描述符为 2):默认输出到屏幕。
  
        输入重定向中用到的符号及其作用

符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 < 文件 1 > 文件 2 将文件 1 作为命令的标准输入并将标准输出到文件 2

输出重定向中用到的符号及其作用

符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

注意:对于重定向中的标准输出模式,可以省略文件描述符 1 不写,而错误输出模式的文件描述符 2是必须要写的

管道命令符

介绍:把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入

命令通配符

介绍: 通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配 0~ 9 之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配 a、b、c 三个字符中的任意一个字符。

常用的转义字符

介绍: 为了能够更好地理解用户的表达,Shell 解释器还提供了特别丰富的转义字符来处理输入的特殊数据。
4 个最常用的转义字符如下所示。
➢ 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
➢ 单引号(’’):转义其中所有的变量为单纯的字符串。
➢ 双引号(""):保留其中的变量属性,不进行转义处理。
➢ 反引号(``):把其中的命令执行后返回结果。

环境变量

介绍:变量是计算机系统用于保存可变值的数据类型。在 Linux 系统中,变量名称一般都是大写的,这是一种约定俗成的规范。

在 Linux 系统中一切都是文件,Linux 命令也不例外。那么,在用户执行了一条命令之后,Linux 系统中到底发生了什么事情呢?简单来说,命令在 Linux 中的执行分为 4 个步骤。

第一步:判断用户是否以绝对路径或相对路径的方式输入命令 (如/bin/ls),如果是的话则直接执行。

第二步 :Linux 系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。

第三步:Bash 解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤 4 继续处理。可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令。

第四步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作 PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉 Bash 解释器待执行的命令可能存放的位置,然后 Bash 解释器就会乖乖地在这些位置中逐个查找。PATH 是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到 Bash 解释器对Linux 命令的查找。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!