什么是输出重定向?什么是管道符?Linux系统通配符有哪些?

什么是输出重定向?什么是管道符?Linux系统通配符有哪些?

输出重定向

标准输出重定向

命令>文件

以覆盖的方式把命令的正确输出写到指定的文件或设备中

命令>>文件

以追加的方式把命令的正确输出写到指定的文件或设备中

标准错误输出重定向

错误命令 2> 文件

以覆盖的方式把命令的错误输出写到指定的文件或设备中,2和>之间不能有空格

错误命令 2>>文件

以追加的方式把命令的错误输出写到指定的文件或设备中

正确输出和错误输出同时保存

命令>文件 2>&1 或 命令&>文件

以覆盖的方式,把正确输出和错误输出都保存到同一个文件中

命令>>文件 2>&1 或 命令&>>文件

以追加的方式,把正确输出和错误输出都保存到同一个文件中

命令>>文件一 2>>文件二

把正确的输出追加到文件1中,把错误的输出追加到文件2中

注:如果文件不存在,则会在当前目录下创建

输入重定向

多命令顺序执行与管道符

命令1;命令2

多个命令顺序执行,命令之间没有任何逻辑联系

命令1&&命令2

逻辑与,当命令1正确执行,则命令2才会执行;当命令1执行不正确,则命令2不会执行

命令1||命令2

逻辑或,当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行

命令1|命令2

管道符,命令1的正确输出作为命令2的操作对象

举例:

命令 && echo yes || echo no 命令执行成功则打印yes,命令执行失败则打印no

通配符

? 匹配一个任意字符

* 匹配0个或任意多个任意字符,也就是可以匹配任何内容

[] 匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c

[-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母

[^] 逻辑非,表示匹配不是中括号内的一个字符,例如:[^0-9]代表匹配一个不是数字的字符