1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
who | cut -d” ” -f1 | sort | uniq -c | sort
who命令查看当前系统登录用户信息,cut取第一段信息,sort排序,uniq统计重复行,sort再次排序。
2、取出最后登录到当前系统的用户的相关信息。
who | tail -1
实在不知道怎么查看,cut取值取不到LOGIN的大小比较,who默认按登录时间排序,所以也就这样写了,请大神们指点啊!
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n -r | head -1
passwd文件下第7个字段为默认shell,排序统计重复行,按逆序再次排序头一个就是最多的,也可按顺序排,那就是tail -1。
4、将/etc/passwd中的第三个字段数值最大的后10个用户信息全部改为大写后保存至/tmp/maxusers.txt。
sort -t: -k3 -n /etc/passwd | tail | tr [a-z] [A-Z] > /tmp/maxusers.ttrxt
sort可直接指定分隔符进行指定字段排序,而后tail后10行,tr转换字符大小写,输出重定向文本文件。
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
ifconfig | grep inet | xargs -n2 | cut -d” ” -f2 | head -1
这个有群里同学帮忙,用到个新命令xargs,将输入数据流空白行转换为空白字符,大概就是这个意思,cut以空白字符分割,取IP地址。
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
ls /etc/*.conf | tr [a-z] [A-Z] > /tmp/etc.conf
这个查看了文档,实在找不到怎么取出文件的文件名,basename只是针对的是给出的文件名路径,而匹配到的文件不知如何取出,请大神们帮忙啊!
7、显示/var目录下一级子目录或者文件的总个数。
ls /var | wc -l
貌似写的也不符合题目要求,请指教!
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
sort -t: -k3 -n /etc/group | head | cut -d: -f1
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
cat /etc/fstab >> /etc/issue | cp /etc/issue /tmp/etc.test
文件合并只想到了cat >>,输出重定向,也请大神们指点!按题目要求意思走!
10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
useradd,userdel,usermod,groupadd,groupdel,groupmod,passwd。
(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 mageia
(4)、给用户mageia添加密码,密码为mageedu;
echo “mageedu” | passwd –stdin mageia
(5)、删除mandriva,但保留其家目录;
userdel mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
groupadd peguin 先创建组
useradd -u 2002 -g distro -G peguin slackware
(7)、修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware
(8)、为用户slackware新增附加组admins。
usermod -a -G admins slackware 添加附加组,追加新组需要-a配合,而且得在-G前面,不加-a为替换附加组,以实验证明,我用的是CentOS 7。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99637
评论列表(2条)
用户和组管理命令没有时间详述,改日补上!
最后登陆的用户可以用last 命令里面取
建议命令都格式化一下。把命令执行结果也贴出来。