【Linux】文本处理及Shell编程

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

[root@CentOS8 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
unbound:x:996:992:Unbound DNS resolver:/etc/unbound:/sbin/nologin
clevis:x:995:991:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:994:990:User for cockpit web service:/nonexisting:/sbin/nologin
cockpit-wsinstance:x:993:989:User for cockpit-ws instances:/nonexisting:/sbin/nologin
sssd:x:992:988:User for sssd:/:/sbin/nologin
setroubleshoot:x:991:987::/var/lib/setroubleshoot:/sbin/nologin
chrony:x:990:986::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
[root@CentOS8
~]# cat /etc/passwd | grep '/sbin/nologin$' bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin unbound:x:996:992:Unbound DNS resolver:/etc/unbound:/sbin/nologin clevis:x:995:991:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin cockpit-ws:x:994:990:User for cockpit web service:/nonexisting:/sbin/nologin cockpit-wsinstance:x:993:989:User for cockpit-ws instances:/nonexisting:/sbin/nologin sssd:x:992:988:User for sssd:/:/sbin/nologin setroubleshoot:x:991:987::/var/lib/setroubleshoot:/sbin/nologin chrony:x:990:986::/var/lib/chrony:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin
[root@CentOS8
~]# cat /etc/passwd | grep -v '/sbin/nologin$' root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt user1:x:1000:1000::/home/user1:/bin/bash [root@CentOS8 ~]# cat /etc/passwd | grep -v '/sbin/nologin$' | wc -l 5 [root@CentOS8 ~]# cat /etc/passwd | grep -v '/sbin/nologin$' | cut -d: -f1 root sync shutdown halt user1

 

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

[root@CentOS8 ~]# grep "\<`cat /etc/passwd | cut -d: -f3 | sort -rn | head -n 1`\>" /etc/passwd
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

 

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

[root@CentOS8 ~]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 10.0.0.8:22             10.0.0.4:52422          TIME_WAIT  
tcp        0     52 10.0.0.8:22             10.0.0.1:49396          ESTABLISHED
tcp        0      0 10.0.0.8:22             10.0.0.4:52428          ESTABLISHED
tcp        0      0 10.0.0.8:22             10.0.0.1:58257          ESTABLISHED
tcp        0      0 10.0.0.8:22             10.0.0.4:52424          TIME_WAIT  
tcp        0      0 10.0.0.8:22             10.0.0.4:52430          ESTABLISHED
tcp        0      0 10.0.0.8:22             10.0.0.4:52426          TIME_WAIT  
tcp        0      0 10.0.0.8:22             10.0.0.4:52360          ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
[root@CentOS8 ~]# netstat -ant |grep "ESTABLISHED" | tr -s ' ' | cut -d" " -f5 | grep -Eo "([0-9]{1,3}\.){3}[0-9]"|sort | uniq -c | sort -nr
      3 10.0.0.4
      2 10.0.0.1
[root@CentOS8 ~]# 

 


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

[root@CentOS8 data]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  372M     0  372M   0% /dev
tmpfs               tmpfs     392M     0  392M   0% /dev/shm
tmpfs               tmpfs     392M  5.7M  386M   2% /run
tmpfs               tmpfs     392M     0  392M   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs       5.0G  2.0G  3.1G  40% /
/dev/mapper/cl-data xfs       3.0G   54M  3.0G   2% /data
/dev/nvme0n1p1      xfs      1014M  202M  813M  20% /boot
tmpfs               tmpfs      79M     0   79M   0% /run/user/0


[root@CentOS8 data]# vim disk.
sh #!/bin/bash #This script is for check Maximum disk partition usage information ############################# MAX_Usage=`df -Th | grep -Eo "[0-9]{1,3}\%" | sort -rn | head -1` MAX_File=`df -Th | grep $MAX_Usage | cut -d' ' -f1` echo -e "\033[1;32mMaximum disk usage partition information\033[0m" echo -e "MAX_Usage: \033[1;31m $MAX_Usage\033[0m" echo -e "MAX_File: \033[1;31m $MAX_File\033[0m"

[root@CentOS8 data]#
chmod a+x disk.sh [root@CentOS8 data]# ./disk.sh Maximum disk usage partition information MAX_Usage: 40% MAX_File: /dev/mapper/cl-root [root@CentOS8 data]# dd if=/dev/zero of=/data/file bs=1M count=2500 2500+0 records in 2500+0 records out 2621440000 bytes (2.6 GB, 2.4 GiB) copied, 2.09592 s, 1.3 GB/s [root@CentOS8 data]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 372M 0 372M 0% /dev tmpfs tmpfs 392M 0 392M 0% /dev/shm tmpfs tmpfs 392M 5.7M 386M 2% /run tmpfs tmpfs 392M 0 392M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 5.0G 2.0G 3.1G 40% / /dev/mapper/cl-data xfs 3.0G 2.5G 505M 84% /data /dev/nvme0n1p1 xfs 1014M 202M 813M 20% /boot tmpfs tmpfs 79M 0 79M 0% /run/user/0 [root@CentOS8 data]# ./disk.sh Maximum disk usage partition information MAX_Usage: 84% MAX_File: /dev/mapper/cl-data

 

 


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

 

[root@CentOS8 data]# vim system_info.sh 

#!/bin/bash
#打印输出系统信息:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
#
#Copyright (C): janzen@q All rights reserved


RED="\033[1;31m"
GREEN="\033[1;32m"
White="\033[0m"
HostName=`hostname`
IP=`hostname -I`
[[ -e /etc/redhat-release ]] && OSVersion=`cat /etc/redhat-release` || OSVersion=`cat //etc/issue | grep -v ^$ | cut -d'\' -f1`
CPU=`lscpu | grep "^Model name:" | tr -s ' ' | cut -d":" -f2 | grep -Eo "[A-Za-z0-9].*"`
MEM=`free -h | grep Mem | tr -s " " | cut -d' ' -f2`
DISK=`lsblk |tr -s ' ' |grep "disk $" | cut -d' ' -f4`
DISK=`echo $DISK`
echo -e "\033[1;33m-------------System Info----------------$White" echo -e "${RED}Hostname: $GREEN$HostName$White" echo -e "${RED}IP: $GREEN$IP$White" echo -e "${RED}OS_Version: $GREEN$OSVersion$White" echo -e "${RED}CPU: $GREEN$CPU$White" echo -e "${RED}MEM: $GREEN$MEM$White" echo -e "${RED}DISK: $GREEN$DISK$White" echo -e "\033[1;33m-------------------End-------------------$White"

 

  

 

  

6、20分钟内通关vimtutor(可参考https://yyqing.me/post/2017/2017-02-22-vimtutor-chinese-summary)

posted @ 2021-07-22 01:17  Janzen_Q  阅读(82)  评论(0)    收藏  举报