网站域名查询网,一般网站模块,西安网站开发定制制作,2015年做哪个网站致富第4章 Vim编辑器与Shell命令脚本 1. Vim文本编辑器2. 编写Shell脚本2.2 接收用户的参数2.3 判断用户的参数 3. 流程控制语句3.1 if条件测试语句3.2 for条件循环语句3.3 while条件循环语句3.4 case条件测试语句 4. 计划任务服务程序复习题 1. Vim文本编辑器
Vim编辑器中设置了三… 第4章 Vim编辑器与Shell命令脚本 1. Vim文本编辑器2. 编写Shell脚本2.2 接收用户的参数2.3 判断用户的参数 3. 流程控制语句3.1 if条件测试语句3.2 for条件循环语句3.3 while条件循环语句3.4 case条件测试语句 4. 计划任务服务程序复习题 1. Vim文本编辑器
Vim编辑器中设置了三种模式——命令模式、末行模式和输入编辑模式。在每次运行Vim编辑器时默认进入命令模式此时需要先切换到输入模式再进行文档编辑工作。而每次在编写完文档后需要先返回命令模式然后再进入末行模式执行文档的保存或退出操作。在Vim中无法直接从输入模式切换到末行模式。 可以使用a、i、o这三个键从命令模式切换到输入模式。其中a键与i键分别是在光标后面一位和光标当前位置切换到输入模式而o键则是在光标的下面再创建一个空行。在编写完之后要想保存并退出必须先敲击键盘的Esc键从输入模式返回命令模式。然后再输入:wq!切换到末行模式才能完成保存退出操作。
命令模式中最常用的一些命令
命令作用dd删除剪切光标所在整行5dd删除剪切从光标处开始的5行yy复制光标所在整行5yy复制从光标出开始的5行n显示搜索命令定位到的下一个字符串N显示搜索命令定位到的上一个字符串u撤销上一步的操作p将之前删除dd或复制yy过的数据粘贴到光标后面
末行模式中常用的一些命令
命令作用: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?字符串在文本中从下至上搜索该字符串/字符串在文本中从上至下搜索该字符串
2. 编写Shell脚本
2.2 接收用户的参数
Linux系统中的Shell脚本内设了用于接收参数的变量变量之间使用空格间隔。例如$0对应的是当前Shell脚本程序的名称$#对应的是总共有几个参数$*对应的是所有位置的参数值$?对应的是显示上一次命令的执行返回值而$1、$2、$3......则分别对应着第N个位置的参数值。
[rootlinuxprobe ~]# vim example.sh
echo The .sh file name is $0.
echo There are $# arguments, they are $*.
echo The first argument is $1, the fifth argument is $5.
[rootlinuxprobe ~]# bash example.sh one two three four five six
The .sh file name is example.sh.
There are 6 arguments, they are one two three four five six.
The first argument is one, the fifth argument is five.2.3 判断用户的参数
Shell脚本中的条件测试语法可以判断表达式是否成立若条件成立则返回数字0否则便返回非零值。条件测试语法的执行格式为测试语句格式[ 条件表达式 ]。切记条件表达式两边均应有一个空格。
文件测试所用的参数
运算符作用-d测试文件是否为目录类型-e测试文件是否存在-f判断是否为一般文件-r测试当前用户是否有权限读取-w测试当前用户是否有权限写入-x测试当前用户是否有权限执行
可用的整数比较运算符
运算符作用-eq是否等于-ne是否不等于-gt是否大于-lt是否小于-le是否等于或小于-ge是否大于或等于
常见的字符串比较运算符
运算符作用比较字符串内容是否相同!比较字符串内容是否不同-z判断字符串内容是否为空
3. 流程控制语句
3.1 if条件测试语句
[rootlinuxprobe ~]# vim chkscore.sh
#!/bin/bash
read -p Enter your score (0-100) : GRADE
if [ $GRADE -gt 100 ] || [ $GRADE -lt 0 ] ; thenecho $GRADE is error.
elif [ $GRADE -ge 85 ] [ $GRADE -le 100 ] ; thenecho $GRADE is excellent.
elif [ $GRADE -ge 70 ] [ $GRADE -le 84 ] ; thenecho $GRADE is pass.
elseecho $GRADE is fail.
fi3.2 for条件循环语句
[rootlinuxprobe ~]# vim chkhost.sh
#!/bin/bash
HOSTLIST$(cat~/ipaddrs.txt)
for ip in $HOSTLIST
doping -c 3 -i 0.2 -W 3 $IP /dev/nullif [ $? -eq 0 ]then echo Host $IP is Online.elseecho Host $IP is Offline.fi
done3.3 while条件循环语句
[rootlinuxprobe ~]# vim Guess.sh
#!/bin/bash
PRICE$(expr $RANDOM % 1000)
TIMES0
echo The real price is between 0 and 999, please guess how much the price is.
while true
doread -p Enter the price you guessed : INTlet TIMESif [ $PRICE -eq $INT ] ; thenecho Congratulations! The real price is $PRICE.echo You have guessed $TIMES times.exitelif [ $INT -gt $PRICE ] ; thenecho You guessed too high.elseecho You guessed too low.fi
done3.4 case条件测试语句
[rootlinuxprobe ~]# vim chkkeys.sh
#!/bin/bash
read -p Please enter a character and press enter to confirm. KEY
case $KEY in[a-z]|[A-Z])echo You entered a character.;;[0-9])echo You entered a number.;;*)echo You entered somethingelse
esac4. 计划任务服务程序
at命令中的参数及其作用
参数作用-f指定包含命令的任务文件-q指定新任务名称-l显示待执行任务的列表-d删除指定的待执行任务-m任务执行后向用户发邮件
crontab命令中的参数及其作用
参数作用-e编辑计划任务-u指定用户名称-l列出任务列表-r删除计划任务
使用crond设置任务的参数字段说明
字段说明分钟取值为0~59的整数小时取值为0~23的任意整数日期取值为1~31的任意整数月份取值为1~12的任意整数星期取值为0~7的任意整数其中0与7均为星期日命令要执行的命令或程序脚本
复习题 Vim编辑器的3种模式分别是什么 命令模式、输入模式、末行模式 怎么从输入模式切换到末行模式 先按Esc切换到命令模式然后按:切换到末行模式 一个完整的Shell脚本应该包含哪些内容 脚本声明、注释信息和可执行语句命令 分别解释Shell脚本中$0与$3变量的作用。 Shell脚本的名字和第三个参数 if条件测试语句有几种结构最灵活且最复杂的是哪种结构 if条件测试语句包括单分支、双分支与多分支等三种结构其中多分支结构是最灵活且最复杂的结构其结构形式为if...then...elif...then...else...fi for条件循环语句的循环结构是什么样子的 for 变量名 in 取值列表 do 命令序列 done 若在while条件循环语句中使用true作为循环条件那么会发生什么事情 循环不会停止 如果需要依据用户的输入参数执行不同的操作最方便的条件测试语句是什么 case条件测试语句 Linux系统的长期计划任务所使用的服务是什么其参数格式是什么 长期任务计划需要使用crond服务程序参数格式是分时日月星期命令