M-63.第三周作业

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

#,先统计出有多少行(代码?)

方法一

sed '/nologin$/d' /etc/passwd|wc -l //行数

sed '/nologin$/d' /etc/passwd|gawk -F: '{print $1}'

方法二

grep -v nologin$ /etc/passwd -c

grep -v nologin$ /etc/passwd  |cut -d: -f 1

grep -v nologin$ /etc/passwd -c && grep -v nologin$ /etc/passwd  |cut -d: -f 1

脚本

vim userlist.sh

#!/bin/bash

set -e

users=`grep -v nologin$ /etc/passwd -c `

userlist=`grep -v nologin$ /etc/passwd  |cut -d: -f 1`

echo /etc/passwd文件中其默认shell为非/sbin/nologin的用户个数为:$users

echo /etc/passwd文件中其默认shell为非/sbin/nologin的用户列表为:$userlist

set --

exit

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

方法一

cut -d: -f 1,3 /etc/passwd && cat /etc/passwd |rev |cut -d: -f 1 |rev

方法二

gawk -F: '{print $3,$1,$NF}' /etc/passwd|sort -nr|sed -n '1p'

gawk -F: '{print $3,$1,$NF}' /etc/passwd|sort -nr|awk 'NR==1'

脚本写法

vim maxUIDs.sh

#!/bin/bash

set -e

maxUID=`cut -d: -f 3 /etc/passwd |sort -rn |head -n 1`

maxuser=`grep $maxUID /etc/passwd|cut -d: -f 1`

maxshell=`grep $maxUID /etc/passwd|rev|cut -d: -f 1|rev`

echo UID最大值的用户名是:$maxuser

echo UID最大值的用户UID是:$maxUID

echo UID最大值的用户的shell是:$maxshell

echo  由于命令是三条,可能存在最大值用户名不是最大值用户UID,这是在不使用sed或awk命令下获取的值

maxUIDs=`gawk -F: '{print $3,$1,$NF}' /etc/passwd|sort -nr|awk 'NR==1'`

echo UID最大值的用户是 $maxUIDs

set --

exit


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

方法一

ss -nt|sed '1d'|tr -s ' ' ':'|gawk -c -F: '{print $(NF-2)}'|uniq -c|sort -nr  #求简化方法

方法二

ss -nt|grep 22|tr -s ' ' ':' |cut -d: -f 6|uniq -c|sort -nr

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

vim /data/disk.sh

#!/bin/bash

set -e

#df -h|tr -s ' ' ':'|gawk  -c -F: '{print $1,$(NF-1)}'

lyl=$(df -h|sed '1d'|tr -s ' ' ':'|gawk  -F: '{print $(NF-1),$1}'|sort -nr|sed -n '1p')

echo '当前硬盘分区中空间利用率最大的值为' $lyl

set --

exit

# df |tail -n +2|awk -F'[ %]+' '{print $5,$1}'|sort -rn

# df |tail -n +2|awk -F'[ ]+' '{print $5,$1}'|sort -rn

------------------------------------------------------

#!/bin/bash

set -e

#lyl=$(df -h|sed '1d'|tr -s ' ' ':'|gawk  -F: '{print $1}'|sort -nr|sed -n '1p')

zhi=$(df -h|sed '1d'|tr -s ' ' ':'|gawk  -F: '{print $(NF-1),$1}'|sort -nr|sed -n '1p'|gawk  -F' ' '{print $1}')

pan=$(df -h|sed '1d'|tr -s ' ' ':'|gawk  -F: '{print $(NF-1),$1}'|sort -nr|sed -n '1p'|gawk  -F' ' '{print $2}')

echo '当前硬盘分区中空间利用率最大的值为' $zhi

echo '当前硬盘分区中空间利用率最大的盘为' $pan

set--

exit

---------

bash /data/disk.sh

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

vim /data/ysteminfo.sh

----

#!/bin/bash

set -e

---

echo '当前主机名是:' $hostname

IP4=$(nmcli device show ens33 |grep IP4.ADD|gawk -F' ' '{print $2}')

IP4=$(ifconfig ens33|grep mask|gawk -F' ' '{print $2}')

IP4=$(ifconfig ens33|sed -n '2p'|gawk -F' ' '{print $2}')

echo '当前IP地址是:' $IP4


xtbb=$(lsb_release -a|sed -n '3p'|gawk -F: '{print $2}' )

echo '当前操作系统版本是:' $xtbb



echo '当前内核版本是:' $(uname -r)


cpuxh=$(cat /proc/cpuinfo |grep name|sed -n '1p'|gawk -F: '{print $2}')

echo '当前CPU型号是:' 


ncdx=$(free -h |grep Mem|gawk -F' ' '{print $2}')

echo '当前内存大小是:' $ncdx



ypfx=$(fdisk -l|grep dev)

echo '当前硬盘大小是:' $ypdx


--------------------

#!/bin/bash


set -e

#---

echo '当前主机名是:' $(hostname)

IP4=$(nmcli device show ens33 |grep IP4.ADD|gawk -F' ' '{print $2}')

echo '当前IP地址是:' $IP4

xtbb=$(lsb_release -a|sed -n '3p'|gawk -F: '{print $2}' )

echo '当前操作系统版本是:' $xtbb

echo '当前内核版本是:' $(uname -r)

cpuxh=$(cat /proc/cpuinfo |grep name|sed -n '1p'|gawk -F: '{print $2}')

echo '当前CPU型号是:' $cpuxh

ncdx=$(free -h |grep Mem|gawk -F' ' '{print $2}')

echo '当前内存大小是:' $ncdx

ypdx=$(fdisk -l|grep sd[a..z]:| gawk -F',' '{print $1}')

echo '当前硬盘大小是:' $ypdx

set --

exit


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容