您的位置:首页 > 运维架构 > Linux

Linux学习第四天,Vim编辑器与Shell命令脚本

2018-10-10 14:51 615 查看

Vim文本编辑器

vim一共有三种模式 命令 输入 和末行模式,从输入模式转到命令模式敲击esc即可,wq!强制保存并退出。
命令模式:复制 剪切 粘贴 搜索等 !是强制命令 esc是退出到命令模式 crtl+zz也可以保存
输入模式:随意对文件进行内容编辑 随便按a i o键 就可以进入输入模式(s也可以)
末行模式:保存 退出 编辑器环境器环境设置 : 是从命令模式进入到末行模式
撤销键 u
dd 删除(剪切)光标所在整行
5dd 删除(剪切)从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
/ 搜索命令 a键 光标所在键往后跳一位,i键光标所在当前位,o光标所在行的下一行(新行)
末行模式中可用的命令

命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
echo “当前脚本名称为0"echo"总共有0" echo "总共有0"echo"总共有#个参数,分别是$*。”
echo "第1个参数为$1,第5个为5。",5。",5。",#对应的是总共有几个参数,$对应的是所有位置的参数值,
$?对应的是显示上一次命令的执行返回值
[root@linuxprobe ~]# sh example.sh one two three four five six

d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
在Shell终端中逻辑“与”的运算符号是*&&,它表示当前面的命令执行成功后才会执行它后面的命令,因此可以用来判断/dev/cdrom文件是否存在,若存在则输出Exist字样。
[root@linuxprobe ~]# [ -e /dev/cdrom ] && echo “Exist”
Exist
逻辑“或”,它在Linux系统中的运算符号为
||,表示当前面的命令执行失败后才会执行它后面的命令
逻辑语句是“非”,在Linux系统中的运算符号是一个叹号(!),它表示把条件测试中的判断结果取相反值。
操作符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
然后通过grep Mem:命令过滤出剩余内存量的行,再用
awk** '{print $4}'命令只保留第四列,最后用FreeMem=

语句
的方式把语句内执行的结果赋值给变量。

FreeMem=
free -m | grep Mem: | awk '{print $4}'
加粗样式

字符串比较语句用于判断测试字符串是否为空值,或两个字符串是否相同。它经常用来判断某个变量是否未被定义(即内容为空值)
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空
if条件测试语句可以让脚本根据实际情况自动执行相应的命令。

if条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的命令,相当于口语的“如果……那么……”

if条件语句的单分支结构由if、then、fi关键词组成,而且只在条件成立后才执行预设的命令,相当于口语的“如果……那么……”
ctrl+l 清屏

if条件语句的多分支结构由if、then、else、elif、fi关键词组成,它进行多次条件匹配判断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如果……那么……如果……那么……”。read是用来读取用户输入信息的命令,能够把接收到的用户输入信息赋值给后面的指定变量,-p参数用于向用户显示一定的提示信息。
接下来结合使用多分支的if条件测试语句与while条件循环语句,编写一个用来猜测数值大小的脚本Guess.sh

case条件测试语句和switch语句的功能非常相似!case语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,则会去执行星号()中所定义的默认命令。
if 单分支 双分支 多分支
for 范围
while 条件
case 范围
顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用at命令实现这种功能,只需要写成“at 时间”的形式就可以。如果想要查看已设置好但还未执行的一次性计划任务,可以使用“at -l”命令;要想将其删除,可以用“atrm 任务序号”。ar-c 编码 查看计划任务
at 一次性 crond 周期性
分 时 日 月 星期 命令
计划任务中的“分”字段必须有数值,绝对不能为空或是号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。
1.Vim编辑器的三种模式分别是什么?

答:命令模式、末行模式与输入模式(也叫编辑模式或插入模式)。

2.怎么从输入模式切换到末行模式?

答:需要先敲击Esc键退回到命令模式,然后敲击冒号(:)键后进入末行模式。

3.一个完整的Shell脚本应该哪些内容?

答:应该包括脚本声明、注释信息和可执行语句(即命令)。

4.分别解释Shell脚本中$0与$3变量的作用。

答:在Shell脚本中,$0代表脚本文件的名称,$3则代表该脚本在执行时接收的第三个参数。

5.if条件测试语句有几种结构,最灵活且最复杂的是哪种结构?

答:if条件测试语句包括单分支、双分支与多分支等三种结构,其中多分支结构是最灵活且最复杂的结构,其结构形式为if…then…elif…then…else…fi。

6.for条件循环语句的循环结构是什么样子的?

答:for条件循环语句的结构为“for 变量名 in 取值列表 do 命令序列 done”,如图4-20所示。

7.若在while条件循环语句中使用true作为循环条件,那么会发生什么事情?

答:因条件测试值永久为true,因此脚本中循环部分会无限地重复执行下去,直到碰到exit命令才会结束。

8.如果需要依据用户的输入参数执行不同的操作,最方便的条件测试语句是什么?

答:case条件语句。

9.Linux系统的长期计划任务所使用的服务是什么,其参数格式是什么?

答:长期计划任务需要使用crond服务程序,参数格式是“分、时、日、月、星期 命令”。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: