一、流程控制语句
1、for条件循环语句
for 变量名 in 取值列表
do
命令序列
done
如:文档users.txt中含有andy、barry、carl、duke、eric、george,批量创建这些用户,并设置密码
#!/bin/bash
read -p "Enter The Users Password:" PASSWD
for UNAME in ·cat users.txt·
do
id $UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo "Already exists"
else
uaeradd $UNAME &> /dev/null
echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null
if [ $? -eq 0]
then
echo "$UNAME,Create success"
else
echo "$UNAME,Create failure"
fi
fi
done
注:·命令·和$(命令)是一样的效果
2、while条件循环语句
while 条件测试操作
do
命令序列
done
如:生成个随机数,用户输入猜测值,知道猜对位置
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TIME-0
echo "商品实际价格为0-999之间,猜猜看是多少?"
while true
do
read -p “请输入您猜测的价格:”INT
let TIMES++
if [ $INT -eq $PRICE ]
then
echo "恭喜您答对了,实际价格 $PRICE"
echo "你一共猜了 $TIME 次"
exit 0
elif [ $INT -gt $PRICE ]
then
echo "太高了"
else
echo "太低了"
fi
done
3、case条件测试语句
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
......
*)
默认命令序列
esac
如:判断用户输入的树数字、字母还是其他字符
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case KEY in
[a-z] | [A-Z]
echo "您输入的是 字母"
;;
[0-9])
echo "您输入的是 数字"
;;
*)
echo "您输入的是空格、功能键或其他的控制字符"
esac
二、计划任务服务程序
1、一次性计划任务
如:at 10:10
at> reboot
at>同时按下ctrl + d结束计划任务
at -l:查看已设置好但还未执行的一次性计划任务
atrm 任务序号:删除任务计划
2、长期性计划任务
如:crontab -e(进入编程任务)
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
分 时 日 月 星期 命令
crontab -l:查看任务
用户身份与文件权限
一、用户身份与能力
管理员UID为0,系统用户UID为1-999,普通用户UID从1000开始
1、useradd命令(创建新用户)
1)-d:指定用户的家目录(,默认为/home/username)
2)-e:账户的到期时间,格式为YYYY-MM-DD
3)-u:指定改用户的默认UID
4)-g:制定一个初始的用户基本组(必须已存在)
5)-G:指定一个或多个扩展用户组
6)-N:不创建与用户通行的基本用户组
7)-s:指定该用户的默认Shell解析器
2、groupadd命名(创建用户组)
3、usermod命令(修改用户属性)
1)-c:填写用户账号的备注信息
2)-d -m:参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
3)-e:账户的到期时间,格式为YYYY-MM-DD
4)-g:变更所属用户组
5)-G:变更扩展用户组
6)-L:锁定用户禁止其登录系统
7)-U:解锁用户,允许其登录系统
8)-s:变更默认终端
9)-u:修改用户的UID
4、passwd命令(修改用户密码、过期时间、认证信息等)
1)-l:锁定用户,禁止其登录
2)-u:解锁用户,允许其登录
3)--stdin:允许通过标准输入修改用户密码,如echo "NEWPassWord" | passwd --stdin Username
4)-d:使该用户可用空密码登录系统
5)-e:强制用户在下次登录时修改密码
6)-s:显示用户的密码是否被锁定,以及密码所采用的加密算法名称
5、userdel命令(删除用户)
1)-f:强制删除用户
2)-r:同时删除用户及用户的家目录