vim编辑器与shell命令脚本

linzb 2020-05-12

???1、vim编辑器

??????我想大家都应该听说过一句话:Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。好了没听过现在知道这一句话了。接下来有请我们修改配置文件所用的工具:vim编辑器。
??????vim有三种工作模式:命令模式、输入模式、末行模式。

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
输入模式:正常的文本录入
末行模式:保存或退出文档,以及设置编辑环境。

vim编辑器与shell命令脚本

??????在每次运行vm编辑器时,默认进入命令模式。根据上图可以知晓,命令模式可以切换到输入模式和末行模式,末行模式或输入模式也可以切换到命令模式。但是输入模式不能直接切换到末行模式

命令模式常用的命令

命令作用
dd删除(剪切)光标所在整行
Ndd删除(剪切)从光标开始的N行
yy复制光标所在整行
Nyy复制从光标开始的N行
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
?字符串在文本中从下至上搜索该字符串
/字符串在文本中从上到下搜索该字符串

??????注:冒号+s会触发小表情,我在中间加了空格
??????vim确实对新手不是很友好,但是熟悉操作后对于工作效率有很大的帮助。
??????我们创建一个简单的文档。在基本Linux命令(1)中有对touch的记录,可以知道touch就可以创建文档。vim编辑器也是支持创建文档的:vim 文档名。并且我们会自动进入该文档的命令模式,如果使用touch命令创建文档,我们只会创建一个文档还需要使用命令或者vim对其进行操作。

??????从第一张截图上可以知道从命令模式进入输入模式可以按a、i、o三个按键。a与i键相差不多,都是在光标处进入输入模式,o键则是在光标所在行的下方创建一个新的空白行并在空白行处进入输入模式。

vim编辑器与shell命令脚本

vim编辑器与shell命令脚本

??????当我们修改了文件内容却没有保存而直接退出时,vim会拒绝我们的操作,此时我们需要使用强制操作,同时强制符号“!”必须放在末尾,不然无法生效。
??????明白上述内容的时候我们就可以简单的对文档进行修改。我们还需要对一些实践经验来证实vim的功能。

??????1.1 修改主机名称

??????主机名保存在etc目录下的hostname文件内。

  1. 使用vim编辑器进行修改“/etc/hostname”主机名称文件。
  2. 把原始主机名删除后追加自己想要设置的主机名称。
  3. 进入末行模式输入":wq!"保存并退出文档,使用hostname命令检查是否修改成功。

vim编辑器与shell命令脚本

??????1.2 配置网卡信息

  1. 在命令行键入vim /etc/sysconfig/network-scripts/ifcfg-eno并按位于CapsLock键上方的tab键自动补全内容。
  2. 回车进入网卡配置文件。根据自己的实际情况进行修改。以我的网卡信息为例

    设备类型:TYPE=Enthernet
    地址分配模式:BOOTPROTO=static (static、none、dhcp)
    网卡名臣:NAME=eno16777728
    是否启动:ONBOOT=yes
    IP地址:IPADDR=192.168.80.138
    子网掩码:NETMASK=255.255.255.0
    网关地址:GATEWAY=182.168.80.2
    DNS地址:DNS1=192.168.80.2

  3. 重启网卡服务并测试网络是否联通(ping +目标ip地址或网址)

vim编辑器与shell命令脚本

??????在ping命令测试网络状况的时候是不会自动终止的,因此我们需要使用ctrl+c强制终止。我这里ping的是百度,这个shifen是百度名下防黑客的网站。我们只要知道我们能ping通网络就可以。

vim编辑器与shell命令脚本

???2、编写shell脚本

??????shell解释器一直在人和计算机硬件之间充当翻译官的作用,想要正确使用shell中的功能特性就需要我们准确下达命令。shell脚本有两种工作方式:交互式和批处理。

交互式:用户输入每输入一条命令就立即执行
批处理:由用户事先编写好一个完整的脚本,shell会一次执行其中的多条命令

??????2.1编写简单的脚本

??????在开始编写自己的第一个脚本之前,我们先了解一下脚本的基本框架。

脚本声明:#!/bin/bash
脚本注释:#+文字信息
脚本命令:需要的命令/功能

??????可以发现,在编写玩脚本后并没有执行成功,反而提示权限不足。因为我们还么有去学习怎么提升权限,所以我们先使用“解释器 脚本”的格式执行。

vim编辑器与shell命令脚本

??????2.2 接收用户的参数

??????上面的例子只能执行已经事先定义好的功能,有些时候是需要我们人为输入参数的。

变量作用
$0获取脚本名称
$#获取输入的脚本参数个数
$*把输入的参数全部打印
$1第一个参数

vim编辑器与shell命令脚本

??????2.3 判断用户的参数

??????条件测试语句格式:[ 条件表达式 ]

文件测试语句
逻辑测试语句
整数测试语句
字符串测试语句

shell脚本中针织判断和编程是相反的,零为真,非零为假

文件测试所用的参数

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

vim编辑器与shell命令脚本

逻辑与(&&):A成立则B执行
逻辑或(||):A不成立则B执行
逻辑非(!):!(A成立)即不成立,!(A不成立)即成立

vim编辑器与shell命令脚本

可用的整数比较运算符

运算符作用
-eq是否等于
-ne是否不等于
-gt是否大于
-lt是否小于
-le是否小于等于
-ge是否大于等于

vim编辑器与shell命令脚本

常见的字符串比较运算符

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

vim编辑器与shell命令脚本

???3、 流程控制语句

??????3.1 单分支测试语句

??????单分支if语句结构:

if 条件测试语句
	then
		命令序列
fi

vim编辑器与shell命令脚本

??????3.2 双分支测试语句

??????双分支if语句结构:

if 条件测试语句
	then
		命令序列1
	else 
		命令序列2
fi

vim编辑器与shell命令脚本

read命令可以接收用户输入的信息。-p参数用于输出提示信息。

??????3.3 多分支测试语句

??????多分支if语句结构:

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

vim编辑器与shell命令脚本

相关推荐