第三周练习题
- 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
- 2、取出最后登录到当前系统的用户的相关信息。
- 3、取出当前系统上被用户当作其默认shell的最多的那个shell。
- 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
- 5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
- 6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
- 7、显示/var目录下一级子目录或文件的总个数。
- 8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
- 9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
- 10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
who 命令显示关于当前在本地系统上的所有用户的信息。
cut -d ’ ‘-f1 -d用来定义分隔符,分隔符是’ ',-f表示需要取得哪个字段
sort的-u 选项它的作用很简单,就是在输出行中去除重复行。
2、取出最后登录到当前系统的用户的相关信息。
tail 命令可用于查看文件的内容 +1 显示第一行 -1显示最后一行
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
cat /etc/passwd | sort -t : -k 3 -n | tail -10 | tr 'a-z' 'A-Z' > /tmp/etc.conf
sort:
-t:设定间隔符
-k:用间隔符隔开后,要选择的字段。 -n 依照数值大小排序
tr ‘a-z’ ‘A-Z’:将全部的小写字母改为大写字母
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
awk ‘{print $2}’:只显示区域2. head -1:只显示第一排
cut 以:为分隔符截取第2个字符
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
ls /etc/*.conf | cut -d / -f3 | tr ‘a-z' 'A-Z' > /tmp/etc.conf
此处不能用grep '.conf’的原因是有些文件是.conf.D结尾的
7、显示/var目录下一级子目录或文件的总个数。
ls /var | wc -l
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
cat /etc/group |sort -t : -k 3n -n |head -10|cut -d ':' -f1
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
cat /etc/{fstab,issue} >/tmp/etc.test
10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
用户和组相关的管理命令:
(1)用户创建:useradd
useradd [OPTIONS] LOGIN
-u UID:[UID_MIN,UID_MAX],定义在/etc/login.defs 如果没有指定UID则依次使用最近一次的UID
-g GID:基本组,如果没有指定则使用与用户名相同的组名
-c " " :用户的注释信息
-d /path/to/dir :指定用户的家目录
-s SHELL:指定用户的默认shell,可用的shell列表在/etc/shells
-G GROUP1 GROUP2…:指定用户的附加组,可以有多个,用逗号隔开,组必须事先存在
-D:表示修改用户的默认选项;(修改的是/etc/default/useradd中的选项)
-s:修改用户的默认shell信息
(2)创建组:groupadd
groupadd [options] group
-g GID:指明GID
-r :创建系统组
(3)查看用户的相关ID信息:id
id [option]…[user]
-u:UID
-g:Gid
-G:Groups
-n:Name
(4)用户属性修改:usermod
usermod [options] LOGIN
-u UID:新UID
-g GID:新GID
-G GROUP1,GROUP2…:新附加组,原来的附加组将会被覆盖,若要保留原来的,则要同时使用**-a**选项,表示追加。
-s SHELL:新的默认SHELL
-c "注释信息":新的注释信息
-d HOME:新的家目录,原有的家目录中的文件不会同时移动到新目录,若要移动,则要同时使用-m选项
-l login_name:新的名字
-L:lock指定用户
-U:unlock指定用户
-e YYYY-MM-DD:指定用户账号的过期日期
-f INACTIVE:指定非活动期限
(5)给用户添加密码:passwd
管理员用户可以修改任何用户的密码,普通用户只能修改自己的密码;
passwd [options] UserName
-l:锁定指定用户
-u:解锁指定用户
-n mindays:指定最短使用期限
-x maxdays: 最大使用期限
-w warn days:提前多少天开始警告
-i inactive-days:非活动期限
–stdin :从标准输入接受用户密码:如: echo "passwd" | passwd –stdin USERNAME
(6)用户删除 :userdel
userdel [option] LOGIN
-r:删除用户家目录
(7)组属性修改:groupmod
groupmod [options] GROUP
-n group_name:新名字
-g GID:新的GID
(8)删除组:groupdel
group [options] group
(9)组密码:组密码的作用为用户切换基本组,gpasswd
gpasswd [options] group
-a user:将user添加至指定组中
-d user:将user从指定组中删除
-A userlist:设置有组管理权限的用户列表
(10)临时切换基本组:newgrp
如果用户本不属于此组,则需要组的密码:
(1)、创建组distro,其GID为2016;
groupadd -g 2016 distro
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
useradd -u 1005 -g distro mandriva
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux
(4)、给用户mageia添加密码,密码为mageedu;
echo "mageedu" | passwd –stdin mageia
(5)、删除mandriva,但保留其家目录;
userdel mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
useradd -u 2002 -g distro -G peguin slackware
(7)、修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware
(8)、为用户slackware新增附加组admins;
usermod -aG admins slackware