Linux用户组管理及用户权限1

bash的基础特性:
    globbing:文件名通配(整体文件名匹配,而非部分)
        匹配模式:元字符
            *:匹配任意长度的任意字符
                例:pa* 以pa开头的都符合
                    *pa* 包含pa的都符合
                    *pa    以pa结尾的都符合
                    *p*a* 里边有p,有a不在一起的都符合

            ?:匹配任意单个字符
                pa?
                    pa 不符合
                    paa 符合
                    passwd 不符合
                ??pa
                p?a
                p?a?

            []:匹配指定范围内的任意单个字符
                有几种特殊格式:
                    [a-z],[A-Z] 注意:在这儿不区分大小写的
                    [0-9] 表示任意单个数字
                    [a-z0-9] 表示数字,或英文字母都可以
                    [abcxyz] 在前边字母中任意一个字母

                    [[:upper:]]    表示所有大写字母
                    [[:lower:]] 表示所有小写字母
                    [[:alpha:]] 表示所有字母
                    [[:digit:]] 表示所有数字
                    [[:alnum:]]    表示所有的字母和数字
                    [[:space:]] 表示所有空白字符
                    [[:punct:]] 表示所有标点符号

                        例:表示pa后边有两位数字 pa[0-9][0-9]
                            表示200-299 2[0-9][0-9]

            [^]:匹配指定范围外的任意单个字符
                [^[:upper:]] 非大写字符之外的单个字符
                [^0-9] 非数字之外的单个字符
                [^[:alnum:]] 非所有字母和数字外的单个字符

IO重定向及管道
    程序:指令+数据
        程序:必须要有IO,每个程序必定有输入输出的地方

        可用于输入的设备:文件
            例如:键盘设备、文件系统上的常规文件、网卡等
        可用于输出的设备:文件
            显示器、文件系统上的常规文件、网卡等

        程序的数据流有三种:
            输入的数据流:<--标准输入(stdin),键盘
            输出的数据流:-->标准输出(stdout),显示器
            错误输出流:  -->错误输出(stderr),显示器

        生成的文件有与之对应的fd:file descriptor,文件描述符
            标准输入:0
            标准输出:1
            错误输出:2

    IO重定向:
        输出重写向:>
            特性:覆盖输出
        输出重定向:>>
            特性:追加输出

        # set -C
            禁止覆盖输出重写向已存在的文件
            此时可使用强制覆盖输出:>|
        # set +C
            关闭"set -C"的功能
          # cat /etc/issue > /tmp/issue.out
        可以看到上边不让覆盖已存在的文件
          # cat /etc/issue >| /tmp/issue.out
        如果想要强行覆盖已存在的文件,可以用“>|”

        错误输出流重定向:2>,2>>
        合并正常输出流和错误输出流:
            第一种:&>
                    &>>
            第二种:COMMAND > /PATH/to/somefile 2>&1
                    COMMAND >> /PATH/to/somefile 2>&1

            特殊设备: /dev/null
                放到这个文件里边的数据都会被丢弃,如果我们不需要数据流的时候可以放到这个里边
                比如有时候我们只需要命令的状态结果,而非数据时就可以用到这个特殊设备


        输入重定向:<
            tr命令:
                tr 命令用于转换或删除文件中的字符。
                tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
                tr [OPTION]... SET1 [SET2]
                    把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符

                参数说明:
                     -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
                    -d, --delete:删除指令字符
                    -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
                     -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等

                用法1:
                    tr SET1 SET2 < /PATH/form/somefile
                用法2:
                    tr -d SET1 < /PATH/form/somefile
                注意:不修改原文件

            Here Document:<<        
                cat << EOF
                cat > /PATH/to/somefile << EOF

    管道:|
        连接程序,实现将前一个命令的输出直接定向后一个程序当作输入
        COMMAND1 | COMMAND2 | COMMAND3 ……

        tee命令:
            把前一个命令的结果既保存一份到文件中,又把结果输出到显示器中
            COMMAND | tee /PATH/to/somefile

    练习1:把/etc/passwd文件的前6行的小写输出为大写
        # head -6 /etc/passwd | tr 'a-z' 'A-Z'

原文地址:https://www.cnblogs.com/jianchen013/p/11752611.html