Table of Contents

  1. globbing:文件名通配
    1. 匹配模式:元字符
  2. IO 重定向
    1. 程序的三种数据流:
    2. 重定向
      1. 输出重定向:
      2. 追加输出重定向:
      3. 输入重定向:
      4. Here Document:
      5. tr
      6. xargs
      7. 管道:
  3. 通配与重定向示例
  4. 用户与用户组管理示例

globbing:文件名通配

匹配模式:元字符

  • *:匹配任意长度的任意字符
  • ?:匹配任意单个字符
  • 有几种特殊的格式:
    详情见 man 7 glob
    • [a-z] , [A-Z] , [0-9] , [a-z0-9]
    • [:upper:] 所有大写字母
    • [:lower:] 所有小写字母
    • [:alpha:] 所有字母
    • [:digit:] 所有数字
    • [:alnum:] 所有的字母和数字
    • [:space:] 所有空白字符
    • [:punct:] 所有标点
    • [:print:] 所有可打印字符
  • [^]:匹配范围外的字符

IO 重定向

程序的三种数据流:

  • 输入的数据流: stdin
  • 输出的数据流: stdout
  • 错误输出流: stderr

fd:file descriptor 文件描述符:

  • stdin:0
  • stdout:1
  • stderr:2

重定向

输出重定向:

>
特性:覆盖输出

  • set -C :可禁止覆盖至已存在文件
    可使用强制覆盖输出: >|
    set +C :可关闭
  • 错误输出重定向 2>
  • 合并所有输出流 $> 2>&1
  • 输出到拉圾箱
    可定向到 /dev/null

追加输出重定向:

>>
特性:追加输出

输入重定向:

<

Here Document:

<<
cat << EOF
cat > /PATH/TO/FILE << EOF

tr

  1. 形式

    tr [OPTION]... SET1 [SET2]
    把 SET1 中出现的字符转化为 SET2 中对应位置的字符。

  2. OPTION

    • -d:删除字符

xargs

COMMAND1 |xargs COMMAND2
用于将前一个命令的输出作为下一个命令的参数

管道:

COMAND1|COMAND2|COMAND3
将前一个命令的输出作为后一个命令的输入。

  1. tee

    COMMAND2 | tee /PATH/TO/FILE | COMMAND2
    将数据分出来

通配与重定向示例

  1. 显示/etc下以非字母开头,后跟一个字母以及其它任意长度字符的文件与目录

    ls -d /etc/[^[:alpha:]]*
  2. 复制/etc下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

    cp /etc/p*[[:digit:]] /tmp/mytest1
  3. 将/etc/issue文件中的内容转换为大写并存至/tmp/issue.out中

    cat /etc/issue | tr [a-z] [A-Z] > /tmp/issue.out

用户与用户组管理示例

  1. 创建组distro ,且gid为2019

    groupadd -g 2019 distro
  2. 创建用户mandriva,uid为1005,基本组为distro

    useradd -u 1005 -g distro mandriva
  3. 创建用户mageia,uid为1100,家目录为/home/linux

    useradd -u 1100 -b /home/linux mageia
  4. 给用户mageia添加密码mageedu,设置用户密码7天后过期

    echo "mageedu" | passwd -e 7 --stdin mageia
  5. 删除mandriva,保留家目录

    userdel mandriva
  6. 创建用户slackware,uid为2002,基本组为distro,附加组为peguin

    useradd -u 2002 -g distro -G peguin slackware
  7. 修改slackware的默认shell为/bin/tcsh

    usermod -s /bin/tcsh slackware
  8. 为用户slackware新增附加组admins

    usermod -aG amdins slackware
12-30 08:25