1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 ~]# who | sort -u
- who:查看当前已经登陆的所有用户的详细信息
- sort -u :在输出行中去除重复行
2、取出最后登录到当前系统的用户的相关信息
~]# who | tail -1
3、取出当前系统上被用户当做其默认shell的最多的那个shell ~]# cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1
- cut -d: -f7:指明分隔符取shell字段值
- uniq -c:显示重复次数
- sort -n:以数值大小排序
- tail -1:获取最后一行
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中 ~]# cat /etc/passwd |sort -t : -k 3 -n /etc/passwd |tail -n 10 | tr [a-z] [A-Z] >> /tmp/maxusers.txt
- sort -t :字段分隔符
- sort -k 3:取第三个字段为标准排序
- tr [a-z] [A-Z]:将文件中的小写转换为大小
- ">>":追加重定向,新内容会追加至目标文件尾部
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分 ~]# ifconfig |grep -A 3 "^e[tn]" |grep -o -i " inet .$" | grep -o "[0-9].$"| cut -d' ' -f1
- grep -A 3 "^e[tn]":匹配到后3行,显示以e开头有t和n字母的信息
- grep -o :仅显示匹配到的字符串
- grep -i:忽略字符大小写
- " inet .$" :. inet后匹配任意字符 $:行尾锚定
- cut -d' ' -f1:截取分隔字符第一列
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中
~]# ls -a /etc/*.conf | tr 'a-z' 'A-Z' >> /tmp/etc.conf
7、显示/var目录下一级子目录或文件的总个数 ~]# ls -a /var | wc -l
- wc -l:lines统计行数
8、取出/etc/group文件中第三个字段数值最小的10个组的名字 ~]# sort -t: -k3 -n /etc/group | head -n 10
- head -n 10:显示文件前十行数据
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中 ~]# cat /etc/fstab /etc/issue &>/tmp/etc.test
- &>:覆盖重定向
10、请总结描述用户和组管理类命令的使用方法并完成以下练习
- (1)创建组distro,其GID号为2016
* ~]# groupadd -g 2016 distro
- (2)创建用户andriva,其ID号为1005;基本组为distro
* ~]# useradd -u 1005 -g distro andriva
- (3)创建用户mageia,其ID号为1100,家目录为/home/linux
* ~]# useradd -u 1100 -d /home/linux mageia
- (4)给用户mageia添加密码,密码为mageedu
* ~]# echo 'mageedu' | passwd --studin mageia
- (5)删除andriva,但保留其家目录
* ~]# userdel andriva
- (6)创建用户slackte,其ID号为2002,基本组为distro,附加组peguin
* ~]# useradd -u 2002 -g distro -G peguin slackte
* useradd -g:指定基本组ID,而且此组要事先存在,否则会报错
* useradd -G:指明用户所属的附加组
- (7)修改slackte的默认shell为/bin/tcsh
* ~]# chmod -s /bin/tcsh slackware
*useradd -s:指明用户的默认SHELL,而可用的所有shell存储在/etc/shells文件中
- (8)为用户slackte新增附加组admins
* ~]# usermod -G admins slackware