globbing:文件名通配
* :匹配任意长度的任意字符 pa,pa,pa,pa
? :匹配任意单个字符 pa?,??pa,p?a,p?a?
[ ]:匹配指定范围内的任意单个字符,有几种特殊格式: [a-z], [A-Z], [0-9], [a-z0-9]
| 字符 | 含义 |
|---|---|
| [[:upper:]] | 所有大写字母 |
| [[:lower:]] | 所有小写字母 |
| [[:alpha:]] | 所有字母 |
| [[:digit:]] | 所有数字 |
| [[:alnum:]] | 所有的字母和数字 |
| [[:space:]] | 所有空白字符 |
| [[:punct:]] | 所有标点符号 |
| [^] | 匹配指定范围外的任意单个字符 |
| [^[:upper:]] | 非大写字母的字符 |
| [^0-9] | 非数字的所有字符 |
| [^[:alnum:]] | 非字母和数字的所有字符 |
示例:
1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录
ls -d /var/l?[[:lower:]]
2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
ls -d /etc/[0-9]]*[^[0-9]]
3、复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;
cp /usr/share/man/man[0-9] /tmp/man
4、复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下;
cp /etc/[mnrp]*.conf /tmp/
IO重定向
- 输出重定向:>
特性:覆盖输出(覆盖原有文件,慎用) - 输出重定向:>>
特性:追加输出(保留原有文件的内容)
set -C:禁止覆盖输出重定向至已存在的文件,此时可使用强制覆盖输出:>|
set +C:关闭上述特性
错误输出流重定向:2>
错误输出流重定向(追加):2>>
合并正常输出流和错误输出流:
- &>,&>>
- command > /path/to/somefile 2>&1
command >> /path/to/somefile 2&>1 - 特殊设备:/dev/null
输入重定向:<
从屏幕输入到文件
[root@node01 ~]# cat >> fstab << EOF
> ni hao ya
> EOF
[root@node01 ~]# cat fstab
HELLO
ni hao ya
tr命令:把输入数据当中的数据,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符
[root@node01 ~]# tr [a-z] [A-Z]
ni hao ya
NI HAO YA
[root@node01 ~]# tail -5 /etc/passwd | tr [a-z] [A-Z]
KEN2:X:1007:1007::/HOME/KEN2:/BIN/BASH
HADOOP:X:1008:1008::/HOME/HADOOP:/SBIN/NOLOGIN
KEN3:X:1009:1009::/HOME/KEN3:/BIN/BASH
KEN4:X:1010:1010::/HOME/KEN4:/BIN/BASH
APACHE:X:48:48:APACHE:/USR/SHARE/HTTPD:/SBIN/NOLOGIN
短路法则
- command1 && command2
command1 为"假",则 command2 不会执行
command1 为"真",则 command2 必须执行
示例:
[root@node01 ~]# id ken1 && ls -d /etc/p*
- command1 || command2
command1为"真",则 command2不会执行
command1为"假",则 command2必须执行