人生如逆旅,我亦是行人。

1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来

[root@centos8.5-68.82 ~]#grep -v "/sbin/nologin$" /etc/passwd | cut -d":" -f1 > user.txt
[root@centos8.5-68.82 ~]#cat user.txt
root
sync
shutdown
halt
[root@centos8.5-68.82 ~]#cat user.txt | wc -l
4

2、查出用户UID最大值的用户名、UID及 shell 类型

grep `cut -d ":" -f3  /etc/passwd |sort -nr |head -n1` /etc/passwd |awk -F: '{print $1,$3,$7}'
#示例
[root@centos8.5-68.82 ~]#grep `cut -d ":" -f3 /etc/passwd |sort -nr |head -n1` /etc/passwd |awk -F: '{print $1,$3,$7}'
nobody 65534 /sbin/nologin

3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

ss -tn | awk -F" +|:" '/ESTAB/{print $6}' | sort | uniq -c | sort -nr
#示例
[root@centos8.5-68.82 ~]#ss -tn | awk -F" +|:" '/ESTAB/{print $6}' | sort | uniq -c | sort -nr
1 192.168.68.1

4、编写脚本 disk.sh,显示当前硬盘分区中空间利用率最大的值:

[root@centos7.9-68.71 ~]#vim disk.sh
#!/bin/bash
disk=`df |grep -v Filesystem |awk -F"[ %]+" '/^\/dev/{print $5}' |sort -nr |head -n1`
echo "目前分区最高使用率为"=${disk}%
#示例
[root@centos8.5-68.82 ~]#./disk.sh
目前分区最高使用率为=19%

5、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小:

#!/bin/bash

GRERN_BEGIN="echo -e \\e[1;32m"
BLUE_BEGIN="echo -e \\e[1;34m"
COLOR_END="\\e[0m"

$GRERN_BEGIN"--------------------------系统信息----------------------------"$COLOR_END
${BLUE_BEGIN}当前系统主机名为:${COLOR_END} `hostname`

${BLUE_BEGIN}当前系统版本为:${COLOR_END} `uname -a | awk '{print $2}'`

${BLUE_BEGIN}当前系统内核版本为:${COLOR_END} `uname -a | awk '{print $3}'`

${BLUE_BEGIN}当前系统 CPU 型号为:${COLOR_END} `lscpu | awk -F":" '/Model name/{print $2}'`

${BLUE_BEGIN}当前系统内存大小为:${COLOR_END} `lsmem | awk -F":" '/^Total online/{printf "%s\n",$2}'`

${BLUE_BEGIN}当前系统硬盘大小为:${COLOR_END}
lsblk | awk '/^sd/{print $1,$4}' | while read DISKNAME DISK_SIZE;do
echo "${DISKNAME}=${DISK_SIZE}"
done

${BLUE_BEGIN}当前系统网卡地址为:${COLOR_END}
ip a |grep ^[0-9] |awk -F": " '{print $2}' | while read NET_DEVICE;do
ip a show $NET_DEVICE | grep -q LOOPBACK
if [ $? -ne 0 ];then
echo ${NET_DEVICE}=`ip a show ${NET_DEVICE} |sed -nr "3s#[^0-9]+([0-9.]+).*#\1#p"`
fi
done

执行结果如下图:

Linux 脚本初步等练习_主机名