一、列出当前系统上所有已经登录的用户的用户名(同用户登录多次只显示一次)。
题目并没有说明取出的用户名是否允许排序处理,所以可写成:
# who | cut -d‘ ‘ -f1 | sort -u
二、取出当前系统上被用户当作其默认shell的最多的那个shell
统计/etc/passwd文件中默认shell出现最多的shell的次数再取出
# cat /etc/passwd | cut -d: -f7 | uniq -c |sort -nr | head -n 1
三、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改写为大写后保存至/tmp/maxusers.txt文件中
# cat/etc/passwd | sort -nr -t: -k3 | head -n 10 | tr ‘a-z‘ ‘A-Z‘
> /tmp/maxusers.txt
四、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分
先取出IP地址的所在行再进行切分
#ifconfig | grep ‘inet[[:space:]].*‘ | cut -d‘ ‘ -f10 | head -n 1
五、显示/var目录下一级子目录或文件的总个数
# tree -L 1 /var |tail -n 1
六、取出/etc/group文件中第三个字段数值最小的10个组的名字
# cat /etc/group | sort -n -t: -k3 | head -n 10 | cut-d‘:‘ -f1
七、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中
# cat /etc/issue >> /tmp/etc.test | cat/etc/fstab >> /tmp/etc.test
八、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)创建组distro,其GID为2016
创建组命令:groupadd
其用法:groupadd [options]... groupname
参数:-g GID,表示指明创建组的组号;
# groupadd -g 2016 distro
(2)创建用户mandriva,其ID号为1005;基本组为distro
创建用户命令:useradd
其用法:useradd [options]... username
参数:-u UID,表示指明创建用户的ID号;
-g GID,表示指明创建用户的基本组,可为组号或组名;
# useradd -g distro -u 1005 mandriva
(3)创建用户mageia,其ID号为1100,家目录为/home/linux;
同使用命令:useradd
参数:-d /path_to_homedir,指定特定路径为用户的家目录;
# useradd -u 1100 -d /home/linux mageia
(4)给用户mageia添加密码,密码为mageedu;
添加或修改用户密码命令:passwd
其用法:passwd [options] username
参数:--stdin:从标准输入接收用户密码;
一般通过passwd命令直接跟用户名(mageia),然后手动输入两次密码以启用该用
户的密码登录认证;但是这里也可以从标准输入一次性给用户设定好密码:
# echo "mageedu" | passwd--stdin mageia
(5)删除mandriva,但保留其家目录;
删除用户命令:userdel
其用法:userdel [option]... username
参数:-r:删除用户家目录,不添加该参数默认不删除;
# userdel mandriva
(6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
同使用命令:useradd
参数:-u UID:指定用户ID;
-g GID:指定用户基本组;
-G GROUP1[,GROUP2,...]:指定用户附加组;
# useradd -u 2002 -g distro -G peguinslackware
(7)修改slackware的默认shell为/bin/tcsh;
修改用户属性命令:usermod
用法:usermod [option] username
参数:-s SHELL,修改用户的默认shell;
# usermod -s /bin/tcsh slackware
(8)为用户slackware新增附加组admins;
同使用命令:usermod
参数:-G GROUP1[,GROUP2,...]:给用户指定新附加组,配合"-a"参数表示
给用户添加新附加组,原有附加组不会被覆盖;
# usermod -a -G admins slackware
(9)为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警
告为3天;
设置用户密码属性使用命令:chage
用法:chage [option]... username
参数:-m:表示设定密码的最小使用天数;
-M:表示设定密码的最大使用天数;
-W:表示设定密码失效前提前多少天提示警告信息;
# chage -m 3 -M 180 -W 3 slackware
(10)添加用户openstack,其ID号为3003,基本组为clouds,附加组为peguin
和nova;
添加用户使用命令:useradd,与(6)小题类似;
# useradd -u 3003 -g clouds -Gpeguin,nova openstack
(11)添加系统用户mysql,要求其shell为/sbin/nologin;
使用命令:useradd
参数:-r:表示添加的是系统用户;
-s SHELL:指明创建用户的默认shell;
# useradd -s /sbin/nologin -r mysql
(12)使用echo命令,非交互式为openstack添加密码;
使用命令:passwd,与(4)小题类似;
# echo "open" | passwd--stdin openstack
九、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限
# cp -arf /etc/skel/*/home/tuser1
# chmod -R 600 /home/tuser1
十、显示/proc/meminfo文件中以大写或小写S开头的行,用两种方式;
第一种方式:匹配锚定行首为小写或大写S开头的行;
# cat /proc/meminfo | grep ‘^[s,S].*‘
第二种方式:匹配词首字母为小写或大写S开头的行;
# cat /proc/meminfo | grep ‘\b[s,S].*‘
十一、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
# cat /etc/passwd | grep -v‘.*nologin$‘ | cut -d‘:‘ -f1
十二、显示/etc/passwd文件中默认shell为/bin/bash的用户;
# cat /etc/passwd | grep ‘.*bash$‘| cut -d‘:‘ -f1
十三、找出/etc/passwd文件中的一位数或两位数;
# cat /etc/passwd | grep‘\b[0-9]\{1,2\}\b‘
十四、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
# cat /etc/rc.d/rc.sysinit |grep ‘^#[[:space:]]\+[^[:space:]]\+‘
十五、打出netstat-tan命令执行结果中以‘LISTEN‘,后或跟空白字符结尾的行;
# netstat -tan | grep‘.*LISTEN\b‘
十六、添加用户bash,testbash,basher,nologin(此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;
思路:取出行首用户名和行尾bash名同名的行,将整个锚定行首的关键字再在行尾锚定一次即可
# useradd bash
# useradd testbash
# useradd basher
# useradd -s /sbin/nologin nologin
# cat /etc/passwd | grep‘\(^[a-z][^:]\+\).*\1$‘