bash shell基础特性之二
(1) globbing
文本名通配:元字符
*:匹配任意长度的任意字符;
?:匹配任意单个字符;
示例:a*b: aab, ab, a123b;
a?b:
[]: 匹配指定范围内的任意单个字符;
示例:[0-9]
[^]:匹配范围外的任意单个字符;
示例:[^a-b]
字符集合:
[:lower:] 匹配小写字母. 等同于a-z
[:upper:] 匹配大写字母. 等同于A-Z
[:alnum:] 匹配字母和数字.等同于A-Za-z0-9
[:digit:] 匹配(十进制)数字. 等同于0-9
[:space:] 匹配空白字符 (空格符和水平制表符)
[:punct:] 匹配符号
[:alnum:] 匹配字母和数字.等同于A-Za-z0-9
示例:
显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
ls /etc/[^a-Z][a-Z]*
复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu.com目录中;
cp -r /etc/*.d /tmp/mageedu.com
(2) 快捷键、组合键
Ctrl+l:清屏
Ctrl+a: 切换至命令行首
Ctrl+e:切换至命令行尾
Ctrl+c:取消命令执行
Ctrl+u:删除光标所在处至行首的内容;
Ctrl+k: 删除光标所在处至行尾的内容;
(3) IO输入输出重定向及管道
程序:指令+数据
读入数据:Input
输出数据:Output
打开的文件都一个fd:file descriptor
标准输入:keyboard, 0, /dev/stdin
标准输出:monitor, 1, /dev/stdout
标准错误输出:monitor, 2, /dev/stderr
输出重定向:>, >> //格式:COMMAND > NEW_POS, COMMAND >> NEW_PO
>: 目标文件中原有内容会被清除;
>>: 新内容被追加至目标文件尾部;
# set -C : 禁止使用覆盖输出重定向
此时依然可以使用>|进行强制覆盖
# set +C
错误输出重定向:2>, 2>>
2>:覆盖
2>>:追加
同时重定向标准输出流和错误输出流:
示例:
COMMAND > /path/to/file.out 2> /path/to/file.err
合并标准输出和错误输出的数据流至同一处:&>, &>>
&>
&>>
示例:
COMMAND > /path/to/file.out 2>&1
COMMAND &> /path/to/file.out
输入重定向:
<
tr命令:转换或删除字符
语法格式:tr [OPTION]... SET1 [SET2]
常用参数:
-d: 删除字符
Here Document:<<
# cat << EOF
# cat > 文件名 << EOF
(4)管道:连接命令,实现将前一个命令的输出当作后一个命令的输入
COMMAND1 | COMMAND2 | ...
示例:
将登录至当前系统上的所有用户的前两个的信息转换为大写输出;
# who | head -2 | tr ‘a-z‘ ‘A-Z
本文出自 “一万小时定律” 博客,请务必保留此出处http://daisywei.blog.51cto.com/7837970/1687817
原文地址:http://daisywei.blog.51cto.com/7837970/1687817