1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
[root@localhost ~]# who | cut -d" " -f1 | sort -u
root
(unknown)
cut -d " " :以“空格”为分隔符; -f1 取第一个字段
sort -u :在输出行中去除重复行
[root@localhost ~]# who
(unknown) :0 2018-07-08 13:23 (:0)
root pts/0 2018-07-08 13:31 (192.168.65.1)
2、取出最后登陆到当前系统的用户的相关信息
[root@localhost ~]# who | cut -d' ' -f1 | tail -1 | xargs id
uid=0(root) gid=0(root) 组=0(root)
tail -1:查看最后一行
xargs :构造参数列表并运行命令。(将前面命令输出的值作为参数)
因为who查看的登陆用户默认是按时间排列的,所以只用显示最后一行。
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
[root@localhost ~]# cat /etc/passwd | cut -d : -f 7 | uniq -c | sort -n
1 /bin/bash
1 /bin/bash
1 /bin/sync
1 /sbin/halt
1 /sbin/nologin
1 /sbin/shutdown
4 /sbin/nologin
33 /sbin/nologin
[root@localhost ~]# cat /etc/passwd | cut -d : -f 7 | uniq -c | sort -n | tail -1
33 /sbin/nologin
uniq -c:在每列旁边显示该行重复出现的次数。
sort -n:以数值来排序(从小到大)
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
[root@localhost ~]# cat /etc/passwd | sort -t : -k 3 -n | tail -10 | tr 'a-z&