2020-10-21

it2024-11-27  16

Linux第七天

shell脚本文件

for循环语句 for循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时,使用for循环语句再适合不过了。for循环语句的语法格式如图4-20所示。

下面使用for循环语句从列表文件中读取多个用户名,然后为其逐一创建用户账户并设置密码。首先创建用户名称的列表文件users.txt,每个用户名称单独一行。读者可以自行决定具体的用户名称和个数: [root@linuxprobe ~]# vim users.txt andy barry carl duke eric george 接下来编写Shell脚本addusers.sh。在脚本中使用read命令读取用户输入的密码值,然后赋值给PASSWD变量,通过-p参数向用户显示一段提示信息,告诉用户正在输入的内容即将作为账户密码。在执行该脚本后,会自动使用从列表文件users.txt中获取到所有的用户名称,然后逐一使用“id 用户名”命令查看用户的信息,并使用$?判断这条命令是否执行成功,也就是判断该用户是否已经存在。

[root@linuxprobe ~]# vim addusers.sh #!/bin/bash read -p “Enter The Users Password : " PASSWD for UNAME in cat users.txt do id $UNAME &> /dev/null if [ ? − e q 0 ] t h e n e c h o " ? -eq 0 ] then echo " ?eq0]thenecho"UNAME , Already exists” else useradd KaTeX parse error: Expected 'EOF', got '&' at position 7: UNAME &̲> /dev/null …PASSWD" | passwd --stdin KaTeX parse error: Expected 'EOF', got '&' at position 7: UNAME &̲> /dev/null …UNAME , Create success" fi done

while条件循环语句 while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目标、有范围的使用场景。while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环。 接下来结合使用多分支的if条件测试语句与while条件循环语句,编写一个用来猜测数值大小的脚本Guess.sh。该脚本使用$RANDOM变量来调取出一个随机的数值(范围为0~32767),将这个随机数对1000进行取余操作,并使用expr命令取得其结果,再用这个数值与用户通过read命令输入的数值进行比较判断。这个判断语句分为三种情况,分别是判断用户输入的数值是等于、大于还是小于使用expr命令取得的数值。当前,现在这些内容不是重点,我们当前要关注的是while条件循环语句中的条件测试始终为true,因此判断语句会无限执行下去,直到用户输入的数值等于expr命令取得的数值后,这两者相等之后才运行exit 0命令,终止脚本的执行。

case条件测试语句 输入多个不同数据类型,可以输出不同命令,不会崩溃的脚本。 计划任务服务程序 一次性任务,at 长期性任务,我们会希望Linux系统能够周期性地、有规律地执行某些具体的任务,那么Linux系统中默认启用的crond服务简直再适合不过了。创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。

新的一天,用户身份与文件权限

用户有三种身份,管理员,系统用户,普通用户。

创建用户,useradd

创建用户组,groupadd

修改用户的属性,usermod

修改密码,用户登陆的限制,过期时间和认证信息,passwd

删除用户,userdel

文件权限与归属 文件类型使用不同字符区分, -,d,l,b,c,p。 权限分为三个归属,所有者,所属组,其他用户。 eg,rwxrwxrwx,数字法表示为777,就是r代表4,w代表2,x代表1。 文件还有特殊权限,分别是suid,sgid,sbit。 数字也是421。 suid,对用户临时获得所有者权益。 加了suid的文件权限是,rwsrwxrwx,小写s是有执行权限,大写S为没有执行权限。 sgid,让执行者有所属组的权限,还有目录有此权限是让目录里面创建的文件所属组与目录所属组一样。 eg,rwxrwsrwx。 sbit,只能让用户删除自己的文件。 eg,rwxrwxrwt

注意,添加这些权限可以使用chmod里面的数字法,如图,

最新回复(0)