需要用到 ls
命令结合通配符完成,通配符列表如下:
#文件通配符
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~user 用户user家目录
~+ 当前工作目录
~- 前一个工作目录,cd命令用-
[0-9] 匹配数字范围,[135]
[a-z]:字母,[a-c]包括a,A,b,B,c
[A-Z]:字母,[A-C]包括A,b,B,c,C
[user] 匹配列表中的任何的一个字符
[^user] 匹配列表中的所有字符以外的字符
#预定义的字符类:man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
命令用法:
# 因 /etc 目录下没有满足条件的文件,此处用 touch 先生成两个文件 1a123.txt 123.txt
[yinxd@centos7 ~]$ sudo touch /etc/1a123.txt /etc/123.txt
# 用 ls 命令结合通配符查询
[yinxd@centos7 ~]$ ll /etc/[^[:alpha:]][[:alpha:]]*
-rw-r--r--. 1 root root 0 Apr 28 11:40 /etc/1a123.txt
# 说明1:用到的通配符
[^[:alpha:]] 匹配一位非任意大小写字母的字符
[[:alpha:]] 匹配一位任意大小写字母
* 匹配零个或多个字符
# 说明2:如果此目录下没有相应的文件,会提示没有相应的文件
[yinxd@centos7 ~]$ sudo rm -f /etc/1*
[yinxd@centos7 ~]$ ll /etc/[^[:alpha:]][[:alpha:]]*
ls: cannot access /etc/[^[:alpha:]][[:alpha:]]*: No such file or directory
需要用到 cp
命令结合通配符完成,可先用 ls
命令过滤出结果
# -d1 为显示给定目录下一级的文件或目录
[yinxd@centos7 ~]$ ll /etc/p*[^0-9] -d1
drwxr-xr-x. 2 root root 4096 Apr 21 09:53 /etc/pam.d
-rw-r--r--. 1 root root 68 Jun 10 2014 /etc/papersize
-rw-r--r--. 1 root root 2307 Apr 21 09:53 /etc/passwd
-rw-r--r--. 1 root root 2307 Apr 21 09:53 /etc/passwd-
-rw-r--r--. 1 root root 1362 Jun 10 2014 /etc/pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Jun 10 2014 /etc/pinforc
drwxr-xr-x. 12 root root 151 Apr 21 09:41 /etc/pki
drwxr-xr-x. 2 root root 28 Apr 21 09:40 /etc/plymouth
drwxr-xr-x. 5 root root 52 Apr 21 09:36 /etc/pm
-rw-r--r--. 1 root root 6300 Jun 10 2014 /etc/pnm2ppa.conf
drwxr-xr-x. 2 root root 6 Jun 10 2014 /etc/popt.d
drwxr-xr-x. 2 root root 154 Apr 21 09:41 /etc/postfix
drwxr-xr-x. 3 root root 219 Apr 21 09:38 /etc/ppp
drwxr-xr-x. 2 root root 105 Apr 21 09:38 /etc/prelink.conf.d
-rw-r--r--. 1 root root 233 Jun 7 2013 /etc/printcap
-rw-r--r--. 1 root root 1819 Oct 31 2018 /etc/profile
drwxr-xr-x. 2 root root 4096 Apr 21 09:41 /etc/profile.d
-rw-r--r--. 1 root root 6545 Oct 31 2018 /etc/protocols
drwxr-xr-x. 2 root root 79 Apr 21 09:39 /etc/pulse
drwxr-xr-x. 2 root root 23 Apr 21 09:40 /etc/purple
drwxr-xr-x. 2 root root 35 Apr 21 09:37 /etc/python
ls
命令确认无误后,用 cp 命令复制
# 创建目录 /tmp/mytest1
[yinxd@centos7 ~]$ mkdir /tmp/mytest1
# 复制,-r 为递归复制
[yinxd@centos7 ~]$ sudo cp -r /etc/p*[^0-9] /tmp/mytest1
# 查看 /tmp/mytest1 下的文件,确认成功
[yinxd@centos7 ~]$ ll /tmp/mytest1
total 52
drwxr-xr-x. 2 root root 4096 Apr 28 12:00 pam.d
-rw-r--r--. 1 root root 68 Apr 28 12:00 papersize
-rw-r--r--. 1 root root 2307 Apr 28 12:00 passwd
-rw-r--r--. 1 root root 2307 Apr 28 12:00 passwd-
-rw-r--r--. 1 root root 1362 Apr 28 12:00 pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Apr 28 12:00 pinforc
drwxr-xr-x. 12 root root 151 Apr 28 12:00 pki
drwxr-xr-x. 2 root root 28 Apr 28 12:00 plymouth
drwxr-xr-x. 5 root root 52 Apr 28 12:00 pm
-rw-r--r--. 1 root root 6300 Apr 28 12:00 pnm2ppa.conf
drwxr-xr-x. 2 root root 6 Apr 28 12:00 popt.d
drwxr-xr-x. 2 root root 154 Apr 28 12:00 postfix
drwxr-xr-x. 3 root root 219 Apr 28 12:00 ppp
drwxr-xr-x. 2 root root 105 Apr 28 12:00 prelink.conf.d
-rw-r--r--. 1 root root 233 Apr 28 12:00 printcap
-rw-r--r--. 1 root root 1819 Apr 28 12:00 profile
drwxr-xr-x. 2 root root 4096 Apr 28 12:00 profile.d
-rw-r--r--. 1 root root 6545 Apr 28 12:00 protocols
drwxr-xr-x. 2 root root 79 Apr 28 12:00 pulse
drwxr-xr-x. 2 root root 23 Apr 28 12:00 purple
drwxr-xr-x. 2 root root 35 Apr 28 12:00 python
需要用到 cat
命令结合 管道
、tr
和、重定向
命令完成。
# 先查看 /etc/issue 文件内容
[yinxd@centos7 ~]$ cat /etc/issue
\S
Kernel \r on an \m
# 替换并保存到 /tmp/issue.out
[yinxd@centos7 ~]$ cat /etc/issue | tr '[:lower:]' '[:upper:]' > /tmp/issue.out
# 查看 /tmp/issue.out 的内容,确认转换成功
[yinxd@centos7 ~]$ cat /tmp/issue.out
\S
KERNEL \R ON AN \M
# 用 groupadd 命令创建组,需要 root 权限,加上 sudo(下同),-g 指定组 ID
[yinxd@centos7 ~]$ sudo groupadd -g 2019 distro
# 查看创建的组信息
[yinxd@centos7 ~]$ getent group distro
distro:x:2019:
# 用 useradd 命令创建用户,-u 指定用户 ID,-g 指定组 ID
[yinxd@centos7 ~]$ sudo useradd -u 1005 -g 2019 mandriva
# 查看创建的用户信息
[yinxd@centos7 ~]$ id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)
# 用 useradd 命令创建用户,-u 指定用户 ID ,-d 指定家目录
[yinxd@centos7 ~]$ sudo useradd -u 1100 -d /home/linux soniya
# 查看创建的用户信息
[yinxd@centos7 ~]$ getent passwd soniya
soniya:x:1100:1100::/home/linux:/bin/bash
[yinxd@centos7 ~]$ id soniya
uid=1100(soniya) gid=1100(soniya) groups=1100(soniya)
# 用 passwd 命令修改密码,-x 指定密码最长有效期 ,--stdin 为标准输入
[yinxd@centos7 ~]$ echo Passwd2020 | sudo passwd -x 7 --stdin soniya
Adjusting aging data for user soniya.
passwd: Success
# 查看密码信息
[yinxd@centos7 ~]$ sudo getent shadow soniya
soniya:$6$5xvDNzIA$7309CarcR9eP2gNK6KOwDd4iBd/ycsl2enzchIWvgpEg2nDXsWZxLtiiIKPGT8t.xqEERem2AXBP7Mdi6r7Fw/:18380:0:7:7:::
# 用 userdel 命令删除用户,默认不删除用户的文件
[yinxd@centos7 ~]$ sudo userdel soniya
# 查看家目录信息(家目录为 /home/linux ,未删除)
[yinxd@centos7 ~]$ ls /home
linux mandriva yinxd
# 创建组 peguin
[yinxd@centos7 ~]$ sudo groupadd peguin
# 创建用户,-u 指定基本组,-G 指定附加组
[yinxd@centos7 ~]$ sudo useradd -u 2002 -g distro -G peguin slackware
# 查看用户信息
[yinxd@centos7 ~]$ id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
# 用 usermod 命令修改用户信息,-s 指定 shell
[yinxd@centos7 ~]$ sudo usermod -s /bin/tcsh slackware
# 查看用户信息
[yinxd@centos7 ~]$ getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
# 新建组 admins
[yinxd@centos7 ~]$ sudo groupadd admins
# 用 usermod 命令修改用户信息,-G 指定 附加组
[yinxd@centos7 ~]$ sudo usermod -G admins slackware
# 查看用户信息
[yinxd@centos7 ~]$ id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2021(admins)