Linux Shell命令系列(5) VI编辑器

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1、vi的基本概念 
  基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 
    1) 命令行模式command mode) 
  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 
    2) 插入模式(Insert mode) 
  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。 
    3) 底行模式(last line mode) 
  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。 
2、vi的基本操作 
a) 进入vi 
    在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
   $ vi myfile 
  不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!

b) 切换至插入模式(Insert mode)编辑文件 
  在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

c) Insert 的切换 
  您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。

d) 退出vi及保存文件 
  在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如: 
: w filename (输入 「w filename」将文章以指定的文件名filename保存) 
: wq (输入「wq」,存盘并退出vi) 
: q! (输入q!, 不存盘强制退出vi)

3、命令行模式(command mode)功能键 
1). 插入模式 
       按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;
  按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 
  按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2). 从插入模式切换为命令行模式 
      按「ESC」键。

3). 移动光标 
  vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。 
  按「ctrl」+「b」:屏幕往"后"移动一页。 
  按「ctrl」+「f」:屏幕往"前"移动一页。 
  按「ctrl」+「u」:屏幕往"后"移动半页。 
  按「ctrl」+「d」:屏幕往"前"移动半页。 
  按数字「0」:移到文章的开头。 
  按「G」:移动到文章的最后。 
  按「$」:移动到光标所在行的"行尾"。 
  按「^」:移动到光标所在行的"行首" 
  按「w」:光标跳到下个字的开头 
  按「e」:光标跳到下个字的字尾 
  按「b」:光标回到上个字的开头 
  按「#l」:光标移到该行的第#个位置,如:5l,56l。

4). 删除文字 
  「x」:每按一次,删除光标所在位置的"后面"一个字符。 
  「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。 
  「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。 
  「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。 
  「dd」:删除光标所在行。 
  「#dd」:从光标所在行开始删除#行

5). 复制 
  「yw」:将光标所在之处到字尾的字符复制到缓冲区中。 
  「#yw」:复制#个字到缓冲区 
  「yy」:复制光标所在行到缓冲区。 
  「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。 
  「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

6). 替换 
  「r」:替换光标所在处的字符。 
  「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7). 回复上一次操作 
  「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。

8). 更改 
  「cw」:更改光标所在处的字到字尾处 
  「c#w」:例如,「c3w」表示更改3个字

9). 跳至指定的行 
  「ctrl」+「g」列出光标所在行的行号。 
  「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

时间: 2024-08-12 09:15:29

Linux Shell命令系列(5) VI编辑器的相关文章

Linux Shell命令系列(3)

11. chown命令 “chown”命令就是改变文件拥有者和所在用户组.每个文件都属于一个用户组和一个用户.在你的目录下,使用"ls -l",你就会看到像这样的东西.[email protected]:~# ls -l drwxr-xr-x 3 server root 4096 May 10 11:14 Binarydrwxr-xr-x 2 server server 4096 May 13 09:42 Desktop在这里,目录Binary属于用户"server"

Linux Shell命令系列(4)

16. cat命令 “cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容. 17. cp 命令 “copy”就是复制.它会从一个地方复制一个文件到另外一个地方. 18. mv 命令 “mv”命令将一个地方的文件移动到另外一个地方去. 19. pwd 命令 “pwd”(print working directory),在终端中显示当前工作目录的全路径.[email protected]:~# pwd /home/user/Desktop注意:

Linux Shell命令系列(2)

6. history命令 “history”命令就是历史记录.它显示了在终端中所执行过的所有命令的历史. 7. sudo命令 “sudo”(super user do)命令允许授权用户执行超级用户或者其它用户的命令.通过在sudoers列表的安全策略来指定.[email protected]:~# sudo add-apt-repository ppa:tualatrix/ppa注意:sudo 允许用户借用超级用户的权限,然而"su"命令实际上是允许用户以超级用户登录.所以sudo比s

Linux Shell命令系列(1)

1. ls命令ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹.“ls -l”命令以详情模式(long listing fashion)列出文件夹的内容."ls -a"命令会列出文件夹里的所有内容,包括以"."开头的隐藏文件.注意:在Linux中,文件以“.”开头的就是隐藏文件,并且每个文件,文件夹,设备或者命令都是以文件对待 2.lsblk命令 "lsblk"

linux下oralcle11g使用edit命令默认调用vi编辑器

linux下oralcle11g使用edit命令默认调用vi编辑器: 在        $ORACLE_HOME/sqlplus/admin/glogin.sql   最后一行添加   define_editor=vi  即可. linux下oralcle11g使用edit命令默认调用vi编辑器,布布扣,bubuko.com

[Shell&Mac&Environment variables]自己常用的Mac(或者说Linux)Shell命令小结,含Mac使用zsh shell的环境变量的有关配置方法

今天在使用tomcat的配置的时候,我用的mac,要是用到一些命令去配置tomcat. 问题来了: 我每次要去启动tomcat服务特别麻烦,因为我要先进入tomcat所在的文件目录,或者不进入使用~/,但是因为我把tomcat放到了一个比较“深“的文件夹里,所以命令显得又丑又长. 问题解决方案: 1.使用环境变量(修改.bashrc的方法) a.先查看自己的Mac目前正在用的是什么shell echo $SHELL 返回结果类似如下图 这里我是zsh,,也许你是bash,不过没关系,配置环境变量

Linux Shell命令总结

使用find命令找到大于指定大小的文件: find /-type f -size +10G 在Linux下如何让文件夹下的文件让文件按大小排序? 方法一:# ls -lhSl 长格式显示,h human readable模式,大小单位为M,G等易读格式,S size按大小排序: 方法二:# du -h | sort -n 当然您也可以结合管道查看文件夹内最大的几个文件或最小的几个文件, 再加上管道符号和head或者tail命令即可du -h | sort -n|head du -h * | so

37条常用Linux Shell命令组合

序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -k5 -nr 3 按cpu利用率从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -nr 4 打印说cache里的URL grep -r -a jpg /data/cache/*

常用Linux Shell命令组合

序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -k5 -nr 3 按cpu利用率从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -nr 4 打印说cache里的URL grep -r -a jpg /data/cache/*