命令别名
alias COMALIAS=‘COMMAND [options] [arguments]‘
在shell中定义的别名仅在当前shell生命周期中有效:别名的有效范围仅为当前shell进程:
ualias COMALIAS 删除别名
alias cp = ‘cp -i‘
命令替换 $(COMMAND) 反引号 `COMMAND`
把命令中某个子命令替换为其执行结果的过程
echo "the current directory is /etc"
echo "the current directory is $(pwd)"
file-2013-12-12-12-13.txt
date +%F-%H-$M-%S
touch ./file-$(date +%F-%H-$M-%S).txt
bash支持的引号
``: 命令替换
“”,双引号,弱引用 可以实现变量替换
‘’,单引号 强引用 不可以实现变量替换
文件名统配 globbing
* 任意长度的任意字符 没有长度 也可以
?匹配任意单个字符
[] 指定任意指定范围内的任意单个字符
[abc] [a-z] [a-zA-Z0-9]
[^]:匹配指定范围外的任意单个字符
[^0-9]非数字
[:space:]空白字符
[[:space:]]空白字符集
[:punct:]标点符号
[:lower:]小写字母
[:upper:]大写字母
[:alpha:] 大小写字母
[:digit:] 数字
[:alnum:] 数字和大小写字母
也支持取反 [^[:space:]]
可以查看 man 7 glob
touch a123 abc abc123 xyz x12 xyz123
以一个字母a 开头
ls a* =>a123 abc abc123
字母a开头 3结尾的字符
ls a*3
字母开头 后面任意数字的文件
[a-zA-Z]*[0-9]
?y* ==>xyz xyz123
[[:alpha:]]*[[:space:]]*[[:alpha:]]
字母开头 字母结尾 中间有空白字符
*[0-9]* *[[:digit:]]*
数字结尾 不包含空白的字符 *[^[:space:]]*[0-9] 有问题的。。。正则可以处理
非字母 非数字: *[^[:alnum:]]*