文本编辑器VI的使用
课程目标
1.熟练使用VI编辑器在命令行中编辑文件文件
课程实验
1.便用vi完成文本文件的常规编辑和操作任务
2.使用vi完成修改网卡设置,指定为静态IP地址
课堂引入
任何一个操作系统,均需要编辑文本文件,比如在Windows中可以使用记事本,或者第三方文本编辑器如NotePad++,UltraEdit,Typora,EditPlus等,事实上,任何一门程序设计语言,其源代码也是文本,任何一个网页,其源代码都是文本,那么在Linux的GUI界面中,也存在各类文件编辑器,但是问题来了,在命令中,我们又该如何进行文本的编辑操作呢?
一、文本的创建和查看
功能项 | 命令实例 | 作用 |
---|---|---|
文件创建 | vi /opt/learn/hello.txt | 在目录/opt/learn下创建hello.txt并进入vi编辑界面 |
touch /opt/learn/test | 在目录/opt/learn下创建空白文件test | |
cat > /opt/learn/catfile << EOF | 创建文件catflie并在屏幕上输入内容,最后输入EOF结束,如果不使用 <<EOF,则输入结束时直接按Ctrl+D也可,输出重定向 | |
![]() |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|–|
| | |
] | | |
| 文件查看 | vi /etc/passwd | 在vi编辑器中输入文本内容 |
| | cat /etc/passwd | 在屏幕上输入文本内容 |
| | more /etc/passwd | 分屏输出文本内容 |
| | less /etc/passwd | 分屏输出文本内容并按需加载文件(适合于大文件的查看),看一行加载一行 |
| | head -n 10 /etc/passwd | 只输出文件的头10行 |
| | tail -n 20 /etc/passwd | 只输出文件末尾的20行 -n指定行数 |
| | tail -f 文本文件 | 表示通过流的方式实时查看最新的文件内容,实时查看文件内容 |
| | strings /bin/ls | 查看二进制文件中的可打印字符 |
二、文本内容的编辑
默认两种模式:命令模式和编辑模式。默认模式输入i
或a
进入编辑模式,在编辑模式下,按ESC
进入命令模式
命令实例 | 作用 |
---|---|
vi filename | 生成新文件或者编辑查看文件 |
i或者a | 从命令模式进入编辑模式,i为插入文本,a为追加文本 |
Esc | 从编辑模式进入到命令模式 |
:w | 保存文本 |
:wq | 保存并退出 |
:wq! | 保存并强制退出 |
:q | 退出 |
:q! | 不保存,强制退出 |
:set number | 显示行号 |
命令模式: | |
o | 添加一行 |
O | 在光标所在行的上方添加一行 |
dd | 删除一行 |
D | 删除从当前光标到行尾的内容 |
x | 删除一个字符 |
s | 删除一个字符并切换到编辑模式 |
S | 删除一行并切换到编辑模式 |
:n | 光标移至文本第n行 |
$ | 光标移动到文本的行尾 |
A | 光标移动到文本的行尾并进入编辑模式 |
^ | 光标移动到文本的行首 |
G | 光标移动到文本的末尾 |
gg | 光标移动到文本的首行 |
ZZ | 存盘退出 |
/字符串 | 查找某个字符串 |
n | 继续查找 配合 /字符串使用 |
:u | 撤销 (同标准编辑器中的ctrl+z) |
:redo | 重做三、修改IP地址为静态IP(同标准准编辑中的ctrl +Y) |
三、修改IP地址为静态IP
默认情况下,Linux的IP地址为动态分配,而面向服务器应用场景,通常建议设置为静态IP,操作步骤如下:
1、查看默认网关,运行ip route
命令
──(root💀kali)-[~]
└─# ip route
default via 192.168.0.1 dev eth0 proto dhcp metric 100
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.107 metric 100
默认网关地址为:192.168.0.1
2、确认动态IP地址及网段等信息ip addr
或者 ip a 或者 ifconfig /all
3、使用vi编辑静态IP地址
- centos运行命令:
`vi /etc/sysconfig/network-scripts/ifcfg-ens3
- kali运行命令:
vim /etc/network/interfaces
其中网卡与ip addr看到的网卡编号保持一致,并修改网上的IP地址信息如下:
centos7如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#BOOTPROTO="dhcp" //Ip地址的分配方式
BOOTPROTO="static" //修改为静态
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33" //网卡的名称
UUID="a46aedd8-dcff-444b-8d94-cf4910ebc4fa" //网卡唯一编号
DEVICE="ens33"
ONBOOT="yes" //是否在电脑启动的时候启动网卡
//修改为静态获取后,手动输入IP等信息
IPADDR="192.168.5.6" //IP地址
NETMASK="255.255.255.0" //子网掩码
GATEWAY="192.168.5.1" //网关
DNS1="192.168.5.1" //DNS服务器
//下面这两个可以不用配置,使用默认值
DNS2="114.114.114.114" //备用DNS服务器
BROADCAST="192.168.184.255" //广播地址
kali如下:
auto lo # auto表示开机启动该网卡设备
iface lo inet loopback
auto eth0 # 配置使用dhcp分配地址
iface eth0 inet dhcp
iface eth0 inet6 auto
auto eth1 # 配置使用静态地址
iface eth1 inet static a
ddress 192.168.1.2/24 //ip和网段
gateway 192.168.1.1 //网关
iface eth1 inet6 static
address fec0:0:0:1::2/64
gateway fec0:0:0:1::1
4、重启网卡,使配置生效
centos:
systemctl restart network
kali:
systemctl restart networking
使用ping或者 curl测试网络是否正常使用。