第四周作业
1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
解答: 统计默认shell为非/sbin/nologin的用户个数:grep -v "/sbin/nologin" /etc/passwd|wc -l
统计默认shell为非/sbin/nologin的用户名:grep -v "/sbin/nologin" /etc/passwd|cut -d : -f1
2、查出用户UID最大值的用户名、UID及shell类型
解答:cat /etc/passwd|sort -t : -k 3 -n|cut -d : -f 1,3,7|tail -1
3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
解答: netstat -tun|grep "ESTABLISHED"|tr -s " " :|cut -d: -f6|sort -nr|uniq -c
4、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等 信息
脚本如下:
#! /bin/bash
id $1 &> /dev/null
if [ $? != 0 ];then
useradd $1 >>/dev/null
id $!
else
echo "$1 is exist!!!"
fi
测试效果:重复创建用户rooter,效果如下
5、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等
解答:脚本如下
#!/bin/bash
##################################
#Scriptname:creatscript.sh
#Description:
#Date:2019-11-22
#Author:mwd
#Version:version1
#####################################
[ $# -gt 2 ]&&echo "arg must be two,the first argment is script name,the second is script version"&&exit 1
[ $# -eq 1 ]&&read -p "please input scriptname and version: " scriptname version
[ $# -eq 2 ]&&scriptname=$1&&version=$2
[ -a "$scriptname" ]&&echo "$scriptname is exit"&&exit 101
touch $scriptname
chmod a+x $scriptname
cat>>$scriptname<<off
#!/bin/bash
##################################
#Filename:`basename $scriptname`
#Description:
#Date:`date +%F`
#Author:mwd
#Version:$version
#####################################
##################################
#Scriptname:creatscript.sh
#Description:
#Date:2019-11-22
#Author:mwd
#Version:version1
#####################################
[ $# -gt 2 ]&&echo "arg must be two,the first argment is script name,the second is script version"&&exit 1
[ $# -eq 1 ]&&read -p "please input scriptname and version: " scriptname version
[ $# -eq 2 ]&&scriptname=$1&&version=$2
[ -a "$scriptname" ]&&echo "$scriptname is exit"&&exit 101
touch $scriptname
chmod a+x $scriptname
cat>>$scriptname<<off
#!/bin/bash
##################################
#Filename:`basename $scriptname`
#Description:
#Date:`date +%F`
#Author:mwd
#Version:$version
#####################################
off
vim + $scriptname
set --
vim + $scriptname
set --
测试效果:通过位置参数将 文件名和版本号 赋予脚本,自动生成,创建version2 的test脚本
![](https://common.cnblogs.com/images/loading.gif)