1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
ls -d : 当遇到目录时列出目录本身而非目录内的文件
[[:alpha:]] : 匹配任意单个字母
[^] : 匹配指定集合外的任意单个字符
- : 匹配任意长度的字符
[root@localhost tmp]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/3asd
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest2目录中
[root@localhost tmp]# mkdir /tmp/mytest2 #创建/tmp/mytest2
[root@localhost tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest2
[root@localhost tmp]# ls /tmp/mytest2/
pam.d passwd- pinforc plymouth pnm2ppa.conf postfix prelink.conf.d profile protocols purple
passwd pbm2ppa.conf pki pm popt.d ppp printcap profile.d pulse python
&& 表示前一条命令执行成功时,才执行后一条命令
[root@localhost tmp]# mkdir /tmp/mytest2 && cp -r /etc/p*[^[:digit:]] /tmp/mytest2
[root@localhost tmp]# ls /tmp/mytest2/
pam.d passwd- pinforc plymouth pnm2ppa.conf postfix prelink.conf.d profile protocols purple
passwd pbm2ppa.conf pki pm popt.d ppp printcap profile.d pulse python
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
tee :接收标准输入,并重定向到多个目标 ;tee -a :在文件后面追加,默认为覆盖
[root@localhost tmp]# cat /etc/issue | tr "a-z" "A-Z" | tee /tmp/issue.out
\S
KERNEL \R ON AN \M
[root@localhost tmp]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
[root@localhost tmp]# tr "a-z" "A-Z" /tmp/issue.out
[root@localhost tmp]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
[root@localhost tmp]# (tr "a-z" "A-Z"< /etc/issue) > /tmp/issue.out
[root@localhost tmp]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
4、总结描述用户和组管理类命令的使用方法
cat命令:直接查看配置信息原文件。
[root@localhost tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
......(省略部分内容)......
getent命令: 查看配置文件的全部信息,也可直接查看指定用户或组信息。
[root@localhost tmp]# getent shadow #查看密码信息
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
[root@localhost tmp]# getent shadow root #查看指定用户的密码信息
root:$6$.bL84g9K.Qp3mYpi$drCVDSg25sRwVxrfaT8xDL7ebY7oeR/W3QeqA4PXdW0CP5f1sxAVJvtuOi0Bya2r28eeeQFgLd3IO4PFabNgH1::0:99999:7:::
id命令:查看用户的UID和GID以及附属组的GID
[root@localhost tmp]# id root
uid=0(root) gid=0(root) groups=0(root)
groups命令:查看用户属于哪些组中
[root@localhost tmp]# groups root
root : root
管理用户和用户组
useradd :创建用户 语法格式:useradd [options] login
选项 | 说明 |
---|---|
-u uid | 指定用户的UID |
-c | 用户注释信息 |
g | 指明用户所属主要组,可为组名,也可以是UID |
-d | 以指定路径为用户的家目录 |
-s | 修改用户的默认shell |
-G | 指定用户的附加组 |
groupadd : 创建组 语法格式: groupadd [options] GROUP
选项 | 说明 |
---|---|
-f | 当组已经存在时,返回成功,使用此项将忽略 -g 选项 |
-g | 指定创建的GID |
-h | 显示帮助 |
-K | 使用指定值,覆盖/etc/login.defs的默认值 |
-o | 允许使用已存在的GID创建新的组 |
-p | 使用加密的密码 |
-r | 创建系统组 |
usermod :修改用户的信息 语法格式: usermod [options] LOGIN
选项 | 说明 |
---|---|
-c | 修改用户的描述信息,即修改/etc/shadow文件中第五个字段GECOS |
-d | 修改用户家目录 |
-e | 设置账户有效期,即修改/etc/passwd文件中第八个字段 |
-f | 指定天数,,即修改/etc/shadow文件中第七个字段 |
-g | 修改为指定主组 |
-G | 修改附属组 |
-a | 配合 -G 增加附属组 |
-h | 查看帮助 |
-l | 修改用户名 |
-L | 锁定用户 |
-m | 配合 -d 移动家目录数据到新的家目录 |
-o | 允许使用重复的UID |
-p | 使用加密的密码 |
-s | 修改使用新的shell类型 |
-u | 修改UID |
-U | 解锁用户 |
groupmod :修改组信息 命令格式:groupmod [options] GROUP
选项 | 说明 |
---|---|
-g | 修改组的GID |
-h | 查看帮助 |
-n | 修改组名 |
-o | 允许组的GID不唯一 |
-p | 设置组的加密密码 |
groupmems :管理指定组成员 命令格式: groupmems [options] [action]
选项 | 说明 |
---|---|
-g | 指定要操作修改的那个组 |
-a | 指定添加一个组的成员 |
-d | 指定删除一个组的成员 |
-l | 列出所有的组成员 |
-p | 清空所有的用户 |
-h | 查看帮助 |
userdel :删除用户
userdel -r :将对应用户的家目录及邮箱文件一起删除
groupdel :删除组
如果要删除的组是某个用户的主要组,则这个组不能删除
练习
(1)、创建组distro,其GID为2019;
[root@localhost tmp]# groupadd -g 2019 distro
[root@localhost tmp]# getent group distro
distro:x:2019:
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@localhost tmp]# useradd mandriva -u 1005 -g 2019
[root@localhost tmp]# id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@localhost tmp]# useradd mageia -u 1100 -d /home/linux
[root@localhost tmp]# finger mageia
Login: mageia Name:
Directory: /home/linux Shell: /bin/bash
Never logged in.
No mail.
No Plan.
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@localhost tmp]# echo 'mageedu' | passwd -x 7 --stdin mageia
[root@localhost tmp]# getent shadow mageia
mageia:!!:18241:0:7:7:::
(5)、删除mandriva,但保留其家目录;
[root@localhost tmp]# userdel mandriva
[root@localhost tmp]# ll /home/
total 4
drwx------. 3 mageia mageia 78 Dec 11 21:50 linux
drwx------. 3 1005 distro 78 Dec 11 21:45 mandriva
drwx------. 3 test1 test1 78 Dec 11 19:45 test1
drwx------. 16 wufujie wufujie 4096 Dec 9 18:04 test2
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@localhost tmp]# useradd -g distro -u 2002 -G peguin slackware
useradd: group 'peguin' does not exist
[root@localhost tmp]# groupadd peguin
[root@localhost tmp]# useradd -g distro -u 2002 -G peguin slackware
[root@localhost tmp]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
(7)、修改slackware的默认shell为/bin/tcsh;
[root@localhost tmp]# usermod -s /bin/tcsh slackware
[root@localhost tmp]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
[root@localhost tmp]# chsh -s /bin/tcsh slackware #chsh -s:给指定用户修改shell类型
Changing shell for slackware.
Shell changed.
(8)、为用户slackware新增附加组admins;
[root@localhost tmp]# usermod -a -G admins slackware
usermod: group 'admins' does not exist
[root@localhost tmp]# groupadd admins
[root@localhost tmp]# usermod -a -G admins slackware
[root@localhost tmp]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)