流程控制语句、计划任务服务程序、用户身份(20220122)
#!/bin/bash
#For test
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "$1 is on-line"
else
echo "$1 is off-line"
fi
#!/bin/bash
#For test
read -p "Enter:" GRADE #-p用于输出提示用户信息
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is fail"
fi
for范围循环语句
#!/bin/bash
#For test
read -p "Enter the users password:" PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &> /dev/null
if [ $? -eq 0 ] ; then
echo "user is exist"
else
useradd $UNAME
echo "$PASSWD" | passwd --stdin $ UNAME &> /dev/null
echo "$UNAME,create successful!"
fi
done
#!/bin/bash
#For test
for IP in `cat ip.txt`
do
ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
if [ $? -eq 0 ] ; then
echo "$IP is on-line"
else
echo "$IP is off-line"
fi
done
while条件循环语句
expr对变量和操作符计算
#!/bin/bash
#For test
PRICE=`expr $RANDOM % 1000`
TIMES=0
while true
do
read -p "Enter:" INT
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo "congratulation, $TIMES"
exit
elif [ $INT -gt $PRICE ] ; then
echo "high"
else
echo "low"
fi
done
case条件测试语句
#!/bin/bash
#For test
read -p "Enter:" INT
case "$INT" in
[a-z]|[A-Z])
echo "zimu"
;;
[0-9])
echo "shuzi"
;;
*)
echo "zifu"
esac
at一次性
crond周期性
一、at 时间
>执行内容
ctrl+d结束任务编写
at -l 查看计划内容
at -c 编号 :查看具体内容
atrm 编号 :删除任务
二、crond 服务名称
crontab 配置工具
分 时 日 月 星期 命令
无法获取PATH变量,使用绝对路径形式填写命令(whereis进行查询,RHEL8开始无需绝对路径)
crontab -e 编写任务,有报错提醒
crontab -e -u 用户名 :编辑其他用户的任务
空值用*占位:* * * * * 绝对路径命令
分钟 取值为0~59的整数
小时 取值为0~23的任意整数
日期 取值为1~31的任意整数
月份 取值为1~12的任意整数
星期 取值为0~7的任意整数,其中0与7均为星期日
crontab -l 查看任务
vim /etc/crontab
systemctl status crond
执行以下两条可以保证任务生效:
systemctl restart crond
systemctl enable crond
1,3,5 :逗号分隔
3-5 :连续时间
*/2 :每2
管理员 UID 0 root
系统用户 UID rhel5、6:1-499
rhel7、8:1-999
普通用户 UID rhel5、6:500-65535
rhel7、8:1000-
一、id 用户名:查看用户信息
基本组 与生俱来 (1个)
扩展组 后来可以添加 (多个)
二、useradd
-G 添加到扩展组
[root@yy ~]# useradd xiaohei -G root
[root@yy ~]# id xiaohei
uid=1008(xiaohei) gid=1008(xiaohei) groups=1008(xiaohei),0(root)
-u 指定uid号码
三、groupadd 创建扩展组
四、usermod
-G 为已存在用户添加新的扩展组
root@yy ~]# groupadd happy
[root@yy ~]# id xiaofu
uid=1007(xiaofu) gid=1007(xiaofu) groups=1007(xiaofu)
[root@yy ~]# usermod -G happy xiaofu
[root@yy ~]# id xiaofu
uid=1007(xiaofu) gid=1007(xiaofu) groups=1007(xiaofu),8889(happy)
五、cat /etc/group 查看所有用户组,编辑该配置文件可以实时生效
六、passwd :修改用户密码
passwd 用户名 :修改该用户密码
七、userdel
-r 删除用户及家目录信息
通过编辑配置文件的形式创建用户、用户组
Vim /etc/passwd
Vim /etc/group
Vim /etc/shadow
此时可查看到该用户已存在,但切换后不能使用,原因是没有该用户的家目录,需要将将/etc/skel/复制(cp -ra,a为-pdr,保留文件的相关权限)到该用户的家目录下,并将该用户的身份授权到该家目录上(chown -R xx:xx /home/xx)。
/etc/skel/目录是用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。



浙公网安备 33010602011771号