做网站刷点击,品牌建设思路,不懂代码怎么做网站,网站建设与维护功能意义:一、认识shell
常用解释器 Bash , ksh , csh
登陆后默认使用shell#xff0c;一般为/bin/bash#xff0c;不同的指令#xff0c;运行的环境也不同
二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件#xff0c;简单内容 ##xff01;/bin/bash …:一、认识shell
常用解释器 Bash , ksh , csh
登陆后默认使用shell一般为/bin/bash不同的指令运行的环境也不同
二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件简单内容 #/bin/bash //脚本声明时间和作者 #This is my first Shell-Script. //注释信息 cd /boot/ pwd ls -lh vml* # chmod x first.sh //赋予执行命令*只有赋值才能执行 方法1# . /frist.sh //执行脚本文件 方法2# sh /first.sh 方法3# source /first.sh 1.重定向 2.管道案例 [rootlocalhost ~]# grep “bash$” /etc/passwd | awk -F: ‘{print $1,$7}’ root /bin/bash teacher /bin/bash testtest2 三、变量
1.定义变量 “this is s test” 输出 this is s test this is a $test 输出 this is a test2 this is a \$test 输出 this is s \$test 2.设置全局变量 3.整数变量的运算 4.位置变量 案例
[roothfj ~]# vi /myprog.sh#!/bin/bash
echo first is:
echo $1
echo second is:
echo $2
echo three is:
echo $3
echo all number is:
echo $#
echo this process is:
echo $0[root localhost ~]# ./myprog.sh one two three four five sixirst is:
one
second is:
two
three is:
three
all number is:
4
this process is:
./myprog.sh
5.赋值时使用引号 “”双引号允许通过$符号引用其他变量值
‘’单引号在双引号按键的下方。禁止引用其他变量值$视为普通字符
、、反撇号在按键的下方。命令替换提取命令执行后的输出结果
6.预定义变量
$#命令行中位置变量的个数$*所有位置变量的内容$?上一条命令执行后返回的状态当返回状态值为0时表示执行正常非0值表示执行异常或出 错$0当前执行的进程/程序名
四、小实验
写欢迎脚本显示IP地址时间当前用户、系统运行时间和负载、系统版本信息。 任务命令分析如下
ifconfig -a ens160 、date 、whoami 、uptime 、uname -a
# vim /aaa
cho Welcome to my computer
echo 查看160端口信息
ifconfig -a ens160 | awk NR2 {print $2; exit}
echo 查看日期
date
echo 查看主机名称
whoami
echo 查看运行时间
uptime |awk {print $1}
echo 查看版本号
uname -a | awk {print $3}
#vim .bash_profile //写入开机文件
方法2
#!/bin/bash
# 变量定义
date$(date)
user$(whoami)
uptime$(uptime)
version$(uname -a)
ip$(ifconfig -a ens160|grep inet|grep -v 127.0.0.1|grep -v inet6|awk {print $2})red\033[31m // 红色
blue\033[34m //蓝色#显示信息
echo -e
echo -e ${blue}本机IP: ${red}$ip
echo -e ${blue}时间: ${red}$date
echo -e ${blue}当前用户: ${red}$user
echo -e ${blue}系统运行时间: ${red}$uptime
echo -e ${blue}版本信息: ${red}$version
echo -e 五、文件测试
test
[ ] :有空格
1.常用操作符文件比较 2.数值比较 3.字符串比较 4.逻辑测试 注意
最后输入 echo $? 才可输出结果结果为0 表示真确为其他数字表示错误
六、if语句
单分支双分支多分支
单分支 if then成立结果 fi结束 1.单分支实验
#!/bin/bash
MOUNT_DIR/mnt/cdrom/
if [ ! -d $MOUNT_DIR ]
thenmkdir -p $MOUNT_DIR
fi
当脚本可以执行时echo $?输出为0脚本文件错误时和执行后错误无关显示非0
2.多分支实验
pinghost.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 /dev/null
if [ $? -eq 0 ]
thenecho Host $1 is up.
elseecho Host $1 is down.
fi备注
-c 发送包数量 -i 间隔时间 -W最长等待时间
实验
编写监控脚本sysmon.sh 监控CPU使用率、内存使用率、根分区/的占用率 百分比精确到个位如7%、12% 出现以下情况时告警磁盘占用率超过90%、CPU使用率超过80%、内存使用率超过90%。 报警记录到日志文件/var/log/use.log。
结合计划任务每半小时检查一次 30分钟。 分析命令 mpstat 先安装工具包yum install sysstat free 查看内存占有率 df -h 文件系统使用率 if条件分支。
# vim /a3
//#!/bin/bash
//# 磁盘占有率超过90%CPU使用率超过80%内存使用率超过90%发送报警记录
disk$(df -Th | grep /$ | awk {print $6} | awk -F% {print $1})
CPU$(expr 100 - $(mpstat | tail -1 | awk {print $13} | awk -F. {print $1}))
mem$(expr $(free -m | grep Mem: | awk {print $7}) \* 100 / $(free -m | grep Mem: | awk {print $2}))
A/var/log/use.log
if [ $disk -ge 90 ]
then echo 磁盘占有率超过90% $A
elseecho 磁盘占有率:$disk%
fi
if [ $CPU -ge 80 ]
then echo CPU使用率超过80% $A
elseecho CPU使用率:$CPU%
fi
if [ $mem -ge 90 ]
then echo 内存使用率超过90% $A
elseecho 内存使用率:$mem%fi
# crontab -e
*/30 * * * * . /a3七、awk工具
1.选项 八、for语句 for 变量名 in 取值列表 do 命令序列 done 1.实验
批量添加用户 用户名存放在users.txt文件中每行一个 初始密码均设为123456 验证脚本
1、编写用户列表
[roothfj ~]# cat userlist.txt
wangxin
anxin
jinhu
yangying
2、编写脚本
vi useradd.sh
#!/bin/bash
#add users
a$(cat /root/userlist.txt)for b in $a
douseradd ${b}echo 123456 | passwd --stdin ${b} /dev/null
done3、删除用户的脚本
#!/bin/bash
a$(cat /root/userlist.txt)
for b in $a
douserdel -r ${b} /dev/null
done十、while语句
while循环语句语法 while 条件测试操作 do 命令序列 done 1.实验
批量添加用户 用户名称以stu开头按数字顺序进行编号 一共添加20个用户即stu1、stu2、……、stu20 初始密码均设为123456
#!/bin/bash
namestu
i1
while [ $i -le 20 ]
douseradd ${name}$iecho 123456 | passwd --stdin ${name}$i /dev/nulllet i
done2.实验
猜商品价格游戏通过变量RANDOM获得随机数提示用户猜测并记录次数猜中后退出循环 #我这里还加了if语句填了一点其他元素。
#!/bin/bash
#
a$(expr ${RANDOM} % 1000) //取余
i0
while true
doread -p 猜猜看我想的是哪个数范围在0~999。 shulet iif [ $shu -eq $a ];thenif [ $i -lt 10 ];thenecho 太强了你猜了$i 次就猜中了可惜没得奖励。elseecho 猜了$i 次才猜中你还差的远呢fibreakelif [ $shu -lt $a ];thenif [ $(expr $a - $shu) -le 5 ] ;thenecho 虽然数小了但已经很近了你在想想elseecho 不好意思猜的太小了fielse
if [ $(expr $shu - $a) -le 5 ];thenecho 虽然数大了但已经很近了你在考虑考虑elseecho 不好意思猜大了数再小点fifi
done 十一、case语句 case 条件 in 条件1 执行语句 条件2 执行语句 * //其余条件 执行语句 esac erad -p “从屏幕输入” 变量名 1.小实验
击键类型识别 ·提示用户输入一个字符判断出该字符是字母、数字或者其他字符
#!/bin/bash
read -p 请在键盘输入一个 字符 : KEY
case $KEY in
[a-z]|[A-Z])
echo 这是字母
;;
[0-9])
echo 这是数字
;;
*)
echo 这是其他符号
esac2.位置参数实验
命令后的第一个字段是$1 依次向后叠加
编写系统服务脚本 使用start、stop、restart等参数来控制服务服务控制指令通过位置变量$1传入
#!/bin/bash
case $1 instart )systemctl start $2echo 开启 $2;;stop )systemctl stop $2echo 关闭 $2;;status )systemctl status $2echo 查询 $2;;*)systemctl restart $2echo 重启 $2;;
esac 十二、egrep匹配工具
正则表达式 小测试
重生归来不甘心再被欺辱的你决定一雪前耻改写命运改写命运第一步写出满足以下条件的正则表达式