第四周作业

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
#####################################
off
vim + $scriptname
set --
 
测试效果:通过位置参数将 文件名和版本号 赋予脚本,自动生成,创建version2 的test脚本
 

 

 

 

 

posted @ 2019-11-22 15:58  买啤酒的小胖子  阅读(140)  评论(0编辑  收藏  举报