重定向与用户与组管理示例
Table of Contents
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
-
形式
tr [OPTION]... SET1 [SET2]
把 SET1 中出现的字符转化为 SET2 中对应位置的字符。 -
OPTION
- -d:删除字符
xargs
COMMAND1 |xargs COMMAND2
用于将前一个命令的输出作为下一个命令的参数
管道:
COMAND1|COMAND2|COMAND3
将前一个命令的输出作为后一个命令的输入。
-
tee
COMMAND2 | tee /PATH/TO/FILE | COMMAND2
将数据分出来
通配与重定向示例
-
显示/etc下以非字母开头,后跟一个字母以及其它任意长度字符的文件与目录
ls -d /etc/[^[:alpha:]]* -
复制/etc下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
cp /etc/p*[[:digit:]] /tmp/mytest1 -
将/etc/issue文件中的内容转换为大写并存至/tmp/issue.out中
cat /etc/issue | tr [a-z] [A-Z] > /tmp/issue.out
用户与用户组管理示例
-
创建组distro ,且gid为2019
groupadd -g 2019 distro -
创建用户mandriva,uid为1005,基本组为distro
useradd -u 1005 -g distro mandriva -
创建用户mageia,uid为1100,家目录为/home/linux
useradd -u 1100 -b /home/linux mageia -
给用户mageia添加密码mageedu,设置用户密码7天后过期
echo "mageedu" | passwd -e 7 --stdin mageia -
删除mandriva,保留家目录
userdel mandriva -
创建用户slackware,uid为2002,基本组为distro,附加组为peguin
useradd -u 2002 -g distro -G peguin slackware -
修改slackware的默认shell为/bin/tcsh
usermod -s /bin/tcsh slackware -
为用户slackware新增附加组admins
usermod -aG amdins slackware

浙公网安备 33010602011771号