美文网首页
Linux基础及总结4之shell脚本练习

Linux基础及总结4之shell脚本练习

作者: 牵挂包含一种欣赏 | 来源:发表于2019-11-23 20:29 被阅读0次

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

#!/usr/bin/env bash

#统计用户shell为/sbin/nologin的个数,并且显示出用户名#

ColorStart="\033[$[RANDOM%7+31]m"

ColorEnd="\033[0m"

userCount=`cat /etc/passwd|grep -o ".*\(/sbin/nologin$\)"|wc -l`

echo  -e "\033[1;31m User shell is the number of nologin:\033[0m $ColorStart $userCount $ColorEnd"

userName=`cat /etc/passwd|grep -o ".*\(/sbin/nologin$\)"|cut -d: -f1|tr -s "\n" " "`

echo -e "\033[1;31m User shell is nologin username:\033[0m $ColorStart $userName $ColorEnd"

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

    方法一

    #!/usr/bin/env bash

    UserFile=/etc/passwd

    MaxUid=`cat $UserFile|cut -d: -f3|sort -nr|head -n1`

    MaxUidInfo=`grep  $MaxUid $UserFile|cut -d: -f1,3,7`

    echo -e "\e[1;36m 当前系统中UID最大的用户名 UID SHELL类型是:\e[0m $MaxUidInfo"

    方法二

    #!/usr/bin/env bash

    UserFile=/etc/passwd

    MaxUidInfo=`cat $UserFile|sort -t : -k 3 -nr|head -n1|cut -d: -f1,3,7`

    echo -e "\e[1;36m 当前系统中UID最大的用户名 UID SHELL类型是:\e[0m $MaxUidInfo"

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

    #!/usr/bin/env bash

    #统计当前连接本机的每个远程主机IP的连接数#

    ipConn=`netstat -ant|tr -s " " :|cut -d: -f6|grep -o "^[0-9].*[0-9$]"|sort|uniq -c|sort -nr`

    echo -e "\e[1;35m 当前连接本机的每个远程主机IP的连接数:\e[0m \n$ipConn"

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

#!/usr/bin/env bash

read -p "Please enter the username to be created:" userName

id $userName &> /dev/null

if [ $? -eq 0 ];then

        echo "$userName User already exists"

        exit 100;

else

        useradd $userName

        echo "$userName User created successfully"

fi

id $userName

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

cat > /root/.vimrc <<EOF set ignorecaseset cursorlineset autoindent

autocmd BufNewFile *.sh exec ":call SetTitle()"func SetTitle()

if expand("%:e") == 'sh' call setline(1,"#!/bin/bash")

call setline(2,"#*****************************************************************")

call setline(3,"#Author: bridge")

call setline(4,"#QQ: 515505634")

call setline(5,"#Date: ".strftime("%Y-%m-%d"))

call setline(6,"#FileName: ".expand("%"))

call setline(7,"#Version: v1.0")

call setline(8,"#Description: ")

call setline(9,"#*****************************************************************")

call setline(10,"")

endif

endfunc

autocmd BufNewFile * normal G

EOF

相关文章

网友评论

      本文标题:Linux基础及总结4之shell脚本练习

      本文链接:https://www.haomeiwen.com/subject/lainictx.html