Vim编辑器与shell命令脚本

本文详细介绍了Linux系统中服务配置涉及的文件操作,特别是Vim编辑器的三种模式及其常用命令。此外,讲解了Shell脚本的两种工作方式,包括交互式和批处理,并展示了基本的脚本结构。还讨论了Linux脚本中参数处理的常见变量以及条件测试、流程控制语句的使用,如文件测试、整数和字符串比较,以及if、for、while和case语句。这些内容对于理解Linux系统管理和自动化任务至关重要。
摘要由CSDN通过智能技术生成

Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数、

1、Vim编辑器的三种模式

命令模式:控制光标移动,控制文本进行复制、粘贴和查找等工作。

输入模式:正常的文本录入。

末行模式:保存或退出文档,以及配置编辑环境。

a键与i键分别是在光标后面一位和光标当前位置切换到输入模式,o键则是在光标的下面再创建一个空行,此时可以敲击a键进入到编辑器的输入模式

Vim中常用的命令
dd删除(剪切)光标所在整行
5dd删除(剪切)从光标处开始的五行
yy复制光标所在整行
5yy复制从光标处开始的五行
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脚本的工作方式有两种

交互式:用户每输入一条命令就立即执行

批处理:由用户事先写好一个完整的shell脚本,shell脚本会一次性执行脚本中的诸多命令

# !/bin/bash
# For Example BY linuxprobe.com
pwd
ls -al  

第一行的脚本声明(#!)用来告诉系统使用哪个Shell脚本解释器来执行该脚本:

第二行注释信息(#)是对脚本功能和某些命令的介绍信息,使得自己或他人在日后看到这个脚本内容时,可以快速知道该脚本的作用和一些警告信息;

第三四行是一些普通的linux命令,这就是一个最简单的脚本文件。

3、linux系统内内设的一些常用的用于接收参数的变量,变量之间用空格间隔。

$0当前shell脚本程序的名称
$#对应的是总共有几个参数
$*对应的是所有位置的参数值
$?对应的是显示上一次命令的执行返回值

4、判断用户的参数

Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,若条件不成立则返回其他随机数值。条件测试语法的执行格式如下:

测试语句格式:【 条件表达式 】
注意:条件表达式两边均应有一个空格

条件测试语句分为四种:

文件测试语句:使用指定文件来判断文件是否存在或权限是否满足等情况的运算符,具体的参数如下表:

文件测试所用参数
-d测试文件是否为目录类型
-e测试文件是否存在
-f判断是否为一般文件
-r测试当前用户是否有权利读取
-w测试当前用户是否有权利写入
-x测试当前用户是否有权限执行

语句用于对测试结果进行逻辑分析,根据测试结果可实现不同的效果。

逻辑与(&&):表示当前面的命令执行成功后才会执行它后面的命令

逻辑或(||):表示当前面的命令执行失败后才会执行它后面的命令

逻辑非(!):表示把条件测试中的判断结果取相反值

可用的整数比较运算符
-eq是否等于
-ne是否不等于
-gt是否大于
-lt是否小于
-le是否等于或小于
-ge是否大于或等于

字符串比较语句用于判断测试字符串是否为空值,或两个字符串是否相同。

常见的字符串比较运算符
=比较字符串内容是否相同
!=比较字符串内容是否不同
-z判断字符串内容是否为空

5、流程控制语句

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

 if语句的双分支结构由if、then、else、fi关键词组成,他进行一次条件匹配判断,如果条件匹配,则会执行相应的预设命令;反之则会执行不匹配时的预设命令,相当于口语的“如果····那么····否则····”。

if 条件测试操作
  then 预设命令1
  else 预设命令2
fi

if语句的多分支结构由if、then、else、elif、fi关键词组成,他进行多次条件匹配判断,这多次

判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如果····那么····如果····那么····”。

if 条件测试操作
  then 命令序列1
elif 条件测试操作2
  then 命令序列2
else
  命令序列3
fi

for条件循环语句

for循环语句允许一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时,使用for循环语句就再适合不过了。语法格式如下:

for 变量名in取值列表
do 
    命令序列
done

while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,他的循环结构往往在执行前并不确定最终执行的次数,通过判断条件测试的真假来决定是否继续执行命令。

while 条件测试操作
do
  命令序列
done

case条件测试语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;

若数据不在所列出的范围内,则会去执行星号(*)中所定义的默认命令,语法结构如下:

case 变量值 in
模式 1)
    命令序列 1
    ;;
模式 1)
    命令序列 2
    ;;
    ······
*)
    默认命令序列esac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值