1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
> users=$(cat /etc/passwd |grep -v '/sbin/nologin' |cut -d":" -f1);echo $users;echo $users |wc -w
root sync shutdown halt mageia user1 user2 user3
8
2、查出用户UID最大值的用户名、UID及shell类型
> cat /etc/passwd |sort -t":" -k3 -nr |head -n 1 |sed -nr 's/(.*):x:([[:alnum:]]+):.*:(.*)$/\1,\2,\3/p'
user3,2005,/bin/bash
3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
> ss -antup |tr -s ' ' |cut -d' ' -f6 |sed -nr 's/([0-9.]{1,4}):[[:alnum:]]+/\1/p' |sort -n |uniq -c |sort -nr
4、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
#!/bin/bash
max=$(df |sed -nr 's/.* ([0-9]{1,3})%.*/\1/p' |sort -nr |head -n 1)
echo "当前硬盘分区中的最高利用率为百分之:$max"
> bash disk.sh
当前硬盘分区中的最高利用率为百分之:37
5、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
#!/bin/bash
echo "主机名: $(hostname)"
echo "ipv4地址: $(ip address show ens33 |sed -n -r 's/.*inet ([0-9.]+).*/\1/p')"
[ -e /etc/redhat-release ] && echo "操作系统: $(cat /etc/redhat-release)" || echo "操作系统: $(lsb_release -sd)"
echo "内核版本: $(uname -r)"
echo "CPU型号: $(lscpu |sed -nr 's/Model name:[[:space:]]+([[:alpha:]])/\1/p')"
echo "内存大小: $(free -h |grep Mem |tr -s ' ' |cut -d" " -f2)"
echo "硬盘大小: $(lsblk -p |grep -E '^/dev/sd[a-z]' |tr -s ' ' |cut -d" " -f1,4 |tr "\n" "," |sed -nr 's/,$/\n/p')"
> bash systeminfo.sh
主机名: centos01
ipv4地址: 192.168.184.147
操作系统: CentOS Linux release 7.9.2009 (Core)
内核版本: 3.10.0-1160.15.2.el7.x86_64
CPU型号: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
内存大小: 3.7G
硬盘大小: /dev/sda 100G,/dev/sdb 116.4G