1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@node1 etc]# ll total 0 -rw-r--r--. 1 root root 0 Jun 28 00:23 11test -rw-r--r--. 1 root root 0 Jun 28 00:23 1 1test -rw-r--r--. 1 root root 0 Jun 28 00:23 1test -rw-r--r--. 1 root root 0 Jun 28 00:23 abcd drwxr-xr-x. 2 root root 6 Jun 28 00:23 asd -rw-r--r--. 1 root root 0 Jun 28 00:23 ((asd [root@node1 etc]# ll [^a-zA-Z][a-zA-Z]* -rw-r--r--. 1 root root 0 Jun 28 00:23 1test [root@node1 etc]# ll [^[:alpha:]][[:alpha:]]* -rw-r--r--. 1 root root 0 Jun 28 00:23 1test
globbing:文件名通配(整体文件名匹配,而非部分)
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
有几种特殊格式:
[a-z]:所有小写字母
[A-Z]:所有大写字母
[0-9]:所有数字
[a-z0-9]:所有的字母和数字
[[:upper:]]:所有大写字母
[[:alpha:]]:所有字母
[[:lower:]]:所有小写字母
[[:digit:]]:所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
复制文件夹,cp命令需要加-r参数。
[root@node1 ~]# cp /etc/p*[^0-9] /tmp/mytest1/ -r [root@node1 ~]# ll /tmp/mytest1/ total 28 drwxr-xr-x. 2 root root 4096 Jun 28 00:31 pam.d -rw-r--r--. 1 root root 896 Jun 28 00:31 passwd -rw-r--r--. 1 root root 843 Jun 28 00:31 passwd- drwxr-xr-x. 10 root root 116 Jun 28 00:31 pki drwxr-xr-x. 2 root root 28 Jun 28 00:31 plymouth drwxr-xr-x. 5 root root 52 Jun 28 00:31 pm drwxr-xr-x. 2 root root 6 Jun 28 00:31 popt.d drwxr-xr-x. 2 root root 154 Jun 28 00:31 postfix drwxr-xr-x. 3 root root 123 Jun 28 00:31 ppp drwxr-xr-x. 2 root root 111 Jun 28 00:31 prelink.conf.d -rw-r--r--. 1 root root 233 Jun 28 00:31 printcap -rw-r--r--. 1 root root 1819 Jun 28 00:31 profile drwxr-xr-x. 2 root root 251 Jun 28 00:31 profile.d -rw-r--r--. 1 root root 6545 Jun 28 00:31 protocols drwxr-xr-x. 2 root root 35 Jun 28 00:31 python
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@node1 ~]# tr [a-z] [A-Z] < /etc/issue >> /tmp/issue.out [root@node1 ~]# cat /tmp/issue.out \S KERNEL \R ON AN \M
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
用户管理类命令:
创建用户:
useradd [选项] 登录名
- -u, --uid UID:指定UID;
- -g, --gid GROUP:指定基本组ID,此组得事先存在;
- -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;
- -c, --comment COMMENT:指明注释信息;
- -d, --home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
- -s, --shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
- -r, --system:创建系统用户;
管理员:0
系统用户组:1-499(CentOS6), 1-999(CentOS7)
登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)
修改用户属性:
usermod [选项] 登录名
- -u, --uid UID:修改用户的ID为此处指定的新UID;
- -g, --gid GROUP:修改用户所属的基本组;
- -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;
- -a, --append:与-G一同使用,用于为用户追加新的附加组;
- -c, --comment COMMENT:修改注释信息;
- -d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
- -m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
- -l, --login NEW_LOGIN:修改用户名;
- -s, --shell SHELL:修改用户的默认shell;
- -L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
- -U, --unlock:解锁用户的密码;
删除用户:
userdel [选项] 登录名
- -r:删除用户时一并删除其家目录;
用户组管理类命令:
创建用户组:
groupadd [选项] group_name
- -g GID:指定GID;默认是上一个组的GID+1;
- -r: 创建系统组;
管理员组:0
系统用户组:1-499(CentOS6), 1-999(CentOS7)
登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)
修改用户组:
groupmod [选项] group_name
- -g GID:修改GID;
- -n new_name:修改组名;
删除用户组:
- groupdel [选项] GROUP
(1)、创建组distro,其GID为2019;
groupadd -g 2019 distro
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
useradd -u 1005 -g distro mandriva
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux mageia
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
添加密码:
方法一: passwd mageia
方法二(该方法会在终端显示密码): echo "mageedu" | passwd --stdin mageia
设置用户密码7天后过期:
方法一: passwd -x 7 mageia
方法二: chage -M 7 mageia
(5)、删除mandriva,但保留其家目录;
userdel mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
groupadd peguin useradd -u 2002 -g distro -G peguin slackware id slackware # uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
(7)、修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware cat /etc/passwd| grep slackware # slackware:x:2002:2019::/home/slackware:/bin/tcsh
(8)、为用户slackware新增附加组admins;
usermod -a -G admins slackware id slackware # uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)