linux文件编辑命令详细整理,Linux文件编辑命令vi详细说明

目录

1、引言

2、vi命令与vim命令

3、vi命令使用

3.1一般模式

3.2编辑模式(重点)

3.3命令行模式

1、引言

相信有很多程序员朋友,在长时间不操作linux系统或者初学linux命令时,都有跟我有一样的疑惑。

这个vim命令与vi命令有什么区别?不都是编辑器么?

2、vi命令与vim命令

其实,很好理解:

首先来说它们两者的共同点:都是文本编辑器。

接下来是它们两者的不同点:

【 vi编辑器】:vi是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,

它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。

【 vim编辑器】:vim可以当作vi的升级版本,vim最大的特点是具有程序编辑的能力,可以以字体颜色

辨别语法的正确性,方便程序设计。vim里面加入了很多额外的功能,例如支持正则表

达式的搜索、多文件编辑、块复制等等。

综上所述:

由于vi编辑器对于Unix及Linux系统的任何版本,vi编辑器都是完全相同的,

所以,我们只需学会vi编辑器,您将在Linux的世界里畅行无阻。

3、vi命令使用

vi基本上可以分为三种模式,分别是一般模式、编辑模式和命令行模式,各模式的功能区分如下:

①、一般模式:

当以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用

上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容,也可以使用

复制、粘贴来处理你的文件数据。

②、编辑模式:

在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到

你按下【i, I, o,O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方

会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时,

则必须要按下【Esc】即可退出编辑模式。

③、命令行模式:

输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中,可以

提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的。

此为概念的理解以及讲解。下面为命令的讲解。

3.1一般模式

a.移动光标

h:控制光标左移一格

j :控制光标下移一格

k:控制光标上移一格

l :控制光标右移一格

ctrl+b:屏幕往后移动一页

ctrl+f :屏幕往前移动一页

ctrl+u:屏幕往后移动半页

ctrl+d:屏幕往前移动半页

0 :移到文章的开头

G:移动到文章的最后

$ :移动到光标所在行的行尾

^ :移动到光标所在行的行首

w:光标跳到下个字的开头

e :光标跳到下个字的字尾

b :光标回到上个字的开头

#l:光标移到该行的第#个位置,如:5l,56l

b.删除文字

x:   每按一次,删除光标所在位置的"后面"一个字符

#x: 例如,「6x」表示删除光标所在位置的"后面"6个字符

X:  大写X,每按一次,删除光标所在位置的"前面"一个字符

#X: 例如,「20X」表示删除光标所在位置的"前面"20个字符

dd:  删除光标所在行

#dd:从光标所在行开始删除#行

c.复制

yw:  将光标所在之处到字尾的字符复制到缓冲区中

#yw:复制#个字到缓冲区 yy:复制光标所在行到缓冲区

#yy: 例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字

p:   将缓冲区内的字符贴到光标所在位置;

注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能

d.替换

r :替换光标所在处的字符。

R:替换光标所到之处的字符,直到按下「ESC」键为止

e.跳至指定的行

ctrl+g:列出光标所在行的行号

#G:例如,「15G」,表示移动光标至文章的第15行行首

f.更改

cw:  更改光标所在处的字到字尾处

c#w:例如,「c3w」表示更改3个字

g.恢复上一次操作

u:如果您误执行一个命令,可以马上按下「u」,回到上一个操作;

按多次"u"可以执行多次回复

3.2编辑模式(重点)

a.进入编辑模式

i : 从目前光标所在处插入

I : 在目前所在行的第一个非空格符处开始插入

a: 从目前光标所在的下一个字符处开始插入

A: 从光标所在行的最后一个字符处开始插入

o :在目前光标所在的下一行处插入新的一行

O:在目前光标所在处的上一行插入新的一行

r : 只会取代光标所在的那一个字符一次

R:会一直取代光标所在的文字,直到按下 ESC 为止

Esc:退出编辑模式,回到一般模式

3.3命令行模式

注意:如在编辑模式,需按下【Esc】退出编辑模式,回到一般模式

a.进入命令行模式 (指令前带 ":",再敲指令前先敲 ":" )

:w : 保存编辑的内容

:w! :强制写入该文件,但跟你对该文件的权限有关

:q :  离开vi

:q! : 不想保存修改强制离开

:wq :保存后离开

:x :   保存后离开

ZZ :若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开

:w filename :将编辑的数据保存成另一个文件(类似另存)

:r filename : 在编辑的数据中,读入另一个文件的数据。

即将【filename】 这个文件的内容加到光标所在行后面

:n1,n2 w filename :将n1到n2的内容保存成filename这个文件

:! command :暂时离开vi 到命令行模式下执行command的显示结果;

例如 【:! ls /home】即可在 vi 当中察看/home底下以ls输出的文件信息

:set nu :显示行号

:set nonu :与 set nu 相反,为取消行

b.查找(指令前带 ":",再敲指令前先敲 ":" )

/xxx: 向光标向下寻找一个名称为xxx的字符串

?xxx:向光标向上寻找一个名称为xxx的字符串

n:代表重复前一个查找的动作

N:与n刚好相反,为【反向】进行行前一个查找动作

:n1,n2s/xxx/yyy/g:n1与n2为数字,在第n1与n2行之间查找xxx这个字符串,

并将该字符串替换为yyy

:1,$s/xxx/yyy/g: 从第一行到最后一行查找xxx字符串,并将该字符串替换为yyy

:1,$s/xxx/yyy/gc:从第一行到最后一行查找xxx字符串,并将该字符串替换为yyy,

且在替换前提示用户确认是否进行替换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux wifi ip,Linux环境下使用WIFI模块:使用DHCP工具动态获得IP地址

使用DHCP工具动态获得IP地址实验版本及下载地址DHCP:dhcp-4.4.1.tar.gz链接: [https://www.isc.org/downloads/]编译安装DHCP配置编译选项解压完成后进入DHCP根文件目录,输入配置指令./configure --hostarm-linux ac_cv_file__dev_randomyes --with-rand…

linux 硬盘空间监控,Linux服务器硬盘空间监控

#*************************************************************************# Author : 清风# CreateDate : 2015/6/12 15:30:13# Description : this script is mointoring the linux disk capacity, if disk used more than 90%,then it wi…

linux nifi指定jdk,nifi在arm架构启动不了,怎么办?

问题描述nifi启动报错问题出现的平台版本及自己尝试过哪些方法arrch64、在服务器上编译过相关代码粘贴代码文本(请勿用截图)ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Pro…

linux内核更新 2.6.38,Linux内核 2.6.38版本预计到四月初完成

【IT168 技术】Linux版本2.6.37发布整整14天之后,Linus Torvalds发布了内核2.6.38的第一测试版,正式版预计将在三月底或四月初完成。在此版本中,开发周期的合并窗口已经结束,Torvalds集 成这个版本的大多数变化到主要开发分支的源…

Linux指令lunch,linux命令 launch是什么命令?

lunch 吧?类似于choosecombo,选择编译编译参数的。执行source build/envsetup.sh才有。其实我也不是特别了解。我觉得应该是在envsetup.sh里定义的。不知道你用过choosecombo没有,跟那个是类似的。$ source build/envsetup.shincluding devic…

linux创建a1的硬链接a2,Linux命令-重定向和软硬链接

echo功能说明:显示文字. 语 法:echo [-ne][字符串] 或 echo [–help][–version]参数:   -n 不要在最后自动换行重定向>是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其…

linux shell 博客,【博客侠】Linux Shell脚本系列:开始上手(1)

看标题大家应该知道,这是一个关于 Linux Shell 脚本的系列文章。通过本系列文章希望帮助 Linux 初学用户快速开始上手编写 Shell 脚本,能够利索的对脚本进行测试和使用。在接下来的首篇文章中,我们将介绍什么是 Shell,有哪些 Linu…

怎么在linux中查询yum,linux - 如何使用YUM列出包的内容?

linux - 如何使用YUM列出包的内容?我知道如何使用rpm列出包的内容(rpm -qpil package.rpm)。 但是,这需要知道.rpm文件在文件系统上的位置。 更优雅的解决方案是使用包管理器,在我的例子中是YUM。 如何使用YUM实现这一目标?7个解决…

在linux安装光盘启动不了,linux光盘启动

〔以RedHat 7.3为例〕1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。2.等安装界面出来后,按〔F4〕键,也就是linux rescue模式。3.一系列键盘以及几项简单的配制,过后就〔继续〕了。。。这…

linux libusb应用实例,在Linux中使用libusb-1.0作为非root用户访问USB设备

我试图在RHEL5上作为非root用户与USB设备连接.该设备是一个GPIO接口(其文档可在http://www.xdimax.com/sub20/sub20.html找到),它使用libusb-1.0.使用其API打开设备的过程是:sub_device d;d sub_find_devices(0);sub_handle h sub_open(d);当我这样做时,sub_find_…

交叉调试 arm linux,搭建交叉调试环境Arm-Linux-Gdb与gdbserver

操作系统:Ubuntu9.04 开发板:博创2410s 交叉编译工具:arm-linux-gcc-4.1.1 gdbgdbserver 是调试目标板的常用方法.网络环境如下:HOST 192.168.1.123 Target: 192.168.1.21NFS共享目录: mount -t nfs -o intr,nolock,rsize1024,ws…

sql server linux性能,详细了解SQL Server 2008性能和性能优化

在SQL Server 2005或更早的版本中的中,表变量是不能作为存储过程的参数的。当多行数据到SQL Server需要发送多行数据到SQL Server ,开发者要么每次发送一列记录,或想出其他的变通方法,以满足需求。虽然在.net 2.0中提供了个SQLBul…

开发linux显卡驱动,显卡驱动开发DRM入门--Apple的学习笔记

由于之前的blog提及kmscube的源码我没有找到,所以只能在网上搜索了。DRM简介DRM是Linux目前主流的图形显示框架,同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一,方便管理和维护。而且drm是集成在linux kernel中的。DR…

linux 中w和x 区别,r、w、x权限在文件和目录中的含义有何区别?

age 于 2011-01-11 17:48:39发表:目录和文件的rw权限基本一致, 唯一有区别的可能就是执行权限了文件的可执行权限很好理解, 最简单的理解就是可以在终端下输入路径来执行这个文件.但目录可执行的意思则完全不同, 它并非指这个目录可以被执行. 而是指它允许在该目录下运行可执行…

linux ppp漏洞,Linux下ppp拨号的实现(Arm)

Linux发行版自带PPP拨号需要的pppd和chat命令,以2.6.18内核的Linux虚拟机为例,在/usr/sbin目录下,/etc/ppp目录也已自动创建。参考模权创建拨号脚本ppp-on,ppp-off,ppp-on-dialer三个文件,on&off放在/u…

c语言学生成绩管理论文,学生成绩管理系统毕业论文c语言.doc

111111111学院毕 业 论 文题 目 学生成绩管理系统姓 名 1 1 1所在系别 计 算 机 系专业班级 计算机应用技术计算机111班学 号 1111111111指导教师 1 1 1日 期 2012 年 4 月 15 日目 录摘 要 ………………………………………………………………………………………………………1…

编程语言基础 c语言同步教案,C语言程序设计基实验教案.doc

C语言程序设计基实验教案高级语言程序设计基础实验主讲教师:张顺利2011年10月,其中。2.将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母A后面第四个字母是E,用…

c语言char转cstring,CString、TCHAR*、char*转换 | 时刻需

char*、TCHAR*转换CStringCString str(****)下面详细写一下其它转换///************************************************************************* 函数: TransCStringToTCHAR* 描述:将CString 转换为 TCHAR** 日期:*********************…

c语言的c语句ab2,当初我在重庆交通大学读书的时候C语言成绩也相当不错的

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼楼主,感激不尽。1、C语言数组下标默认从 ______开始。2、C语言全局变量的存储值类型可以是exlern和_______3、结构化程序设计的三种基本结构分别指的是顺序结构、_____和_____4、若有定义imb2,c0执行下面的表…

android mvc使用方法,详细学习android mvc设计模式教程

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 web 应用程序的模式。其分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面。例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易…