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