shell脚本&用户身份
0、shell脚本(接上一篇shell脚本内容)
0.1 for条件循环语句
for循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理。for循环语句格式:
for 变量名 in 值1 值2 值3······ #几个值循环几遍
do
命令序列
done
相信都遇到过解压相当数量压缩包的情况,接下来我们就用for循环解决大量压缩包解压的问题。
大家应该都遇到过添加用户的情况,那么批量添加用户呢?其实内容相差不多,可以先准备一个文件用来存储用户名取代上图的重定向。
0.2 while条件语句循环
while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,他的循环结构往往在执行前并不确定最终的执行次数,完全不同于for循环语句中有目标、有范围的的使用场景。while循环语句格式:
while 测试语句
do
命令序列
done
我们就用1+2+3+······+99+100的值来学习一下while循环语句。
0.3 case条件测试语句
case相比较之软件开发使用的switch除了格式上有所区别没有什么变化。case条件测试语句格式:
case 变量值 in
值1)
命令序列1
;;
值2)
命令序列2
;;
······
*)
命令序列N
esac
当所有的值都不能匹配变量值时才执行命令序列N,在此之前任何一个值与变量值相匹配都执行相对应的命令序列。
1、计划任务服务程序
计划任务分为一次性计划任务和长期性计划任务。
1.1 一次性计划任务
一次性计划任务只执行一次,一般用于满足临时的需求。格式为:at 时间
例:晚上23:30重启网卡
1.2 长期性计划任务
长期性计划任务的服务是crond,但是使用该服务的工具是crontab,创建、编辑长期性计划的命令是crontab -e
。
长期性计划任务的格式从左往右分别为:分、时、日、月、星期、命令。
在长期计划任务中“分”字段一定不能为空或者是*,“日”字段和“星期”字段不能同时使用。
2、用户身份与能力
2.1useradd命令
useradd命令和adduser命令是一样的功能,参数也是相同,习惯用哪个就用哪一个就好。
useradd命令用于创建新的用户,格式为:useradd [参数] 用户名
。
该命令创建的用户如果不指定用户组的话将创建并加入一个与用户名相同的组
参数 | 作用 |
---|---|
-d | 指定用户家目录 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-u | 指定用户的UID |
-g | 指定一个主用户组 |
-G | 指定一个或多个副用户组 |
-N | 不创建与用户同名的用户组 |
-s | 指定用户的shell解释器 |
使用useradd创建完用户之后可以使用id +用户名
的方式查看是否创建完成。
id查询出来的用户信息包括UID、GID、groups。
2.2 groupadd命令
group命令用于创建用户组,格式为:groupadd [参数] 组名
。
2.3 usermod命令
usermod命令用于修改用户的属性,格式为:usermod [参数] 组名
。
用户的信息被保存在/etc/passwd文件内,可以直接修改文件也可以用usermod命令进行修改。
参数 | 作用 |
---|---|
-c | 填写用户的备注信息 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-g | 变更用户主组 |
-G | 变更用户副组 |
-L | 锁定用户禁止器登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户UID |
将用户添加到root组中
2.4 passwd命令
passwd命令用于修改用户密码、过期时间、认证信息等,格式为 :passwd [参数] [用户名]
。
root用户拥有权限修改系统中的信息而不用验证信息。
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许其登录 |
--stdin | 允许通过标准输入修改用户密码 |
-d | 是该用户可用空密码登录系统 |
-e | 强制用户在下次登陆时修改密码 |
-s | 显示用户的密码是否被锁定,以及密码采用的加密算法名称 |
修改账户密码 注:我这里弹出的错误都是密码强度不够不是设置出错
2.5 userdel命令
userdel命令用于删除用户,格式为:userdel [参数] 用户名
。
参数 | 作用 |
---|---|
-r | 强制删除用户 |
-f | 同时强制删除用户及用户家目录 |
本次内容偏少,同时重定向和shell脚本内容需要多加练习,我选的都是很简单的内容,只是为了了解各自语的格式使用