文件管理-Linux系统VIM编辑

简介: 文件管理-Linux系统VIM编辑
  • VIM基本介绍
  • VIM模式介绍
  • VIM命令模式
  • VIM编辑模式
  • VIM末行模式
  • VIM视图模式
  • VIM环境变量
  • VIM扩展知识
  • VIM练习

VIM基本介绍

vi和vim命令是linux中强大的文本编辑器,由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。vim编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成vim其实是vi的升级版

那么vi与vim有什么区别?

vi不显示高亮颜色语法

vim显示高亮颜色语法。

其他功能没有什么区别

所以在linux系统下,使用vi还是vim取决个人习惯。

如果在刚装完的CentOS操作系统下没有vim这个命令,用如下方式进行安装即可

yum install -y vim-enhanced

VIM模式介绍

Vim编辑器中设置了三种模式:

命令模式、编辑模式

image.png

、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法

命令模式: 控制光标移动, 可对文本进行复制、粘贴、删除等工作。
使用vim filename 编辑一个文件时,一进入该文件就是命令模式了。
在这个模式下,可以进行光标移动、复制、删除、粘贴操作。
编辑模式: 正常的文本写入。
从命令模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R)。
当进入编辑模式时,会在屏幕的最下一行出现“INSERT的字样。
从编辑模式回到命令模式只需要按键盘左上方的 ESC 键即可。
末行模式: 保存或退出文档,以及设置编辑环境
在命令模式下,输入 “:” 或者 “/“ 即可进入末行模式。
在该模式下,可以进行的操作有,显示行号、搜索、替换、保存、退出。

vim编辑器配置文件整体流程如下:

1.默认打开文件处于命令模式

2.需要从命令模式切换至编辑模式

3.编辑模式修改配置文件, 然后返回命令行模式

4.最后通过命令模式进入末行模式,保存和退出操作

注意:在vim中,无法直接从编辑模式切换到末行模式。

VIM命令模式

命令行模式:(默认打开文件进入的是命令行模式)

//命令光标跳转
G   跳转光标至末端
gg  跳转光标至顶端
Ngg 跳转光标至当前文件内的22行
$   将当前光标跳转至光标所在行的末端(尾部)
^   将当前光标跳转至光标所在行的头部  —> 数字0 可实现类似效果
//文件内容较多
ctrl+f  往下翻页(行比较多)  
ctrl+b  往上翻页
//复制    
yy复制当前光标所在的行
5yy复制当前光标以及光标向下4行
//粘贴  
p(小写) 粘贴至当前光标下一行   
P(大写) 粘贴至当前光标上一行
//删除   
dd  删除当前光标所在的行   
4dd 删除当前光标所在的行以及往下的3行
dG  删除当前光标以后的所有行
D   删除当前光标及光标以后的内容  
x   删除当前光标标记往后的字符
X   删除当前光标标记往前的字符
//剪贴
先删除dd(number dd),后粘贴p
//撤销
u   撤销上一次的操作(类似windows下的ctrl+z)
//替换    
r   替换当前光标标记的单个字符
R   进入REPLACE模式, 连续替换,ESC结束

VIM编辑模式

编辑模式(从命令行模式进入到编辑模式)

i 进入编辑模式,光标不做任何操作
I 进入编辑模式,并且光标会跳转至本行的头部
a 进入编辑模式,将当前光标往后一位
A 进入编辑模式,将光标移动至本行的尾部
o 进入编辑模式,并在当前光标下添加一行空白内容
O 进入编辑模式,并在当前光标上添加一行空白内容

VIM末行模式

末行模式主要用于搜索, 保存, 退出文件, 还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数

末行模式(必须退回到命令行模式)

:w 保存当前状态
:w! 强制保存当前状态
:q 退出当前文档(文档必须保存才能退出)
:q! 强制退出文档不会修改当前内容
:wq 先保存,在退出
:wq! 强制保存并退出
:x 先保存,在退出
ZZ 保存退出, shfit+zz
:number 跳转至对应的行号

末行模式(查找和替换)

查找  /string 需要搜索的内容(查找)
        n 按搜索到的内容依次往下进行查找
        N 按搜索到的内容依次往上进行查找
替换
    :1,5s#sbin#test#g   替换1-5行中包含sbin的内容为test
    :%s#sbin#test#g 替换整个文本文件中包含sbin的替换为test
    :%s#sbin#test#gc  替换内容时时提示是否需要替换
另存
:w /root/test  将文件所有内容另存为/root/test
读入
:r  /etc/hosts  读入/etc/hosts文件至当前光标下面
:5r /etc/hosts  指定/etc/hosts文件当前文件的哪行下面

VIM视图模式

视图模式(从命令行模式进入视图模式)

ctrl+v 进入VISUAL BLOCK 选中需要注释的行(可视块模式)

1.插入:按shift+i进入编辑模式,输入#,结束按ESC键
2.删除:选中内容后,按x或者d键删除
3.替换:选中需要替换的内容, 按下r键,然后输入替换后的内容
shift+v 进入VISUAL LINE 选中行内容(可视行模式)
1.复制:选中行内容后按y键及可复制。
2.删除:选中行内容后按d键删除。

VIM环境变量

环境变量临时生效
:set nu 显示行号
:set ic 忽略大小写, 在搜索的时候有用
:set ai 自动缩进
:set list   显示制表符(空行、tab键)
:set no[nu|ic|ai…]  取消临时设定的变量
环境变量永久生效
~/.vimrc 个人环境变量(优先级高) /etc/vimrc  全局环境变量
# vim  ~/.vimrc   
set nu 
set ic
//如果个人vim环境没有配置, 则使用全局vim环境变量配置。
//如果个人vim环境和全局环境变量产生冲突, 优先使用个人vim环境变量。

VIM扩展知识

1.如何同时编辑多个文件
vim -o file1 file2 水平分割
vim -O file1 file2 垂直分割
//ctrl+ww 文件间切换
2.相同文件之间差异对比
diff  文件对比(用的不多)    
vimdiff  以vim方式打开两个文件对比,标记不同的内容
3.如果VIM非正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
//删除同文件名的.swp文件即可解决
.filename.swp   rm -f .filename.swp

VIM练习

请把/etc/passwd 复制到/root/目录下,并重命名为test.txt
用vim打开test.txt并设置行号
分别向下、向右、向左、向右移动5个字符
分别向下、向上翻两页
把光标移动到第10行
让光标移动到行末,再移动到行首
移动到test.txt文件的最后一行
移动到文件的首行
搜索文件中出现的 root 并数一下一共出现多少个,不区分大小写搜索
把从第一行到第三行出现的root 替换成–alex–
还原上一步操作
把整个文件中所有的root替换成–alex–
把光标移动到20行,删除本行
还原上一步操作
删除第19行
还原上一步操作
删除从5行到10行的所有内容
还原上一步操作
复制2行并粘贴到11行下面
还原上一步操作(按两次u)
复制从11行到15行的内容并粘贴到8行上面
还原上一步操作(按两次u)
把13行到18行的内容移动文件的尾部
还原上一步操作(按两次u)
光标移动到首行,把/sbin/nologin改成/bin/bash
在第一行下面插入新的一行,并输入”# Hello!”
保存文档并退出


相关文章
|
9月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
819 3
Linux系统禁用swap
|
9月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1386 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
880 3
Linux系统初始化脚本
|
9月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1034 1
|
9月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1344 1
|
Linux Shell 开发工具
【linux】Linux编辑器-vim
【linux】Linux编辑器-vim
302 0
|
Linux 开发工具 数据安全/隐私保护
【Linux】软件包管理器yum和编辑器vim的使用(下)
【Linux】软件包管理器yum和编辑器vim的使用(下)
|
弹性计算 Unix Linux
Linux:文本编辑器 - vim
Linux:文本编辑器 - vim
253 1
|
缓存 人工智能 Linux
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
369 0
|
Linux 开发工具 C++
Linux文本编辑器vim的使用
vi/vim,vi是一款很老的编辑器,它们都是多模式文本编辑器,没有代码的编译功能,也没有调试功能。 vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
324 0