ls、cp 命令结合通配符用法,用户和组管理命令用法

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

需要用到 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

2、复制 /etc 目录下所有以 p 开头,以非数字结尾的文件或目录到 /tmp/mytest1 目录中

需要用到 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

3、将 /etc/issue 文件中的内容转换为大写后保存至 /tmp/issue.out 文件中

需要用到 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

4、用户和组相关的命令用法

  • 创建组 distro,其 GID 为 2019
# 用 groupadd 命令创建组,需要 root 权限,加上 sudo(下同),-g 指定组 ID
[yinxd@centos7 ~]$ sudo groupadd -g 2019 distro

# 查看创建的组信息
[yinxd@centos7 ~]$ getent group distro
distro:x:2019:
  • 创建用户 mandriva ,其 ID 号为 1005 ,基本组为 distro
# 用 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)
  • 创建用户 soniya ,其 ID 号为 1100 ,家目录为 /home/linux
# 用 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)
  • 给用户 soniya 添加密码,密码为 soniya2020 ,并设置用户密码 7 天后过期
# 用 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:::
  • 删除 soniya,但保留其家目录
# 用 userdel 命令删除用户,默认不删除用户的文件
[yinxd@centos7 ~]$ sudo userdel soniya

# 查看家目录信息(家目录为 /home/linux ,未删除)
[yinxd@centos7 ~]$ ls /home
linux  mandriva  yinxd
  • 创建用户 slackware ,其 ID 号为 2002,基本组为 distro ,附加组 peguin
# 创建组 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)
  • 修改 slackware 的默认 shel l 为 /bin/tcsh
# 用 usermod 命令修改用户信息,-s 指定 shell
[yinxd@centos7 ~]$ sudo usermod -s /bin/tcsh slackware

# 查看用户信息
[yinxd@centos7 ~]$ getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
  • 为用户 slackware 新增附加组 admins
# 新建组 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)

你可能感兴趣的:(Linux)