编写shell脚本: 实验案列一:编写脚本用于批量添加用户 要求如下: 要求提供交互功能,当管理员执行该脚本时,可以根据提示指定需添加的用户数量(少于100)、用户名前缀、并能够设置这些用户账户的失效时间,初始密码。 用户名编号统一使用两位数,如使用”01”、”02”、”03”的形式,而不是”1”、”2”、”3”的形式。 编写对应的批量删节除用户脚本,要能够通过命令行参数指定用户名前缀,执行脚本后删除所有使用了该前缀的用户账户,但要防止删除root用户。 批量添加用户脚本: 1、批量添加用户脚本myuadd.sh内容如下: vi myuadd.sh #!/bin/bash read-p "input nu <1-99>:" nu read-p "input name:" name read-p "input date <YYYY-MM-DD>:" date read-p "input password:" password a=1 if[ $nu -lt 100 ] then while[ $a -le $nu ] do if [ $a -lt 10 ] then useradd -e $date"$name"0"$a" echo "$password" | passwd--stdin "$name"0"$a" &>/dev/null else useradd -e $date"$name""$a" echo "$password" | passwd--stdin "$name""$a" &>/dev/null fi a=`expr$a + 1` done fi 2、给脚本myuadd.sh增加x权限 Chmod +x myyuadd.sh 3、执行脚本myuadd.sh,添加用户 ./myyuadd
4、验证结果:查看/etc/passwd文件是否添了新用户 Tail /etc/passwd 实验案列二:批量删除用户脚本: 1、批量删除用户脚本myudel.sh内容如下: Vi myudel.sh #!/bin/bash if[ $# -le 0 ] ; then echo "error:the prefix of users has notbe specified." echo "usage:$0 nameprefix" exit 1 fi tarjcvf /root/users.cnf.tar.gz /etc/passwd /etc/shadow /etc/group &>/dev/null tobedel=`grep"$1" /etc/passwd | cut -d ":" -f 1 | grep -v"root"` foru in $tobedel do userdel -r $u &> /dev/null done 2、给脚本myudel.sh增加x权限 Chmod + x myudel.sh 3、执行脚本myudel.sh,删除用户。如./myudel.shcaiwu03或./myudel.sh caiwu 4、验证结果:查看/etc/passwd文件中已删除的用户是否还存在。 Tail /etc/passwd 附: 我们可以用env或export命令查看环境变量,使用set命令查看所有变量(包括环境变量和自定义变量),使用unset命令删除变量 LINUX系统中大多数版本都有随机数生成器,就是/dev/random文件。可以通过这个随机数文件相关的系统环境变量$RANDOM来随机取得随机数。在BASH环境下,这个RANDOM变量的内容介于0——32767之间,(man bash,搜索 RANDOM 可以看到说明)所以,只要echo $RANDOM时,系统就会主动随机取出一个介于0——32767的数值。例如要想0-9之间的随机数时,可以用declare声明数值类型
或
|