小白学习Linux之路4

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

第一步:找出/etc/passwd文件中默认shell非/sbin/nologin的用户并显示出来,命令如下:

 

[root@CentOS8 ~]# grep -v ".*/sbin/nologin$" /etc/passwd | cut -d : -f 1,7
root:/bin/bash
sync:/bin/sync
shutdown:/sbin/shutdown
halt:/sbin/halt
wang:/bin/bash
zrf:/bin/bash
gentoo:/bin/chs
nginx:/bin/bash
varnish:/bin/bash
mage:/bin/bash
git:/bin/bash
test2:/bin/bash
mageia:/bin/bash
user1:/bin/bash
user2:/bin/bash
user3:/bin/bash
[root@CentOS8 ~]# 

 

备注说明:

grep -v ".*/sbin/nologin$" /etc/passwd 命令是找出/etc/passwd中默认shell非/sbin/nologin的行;

cut -d : -f 1,7是将找出的行,按“:”字符分割,找出第1列和第7列。第7列是显示的是默认shell类型,都是非/sbin/nologin。

第二步:统计出用户个数,命令如下:

[root@CentOS8 ~]# grep -v ".*/sbin/nologin$" /etc/passwd | cut -d : -f 1,7 | wc -l
16
[root@CentOS8 ~]# 

 备注说明:

在上面的命令后面再加上wc -l命令就可以统计用户的个数了

 

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

思路:

(1)将passwd文件中的UID列按照从大到小排列

         cat /etc/passwd | sort -t : -k 3,3nr

(2)然后将排列好的内容通过管道符|传给cut命令;然后取出第一列:用户名,第三列UID,第七列shell;

         cat /etc/passwd | sort -t : -k 3,3nr | cut -d : -f 1,3,7

(3)最后使用head命令列出第一条输出,就是UID最大的用户名。 

      cat /etc/passwd | sort -t : -k 3,3nr | cut -d : -f 1,3,7 | head -1

       其中 head -1就是head -n 1

     

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

思路:

(1)使用命令ss -nt列出远程链接信息;

         ss -nt

(2)因为ss -nt列出的信息有干扰行:第一行,使用命令tail -n +2排除干扰行;

         ss -nt | tail -n +2

 (3)将上面命令列出的空格替换为“:”;

         ss -nt | tail -n +2 | tr -s ' ' ':'

(4)使用cut命令剪切处远程主机的IP地址;

         ss -nt | tail -n +2 | tr -s ' ' ':' | cut -d : -f 6

(5)使用uniq命令统计重复IP的个数;

        ss -nt | tail -n +2 | tr -s ' ' ':' | cut -d : -f 6 | uniq -c

(6)使用sort命令将IP的个数按照从大到小顺序排列;

        ss -nt | tail -n +2 | tr -s ' ' ':' | cut -d : -f 6 | uniq -c | sort -nr

 

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

 第一步:在/data目录下编写disk.sh文件(也可以是其它目录),然后点击回车键

              [root@CentOS8 ~]# cd /data
              [root@CentOS8 data]# vim disk.sh

 

第二步:点击回车键后,进入disk.sh文件的命令模式,点击i建,进入插入模式进行编辑。

 

第三步:在插入模式下,输入以下内容,并保存退出。

#!/bin/bash
RED="\e[1;31m"
END="\e[0m"
#第一种方法
echo ----------------------------------------------------
disk=`df | tail -n +2 | tr -s ' ' '%' | cut -d % -f 5 | sort -nr | head -1`
echo -e "当前硬盘分区中空间利用率最大的值为$RED$disk$END"
echo -----------------------------------------------------
#第二种方法
echo "当前硬盘分区中空间利用率最大的详细信息如下:"
echo -e "$RED`df | tail -n +2 | sort -t % -k 1.44,1.46nr | head -1`$END"
echo ----------------------------------------------------

 

第四步:给disk.sh文件添加x执行权限

              chmod a+x /data/disk.sh

 

第五步:执行disk.sh文件,显示执行结果:

            /data/disk.sh 

 

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

第一步:列出获取主机信息的命令:

(1)主机名:hostname

(2)IPV4地址:ifconfig ens33|head -2|tail -1|tr -s ' ' ':'|cut -d : -f 3

(3)操作系统版本:cat /etc/centos-release

(4)内核版本:uname -r

(5)CPU型号:grep "Model name"|cut -d % -f 2

(6)内存大小:free -h | head -2|tail -1|tr -s ' ' '%'|cut -d % -f 2

(7)硬盘大小:lsblk|head -2 | tail -1|tr -s ' ' '%'|cut -d % -f 4

 

第二步:使用vim打开systeminfo.sh文件

 

第三步:点i键进入插入模式,将第一步中的命令写入systeminfo.sh文件后,并保存退出.详细内容如下:

#!/bin/bash
RED="\E[1;31m"
GREEN="echo -e \E[1;32m"
END="\E[0m"
$GREEN----------------------Host systeminfo--------------------$END
echo -e "HOSTNAME:     $RED`hostname`$END"
echo -e "IPADDR:            $RED` ifconfig ens33|head -2|tail -1|tr -s ' ' :|cut -d : -f 3`$END"
echo -e "OSVERSION:    $RED`cat /etc/centos-release`$END"
echo -e "KERNEL:            $RED`uname -r`$END"
echo -e "CPU:                 $RED`lscpu|grep 'Model name'|tr -s ' '|cut -d : -f 2`$END"
echo -e "MEMORY:         $RED`free -h | head -2|tail -1|tr -s ' ' '%'|cut -d % -f 2`$END"
echo -e "DISK:                 $RED`lsblk|head -2 | tail -1|tr -s ' ' '%'|cut -d % -f 4`$END"
$GREEN---------------------------------------------------------$END

 

 

第四步:给systeminfo.sh文件添加x权限

 

 

第五步:执行/data/systeminfo.sh文件

 

 

posted @ 2021-03-07 21:48  生活很无奈  阅读(106)  评论(0)    收藏  举报