第三周shell及小工具
1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
[root@localhost ~]#grep -v /sbin/nologin /etc/passwd |cut -d: -f1
#grep取反,再已:为分隔符,取第一字段
root
sync
shutdown
halt
zhangsan
[root@localhost ~]#grep -v /sbin/nologin /etc/passwd |cut -d: -f1|wc -l
#wc统计个数
5
2、查出用户UID最大值的用户名、UID及shell类型
[root@localhost ~]#cat /etc/passwd |cut -d: -f1,3,7|sort -t: -k2 -nr|head -1
nfsnobody:65534:/sbin/nologin
# 已冒号为分隔符 取第一第三,第7 列,再用sort排序已冒号为分隔符,排倒序第二字段,取第一个值
3.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
[root@localhost ~]#ss -atun |grep -i estab|tr -s " "|cut -d " " -f4|sort -nr
68
0
#过滤estab忽略大小写,压缩空格,取第4列,倒排序
4、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
[root@localhost ~]# df
#需要取第5字段
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 10475520 4994824 5480696 48% /
devtmpfs 917600 0 917600 0% /dev
tmpfs 933524 0 933524 0% /dev/shm
tmpfs 933524 9200 924324 1% /run
tmpfs 933524 0 933524 0% /sys/fs/cgroup
/dev/sda1 5223424 182388 5041036 4% /boot
tmpfs 186708 12 186696 1% /run/user/42
tmpfs 186708 0 186708 0% /run/user/0
/dev/sdb1 20960256 20960236 20 100% /N59
[root@localhost ~]# df |awk -F "[ %]+" /sd/'{print $5}'|sort -nr|head -1
#只取数字
[root@localhost ~]# vim disk.sh
#编写脚本
[root@localhost ~]# cat disk.sh
#!/bin/bash
use=`df |awk -F "[ %]+" /sd/'{print $5}'|sort -nr|head -1`
echo $use
[root@localhost ~]# bash disk.sh
100
5、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
[root@localhost ~]# vim systeminfo.sh
#!/bin/bash
name=`hostname`
ip=`ifconfig ens33|awk /netmask/'{print $2}'`
os=`cat /etc/redhat-release`
kernel=`uname -r`
cpu=`lscpu|grep 型号名称:|tr -s " "|cut -d":" -f2`
mem=`free -hm |awk /Mem/'{print $2}'`
space=`lsblk |awk /disk/'{print $4}'|awk -F G '{print $1}'`
G="\e[1;32m"
B="\e[1;34m"
E="\e[0m"
for i in $space
do let sum=$[$sum+$i]
done
echo -e "$B主机名:$E$G\t$name\t$E"
echo -e "${B}IP地址:$E$G\t$ip\t$E"
echo -e "$B系统版本:$E$G\t$os\t$E"
echo -e "$B内核版本:$E$G\t$kernel\t$E"
echo -e "${B}cpu名称:$E$G\t$cpu\t$E"
echo -e "$B内存总大小$E:$G\t$mem\t$E"
echo -e "$B硬盘总大小$E:$G\t${sum}G\t$E"
[root@localhost ~]# bash systeminfo.sh
主机名: localhost.localdomain
IP地址: 192.168.91.101
系统版本: CentOS Linux release 7.4.1708 (Core)
内核版本: 3.10.0-693.el7.x86_64
cpu名称: AMD Ryzen 7 4800U with Radeon Graphics
内存总大小: 1.8G
硬盘总大小: 60G