Bash基础特性
1、命令别名 alias
临时生效:alias COMMAND = 'PATH/TO/'
永久生效:
对当前用户生效:~/.bashrc
对所有用户生效:/etc/bashrc
使命令立即生效:
source /path/to/config-file
. /path/to/config-file
撤消别名:unalias
如果别名使用的是原命令名称,可以使用"\COMMAND"执行原命令。
2、Glob(Globbing) bash中用于实现文件名“通配”
通配符:
* 任意长度的任意字符
? 任意单个字符
[] 匹配指定范围内的任意单个字符
[a-z] 不区分字符大小写
[^] 匹配指定范围之外的字符
[:digit:] 任意数字,0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 大小写字母
[:alnum:] 任意数字或字母
[:space:] 空格
[:punct:] 标点符号
3、Bash快捷键
Ctrl + l 清屏
Ctrl + a 跳转至命令开始处
Ctrl + e 跳转至命令结尾处
Ctrl + c 取消
Ctrl + u 删除命令行首至光标所在处的内容
Ctrl + k 删除光标所在处至命令行尾部
4、Bash的I/O重定向及管道
程序:指令+数据
打开的每个文件都有一个fd(file descriptor,文件描述符)
标准输入:keyborad(默认键盘输入),fd = 0
标准输出:monitor,fd = 1
标准错误:monitor,fd = 2
I/O重定向:改变标准位置
输出重定向:
> 覆盖重定向
>> 追加重定向
>| 强制覆盖
set -C 禁止将内容覆盖输出至已有文件中
set +C 打开
2> 覆盖重定向错误输出数据流
2>> 追加重定向错误输出数据流
标准输出和错误输出各自定向至不同位置:
COMMAND > /PATH/TO/FILE.LOG 2> /PATH/TO/ERROR.LOG
合并标准输入输出为同一数据流进行重定向
&> 覆盖重定向
&>> 追加重定向
COMMAND > /PATH/TO/FILE.LOG 2> &1
COMMAND >> /PATH/TO/FILE.LOG 2> &1
输入重定向: <
tr命令:转换或删除字符
tr abc ABC < /etc/fstab //把/etc/fstab文件中的所有abc转换成ABC
tr -d 删除某字符
Here Documentation: <<
管道:
command1 | command2 | command3 | ...
tee命令:从标准输入读数据并输出到文件
文本处理工具:
wc
-l 行数 lines
-w 单词 words
-c 字节数 characters
cut
-f 第某个字段,如1-3 / 1-5,7 / 1,2,8
-d 指明分隔符
--output-delimiter 以什么为分隔符
sort
-r 降序
-f 忽略大小写
-k 以指定字段排序
-t 指定分隔符
-n 以数值大小排序
-u 排序后去重
uniq 连续且完全相同即为重复
-c 显示重复次数
-d 显示重复过的行
-u 显示未重复过的行
取出/etc/passwd第6到10行,以冒号分隔,将此信息按第三个字段的数值大小进行排序,最后仅显示各自第一个字段。
1、取出/etc/passwd第6到10行
awk -F: 'NR>5&&NR<11{print}' /etc/passwd
2、将以上信息按第三个字段的数值大小进行排
sort -t: -k3 -n -r
3、仅显示各自第一个字段
cut -d: -f1