Linux学习第四天,Vim编辑器与Shell命令脚本
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服务程序,参数格式是“分、时、日、月、星期 命令”。
阅读更多- Shell脚本学习与Linux下vim命令使用
- Shell脚本学习与Linux下vim命令使用
- Linux学习笔记(七)--RedHatEnterpriseLinux 7.0之管道符、重定向、环境变量、Vim编辑器与Shell命令脚本
- 第4章 Vim编辑器与Shell命令脚本
- Linux命令与shell脚本编程学习笔记-16创建函数
- Linux-Shell脚本编程-学习-2-Linux基本命令
- Linux-Shell脚本编程-学习-5-Shell编程-使用结构化命令-if-then-else-elif
- linux学习第六十三篇:Shell脚本介绍,Shell脚本结构和执行,date命令用法,Shell脚本中的变量
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第10章 vim 程序编辑器
- Linux系统命令及Shell脚本学习笔记二:用户管理
- Linux学习笔记——vi/vim编辑器命令快速入门
- Liunx 命令行与shell脚本编程大全 第五章学习笔记(Vim 编辑器使用详解 解释+图示)
- Linux学习日记--基础命令(9)--VIM编辑器
- Vim编辑器与Shell命令脚本
- Linux系统命令及Shell脚本学习笔记一:Linux简介
- Linux命令shell脚本编程学习笔记-18章初识sed和gawk
- Linux命令-学习shell脚本之前的基础知识
- Linux-Shell脚本编程-学习-1-Linux基本命令
- vim编辑器与shell命令脚本
- 嵌入式开发之linux基础第四天学习笔记 vim编辑器