当前位置: 首页 > news >正文

房产发布网站建设微信首页制作代码

房产发布网站建设,微信首页制作代码,浏览器什么网站都能打开的,qq网页即时聊天目录 前言 1. Vim文本编辑器 1.1 编写简单文档 1.2 配置主机名称 1.3 配置网卡信息 1.4 配置软件仓库 2. 编写Shell脚本 2.1 编写简单的脚本 2.2 接收用户的参数 2.3 判断用户的参数 3. 流程控制语句 3.1 if条件测试语句 3.2 for条件循环语句 3.3 while条件循环语…目录 前言 1. Vim文本编辑器 1.1 编写简单文档 1.2 配置主机名称 1.3 配置网卡信息 1.4 配置软件仓库 2. 编写Shell脚本 2.1 编写简单的脚本 2.2 接收用户的参数 2.3 判断用户的参数 3. 流程控制语句 3.1 if条件测试语句 3.2 for条件循环语句 3.3 while条件循环语句 3.4 case条件测试语句 4. 计划任务服务程序 前言 悟已往之不谏知来者之可追。实迷途其未远觉今是而昨非。舟遥遥以轻飏风飘飘而吹衣。问征夫以前路恨晨光之熹微。 本系列依照《Linux就该这么学》第二版随书学习练习操作将一些课本上不顺畅的地方全部以最简方式免费开源展示给大家资源大家可以自行百度学习起来我们既要多巴胺也要内啡肽。 我们继续开垦万稳万当不如一默分内事分内做少应承多沉默博观而约取厚积而薄发这次咱们憋个大的。莫文蔚的阴天周杰伦的晴天都不如你爱学习的每一天送上一首天王的周杰伦-晴天希望生活中的每天都是元气满满的一天本章网络血难调找了好多答案习惯了centos7的网络配置了不太喜欢没有netwoke不过配置好了还是一样用。 1. Vim文本编辑器 在Linux系统中一切都是文件而配置一个服务就是在修改其配置文件的参数Vim编辑器中设置了3种模式—命令模式、末行模式和编辑模式每种模式分别又支持多种不同的命令快捷键。 命令模式控制光标移动可对文本进行复制、粘贴、删除和查找等工作。 输入模式正常的文本录入。 末行模式保存或退出文档以及设置编辑环境。 在每次运行Vim编辑器时默认进入命令模式此时需要先切换到输入模式后再进行文档编写工作。而每次在编写完文档后需要先返回命令模式然后再进入末行模式执行文档的保存或退出操作。在Vim中无法直接从输入模式切换到末行模式。 命令模式中最常用命令 命令作用dd删除剪切光标所在整行5dd删除剪切从光标处开始的5行yy复制光标所在整行5yy复制从光标处开始的5行n显示搜索命令定位到的下一个字符串N显示搜索命令定位到的上一个字符串u撤销上一步的操作p将之前删除dd或复制yy过的数据粘贴到光标后面 末行模式主要用于保存或退出文件以及设置Vim编辑器的工作环境还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式在命令模式中输入冒号 末行模式中最常用命令 命令作用:w保存:q退出:q!强制退出放弃对文档的修改内容:wq!强制保存退出:set nu显示行号:set nonu不显示行号:命令执行该命令:整数跳转到该行:s/one/two将当前光标所在行的第一个one替换成two:s/one/two/g将当前光标所在行的所有one替换成two:%s/one/two/g将全文中的所有one替换成two?字符串在文本中从下至上搜索该字符串/字符串在文本中从上至下搜索该字符串 1.1 编写简单文档 编写脚本文档 [rootlocalhost ~]# vim test.txt 打开文档后默认进入的是Vim编辑器的命令模式。 使用a、i、o三个键从命令模式切换到输入模式a键与i键分别是在光标后面一位和光标当前位置切换到输入模式而o键则是在光标的下面再创建一个空行。 在编写完之后要想保存并退出必须先敲击键盘的Esc键从输入模式返回命令模式然后再输入“:wq!”切换到末行模式才能完成保存退出操作。 1.2 配置主机名称 在Linux系统中主机名大多保存在/etc/hostname文件中将文件内容改为“weihongbin” 第1步使用Vim编辑器修改/etc/hostname主机名称文件。 第2步把原始主机名称删除后追加“weihongbin”。注意使用Vim编辑器修改主机名称文件后要在末行模式下执行“:wq!”命令才能保存并退出文档。 第3步保存并退出文档然后使用hostname命令检查是否修改成功。 [rootlocalhost ~]# vim /etc/hostname [rootlocalhost ~]# systemctl restart systemd-hostnamed [rootlocalhost ~]# hostname weihongbin 1.3 配置网卡信息 名称为ifcfg-ens160的网卡设备将其配置为开机自启动并且IP地址、子网、网关等信息由人工指定动态网卡转为静态网卡。 第1步首先切换到/etc/sysconfig/network-scripts目录中存放着网卡的配置文件。 第2步使用Vim编辑器修改网卡文件ifcfg-ens160逐项写入下面的配置参数并保存退出。由于每台设备的硬件及架构是不一样的因此请读者使用ifconfig命令自行确认各自网卡的默认名称。 踩坑大集锦 提前先查一下自己的虚拟网络是什么网关不要跟我写的一样导致ping: www.baidu.com: Name or service not known连不上网选择虚拟网络编辑器 进入虚拟网络编辑器取消DHCP同时选择NAT设置将网关改成192.168.227.2 修改vm8的网关搜索控制面板\网络和 Internet\网络连接选择vm8右击属性选IPV4属性 配置一下IP地址和默认网关IP地址选192.168.227.1默认网关选192.168.227.2dns首选8.8.8.8 这时候我们看一下我们的本机主机通过winR命令输入cmd进入命令符输入ipconfig 配置完成然后看一下以下这几个概念 设备类型TYPEEthernet 地址分配模式BOOTPROTOstatic 网卡名称NAMEens160 是否启动ONBOOTyes IP地址IPADDR192.168.227.10 子网掩码NETMASK255.255.255.0 网关地址GATEWAY192.168.227.1 DNS地址DNS1192.168.227.1 DNS地址DNS28.8.8.8 第3步重启网络服务并测试网络是否连通。 进入到网卡配置文件所在的目录然后编辑网卡配置文件在其中填入下面的信息红色为修改或添加部分默认我们的虚拟机是192.168.227.10你们也可以设置其他的 [rootlocalhost ~]# cd /etc/sysconfig/network-scripts/ [rootlocalhost network-scripts]# vim ifcfg-ens160   TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno NAMEens160 UUID83230184-678e-4b11-b50c-20e37b235a70 DEVICEens160 ONBOOTyes IPADDR192.168.227.10 NETMASK255.255.255.0 GATEWAY192.168.227.2 DNS1192.168.227.1 DNS28.8.8.8 重启reboot如果你现在是在用xshell连接建议先断开连接后重新接入新的ip地址再试 不想重启可以执行 systemctl restart NetworkManager或nmcli connection reload ens160 [rootweihongbin ~]# ping 192.168.227.10 PING 192.168.227.10 (192.168.227.10) 56(84) bytes of data. 64 bytes from 192.168.227.10: icmp_seq1 ttl64 time0.080 ms 64 bytes from 192.168.227.10: icmp_seq2 ttl64 time0.048 ms [rootlocalhost network-scripts]# ping www.baidu.com PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data. 64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq1 ttl128 time5.71 ms 64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq2 ttl128 time5.28 ms 64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq3 ttl128 time5.72 ms 1.4 配置软件仓库 软件仓库是一种能进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系的技术搭建并配置软件仓库的大致步骤如下所示 第1步进入/etc/yum.repos.d/目录中因为该目录存放着软件仓库的配置文件红色为添加字段。 第2步使用Vim编辑器创建一个名为rhel8.repo的新配置文件文件名称可随意但后缀必须为.repo逐项写入下面的配置参数并保存退出。 仓库名称具有唯一性的标识名称不应与其他软件仓库发生冲突。 描述信息name可以是一些介绍性的词易于识别软件仓库的用处。 仓库位置baseurl软件包的获取方式可以使用FTP或HTTP下载也可以是本地的文件需要在后面添加file参数。 是否启用enabled设置此源是否可用1为可用0为禁用。 是否校验gpgcheck设置此源是否校验文件1为校验0为不校验。 公钥位置gpgkey若上面的参数开启了校验功能则此处为公钥文件位置。若没有开启则省略不写。 [rootweihongbin yum.repos.d]# vim rhel8.repo [BaseOS] nameBaseOS baseurlfile:///media/cdrom/BaseOS enabled1 gpgcheck0 [AppStream] nameAppStream baseurlfile:///media/cdrom/AppStream enabled1 gpgcheck0 第3步按配置参数中所填写的仓库位置挂载光盘并把光盘挂载信息写入/etc/fstab文件中红色添加。 [rootweihongbin yum.repos.d]# mkdir -p /media/cdrom [rootweihongbin yum.repos.d]# mount /dev/cdrom /media/cdrom mount: /media/cdrom: WARNING: device write-protected, mounted read-only. [rootweihongbin yum.repos.d]# vim /etc/fstab #   # /etc/fstab # Created by anaconda on Mon Nov  6 11:06:38 2023 # # Accessible filesystems, by reference, are maintained under /dev/disk/. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run systemctl daemon-reload to update systemd # units generated from this file. # UUID147464a6-27ee-477f-8dfd-0c157a0aabc7 /                       xfs     defaults        0 0 UUIDb7107860-5e6f-4ff5-abb3-880ab7e6caca /boot                   xfs     defaults        0 0 UUID1396ecbf-4d87-4e65-898b-28048721d05e none                    swap    defaults        0 0 /dev/cdrom /media/cdrom iso9660 defaults 0 0 第4步修改以下配置网址使用“dnf install httpd -y”命令检查软件仓库是否已经可用。 [rootlocalhost yum.repos.d]# sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-* [rootlocalhost yum.repos.d]# sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-* [rootlocalhost yum.repos.d]# yum makecache [rootlocalhost ~]# dnf install httpd -y 完成配置仓库安装源相当于官方应用商店三方源就相当于官方以外的应用商店。 这里要着重聊一下通过阿里系的也可以配置仓库阿里云镜像 ##配置Linux软件安装源 curl -s -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo ##配置第三方源epel curl -s -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo 2. 编写Shell脚本 Shell脚本命令的工作方式有下面两种。 交互式Interactive用户每输入一条命令就立即执行。 批处理Batch由用户事先编写好一个完整的Shell脚本Shell会一次性执行脚本中诸多的命令。 通过查看SHELL变量可以发现当前系统已经默认使用Bash作为命令行终端解释器 [rootlocalhost ~]# echo $SHELL /bin/bash 2.1 编写简单的脚本 查看当前所在工作路径并列出当前目录下所有的文件及属性信息第一行的脚本声明#!用来告诉系统使用哪种Shell解释器来执行该脚本第二行的注释信息#是对脚本功能和某些命令的介绍信息第三、四行的可执行的Linux命令。 [rootlocalhost ~]# vim example.sh #! /bin/bash #for example by weihongbin pwd ls -alh [rootlocalhost ~]# bash example.sh   /root total 2.1G dr-xr-x---.  17 root    root    4.0K Nov 15 14:05 . dr-xr-xr-x.  18 root    root     254 Nov  8 15:40 .. -rw-r--r--.   1 root    root    560M Nov  8 15:53 560 也可以用./来执行bash文件 2.2 接收用户的参数 Linux系统中的Shell脚本语言内设了用于接收参数的变量变量之间使用空格间隔 对应的是当前 脚本程序的名称0对应的是当前Shell脚本程序的名称0对应的是当前Shell脚本程序的名称#对应的是总共有几个参数 对应的是所有位置的参数值∗对应的是所有位置的参数值*对应的是所有位置的参数值?对应的是显示上一次命令的执行返回值而 、1、1、2、$3……则分别对应着第N个位置的参数值 [rootlocalhost ~]# vim example.sh #! /bin/bash #for example by weihongbin echo 当前脚本名称为$0 echo 总共有$#个参数分别是$*。 echo 第1个参数为$1第5个为$5。 [rootlocalhost ~]# bash example.sh one two three four five six 当前脚本名称为example.sh 总共有6个参数分别是one two three four five six。 第1个参数为one第5个为five。 2.3 判断用户的参数 按照测试对象来划分条件测试语句可以分为4种 文件测试语句 逻辑测试语句 整数值比较语句 字符串比较语句。 文件测试即使用指定条件来判断文件是否存在或权限是否满足等情况的运算符 文件测试所用参数 操作符作用-d测试文件是否为目录类型-e测试文件是否存在-f判断是否为一般文件-r测试当前用户是否有权限读取-w测试当前用户是否有权限写入-x测试当前用户是否有权限执行 使用文件测试语句来判断/etc/fstab是否为一个目录类型的文件然后通过Shell解释器的内设$?变量显示上一条命令执行后的返回值。如果返回值为0则目录存在如果返回值为非零的值则意味着它不是目录这个目录不存在 [rootlocalhost ~]# [ -d /etc/fstab ] [rootlocalhost ~]# echo $? 1 再使用文件测试语句来判断/etc/fstab是否为一般文件如果返回值为0则代表文件存在且为一般文件 [rootlocalhost ~]# [ -f /etc/fstab ] [rootlocalhost ~]# echo $? 0 Shell终端中逻辑“与”的运算符号是它表示当前面的命令执行成功后才会执行它后面的命令因此可以用来判断/dev文件是否存在若存在则输出Exist字样 [rootlocalhost ~]# [ -e /dev ] echo Exist Exist Linux系统中的运算符号为||表示当前面的命令执行失败后才会执行它后面的命令因此可以用来结合系统环境变量USER来判断当前登录的用户是否为非管理员身份 [rootlocalhost ~]# [ $USER root ] || echo user [rootlocalhost ~]# su - centos8 Last login: Wed Nov 15 10:38:34 CST 2023 on tty2 [centos8localhost ~]$ [ $USER root ] || echo user user Linux系统中的运算符号是一个叹号它表示把条件测试中的判断结果取相反值判断当前用户是否为一个非管理员的用户。由于判断结果因为两次否定而变成正确因此会正常地输出预设信息 [rootlocalhost ~]# [ ! $USER root ] || echo administrator administrator 是逻辑“与”只有当前面的语句执行成功的时候才会执行后面的语句。 ||是逻辑“或”只有当前面的语句执行失败的时候才会执行后面的语句。 !是逻辑“非”代表对逻辑测试结果取反值之前若为正确则变成错误若为错误则变成正确。 先判断当前登录用户的USER变量名称是否等于root然后用逻辑“非”运算符进行取反操作效果就变成了判断当前登录的用户是否为非管理员用户。最后若条件成立则会根据逻辑“与”运算符输出user字样若条件不满足则会通过逻辑“或”运算符输出root字样而只有在前面的不成立时才会执行后面的||符号。 [rootlocalhost ~]# [ ! $USER root ] echo user || echo root root 使用规范的整数比较运算符来进行操作。 可用的整数比较运算符 操作符作用-eq是否等于-ne是否不等于-gt是否大于-lt是否小于-le是否等于或小于-ge是否大于或等于 使用free -m命令查看内存使用量情况单位为MB然后通过“grep Mem:”命令过滤出剩余内存量的行再用awk {print $4}命令只保留第4列。 [rootlocalhost ~]# free -m | grep Mem: Mem:           1790        1139          87          33         563         465 [rootlocalhost ~]# free -m | grep Mem: | awk {print $4} 86 输出结果赋值给一个变量以方便其他命令进行调用 [rootlocalhost ~]# freememfree -m | grep Mem: | awk {print $4} echo $freemem 86 使用整数运算符来判断内存可用量的值是否小于1024若小于则会提示“Insufficient Memory”内存不足的字样 [rootlocalhost ~]# [ $freemem -lt 1024 ] echo Insufficient Memory Insufficient Memory 字符串比较语句用于判断测试字符串是否为空值或两个字符串是否相同。 常见字符串比较运算符 操作符作用比较字符串内容是否相同!比较字符串内容是否不同-z判断字符串内容是否为空 通过判断String变量是否为空值进而判断是否定义了这个变量 [rootlocalhost ~]# [ -z $String ] echo $? 0 当前语系的环境变量值LANG不是英语en.US时则会满足逻辑测试条件并输出“Not en.US”非英语的字样 [rootlocalhost ~]# [ ! $LANG en.US ] echo Not en.US Not en.US 3. 流程控制语句 尽管此时可以通过使用Linux命令、管道符、重定向以及条件测试语句来编写最基本的Shell脚本但是这种脚本并不适用于生产环境。原因是它不能根据真实的工作需求来调整具体的执行命令也不能根据某些条件实现自动循环执行。通俗来讲就是不能根据实际情况做出调整。通常脚本都是从上到下一股脑儿地执行效率是很高但一旦某条命令执行失败了则后面的功能全都会受到影响。 通过if、for、while、case这4种流程控制语句来学习编写难度更大、功能更强的Shell脚本。 3.1 if条件测试语句 if语句分为单分支结构、双分支结构、多分支结构其复杂度随着灵活度一起逐级上升。 使用单分支的if条件语句来判断/media/cdrom目录是否存在若不存在就创建这个目录反之则结束条件判断和整个Shell脚本的执行。 [rootlocalhost ~]# vim mkcdrom.sh #! /bin/bash DIR/etc/mkcdrom if [! -d $DIR] then     mkdir -p $DIR fi 使用ls命令验证/media/cdrom目录是否已经成功创建 [rootlocalhost ~]# bash mkcdrom.sh   [rootlocalhost ~]# ls -ld /media/cdrom dr-xr-xr-x. 7 root root 2048 Nov 13  2021 /media/cdrom if条件语句的双分支结构由if、then、else、fi关键词组成它进行一次条件匹配判断如果与条件匹配则去执行相应的预设命令 使用双分支的if条件语句来验证某台主机是否在线然后根据返回值的结果要么显示主机在线信息要么显示主机不在线信息。这里的脚本主要使用ping命令来测试与对方主机的网络连通性而Linux系统中的ping命令不像Windows一样尝试4次就结束因此为了避免用户等待时间过长需要通过-c参数来规定尝试的次数并使用-i参数定义每个数据包的发送间隔以及使用-W参数定义等待超时时间$?变量显示上一条命令执行后的返回值。 [rootlocalhost ~]# vim chkhost.sh #! /bin/bash ping -c 3 -i 0.2 -W 3 $1 /dev/null if [ $? -eq 0 ] then echo Host $1 is On-line. else echo Host $1 is Off-line. fi 变量作用是显示上一次命令的执行返回值。若前面的那条语句成功执行则?变量作用是显示上一次命令的执行返回值。若前面的那条语句成功执行则?变量作用是显示上一次命令的执行返回值。若前面的那条语句成功执行则?变量会显示数字0反之则显示一个非零的数字可能为1也可能为2取决于系统版本。因此可以使用整数比较运算符来判断$?变量是否为0从而获知那条语句的最终判断情况。192.168.227.10这个ip看你们能连通哪个就用哪个。 [rootlocalhost ~]# bash chkhost.sh 192.168.227.10 Host 192.168.227.10 is On-line. [rootlocalhost ~]# bash chkhost.sh 192.168.227.11 Host 192.168.227.11 is Off-line. if条件语句的多分支结构由if、then、else、elif、fi关键词组成它进行多次条件匹配判断这多次判断中的任何一项在匹配成功后都会执行相应的预设命令使用多分支的if条件语句来判断用户输入的分数在哪个成绩区间内然后输出如Excellent、Pass、Fail等提示信息Linux系统中read是用来读取用户输入信息的命令能够把接收到的用户输入信息赋值给后面的指定变量-p参数用于向用户显示一些提示信息。 只有当用户输入的分数大于等于80分且小于等于100分时表现不错若分数不满足该条件即匹配不成功则继续判断分数是否大于等于60分且小于等于79分如果是则输出直接放弃字样若两次都落空即两次的匹配操作都失败了则输出直接放弃字样在输入大于100或小于0的分数时给予Error报错字样的提示。 [rootlocalhost ~]# vim chkscore.sh #! /bin/bash read -p 输入你得成绩0-100 grade if [ $grade -gt 100 ] [ $grade -lt 0 ] ; then echo 请正确填写你的成绩 elif [ $grade -ge 80 ] [ $grade -le 100 ] ; then echo $grade 分表现不错 elif [ $grade -ge 60 ] [ $grade -le 79 ] ; then echo $grade 分继续努力 else echo $grade 分直接放弃 fi 验证结果您输入的有误 [rootlocalhost ~]# bash chkscore.sh   输入你得成绩0-1001000 请正确填写你的成绩 [rootlocalhost ~]# bash chkscore.sh   输入你得成绩0-10099 99 分表现不错 [rootlocalhost ~]# bash chkscore.sh   输入你得成绩0-10061 61 分继续努力 [rootlocalhost ~]# bash chkscore.sh   输入你得成绩0-1001 1 分直接放弃 3.2 for条件循环语句 for循环语句允许脚本一次性读取多个信息然后逐一对信息进行操作处理。当要处理的数据有范围时使用for循环语句 使用for循环语句从列表文件中读取多个用户名然后为其逐一创建用户账户并设置密码。首先创建用户名称的列表文件users.txt每个用户名称单独一行。读者可以自行决定具体的用户名称和个数 [rootlocalhost ~]# vim users.txt [rootlocalhost ~]# cat users.txt   weihongbin01 weihongbin02 weihongbin03 编写Shell脚本addusers.sh。在脚本中使用read命令读取用户输入的密码值然后赋值给PASSWD变量并通过-p参数向用户显示一段提示信息告诉用户正在输入的内容即将作为账户密码。在执行该脚本后会自动使用从列表文件users.txt中获取到所有的用户名称然后逐一使用“id用户名”命令查看用户的信息并使用$?判断这条命令是否执行成功也就是判断该用户是否已经存在。 [rootlocalhost ~]# vim addusers.sh #! /bin/bash read -p 请输入批量创建的用户名密码 : PASSWD for UNAME in cat users.txt do id $UNAME /dev/null if [ $? -eq 0 ] then     echo $UNAME , 该用户已存在 else     useradd $UNAME echo $PASSWD | passwd --stdin $UNAME /dev/null echo $UNAME , 创建成功 fi done /dev/null是一个被称作Linux黑洞的文件把输出信息重定向到这个文件等同于删除数据类似于没有回收功能的垃圾箱可以让用户的屏幕窗口保持简洁。在Linux系统中/etc/passwd是用来保存用户账户信息的文件。如果想确认这个脚本是否成功创建了用户账户可以打开这个文件看其中是否有这些新创建的用户信息。 [rootlocalhost ~]# bash addusers.sh 请输入批量创建的用户名密码 : 123 weihongbin01 , 创建成功 weihongbin02 , 创建成功 weihongbin03 , 创建成功 从文本中自动读取主机列表然后自动逐个测试这些主机是否在线。 创建一个主机列表文件ipaddrs.txt [rootlocalhost ~]# vim ipaddrs.txt [rootlocalhost ~]# cat ipaddrs.txt   192.168.227.10 192.168.227.11 192.168.227.12 双分支if条件语句与for循环语句相结合让脚本从主机列表文件ipaddrs.txt中自动读取IP地址用来表示主机并将其赋值给HLIST变量从而通过判断ping命令执行后的返回值来逐个测试主机是否在线。 [rootlocalhost ~]# vim CheckHosts.sh #!/bin/bash iplist$(cat ~/ipaddrs.txt) for IP in $iplist do ping -c 3 -i 0.2 -W 3 $IP /dev/null if [ $? -eq 0 ] then echo Host $IP is On-line. else echo Host $IP is Off-line. fi done 脚本中出现的“$命令”是一种完全类似于转义字符中反引号命令的Shell操作符检验如下 [rootlocalhost ~]# bash CheckHosts.sh   Host 192.168.227.10 is On-line. Host 192.168.227.11 is Off-line. Host 192.168.227.12 is Off-line. 3.3 while条件循环语句 while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句它的循环结构往往在执行前并不确定最终执行的次数完全不同于for循环语句中有目标、有范围的使用场景。while循环语句通过判断条件测试的真假来决定是否继续执行命令若条件为真就继续执行为假就结束循环。 使用多分支的if条件测试语句与while条件循环语句编写一个用来猜测数值大小的脚本Guess.sh。该脚本使用$RANDOM变量来调取出一个随机的数值范围为032767然后将这个随机数对1000进行取余操作并使用expr命令取得其结果再用这个数值与用户通过read命令输入的数值进行比较判断。这个判断语句分为3种情况分别是判断用户输入的数值是等于、大于还是小于使用expr命令取得的数值。 [rootlocalhost ~]# vim Guess.sh #!/bin/bash PRICE$(expr $RANDOM % 1000) TIMES0 echo 商品实际价格为0-999之间猜猜看是多少 while true do read -p 请输入您猜测的价格数目 INT let TIMES if [ $INT -eq $PRICE ] ; then echo 恭喜您答对了实际价格是 $PRICE echo 您总共猜测了 $TIMES 次 exit elif [ $INT -gt $PRICE ] ; then echo 太高了 else echo 太低了 fi done 当条件为true真的时候while语句会一直循环下去只有碰到exit才会结束 3.4 case条件测试语句 case条件测试语句和switch语句的功能非常相似case语句是在多个范围内匹配数据若匹配成功则执行相关命令并结束整个条件测试如果数据不在所列出的范围内则会去执行星号*中所定义的默认命令。 使用case条件测试语句和通配符编写脚本Checkkeys.sh提示用户输入一个字符并将其赋值给变量KEY然后根据变量KEY的值向用户显示其值是字母、数字还是其他字符。 [rootlocalhost ~]# vim Checkkeys.sh #! /bin/bash read -p 请输入要判断的字符 key case $key in [a-z]|[A-Z]) echo 字母 ;; [0-9])   echo 数字 ;; *)       echo 特殊字符 esac     [rootlocalhost ~]# bash Checkkeys.sh 请输入要判断的字符1 数字 [rootlocalhost ~]# bash Checkkeys.sh 请输入要判断的字符$ 特殊字符 [rootlocalhost ~]# bash Checkkeys.sh 请输入要判断的字符a 字母 4. 计划任务服务程序 计划任务分为一次性计划任务与长期性计划任务 一次性计划任务今晚23:30重启网站服务。 长期性计划任务每周一的凌晨3:25把/home/wwwroot目录打包备份为backup.tar.gz。 一次性计划任务只执行一次一般用于临时的工作需求。可以用at命令实现这种功能只需要写成“at时间”的形式就行。如果想要查看已设置好但还未执行的一次性计划任务可以使用at -l命令要想将其删除可以使用“atrm任务序号” at命令参数及其作用 参数作用-f指定包含命令的任务文件-q指定新任务名称-l显示待执行任务列表-d删除指定待执行任务-m任务执行后给用户发邮件 在使用at命令来设置一次性计划任务时默认采用的是交互式方法将系统设置为在今晚23:30自动重启网站服务 [rootlocalhost ~]# at 23:30 warning: commands will be executed using /bin/sh at systemctl restart httpd     at 按下键来结束编写计划任务 job 1 at Wed Nov 15 23:30:00 2023 [rootlocalhost ~]# at -l 1 Wed Nov 15 23:30:00 2023 a root 便捷利用管道符处理 [rootlocalhost ~]# echo systemctl restart httpd | at 23:30 warning: commands will be executed using /bin/sh job 2 at Wed Nov 15 23:30:00 2023 [rootlocalhost ~]# at -l 1 Wed Nov 15 23:30:00 2023 a root 2 Wed Nov 15 23:30:00 2023 a root 使用atrm命令删除其中一条 [rootlocalhost ~]# atrm 1 [rootlocalhost ~]# at -l 2 Wed Nov 15 23:30:00 2023 a root 用户激活该脚本后再开始倒计时执行使用“at now 2 MINUTE”的方式进行操作表示2分钟MINUTE后执行这个任务也可以将其替代成小时HOUR、日DAY、月MONTH等词汇 [rootlocalhost ~]# echo systemctl restart httpd | at now 2 MINUTE warning: commands will be executed using /bin/sh job 3 at Wed Nov 15 16:35:00 2023 长期执行创建、编辑计划任务的命令为crontab -e查看当前计划任务的命令为crontab -l删除某条计划任务的命令为crontab -r。另外如果您是以管理员的身份登录的系统还可以在crontab命令中加上-u参数来编辑他人的计划任务。 crontab命令参数及作用 参数作用-e编辑计划任务-u指定用户名称-l列出任务列表-r删除计划任务 分、时、日、月、星期 命令使用crond服务设置任务的参数格式有些字段没有被设置则需要使用星号*占位 使用crond设置任务参数字段说明 字段说明分钟取值为059的整数小时取值为023的任意整数日期取值为131的任意整数月份取值为112的任意整数星期取值为07的任意整数其中0与7均为星期日命令要执行的命令或程序脚本 在每周一、三、五的凌晨3:25都需要使用tar命令把某个网站的数据目录进行打包处理使其作为一个备份文件。我们可以使用crontab -e命令来创建计划任务为自己创建计划任务时无须使用-u参数。crontab –e命令的具体实现效果和crontab -l命令的结果如下所示 [rootlocalhost ~]# crontab -e no crontab for root - using an empty one crontab: installing new crontab [rootlocalhost ~]# crontab -l 25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot 除了用逗号,来分别表示多个时间段例如“8,9,12”表示8月、9月和12月。还可以用减号-来表示一段连续的时间周期例如字段“日”的取值为“12-15”则表示每月的1215日。还可以用除号/表示执行任务的间隔时间例如“*/2”表示每隔2分钟执行一次任务所有命令一定要用绝对路径的方式来写如果不知道绝对路径请用whereis命令进行查询加粗部分就是绝对路径。 [rootlocalhost ~]# whereis tar tar: /usr/bin/tar /usr/include/tar.h /usr/share/man/man5/tar.5.gz /usr/share/man/man1/tar.1.gz /usr/share/info/tar.info-1.gz /usr/share/info/tar.info-2.gz /usr/share/info/tar.info.gz 注意事项 在crond服务的配置参数中一般会像Shell脚本那样以#号开头写上注释信息这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。 计划任务中的“分”字段必须有数值绝对不能为空或是*号而“日”和“星期”字段不能同时使用否则就会发生冲突。 使用crontab -e命令进入编辑界面删除里面的文本信息使用crontab -r命令直接进行删除 [rootlocalhost ~]# crontab -r [rootlocalhost ~]# crontab -l no crontab for root
http://www.yutouwan.com/news/46285/

相关文章:

  • 网站建设 6万大连百度关键词排名
  • 阿里云服务器可以做网站吗中关村在线手机论坛
  • 个人网站做交易类的赚钱吗南宁企业建站
  • 自己做网站 什么婚恋网站上认识人 带你做原油交易
  • 服务器 多个网站站长工具站长之家官网
  • 内蒙古建设安全监督网站自己做的图片哪个网站可以出售
  • 好的策划方案网站云主机怎么装网站
  • 电子商务网站建设与推广实务网站代理访问是什么意思
  • 防火门 东莞网站建设wordpress建淘宝客网站吗
  • 微商城系统网站模板海南工程建设资料备案网站
  • 外贸企业网站东莞宽带哪个好
  • 招商建设工程有限公司网站洞口网站开发公司推荐
  • 关于申请开通网站建设的请示济南网站建设泉诺
  • 上海网站定制公司浙江温州网络公司
  • 网站建设款如何入账百度竞价推广招聘
  • 做网站虚拟主机价格dchaser wordpress
  • 云主机可以做几个网站wordpress 无广告视频插件下载
  • 网站怎么自己编辑模块软件开发的本质
  • 在成都如何找到做网站的公司赣州人才网赣州九一人才
  • 网站上的平面海报怎么做wordpress js被挂木马
  • 网站建设流程 文档代码判断网站
  • 手机怎么免费建设网站wordpress andriod
  • 建设企业网站地址网站建设对客户的影响
  • 网站建设与开发做什么食品配送做网站需要什么功能
  • 长春火车站咨询电话号码是多少网站注册好域名怎么办
  • 济南手机网站建设公司排名wordpress语音朗读
  • 杂志网站模板wordpress 清空数据库表
  • nodejs 做网站wordpress固定链接改后无法访问
  • 钢球 东莞网站建设企业网站建设任务书
  • 兼职做网站设计wordpress edu2.0