for循环语句,
根据范围循环,有几个脚本循环几次
批量创建用户
# vim vuser.txt
zhangsan
lisi
wangwu
zhaoliu
:wq!
# cat vuser.txt
————————————————————
# vim haha.sh
#!/bin/bash
# xxxxxxxxxx 注释随便写
read -p “Enter: ” PASSWD
for UNAME in ` cat vuser.txt`
do
id $UNAME &> /dev/null
if [ $? -eq 0 ] 上一条执行成功返回为0
then
echo “ $UNAME is exist “
else
useradd $UNAME $> /dev/null
echo $PASSWD | passwd --stdin $UNAME &> /dev/null
echo “$UNAME is created” 用户已被创建
fi
done
# cat haha.sh
# id zhangsan
# bash haha.sh
【扩充】
如有空格必须加双引号,如没有可不加,建议保持良好习惯。
把100台服务地址保存到一个文件,通过文件调用并进行反馈:
随便写几个ip测试一下
# vim ipip.txt
192.168.10.10
192.168.10.20
192.168.10.30
127.0.0.1
:wq!
# vim ipip.sh
#!/bin/bash
# xxxxxxxxx
for IP in `cat ipip.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
:wq!
# bash ipip.sh
【扩】
`命令` = $(命令)
在调用文件或命令时,有两个方法执行
1.绝对路径 从根目录开始执行
cat /root/ip.txt
2.相对路径 相对于当前的位置
cd /root
cat ip.txt
根据条件循环,条件满足无限循环,条件不满足终止 *** 作,
for是根据范围循环,这时候可以用到while根据条件循环。
# echo $RANDOM 每回返回的值都不一样,因此将它限制到一个范围条件里
# vim six71.sh
#!/bin/bash
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
测试:
最终结果:
猜了11次。
【扩】自动把次数加一,记数用
let TIMES++
TIMES=$TIMES+1
i++
#!/bin/bash
read -p “Enter:” KEY
case $KEY in
- z]|[A-Z])
echo “Zimu”
;;
[0-9])
echo “Shuzi”
;;
*)
echo “Luanma”
esac
:wq!
设定时间重启服务器
# at 20:10
reboot
写完 ctrl+D 保存
# at -l 查看当前写好的计划任务
# at -c 1 查看计划任务的具体内容
(太长了,只截图开始部分)
# atrm 1 删除+数字,删除第几个
# at -l
at命令为单次有效命令。
crond 服务名称
crontab 配置工具(自动纠错)
-e 编辑计划任务
-u 指定用户名称
# whereis reboot 查询路径位置
* * * * * /路径, 如:
30 1 15 5 7/usr/share/man/man2/reboot
如果不想写日期则:
30 1 * 5 7
不想写月份:
30 1 * * 7 代表每个周日都执行
如每天:
30 1-6 * * * 每天1点30、2点30、3点30、4点30、5点30
30 1,3,6 * * * 每天0点30、3点30、6点30分执行
*/2 * * * * 每隔两分钟执行一次计划任务
# crontab -e
23 20 * * * /usr/sbin/reboot 每天晚上8点23分重启服务器
# crontab -l 查看
# crontab -e 然后dd 删除
再查看,就没有了。
# systemctl status crond
running = 正在运行、生效的
# systemctl enable crond
# su - linxprobe
$ crontab -e -ui
$ crontab -e -ui zhangsan
回复:没有权限
root 管理自己和所有人
普通用户 只能管理自己
管理员 : root UID:0 权限最大,可以管理硬件设备
系统用户 : 权限最小,比普通用户还小,不能管理其他日常工作
红帽5、6版本UID 为 1 - 499个
红帽7、8版本UID 为 1 - 999个
普通用户:
红帽5、6版本UID 为 500 - 65535个
红帽7、8版本UID 为 1000 - 无上限,
# id linuxprobe 看用户身份
用户名称 gid用户基本组 用户扩展组
生成用户时,就会有基本组 (与生俱来的),而扩展组是后加入的
-g修改基本组,-G修改扩展组
# groupadd company
# id linuxprobe
# usermod -G company linuxprobe
# id linuxprobe
(因为已经创建过compan组这里返回结果提示已经存在)
# useradd josh
# id josh
# useradd -u 88888 happy
# id happy
# useradd -s /sbin/nologin xiaoha
# su - xiaoha /sbin/nologin,毫无意义没有功能的
修改用户:
# usermod -u 66666 hayyp
# id happy
# useradd -s /sbin/nologin happy
# su - happy
root管理员可以改自己密码和其他人密码:
# passwd
输入两次
# passwd linuxprobe 修改别人,passwd 用户名
删除用户信息:
# cat /etc/passwd 查看
# userdel xiaoha 删除 + 用户名称
# id xiaoha 查看 + 用户
但是这样并没有删除干净
# cd /home
# ls 还能查到
# userdel -r happy
# id happy
# ls
通过配置文件新建/修改一个用户:
# vim /etc/passwd 查看保存的所有用户信息
进入编辑:
tooth:x:666:666:tooth:/home/tooth:/bin/bash
保存退出
# id tooth
编辑用户组:
# vim etc/group
tooth:x:666:
# id tooth
密码:
# vim /etc/shadow
可以直接用yy复制一行修改。 密码需要被加密。
# su - tooth
提示家目录不存在
$ exit 返回
# cp -a /etc/skel/ /home/tooth 复制过来
# id tooth
# su - tooth
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)