第四周

    技术2025-01-30  8

    文章目录

    1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来2、查出用户UID最大值的用户名、UID及shell类型3、统计当前连接本机的每个远程主机IP的连接数,并按照从大到小排序4、编写脚本createuser.sh, 实现如下功能: 使用一个用户名作为参数,如果指定参数的用户存在,就显示其存在,否则添加之,显示添加的用户的id号等信息5、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

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

    [root@lqc ~]#cat /etc/passwd | grep -vE "sbin/nologin" | cut -d: -f1 //默认shell非sbin/nologin的用户 root sync shutdown halt laiqiancheng mageia slackware [root@lqc ~]# [root@lqc ~]#cat /etc/passwd | grep -vE "sbin/nologin" | cut -d: -f1 | wc -l //用户个数统计 7 [root@lqc ~]#

    用sed命令

    [root@lqc ~]#sed -nr '/sbin\/nologin$/!p' /etc/passwd | cut -d: -f1 root sync shutdown halt laiqiancheng mageia slackware [root@lqc ~]#sed -nr '/sbin\/nologin$/!p' /etc/passwd | cut -d: -f1 | wc -l 7 [root@lqc ~]#

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

    [root@lqc ~]#head -3 /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 [root@lqc ~]# [root@lqc ~]#sort -nr -t: -k3 /etc/passwd | head -1 | cut -d: -f1,3,7 //sort排序,然后取出用户、uid、shell nfsnobody:65534:/sbin/nologin [root@lqc ~]# [root@lqc ~]#sed -nr 's#(.*):x:([0-9]+):.*:(.*)$#\2:\1:\3#p' /etc/passwd | sort -nr | head -1 65534:nfsnobody:/sbin/nologin [root@lqc ~]#

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

    sed取出IP排序

    [root@lqc ~]#netstat -tun //查看连接本机的远程主机IP地址 Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 10.0.0.104:22 10.0.0.1:56425 ESTABLISHED tcp 0 36 10.0.0.104:22 10.0.0.1:60795 ESTABLISHED [root@lqc ~]#netstat -tun | sed -nr 's#.*[[:space:]+]([0-9.]+):.*#\1#p' //过滤出远程主机IP 10.0.0.1 10.0.0.1 [root@lqc ~]#netstat -tun | sed -nr 's#.*[[:space:]+]([0-9.]+):.*#\1#p' | sort | uniq -c | sort -nr //按连接数排序 2 10.0.0.1 [root@lqc ~]#

    grep、tr、cut、取出IP排序

    [root@lqc ~]#netstat -tun Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 10.0.0.104:22 10.0.0.1:56425 ESTABLISHED tcp 0 36 10.0.0.104:22 10.0.0.1:60795 ESTABLISHED [root@lqc ~]#netstat -tun | tr -s " " : | cut -d: -f6 | grep -Eo "[0-9.]+" //过滤出远程主机IP 10.0.0.1 10.0.0.1 [root@lqc ~]#netstat -tun | tr -s " " : | cut -d: -f6 | grep -Eo "[0-9.]+" | sort | uniq -c | sort -nr //按连接数排序 2 10.0.0.1 [root@lqc ~]#

    4、编写脚本createuser.sh, 实现如下功能: 使用一个用户名作为参数,如果指定参数的用户存在,就显示其存在,否则添加之,显示添加的用户的id号等信息

    [root@lqc scripts]#cat createuser.sh //脚本内容 #!bin/bash set -ue USER="$1" id ${USER} &> /dev/null && echo "${USER} is already exsit !" && exit 1 useradd ${USER} && echo "${USER} create success !" id ${USER} && exit 2 [root@lqc scripts]#bash createuser.sh lai //测试1 lai is already exsit ! [root@lqc scripts]#bash createuser.sh wang //测试2 wang create success ! uid=2006(wang) gid=2006(wang) groups=2006(wang) [root@lqc scripts]#tail -5 /etc/passwd slackware:x:2002:2019::/home/slackware:/bin/tcsh lai:x:2003:2003::/home/lai:/bin/bash mage:x:2004:2004::/home/mage:/bin/bash mage1:x:2005:2005::/home/mage1:/bin/bash wang:x:2006:2006::/home/wang:/bin/bash [root@lqc scripts]#

    5、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

    [root@lqc scripts]#cat ~/.vimrc set ignorecase set cursorline set autoindent autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setline(2,"#") call setline(3,"#********************************************************************") call setline(4,"#Author: LaiQianCheng") call setline(5,"#QQ: 2428589167") call setline(6,"#Date: ".strftime("%Y-%m-%d")) call setline(7,"#FileName: ".expand("%")) call setline(8,"#URL: https://blog.csdn.net/weixin_45144524") call setline(9,"#Description: The test script") call setline(10,"#Copyright (C): ".strftime("%Y")." All rights reserved") call setline(11,"#********************************************************************") call setline(12,"") endif endfunc autocmd BufNewFile * normal G [root@lqc scripts]#
    Processed: 0.011, SQL: 9