第三节 Vim编辑器与Shell命令脚本

1.Vim文本编辑器

Vim英文全称为 Vi Improved,Vim 之所以能得到广大厂商与用户的认可,原因在于 Vim 编辑器中设置了 3 种模式—命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效地操作文本,就必须先搞清这 3 种模式的操作区别以及模式之间的切换方法。

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

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

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

 在每次运行 Vim 编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作。而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在 Vim 中,无法直接从输入模式切换到末行模式。Vim 编辑器中内置的命令有成百上千种用法,命令模式中最常用的一些命令如下:

末行模式主要用于保存或退出文件,以及设置 Vim 编辑器的工作环境,还可以让用户执行外部的 Linux 命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。末行模式中常用的命令如下所示:

(1)编写简单文档

编写脚本文档的第 1 步就是给文档取个名字,这里将其命名为 practice.txt。如果存在该文档,则是打开它。如果不存在,则是创建一个临时的输入文件:

[root@localhost Desktop]# vim practice.txt

界面直接跳转到Vim编辑器的命令模式,。此时只能执行该模式下的命令,而不能随意输入文本内容。我们需要切换到输入模式才可以编写文档。可以分别使用 a、i、o 这 3 个键从命令模式切换到输入模式。其中,a键与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 o 键则是在光标的下面再创建一个空行,此时可敲击 a 键进入编辑器的输入模式:

进入输入模式后,可以随意输入文本内容,Vim 编辑器不会把您输入的文本内容当作命令而执行:

在编写完之后,要想保存并退出,必须先敲击键盘的 Esc 键从输入模式返回命令模式,然后再输入“:wq!”切换到末行模式才能完成保存退出操作。(注:注意观察界面左下角的提示信息,在不同模式下有不同的提示字样)

然后可以使用cat命令查看保存后的文档内容:

[root@localhost ~]# cat practice.txt 
Welcome to Vim World!

[root@localhost ~]# 

继续编辑这个文档。因为要在原有文本内容的下面追加内容,所以在命令模式中敲击 o 键进入输入模式更会高效:

因为此时已经修改了文本内容,所以 Vim 编辑器在我们直接使用:q尝试直接退出文档而不保存的时候就会拒绝我们的操作了。此时只能强制退出:q!才能结束本次输入操作,在次使用cat命令查看能容,发现追加的内容没有保存。

(2)配置主机名称

在 Linux系统中,主机名大多保存在/etc/hostname 文件中,接下来将/etc/hostname 配置文件的内容修改为“linuxprobe.com”,步骤如下:

第一步:使用 Vim 编辑器修改/etc/hostname 主机名称文件。

第二步:把原始主机名称删除后追加“linuxprobe.com”。注意,使用 Vim 编辑器修改主机名称文件后,要在末行模式下执行“:wq!”命令才能保存并退出文档。 

第三步:保存并退出文档,然后使用 hostname 命令检查是否修改成功

[root@localhost ~]# vim /etc/hostname 
[root@localhost ~]# hostname
linuxprobe.com

(3)配置网卡信息

在 RHEL  5、RHEL  6 中,网卡配置文件的前缀为 eth,第 1 块网卡为eth0,第 2 块网卡为 eth1;以此类推。在 RHEL  7 中,网卡配置文件的前缀则以 ifcfg 开始,再加上网卡名称共同组成了网卡配置文件的名字,例如 ifcfg-eno16777736。而在 RHEL 8 中,网卡配置文件的前缀依然为 ifcfg,区别是网卡名称改成了类似于 ens160 的样子,不过好在除了文件名发生变化外,网卡参数没有其他大的区别。(注:本人系统安装的是RHEL 7)

现在有一个名称为 ifcfg-eno16777728 的网卡设备,将其配置为开机自启动,并且 IP 地址、子网、网关等信息由人工指定,其步骤如下所示。 
第一步:首先切换到/etc/sysconfig/network-scripts 目录中(存放着网卡的配置文件)。 
第二步:使用 Vim 编辑器修改网卡文件 ifcfg-eno16777728,逐项写入下面的配置参数并保存退
出。由于每台设备的硬件及架构是不一样的,因此请读者使用 ifconfig 命令自行确认各自网卡
的默认名称。 

这是RHEL 8网卡信息:
➢  设备类型:TYPE=Ethernet 
➢  地址分配模式:BOOTPROTO=static 
➢  网卡名称:NAME=eno16777728 
➢  是否启动:ONBOOT=yes 
➢  IP地址:IPADDR=192.168.10.10 
➢  子网掩码:NETMASK=255.255.255.0 
➢  网关地址:GATEWAY=192.168.10.1 
➢  DNS地址:DNS1=192.168.10.1 

[root@localhost network-scripts]# vim ifcfg-eno16777728 
[root@localhost network-scripts]# cat ifcfg-eno16777728 
HWADDR=00:0C:29:3A:DC:A2
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777728
ONBOOT=yes
IPADDR=192.168.10.10 
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1 

第三步:重启网络服务并测试网络是否连通。 (注:当前网络是不通的,所以显示结果没有问题)

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.091 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.058 ms
64 bytes from 192.168.10.10: icmp_seq=5 ttl=64 time=0.036 ms
64 bytes from 192.168.10.10: icmp_seq=6 ttl=64 time=0.036 ms
64 bytes from 192.168.10.10: icmp_seq=7 ttl=64 time=0.036 ms
64 bytes from 192.168.10.10: icmp_seq=8 ttl=64 time=0.035 ms
64 bytes from 192.168.10.10: icmp_seq=9 ttl=64 time=0.068 ms
64 bytes from 192.168.10.10: icmp_seq=10 ttl
### 使用 Vim 编辑器编写 Shell 脚本的方法 #### 1. 安装 Vim 编辑器 在某些最小化安装的 Linux 发行版中,Vim 编辑器可能未默认安装。如果需要使用 Vim,则应先通过包管理工具进行安装。例如,在基于 Red Hat 的系统上,可以运行以下命令来安装 Vim: ```bash yum install -y vim ``` 这条命令会静默安装最新版本的 Vim 编辑器[^1]。 #### 2. 创建一个新的 Shell 脚本文件 要创建一个新的 Shell 脚本文件,可以在终端中输入如下命令打开 Vim 并进入编辑模式: ```bash vim myscript.sh ``` 这里 `myscript.sh` 是新脚本的名称。按下回车后,Vim 将启动并准备好接受输入。 #### 3. 设置正确的文件权限 Shell 脚本通常需要赋予可执行权限才能正常运行。为此,可在保存退出之前或者之后更改文件权限: ```bash chmod +x myscript.sh ``` 这一操作使得脚本具备被执行的能力[^2]。 #### 4. 添加 Shebang 行 每一份有效的 Shell 脚本都应当以 shebang 开头,指明解释器的位置。对于 Bash 脚本来说,通常是这样的形式: ```bash #!/bin/bash ``` shebang 后面紧跟的是负责解析该脚本的具体 shell 或者其他程序的绝对路径[^3]。 #### 5. 插入实际代码 切换到插入模式(按 i 键),然后开始录入所需的命令序列。比如下面是一个简单的例子,用来打印 “Hello, world!” 到标准输出设备: ```bash #!/bin/bash echo "Hello, world!" ``` #### 6. 存储修改后的文档 完成书写以后,可以通过 Esc 键返回普通模式,接着输入 :wq 来同时保存改动并且关闭窗口。如果你只想存盘而不离开编辑界面的话,单独使用:w即可。 #### 7. 运行编写的 Shell 脚本 最后一步就是测试我们的成果啦!只需导航至存储位置并通过 ./ 加上前缀的方式调用它就可以了: ```bash ./myscript.sh ``` 只要一切顺利无误,“Hello, world!” 应该就会显示出来了! --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值