1.Shell脚本之case
1.1case条件测试语句
[root@linuxprobe ~]# vim Checkkeys.sh
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "您输入的是 字母。"
;;
[0-9])
echo "您输入的是 数字。"
;;
*)
echo "您输入的是 空格、功能键或其他控制字符。"
esac
[root@linuxprobe ~]# bash Checkkeys.sh
请输入一个字符,并按Enter键确认:6
您输入的是 数字。
[root@linuxprobe ~]# bash Checkkeys.sh
请输入一个字符,并按Enter键确认:p
您输入的是 字母。
[root@linuxprobe ~]# bash Checkkeys.sh
请输入一个字符,并按Enter键确认:^[[15~
您输入的是 空格、功能键或其他控制字符。
1.2计划任务服务程序
一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用at命令实现这种功能,只需要写成“at 时间”的形式就可以。如果想要查看已设置好但还未执行的一次性计划任务,可以使用“at -l”命令;要想将其删除,可以用“atrm 任务序号”。在使用at命令来设置一次性计划任务时,默认采用的是交互式方法。
长期性计划任务:crond服务,命令为 crontab ;创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。需要注意的是,如果有些字段没有设置,则需要使用星号(*)占位。
字段 说明
分钟 取值为0~59的整数
小时 取值为0~23的任意整数
日期 取值为1~31的任意整数
月份 取值为1~12的任意整数
星期 取值为0~7的任意整数,其中0与7均为星期日
命令 要执行的命令或程序脚本
2.用户身份与文件权限
2.1 用户身份
useradd命令:
用于创建新的用户,格式为“useradd [选项] 用户名”。
参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器
groupadd命令:
groupadd命令用于创建用户组,格式为“groupadd [选项] 群组名”。
usermode命令:
· usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
参数 作用
-c 填写用户账户的备注信息
-d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
passwd命令:
passwd命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。
参数 作用
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
userdel命令:
userdel命令用于删除用户,格式为“userdel [选项] 用户名”。
参数 作用
-f 强制删除用户
-r 同时删除用户及用户家目录
2.2 文件权限
尽管在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。
文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。例如,若某个文件的权限为7则代表可读、可写、可执行(4+2+1);若权限为6则代表可读、可写(4+2)。我们来看这样一个例子。现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而且其他人只有可读的权限。那么,这个文件的权限就是rwxrw-r–,数字法表示即为764。不过大家千万别再将这三个数字相加,计算出7+6+4=17的结果,这是小学的数学加减法,不是Linux系统的权限数字表示法,三者之间没有互通关系。
2.3 文件特殊权限
1.SUID——执行者临时获取命令的所有者的权限
查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。
如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。
2.SGID——目录内新建文件所有组,继承原有目录所有组的名称
chmod命令——用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称”。
chown命令——设置文件或目录的所有者和所属组,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。
chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录进行操作时需 要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。
3.SBIT——特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。(粘滞位、保护位 o+t)
当目录被设置SBIT特殊权限位后,文件的其他人权限部分的x执行权限就会被替换成t或者T,原本有x执行权限则会写成t,原本没有x执行权限则会被写成T。
2.4 文件的隐藏属性
1.chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。
2.lsattr命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
2.5 文件访问控制列表
1.setfacl命令用于管理文件的ACL规则,格式为“setfacl [参数] 文件名称”。
2.getfacl命令用于显示文件上设置的ACL信息,格式为“getfacl 文件名称”。
想要设置ACL,用的是setfacl命令;要想查看ACL,则用的是getfacl命令。
2.6 su命令与sudo服务
1.su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户
su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。
2.sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。