bash功能(一)命令行编辑、内部命令和外部命令、命令补全和路劲补全、命令历史
文章目录
通配符
通配符概念
-
是特殊的字符,不表示表面意义,而是能够匹配符合指定特征的字符
-
*
代表任意长度的字符
-
?
代表任意单个字符
-
[]
代表指定范围的单个字符
查找文件名有空格的文件
- a[’ ']b
使用专门的方法标识特点字符
-
[[:space:]]
空格 -
[[:digit:]]
[0~9] -
[[:lower:]]
[a~z] -
[[:upper:]]
[A~Z] -
[[:alpha:]]
[a~Z] -
ps:在括号里加上 ` 表示取反,具体我面有演示
命令别名
查看定义的别名
- alias
定义名别名
调用命令本身
- \命令
删除别名
- unalias 命令别名
命令替换
概念
- 使用执行的结果替换该命令
$(命令)
使用反引号实现命令替换
强引用与弱引用
- bash中 “ ” 弱引用,能实现命令替换
- ‘ ’ 强引用,不能实现命令替换。
路径展开
概念
- 如果我们需要创建很多文件在同一个文件,我们就可以对其进行命令优化,也就是路径展开。
一个{}
俩个{}{}
复杂路径
重定向
概念
- 将标准输入、标准输出和标准错误输出定向到一个文件中
重定向输出的操作符
-
>
将结果输出到指定文件中,而不是显示在屏幕上 -
>>
将结果输出追加到指定文件中
重定向输入的操作符
-
<
将命令中接收输入的路径由默认的键盘更改为指定的路径 -
<<
指定输入结束符
查看标准输入输出设置
- Is -1 /dev/std*
- 最后的1为标准输出,2位标准错误输出,在接下来的重定向中也要用到1和2
重定向标准输出
重定向标准错误输出
将标准输出和标准错误输出重定向到不同文件
- 1>a 2>b
将标准输出到a文件,标准错误输出到b文件
将标准输出和标准错误输出重定向到同一个文件
- &>ab
将标准输出和标准错误输出重定向到同一个文件ab中
重定向用途
- 可以将命令输出保存到文件
- 可以向配置文件增加内容
- 可以合并文件内容
管道技术
概念
- 将前一个命令的标准输出成为下一个命令的标准输入,在其之间加上 | 即可。
注意事项
- 在管道后面的命令,不应该再跟文件名
- 在管道中只有标准输出会传递下去,标准错误输出直接输出到终端(可以将标准错误输出重定向)
- 有些命令不支持管道技术,但是前面加上 xargs 就可以是其支持管道技术(Is -1 是不支持管道技术的)
总结 Linux中的重定向和管道
llinux中的三种IO设备:
标准输入(STDIN),文件描述符号为:0,默认从键盘获取输入
标准输出(STDOUT),文件描述符号位:1,默认输出到显示终端
标准错误(STDERR),文件描述符号为:2,默认输出到显示终端
IO重定向是为了改变默认输入、输出的位置:
- 输出重定向(标准输出STDOUT和标准错误输出STDERR)
【>】标准输出覆盖重定向
【>>】标准输出追加重定向
【2>】标准错误输出重定向
【2>>】标准错误输出追加重定向
【&>】将标准输出和标准错误输出都同时重定向(相当于二次重定向【2>&1】)
【&>>】将标准输出和标准错误输出都同时追加重定向
【set -C】命令:启用系统禁止覆盖重定向(set -C执行后,再做重定向时,重定向文件如果存在则会报错 cannot overwrite existing file)如果在启用【set -C】命令后依然需要覆盖重定向文件,可以使用【>|】来强制覆盖
【set +C】命令:解除禁止覆盖重定向(set +C执行后,重定向文件如果存在则不会报错,直接覆盖) - 输入重定向(标准输入)
【<】输入重定向;
【<<END】多行输入;(END为多行输入的结束标志)通常用于脚本创建新文件时写入固定内容 - 管道
【|】把前一个命令的执行结果当做后一个命令的输入