第4章 Vim编辑器与Shell命令脚本
章节简述:
本章节将教给您如何使用Vim编辑器来编写文档、配置主机名称、网卡参数以及yum仓库 ,熟练使用各个模式和命令快捷键。
我们可以通过Vim编辑器将Linux命令放入合适的逻辑测试语句(if、for、while、case)后最终写出简单实用的Shell脚本。
还可以通过使用at命令或配置Crontab计划任务服务让系统自动按时工作,让日常工作更加的高效自动化,一劳永逸哦~
本章目录结构
4.1 了解Vim文本编辑器
在Linux系统中配置应用服务,实际上就是在修改它的配置文件(配置文件可能有多个,其中包含不同的参数),而且日常工作中也一定免不了编写文档的事情吧,这些都是要通过文本编辑器来完成的。
在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版。
Vim能够得到这么多厂商与用户的认可,原因就是在Vim编辑器中有三种模式——命令模式、末行模式和编辑模式,分别又有多种不同的命令快捷键组合,很大的提高了工作效率,用习惯后会觉得非常的顺手。要想在文本操作时更加高效率,我们必需先搞清Vim编辑器的三种模式的操作不同与切换方法。
命令模式:控制光标移动,可对文本进行删除、复制、粘贴等工作。
输入模式:正常的文本录入。
末行模式:保存、退出与设置编辑环境。
记住每次运行vim编辑器后都默认是“命令模式”,需要先进入到“输入模式”后再进行编写文档的工作,而每次编辑完成需先返回到“命令模式”后再进入“末行模式”对文本的保存或退出操作。
这里为大家总结出了最常用的快捷键命令,读者尽量记一下,忘记了来查也可以,至于“输入模式”则没有特殊技巧。
vim编辑器的命令模式中常用的快捷键
命令 | 作用 |
dd | 删除(剪切)光标所在整行。 |
5dd | 删除(剪切)从光标处开始的5行。 |
yy | 复制光标所在整行。 |
5yy | 复制从光标处开始的5行。 |
p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后。 |
/字符串 | 在文本中从上至下搜索该字符串。 |
?字符串 | 在文本中从下至上搜索该字符串。 |
n | 显示搜索命令定位到的下一个字符串。 |
N | 显示搜索命令定位到的上一个字符串。 |
u | 撤销上一步的操作 |
vim编辑器的末行模式中的常用命令
命令 | 作用 |
:w | 保存 |
:q | 退出 |
:q! | 强制退出(放弃对文本的修改内容) |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:命令 | 执行该命令 |
:整数 | 跳转到该行 |
需要读者注意的两点:
1.在命令模式与末行模式中,所有的快捷键参数均区分大小写。
2.在末行模式中所有快捷键参数前都有一个冒号":"。
4.1.1 编写简单文档
现在动手编写一个文档吧、我会把每个步骤和按键尽量都标注出来,如果命令忘记了就回到上面小节再看看吧~超简单!
请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。
-
第1步:创建文档。
-
第2步:敲击字母“a”,进入输入模式。
-
第3步:输入一行字符。
-
第4步:敲击[ESC]返回到命令模式。
-
第5步:敲击“:wq”,保存并退出。
-
第6步:查看文档的内容。
-
第7步:编辑文件。
-
第8步:敲击字母“o”,进入到输入模式。
-
第9步:输入一行字符。
-
第10步:返回命令模式后尝试“:q”退出不保存。
-
第11步:提示内容已被修改,不能退出。
-
第12步:敲击“:q!”后强制退出不保存。
-
第13步:查看文档,发现第二句确实没保存。
4.1.2 配置主机名称
红帽RHEL7系统的主机名称保存在/etc/hostname文件中,我们要想将其修改为"linuxprobe.com",思路大致如下:
第1步:使用vim命令修改"/etc/hostname"主机名称文件。
第2步:将原始主机名称删除后追加"linuxprobe.com"。
第3步:保存退出并用hostname命令检查是否修改成功。
使用vim命令编辑主机名称文件后末行模式执行:wq!后即可保存退出:
[root@linuxprobe ~]# vim /etc/hostname
linuxprobe.com
使用hostname命令查看当前的主机名称:
[root@linuxprobe ~]# hostname
linuxprobe.com
4.1.3 配置网卡信息
既然已经会用vim编辑器了,快来试试配置你的Linux系统网卡吧,不把网卡先配置妥当就不能与其他机器通信的。
在红帽RHEL6系统中网卡配置文件的前缀为"eth",第1块即为"eth0",第2块即为"eth1"并依此类推……
而在红帽RHEL7系统中网卡配置文件的前缀则为"ifcfg-eno",例如"ifcfg-eno16777736"。
网卡的配置文件存放在"/etc/sysconfig/network-scripts"目录中。
在修改配置文件前,先来学些关键词术语吧:
网卡类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static
网卡名称:NAME=eno16777736
是否启动:ONBOOT=yes
IP地址:IPADDR=192.168.10.10
子网掩码:NETMASK=255.255.255.0
网关地址:GATEWAY=192.168.10.1
DNS地址:DNS1=192.168.10.1
上面的网卡配置文件代表着“这是一个以太网卡设备,名称为"eno16777736"且开机自动启动,IP地址等信息需由人工指定”。
配置网卡信息前先来理清思路:
第1步:首先我们要切换到"/etc/sysconfig/network-scripts"目录中(该目录存放着网卡的配置文件)。
第2步:使用vim命令修改文件"ifcfg-eno16777736"。
第3步:逐项写入配置参数,并保存退出。
第4步:重新启动网卡命令:"systemctl restart network"。
第5步:通过ping命令测试网卡信息是否生效。
切换到网卡配置文件所在的目录:
[root@linuxprobe ~]# cd /etc/sysconfig/network-scripts/
编辑网卡配置文件并填入下面的信息:
[root@linuxprobe network-scripts]# vim ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777736
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1
重新启动网卡,正常情况不会提示信息:
[root@linuxprobe network-scripts]# systemctl restart network
不错哦,成功的ping通证明网卡配置正确并生效了:
[root@linuxprobe 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.081 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.083 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.059 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.097 ms
^C
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.059/0.080/0.097/0.013 ms
4.1.4 配置Yum仓库
既然对vim编辑器的理论已经学扎实,现在就来动手配置下Yum仓库吧~先来理清思路:
第1步:首先我们要切换到"/etc/yum.repos.d/"目录中(因为该目录存放着yum仓库的配置文件)
第2步:使用vim编辑器创建并打开一个名为rhel7.repo的新文件,名称可以自定义,但后缀必需为repo。
第3步:逐项写入配置参数,并保存退出。
第4步:按配置参数的路径将光盘挂载。
第5步:将光盘挂载信息写入到/etc/fstab文件中。
第6步:使用"yum install httpd -y"命令检查是否配置正确。
切换到/etc/yum.repos.d目录中:
[root@linuxprobe ~]# cd /etc/yum.repos.d/
打开Vim界面后敲击"a"进入到插入模式:
编辑完成后敲击[ESC]并在末行模式中:wq!保存并退出。
[root@linuxprobe yum.repos.d]# vim rhel7.repo
[rhel7]
name=rhel7
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
创建挂载光盘的目录:
[root@linuxprobe yum.repos.d]# mkdir -p /media/cdrom
仓库提供方式为本地,所以需要将光盘挂载到/media/cdrom中:
[root@linuxprobe yum.repos.d]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
设置成开机自动挂载:
[root@linuxprobe yum.repos.d]# vim /etc/fstab
/dev/cdrom /media/cdrom iso9660 defaults 0 0
测试安装"httpd"服务,出现“Complete”则代表Yum仓库配置正确:
[root@linuxprobe yum.repos.d]# yum install httpd
Loaded plugins: langpacks, product-id, subscription-manager
rhel7 | 4.1 kB 00:00
(1/2): rhel7/group_gz | 134 kB 00:00
(2/2): rhel7/primary_db | 3.4 MB 00:00
Resolving Dependencies
……………………………………………………
Complete!
第4章 Vim编辑器与Shell命令脚本的更多相关文章
- 4.Vim编辑器与Shell命令脚本
第4章 Vim编辑器与Shell命令脚本 章节简述: 本章首先讲解如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸 ...
- Vim编辑器与Shell命令脚本
章节简述: 本章节将教给您如何使用Vim编辑器来编写文档.配置主机名称.网卡参数以及yum仓库 ,熟练使用各个模式和命令快捷键. 我们可以通过Vim编辑器将Linux命令放入合适的逻辑测试语句(if. ...
- Linux 就该这么学 CH04 VIM编辑器和Shell命令脚本
0 概述 1 Vim编辑器 在linux 中一切都是文件,而配置一个服务就是修改其配置文件的参数. vim 编辑器有三种模式:命令模式,末行模式和编辑模式. 命令模式:控制光标移动,对文件进行操作. ...
- Linux就该这么学28期——Day05 vim编辑器与Shell命令脚本 (yum配置 网卡配置)
vim 三种模式: 命令模式 按行操作 dd 剪切.删除 5dd dG 全删 yy 复制光标所在行 p 粘贴 u 撤销操作 / 搜索 /ab n 下一个 N 上一个 输入模式 a 当前光标处 ...
- 《Linux就该这么学》培训笔记_ch04_Vim编辑器与Shell命令脚本
<Linux就该这么学>培训笔记_ch04_Vim编辑器与Shell命令脚本 文章最后会post上书本的笔记照片. 文章主要内容: Vim编辑器 Shell脚本 流程控制语句 if语句 f ...
- vim中执行shell命令小结
vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如:!ls -l ...
- vim之执行shell命令
vim中执行shell命令,有以下几种形式 (1) :!command 不退出vim, 并执行shell命令command, 将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 (2) ...
- Vim编辑器与shell脚本
目录 Vim文本编辑器 Shell脚本 Shell编程变量 流程控制语句 计划任务 ...
- vim中执行shell命令
1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bas ...
随机推荐
- Android上怎样使用《贝赛尔曲线》
首先对于<赛贝尔曲线>不是很了解的童鞋,请自觉白度百科.google. 为了方便偷懒的童鞋,这里给个<贝赛尔曲线>百科地址,以及一段话简述<贝赛尔曲线>: < ...
- Linux下connect超时处理
1.前言 最近在写一个测试工具,要求快速的高效率的扫描出各个服务器开放了哪些端口.当时想了一下,ping只能检测ip,判断服务器的网络是连通的,而不能判断是否开放了端口.我们知道端口属于网络的传输层, ...
- Codeforces 401C Team 贪心法
本题使用贪心法.关键是考贪心策略.同一时候要求要细心,我提交的时候也WA了几次.大意题目就是怎样依照给定的规则排列一个01字符串,引用原题例如以下: C. Team time limit per te ...
- oracle 统计分析函数
http://www.cnblogs.com/advocate/archive/2010/11/16/1878693.html
- apache虚拟主机设置泛域名的方法
在apache虚拟主机中设置泛域名解析,主要是用到ServerAlias 的配置. 1.支持多域名 例如,让mail.jbxue.org.smtp.jbxue.org.pop3.jbxue.org 都 ...
- 边沿检测电路设计verilog
Abstract 边沿检测电路(edge detection circuit)是个常用的基本电路. Introduction 所谓边沿检测就是对前一个clock状态和目前clock状态的比较,如果是由 ...
- redhat yum替换成CentOS yum 并修改源
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm wge ...
- 【Android】12.6 利用Intent实现记事本功能(NotePad)
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 这个例子演示如何实现一个简单的记事本功能. 该例子提前使用了后面章节将要介绍的SQLLite数据库. 二.示例-c ...
- CSplashScene类
#ifndef __TRANSITIONSCENE_H__ #define __TRANSITIONSCENE_H__ #include "GameFrameHead.h" cla ...
- Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)
from: http://blog.coolaj86.com/articles/getting-started-with-amazon-ec2-1-year-free-aws-vps-web-host ...