yyds_yy

导航

流程控制语句、计划任务服务程序、用户身份(20220122)

#!/bin/bash

#For test

ping -c 3 -i 0.2 -W 3 $1 &> /dev/null

if [ $? -eq 0 ]

then

        echo "$1 is on-line"

else

        echo "$1 is off-line"

fi

 

#!/bin/bash

#For test

read -p "Enter:" GRADE  #-p用于输出提示用户信息

if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then

        echo "$GRADE is Excellent"

elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then

        echo "$GRADE is Pass"

else

        echo "$GRADE is fail"

fi

 

for范围循环语句

#!/bin/bash

#For test

read -p "Enter the users password:" PASSWD

for UNAME in `cat users.txt`

do

       id $UNAME &> /dev/null

       if [ $? -eq 0 ] ; then

              echo "user is exist"

       else

              useradd $UNAME

              echo "$PASSWD" | passwd --stdin $ UNAME &> /dev/null

              echo "$UNAME,create successful!"

       fi

done

 

#!/bin/bash

#For test

for IP in `cat ip.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

 

while条件循环语句

expr对变量和操作符计算

#!/bin/bash

#For test

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

 

case条件测试语句

#!/bin/bash

#For test

read -p "Enter:" INT

case "$INT" in

       [a-z]|[A-Z])

              echo "zimu"

              ;;

       [0-9])

              echo "shuzi"

              ;;

       *)

              echo "zifu"

esac

 

at一次性

crond周期性

 

一、at 时间

>执行内容

ctrl+d结束任务编写

at -l 查看计划内容

at -c 编号 :查看具体内容

atrm 编号  :删除任务

 

二、crond 服务名称

crontab 配置工具

分 时 日 月 星期 命令

无法获取PATH变量,使用绝对路径形式填写命令(whereis进行查询,RHEL8开始无需绝对路径)

crontab -e 编写任务,有报错提醒

crontab -e -u 用户名 :编辑其他用户的任务

空值用*占位:* * * * * 绝对路径命令

分钟       取值为0~59的整数

小时       取值为0~23的任意整数

日期       取值为1~31的任意整数

月份       取值为1~12的任意整数

星期       取值为0~7的任意整数,其中0与7均为星期日

crontab -l 查看任务

vim /etc/crontab

systemctl status crond

 

执行以下两条可以保证任务生效:

systemctl restart crond

systemctl enable crond

 

1,3,5 :逗号分隔

3-5    :连续时间

*/2   :每2

 

管理员     UID  0  root

系统用户  UID rhel5、6:1-499

                    rhel7、8:1-999

普通用户  UID rhel5、6:500-65535

                     rhel7、8:1000-

一、id 用户名:查看用户信息

基本组 与生俱来 (1个)

扩展组 后来可以添加 (多个)

二、useradd

-G 添加到扩展组

[root@yy ~]# useradd xiaohei -G root

[root@yy ~]# id xiaohei

uid=1008(xiaohei) gid=1008(xiaohei) groups=1008(xiaohei),0(root)

-u 指定uid号码

三、groupadd 创建扩展组

四、usermod

-G 为已存在用户添加新的扩展组

root@yy ~]# groupadd happy

[root@yy ~]# id xiaofu

uid=1007(xiaofu) gid=1007(xiaofu) groups=1007(xiaofu)

[root@yy ~]# usermod -G happy xiaofu

[root@yy ~]# id xiaofu

uid=1007(xiaofu) gid=1007(xiaofu) groups=1007(xiaofu),8889(happy)

五、cat /etc/group 查看所有用户组,编辑该配置文件可以实时生效

六、passwd :修改用户密码

passwd 用户名 :修改该用户密码

七、userdel

-r  删除用户及家目录信息

 

通过编辑配置文件的形式创建用户、用户组

Vim /etc/passwd

Vim /etc/group

Vim /etc/shadow

此时可查看到该用户已存在,但切换后不能使用,原因是没有该用户的家目录,需要将将/etc/skel/复制(cp  -ra,a为-pdr,保留文件的相关权限)到该用户的家目录下,并将该用户的身份授权到该家目录上(chown -R xx:xx /home/xx)。

/etc/skel/目录是用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。

 

 

posted on 2022-01-27 17:08  yyOops  阅读(46)  评论(0)    收藏  举报