开发者社区 问答 正文

服务器运维工程师必须掌握的命令vi

vi

作为一个系统管理员或者运维工程师必须掌握的命令是man命令和vi命令。特别是vi命令,我们在修改配置文件的时,经常会使用这个命令。

切换模式


vi命令有2个模式,即命令模式和编辑模式,首先要确认当前的模式。


进入编译模式

命令解释

移到当前位置的左侧,开始进行编辑
I移到当前行的最前面,开始进行编辑
a移到当前位置的右侧,开始进行编辑
A移到当前行的最后面,开始进行编辑
o在当前行的下面插入空行,开始进行编辑
O在当前行的上面插入空行,开始进行编辑


修改

命令解释
r把当前的文字修改为指定的文字(可指定n个文字,例如r3,把3个文字修改为指定的文字)
R修改多个文字
J把当前行的换行符修改为空格(可指定n,例如J3,把3行连接到连接成一行)
~把当前的文字,改为大写⇔小写(可指定n,例如~3等)

删除

命令解释
x删除当前的文字(可使用n,例如x3,删除当前文字开始的3个字)
d删除当前的文字列(可使用n,例如d3,删除从当前文字列开始的3个文字列)
dd删除当前的行(可使用n,例如dd8,删除从当前行以后的8行)
:g/文字列/d删除包括指定文字列的所有行

剪切 拷贝 粘帖

命令解释
y拷贝对象文字列(可使用n,例如y3,拷贝当前文字列开始的3个文字列)
yy拷贝当前行(可使用n,例如yy3,拷贝当前行一下的3行)
P把拷贝或者删除的文字列,拷贝到当前行的上面
p把拷贝或者删除的文字列,拷贝到当前行的下面

移动当前位

命令解释
h往左移动一个字符(可使用n,例如h3,往左移动3个字符)
j往下移动一行(可使用n,例如j3,往下移动3行)
k往上移动一行(可使用n,例如k3,往上移动3行)
l往右移动一个字符(可使用n,例如l3,往右移动3个字符)
w把当前位移动到下一个单词(可使用n,例如w3)
b移动到前一个单词(可使用n,例如b3)
e移动到单词的最后一个字符,当已在一个单词的最后一个字符的时候,移动到下一个单词的最后一个字符
G移动到当前文件的最后一行的行首
-当前行的上面的行首(可使用n,-3)
Enter当前行的下面的行首(可使用n,Enter3)

Undo

命令解释
u取消上一个操作
.重复上一个操作

文件操作

命令解释
ZZ保存并且退出vi
:w(Enter)保存
:w 文件名(Enter)保存为指定的文件名
:wq(Enter)保存并退出vi
:q!(Enter)不保存并退出vi
:e 文件名(Enter)打开指定的文件



展开
收起
运维专家KQ 2014-07-15 17:44:17 11780 分享 版权
7 条回答
写回答
取消 提交回答
  • Re服务器运维工程师必须掌握的命令vi
    好帖子
    2014-07-17 18:50:42
    赞同 展开评论
  • 已经收藏!
    2014-07-17 17:20:06
    赞同 展开评论
  • vi已经抛弃好多年,用vim吧。
    2014-07-17 01:55:59
    赞同 展开评论
  • Re服务器运维工程师必须掌握的命令vi
    补充一个我经常用的   在文件操作中 :set nu   显示行号,对于文件排错很有帮助
    2014-07-16 14:12:35
    赞同 展开评论
  • 有这个帖子就可以对比参照啦!
    2014-07-16 10:17:39
    赞同 展开评论
  • 元芳,阿里云云栖论坛总版主,phpwind官方论坛管理员,社区论坛领域应用专家。长期活跃在社区论坛建站领域,对各类社区论坛程序颇有研究!乐于交友,热心助人,以帮助和服务站长朋友为宗旨,帮助数以千计的站长朋友顺利建站!
    一直记不好这些参数~
    哎~
    2014-07-15 18:19:52
    赞同 展开评论
  • 高手,膜拜
    2014-07-15 17:51:50
    赞同 展开评论
滑动查看更多