Linux学习第六天
< 返回列表时间: 2020-02-23来源:OSCHINA
【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>>>
接续第4章部分内容

while条件循环语句
--是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目标、有范围的使用场景。while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环
[root@linuxprobe ~]# vim Guess.sh #!/bin/bash PRICE=$(expr $RANDOM % 1000) TIMES=0 echo "商品实际价格为0-999之间,猜猜看是多少?" while true do read -p "请输入您猜测的价格数目:" INT let TIMES++ if [ $INT -eq $PRICE ] ; then echo "恭喜您答对了,实际价格是 $PRICE" echo "您总共猜测了 $TIMES 次" exit 0 elif [ $INT -gt $PRICE ] ; then echo "太高了!" else echo "太低了!" fi done
$RANDOM变量
--来调取出一个随机的数值(范围为0~32767)
expr命令
--用于判断用户输入的数值是等于,大于还是小于,并取得数值
let TIMES++
--当每次循环到let TIMES++命令时都会让TIMES变量内的数值加1
case条件测试语句
[root@linuxprobe ~]# vim Checkkeys.sh #!/bin/bash read -p "请输入一个字符,并按Enter键确认:" KEY case "$KEY" in [a-z]|[A-Z]) ( 逻辑“或” |,固定格式,Shell脚本中的逻辑“或”不同 ) 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~ 您输入的是 空格、功能键或其他控制字符。
计划任务服务程序
一次性计划任务 at
--格式:at 时间 at -l 列出已有的计划任务 at -c 编码 显示具体的工作内容 at -r 编码 删除某个计划任务 atrm 编码 删除某个计划任务 ctrl+D 结束编写计划任务
周期性计划任务 crond
crond 服务名称 crontab 配置工具 crontab -e 创建、编辑计划任务命令 crontab -l 查看当前计划任务命令 crontab -r 删除某条计划任务命令 crontab -u 编辑他人的计划任务命令 crond 口诀"分、时、日、月、星期 命令"这是使用crond服务设置任务的参数格式, 如果某些字段没有设置需要用星号( * )占位 字段 说明 分钟 取值为0~59的整数 小时 取值为0~23的任意整数 日期 取值为1~31的任意整数 月份 取值为1~12的任意整数 星期 取值为0~7的任意整数,其中0与7均为星期日 命令 要执行的命令或程序脚本
--e.g * * * * * /usr/sbin/reboot 30 1 5 3 * /usr/sbin/reboot 每年3月5日1点30分重启 20 2 1-3 * * /usr/sbin/reboot 每月1-3日2点20分重启 30 */2 4 * * /usr/sbin/reboot 每年4月每天每隔2小时30分进行重启 =============================================我·是·分·割·线=============================================
第5章 用户身份与文件权限
用户身份与能力
--RHEL 7 系统中,用户分为以下几种:
--用户的UID具有唯一性 管理员 uid:0 root 系统用户 uid:1-999 RHEL5/6 1-499(系统用户) 普通用户 uid:1000-无穷 RHEL5/6 500-65535(普通用户)
--用户组号码(GID, Group IDentification ),同一用户组可以添加多个用户
--Linux系统中创建每个用户时,将自动创建一个与其同名的 基本用户组 ,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为 扩展用户组 。 一个用户只有一个基本用户组 , 但是可以有多个扩展用户组
useradd命令
--用于创建新用户,格式:“useradd [选项] 用户名”
--创建用户账户时,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash , 而且默认会创建一个与该用户同名的基本用户组 参数 作用 -d 指定用户的家目录(默认为/home/username) -e 账户的到期时间,格式为YYYY-MM-DD. -u 指定该用户的默认UID -g 指定一个初始的用户基本组(必须已存在) -G 指定一个或多个扩展用户组 -N 不创建与用户同名的基本用户组 -s 指定该用户的默认Shell解释器
--e.g 下面我们创建一个普通用户并指定家目录的路径、用户的UID以及Shell解释器。在下面的命令中,请注意/sbin/nologin,它是终端解释器中的一员,与Bash解释器有着天壤之别。一旦用户的解释器被设置为nologin,则代表该用户不能登录到系统中: [root@linuxprobe ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe [root@linuxprobe ~]# id linuxprobe uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe)
groupadd命令
--用于创建用户组,格式:“groupadd [选项] 群组名”
--e.g [root@linuxprobe ~]# groupadd ronny
usermod命令
--用于修改用户的属性,格式为“usermod [选项] 用户名”
--用户的信息保存在/etc/passwd文件中 参数 作用 -c 填写用户账户的备注信息 -d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 -e 账户的到期时间,格式为YYYY-MM-DD -g 变更所属用户组 (基本用户组) -G 变更扩展用户组 (扩展用户组) -L 锁定用户禁止其登录系统 -U 解锁用户,允许其登录系统 -s 变更默认终端 -u 修改用户的UID
--e.g 我们先来看一下账户linuxprobe的默认信息: [root@linuxprobe ~]# id linuxprobe uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe) 然后将用户linuxprobe加入到root用户组中,这样扩展组列表中则会出现root用户组的字样,而基本组不会受到影响: [root@linuxprobe ~]# usermod -G root linuxprobe [root@linuxprobe ~]# id linuxprobe uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root) 再来试试用-u参数修改linuxprobe用户的UID号码值。除此之外,我们还可以用-g参数修改用户的基本组ID,用-G参数修改用户扩展组ID。 [root@linuxprobe ~]# usermod -u 8888 linuxprobe [root@linuxprobe ~]# id linuxprobe uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
passwd命令
--用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]” 参数 作用 -l 锁定用户,禁止其登录 -u 解除锁定,允许用户登录 --stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username -d 使该用户可用空密码登录系统 -e 强制用户在下次登录时修改密码 -S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
--e.g [root@linuxprobe ~]# passwd Changing password for user root. New password:此处输入密码值 Retype new password: 再次输入进行确认 passwd: all authentication tokens updated successfully. [root@linuxprobe ~]# passwd linuxprobe Changing password for user linuxprobe. New password:此处输入密码值 Retype new password: 再次输入进行确认 passwd: all authentication tokens updated successfully.
--e.g 可以使用passwd命令禁止该用户登录系统,等假期结束回归工作岗位时,再使用该命令允许用户登录系统,而不是将其删除。这样既保证了这段时间内系统的安全,也避免了频繁添加、删除用户带来的麻烦: [root@linuxprobe ~]# passwd -l linuxprobe Locking password for user linuxprobe. passwd: Success [root@linuxprobe ~]# passwd -S linuxprobe linuxprobe LK 2017-12-26 0 99999 7 -1 (Password locked.) [root@linuxprobe ~]# passwd -u linuxprobe Unlocking password for user linuxprobe. passwd: Success [root@linuxprobe ~]# passwd -S linuxprobe linuxprobe PS 2017-12-26 0 99999 7 -1 (Password set, SHA512 crypt.)
userdel命令
--用于删除用户,格式为“userdel [选项] 用户名” 参数 作用 -f 强制删除用户 -r 同时删除用户及用户家目录
--e.g 下面使用userdel命令将linuxprobe用户删除,其操作如下: [root@linuxprobe ~]# id linuxprobe uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root) [root@linuxprobe ~]# userdel -r linuxprobe [root@linuxprobe ~]# id linuxprobe id: linuxprobe: no such user
文件权限与归属 -:普通文件 d:目录文件 l:链接文件 b:块设备文件 c:字符设备文件 p:管道文件


--e.g 数字权限 文件权限 764 rwxrw-r-- 642 rw-r---w- 153 --xr-x-wx 731 rwx-wx--x

复习:第4章
预习:28日第5章,29日第6章,3月1日第7章
热门排行