继续学习

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

答:cut -d: -f1,7 /etc/passwd | grep -v ‘/sbin/nologin‘ | wc -l:

① 以冒号为分隔符,抽取/etc/passwd文件的第1、7列的内容。

② 通过管道技术,把cut命令的内容标准输入重定向到grep命令,然后查看不匹配/sbin/nologin的行。

③ 通过管道技术,把grep命令的内容标准输入重定向到wc命令,然后只统计行总数。

如图所示,在/etc/passwd文件中,默认shell类型为非/sbin/nologin的用户有16个。

[root@centos8 ~]#cut -d: -f1,7 /etc/passwd | grep -v ‘/sbin/nologin‘ | wc -l
16
[root@centos8 ~]#

cut -d: -f1,7 /etc/passwd | grep -v ‘/sbin/nologin‘ | cut -d: -f1:

① 以冒号为分隔符,抽取/etc/passwd文件的第1、7列的内容。

② 通过管道技术,把cut命令的内容标准输入重定向到grep命令,然后查看不匹配/sbin/nologin的行。

③ 通过管道技术,把grep命令的内容标准输入重定向到cut命令,然后以冒号为分隔符,抽取第1列的内容。

[root@centos8 ~]#cut -d: -f1,7 /etc/passwd | grep -v ‘/sbin/nologin‘ | cut -d: -f1
root
sync
shutdown
halt
qian
test
qc
user
gentoo
tomcat
git
mysql
mageia
user1
user2
user3
[root@centos8 ~]#

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

答:cut -d: -f1,3,7 /etc/passwd | sort -t: -k2 -nr | head -n1

① 以冒号为分隔符,抽取/etc/passwd文件的第1、3、7列的内容。

② 通过管道技术,把cut命令的内容标准输入重定向到sort命令,然后按照使用冒号分隔的第2列,再按照数字(UID)从大到小顺序(倒序)排列。

③ 通过管道技术,把sort命令的内容标准输入重定向到head命令,然后查看第1行内容。

[root@centos8 ~]#cut -d: -f1,3,7 /etc/passwd | sort -t: -k2 -nr | head -n1
nobody:65534:/sbin/nologin
[root@centos8 ~]#

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

答:ss -nt | tail -n +2 | tr -s ‘ ‘ ‘:‘ | cut -d: -f6 | sort | uniq -c | sort -nr

① 查看目前有哪些主机(含端口)正在连接本服务器。

② 通过管道技术,把ss命令的内容标准输入重定向到tail命令,然后查看第2行到最后一行的内容。这样,可以查看ss命令的去掉首行,显示其余行的内容。

③ 通过管道技术,把tail命令的内容标准输入重定向到tr命令,然后相邻重复的空格符只保留一个(去重),再把空格符替换成冒号。

④ 通过管道技术,把tr命令的内容标准输入重定向到cut命令,然后以冒号为分隔符,抽取第6列的内容。

⑤ 通过管道技术,把cut命令的内容标准输入重定向到sort命令,然后按照默认顺序排列。

⑥ 通过管道技术,把sort命令的内容标准输入重定向到uniq命令,然后显示每行重复出现的次数。

⑦ 通过管道技术,把uniq命令的内容标准输入重定向到sort命令,然后按照数字(每行重复出现的次数)从大到小顺序(倒序)排列。

[root@centos8 ~]#ss -nt
State   Recv-Q   Send-Q     Local Address:Port     Peer Address:Port    
ESTAB   0        0             10.0.0.201:22         10.0.0.202:43242   
ESTAB   0        52            10.0.0.201:22           10.0.0.1:50201   
ESTAB   0        0             10.0.0.201:22         10.0.0.203:49918   
ESTAB   0        0             10.0.0.201:22         10.0.0.202:43240   
ESTAB   0        0             10.0.0.201:22           10.0.0.1:55162   
ESTAB   0        0             10.0.0.201:22           10.0.0.1:55166   
[root@centos8 ~]#ss -nt | tail -n +2 | tr -s ‘ ‘ ‘:‘ | cut -d: -f6 | sort | uniq -c | sort -nr
      3 10.0.0.1
      2 10.0.0.202
      1 10.0.0.203
[root@centos8 ~]#

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

答:方法一:

[root@centos8 data]#vim /data/disk.sh
[root@centos8 data]#cat /data/disk.sh
#!/bin/bash
#
#************************************************************
#Author:        qc
#QQ             285076228
#Date:          2021-06-29
#FileName       disk.sh
#URL:
#Description:
#Copyright (C): 2021 All rights reserved
#************************************************************

df | tail -n +2 | tr -s ‘ ‘ % | cut -d% -f5 | sort -nr | head -n1
[root@centos8 data]#
[root@centos8 data]#bash /data/disk.sh
21
[root@centos8 data]#bash ./disk.sh
21
[root@centos8 data]#

方法二:

[root@centos8 data]#vim /data/disk2.sh
[root@centos8 data]#cat /data/disk2.sh
#!/bin/bash
#
#************************************************************
#Author:        qc
#QQ             285076228
#Date:          2021-06-29
#FileName       /data/disk2.sh
#URL:
#Description:
#Copyright (C): 2021 All rights reserved
#************************************************************

df | grep -o ‘[0-9]*%‘ | tr -dc ‘[0-9]\n‘ | sort -nr | head -n1
[root@centos8 data]#
[root@centos8 data]#ll /data/disk2.sh 
-rw-r--r--. 1 root root 367 Jun 29 16:19 /data/disk2.sh
[root@centos8 data]#chmod a+x /data/disk2.sh
[root@centos8 data]#ll /data/disk2.sh
-rwxr-xr-x. 1 root root 367 Jun 29 16:19 /data/disk2.sh
[root@centos8 data]#
[root@centos8 data]#/data/disk2.sh 
21
[root@centos8 data]#./disk2.sh
21
[root@centos8 data]#

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

答:

[root@centos8 data]#vim /data/systeminfo.sh
[root@centos8 data]#cat /data/systeminfo.sh
#!/bin/bash
#
#************************************************************
#Author:        qc
#QQ             285076228
#Date:          2021-06-29
#FileName       /data/systeminfo.sh
#URL:
#Description:
#Copyright (C): 2021 All rights reserved
#************************************************************
echo "查看当前主机系统信息:"
echo -e "\n1、主机名:"
hostname
echo -e "\n2、IPv4地址:"
hostname -I | cut -d‘ ‘ -f1
echo -e "\n3、操作系统版本:"
cat /etc/redhat-release
echo
cat /etc/os-release
echo -e "\n4、内核版本:"
uname -r
echo -e "\n5、CPU型号:"
lscpu
echo -e "\n6、内存大小:"
free -h
echo -e "\n7、硬盘大小:"
lsblk
[root@centos8 data]#bash /data/systeminfo.sh
查看当前主机系统信息:

1、主机名:
centos8

2、IPv4地址:
10.0.0.201

3、操作系统版本:
CentOS Linux release 8.2.2004 (Core) 

NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"


4、内核版本:
4.18.0-193.el8.x86_64

5、CPU型号:
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              1
On-line CPU(s) list: 0
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               42
Model name:          Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
Stepping:            7
CPU MHz:             2294.829
BogoMIPS:            4589.65
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            3072K
NUMA node0 CPU(s):   0
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx hypervisor lahf_lm pti tsc_adjust arat

6、内存大小:
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       327Mi       950Mi       9.0Mi       523Mi       1.3Gi
Swap:         2.0Gi          0B       2.0Gi

7、硬盘大小:
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sr0     11:0    1  7.7G  0 rom  
[root@centos8 data]#

继续学习

上一篇:checkPoint机制


下一篇:LeetCode19 删除链表的倒数第N个节点