现在的位置: 首页 > 综合 > 正文

VI 常用命令 经典版

2013年09月25日 ⁄ 综合 ⁄ 共 6988字 ⁄ 字号 评论关闭
原文出自:http://domren.blog.163.com/blog/static/159825872006101510352343/

感谢作者苏振老师

 

针对于vi,最基础需掌握内容
# vi haha.txt<Enter>
<i> 进入编辑模式,可输入内容
<esc> 返回命令模式
:wq!<Enter> 强制保存退出

 

1、创建文件
# vi 文件名<Enter>

状态栏
"/etc/named.conf"   38L    762C     1,1     Top
      文件名      总行数  字符数   行、列   顶端

<ctrl>+<g> // 查看状态栏
"/etc/named.conf" 38 lines --100%-- 16,2    Bot
      文件名       总行数          行、列   底部

 

2、vi的工作模式
命令模式(默认) 可以使用命令
输入模式 可以输入编辑文件内容
末行模式 以":"冒号开头的命令

命令模式 --> 输入模式  <i>
命令模式 <-- 输入模式  <esc>
命令模式 --> 末行模式  以冒号开头命令
命令模式 <-- 末行模式  <esc>

 

3、保存文件
:w<Enter> // write,保存
:q<Enter> // quit,退出
:wq<Enter> // 保存退出 <Z> => <Z>

:w!<Enter> // 强制保存
:q!<Enter> // 强制退出、不保存
:wq!<Enter> // 强制保存、退出

:w 新文件名<Enter> // 另存为

 

4、光标移动
←h(左)  ↓j(下) k(上)↑ l(右)→

^ 行首 行尾 $

H High,当前屏首(行首)
M Middle,当前屏中(行首)
L Low,当前屏尾(行首)

gg 全文首(行首)
G 全文尾(行首)

<ctrl>+<f> forward,向前翻页
<ctrl>+<b> back,向后翻页

<ctrl>+<d> down,向下翻半页
<ctrl>+<u> up,向上翻半页

 

5、插入文本
O 光标所在行上,新开一行

i insert,光标前插入
I 行首插入

a append,光标后追加
A 行尾追加

o open,光标所在行下,新开一行

OOOOOO
III---iii|aaa---AAA
oooooo

 

6、撤消更改
u undo,撤消到原文件内容
U 只针对当前行生效
:e!<Enter> 撤消所有编辑修改

 

7、删除文本
x 删除光标所在位置字符
X 删除光标所在位置前一个字符

dw delete word,
 从光标所在字符开始到下一个空格,
 算做一个单词删除

dd 删除光标所在一行

cw change word,删除单词同时进入输入模式

数字<删除命令> 连续删除 3dd

d<光标移动命令> 连续删除 d$

D d$ 删除光标所在字符到行尾
d0 d^ 删除光标前到行首字符

dgg 删除光标上一行到文件首
dG 删除光标所在行到文件尾

 

8、复制和移动文本
yy 复制一行
yw 复制一个单词

Pp
P 大,粘贴到光标前
p 小,粘贴到光标后

剪切和粘贴=dd和p

 

9、查找
/<查找的内容><Enter>
 <n>查找下一个、<N>查找上一个
?<查找的内容><Enter>
 <n>查找上一个、<N>查找下一个

查找特殊字符

//<查找字符><Enter>   //"/"为转义字符,使后面的字符变为原义

10、替换switch
:s/原有的/新的<Enter>  替换光标所在行第一次出现在位置
:s/原有的/新的/g<Enter>  替换光标所在行出现的所有位置
:#,#s/原有的/新的<Enter> 替换第几行到第几行第一次出现在位置
:%s/原有的/新的/g<Enter> 替换整篇文章所有出现的位置
:%s/原有的/新的/gc<Enter> 替换整篇文章所有出现的位置,需确认confirm
 y yes,逐个确认替换
 n no,逐个确认不替换
 a all,所有全替换
 q quit,退出不替换

r<新字符> replace,单个字符替换,光标所在字符
R<新字符串> 连续替换,撤消<back space>退格键

 

VI高级应用
:e /etc/grub.conf<Enter> // 不退出VI,打开其它文件
:r /etc/fstab<Enter>  // 读入另一个文件到光标
:数值<Enter>   // 移动光标到指定行

 

# echo haha > /root/h.txt<Enter>
# vi /etc/grub.conf<Enter>
:1<Enter>   // 移动光标到第1行
:6r/root/h.txt<Enter>  // 将h.txt内容粘贴到6行后

 

:!<命令><Enter>  // 不退出vi,执行命令。<Enter>返回vi
 :!ifconfig eth0<Enter> ==> <Enter>

 

:set number<Enter> // 显示行号
:set nonumber<Enter> // 取消行号

 

:syntax on<Enter> // 开启高亮显示
:syntax off<Enter> // 关闭高亮显示
 
v // 进入连续选择模式,可以通过hjkl等光标移动键配合使用

### vi 练习 + grub.conf 参数 #######################################################
# vi /etc/grub.conf<Enter>
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
 root (hd0,0)
 kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
 initrd /initrd-2.4.18-14.img
改成如下所示
default=1
timeout=-1
#splashimage=(hd0,0)/grub/splash.xpm.gz
title adder
 kernel (hd0,0)/vmlinuz-2.4.18-14 ro root=LABEL=/
 initrd (hd0,0)/initrd-2.4.18-14.img
title Red Hat Linux (2.4.18-14)
 root (hd0,0)
 kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
 initrd /initrd-2.4.18-14.img
操作步骤:
/0<Enter> ==> r1
j ==> R ==> -1 ==> <esc>
j ==> I ==> # ==> <esc>
j ==> yG ==> P
/R<Enter> ==> c$ ==> <esc>
/(<Enter> ==> y$ ==> /// ==> P ==> n三次 => P
k ==> k ==> dd ==> ZZ

# sync<Enter>
<ctrl>+<alt>+<Insert> 或 # init 6<Enter>
##########################################################

 

一、引导程序与关闭系统

1、引导装载程序
GRUB redhat >= 8.0
lilo redhat <= 7.0

/etc/grub.conf  // 字符链接文件
/boot/grub/grub.conf // 原文件

# vi /etc/grub.conf<Enter> // Grub的配置链接文件
default=0                       // 第一个title标记的操作系统将引导
timeout=10                      // 十秒之内用户没有作出选择的话,将以默认的选项操作系统引导
splashimage=(hd0,0)/grub/splash.xpm.gz            // 背景图片路径      
title Red Hat Linux (2.4.18-14)          // title标记,后面的内容在GRUB菜单中被显示
 root (hd0,0)            // 从哪个分区引导操作系统,即GRUB定位分区操作系统
 kernel /vmlinuz-2.4.18-14 ro root=LABEL=/       // 指定分区中给出内核的路径,以便引导系统
 initrd /initrd-2.4.18-14.img          // 系统镜像文件路径       
title adder
 kernel (hd0,0)/vmlinuz-2.4.18-14 ro root=LABEL=/
 initrd (hd0,0)/initrd-2.4.18-14.img
title Dos // 从特定分区使用链式的引导方式
 rootnoverify (hd0,1)
 chainloader +1       
# sync<Enter> // 磁盘同步
# init 6<Enter> // 重启

安装lilo引导程序
# cp /etc/lilo.conf.anaconda /etc/lilo.conf<Enter>
# lilo<Enter>
# sync<Enter>
# reboot<Enter>

安装grub引导程序
# df<Enter>
# grub-install /dev/sda<Enter>
# sync<Enter>
<Ctrl>+<Alt>+<Inert> // 虚拟机,相当于<ctrl>+<alt>+<del>

############ grub 安全 #################################################################
# grub-md5-crypt >> /etc/grub.conf<Enter> // 输入明文,md5加密
-<ccna>      // 只显示光标,此时输入密码ccna不显示

# vi /etc/grub.conf<Enter>
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
password ccna     // 编辑grub菜单权限密码
title Red Hat Linux (2.4.18-14)
 password --md5 $1$8vZd40$TncKe5Z7/YL.BU6dxJKzT.  // # 进入系统权限密码
 root (hd0,0)
 kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
 initrd /initrd-2.4.18-14.img

# sync<Enter>
# reboot<Enter>
########################################################################################
#### 利用救援模式解决密码 ##############################################################
########################################################################################
第一张安装光盘启动
boot: linux rescue<Enter>
CD-Found --> Skip
Choose a Language --> <F12>
keyboard type --> <F12>
Rescue --> <Continue>
-/bin/sh-2.05b# chroot /mnt/sysimage<Enter>
sh-2.05b# vi /etc/grub.conf<Enter>
sh-2.05b# exit<Enter>
-/bin/sh-2.05b# exit<Enter>
########################################################################################
############### grub 崩溃 ##############################################################
########################################################################################
·破坏一
# df<Enter>
# dd if=/dev/zero of=/dev/sda bs=446 count=1<Enter>

现象:重启时,光标只在左上角停滞

·解决
救援模式
第一张安装光盘启动
boot: linux rescue<Enter>
CD-Found --> Skip
Choose a Language --> <F12>
keyboard type --> <F12>
Rescue --> <Continue>
-/bin/sh-2.05b# chroot /mnt/sysimage<Enter>
sh-2.05b# grub-install /dev/sda<Enter>
# exit<Enter>
# exit<Enter>

·破坏二
# mv /boot/grub/grub.conf /tmp<Enter>

现象:重启时,只显示前导符 "grub >"

解决
grub> root (hd0,0)<Enter>
grub> setup (hd0)<Enter> // 偶尔用
grub> kernel /vmlinuz-2.4.18-14 ro root=LABEL=/<Enter>
grub> initrd /initrd-2.4.18-14.img<Enter>
grub> boot<Enter>

# mv /tmp/grub.conf /boot/grub/grub.conf<Enter>
########################################################################################

2、重启与关机
# shutdown -r 0<Enter>  # shutdown -h 0<Enter>
# shutdown -r now<Enter> # shutdown -h now<Enter>
# init 6<Enter>   # init 0<Enter>
# reboot<Enter>   # halt -p<Enter>
<ctrl>+<alt>+<del>  # poweroff<Enter>

关于init
# vi /etc/inittab<Enter>  // init的配置文件
id:3:initdefault:  // 默认运行级别3,可更改
ca::ctrlaltdel:/sbin/shutdown –t3 –r now // 热键重启

禁用热键重启功能
# vi /etc/inittab<Enter>
#ca::ctrlaltdel:/sbin/shutdown –t3 –r now // 行首加"#"号注释,禁用热键重启
# init q<Enter>     // inittab文件修改后,立即生效
<ctrl>+<alt>+<insert>    // 测试,不重启

# runlevel<Enter>  // 查看当前运行级别
N 3    // network 3

init 0  关机
init 1  单用户模式
init 2  多用户模式(但无NFS网络服务)
init 3  多用户模式
init 4  无
init 5  X window
init 6  重启

注销
# logout<Enter>
# exit<Enter>
<ctrl>+<d>

# login<Enter> // 登陆

[root@localhost root]#
[当前登陆用户@主机名 当前工作目录]特权用户前导符

[adder@localhost adder]$ // 普通用户是"$"

 

二、挂载和卸载

mount相当于在win当中,指派盘符
用法:# mount [-t 类型] [-o 参数] [设备] [挂载点]<Enter>
-t type,类型。包括(ext3、ext2、vfat、iso9660)
-o option,选项。包括(ro、rw、loop回环、remount)
-a all,所有。一般用于"/etc/fstab"添加新项时使用

 

1、挂光盘
# mount -t iso9660 /dev/cdrom /mnt/cdrom<Enter>
# mount /dev/cdrom<Enter>
# mount /mnt/cdrom<Enter>

挂优盘
# df<Enter>
# mkdir /mnt/usb<Enter>
# mount /dev/sdb /mnt/usb<Enter>
# mount /dev/sdb1 /mnt/usb<Enter> // 移动硬盘

挂镜像文件
插入光盘
# dd if=/dev/cdrom of=~/cd.iso<Enter>
# mkdir /mnt/iso<Enter>
# mount -o loop ~/cd.iso /mnt/iso<Enter>

2、卸载光盘
用法:# umount [设备|挂载点]<Enter>
# umount /dev/cdrom<Enter>
# umount /mnt/cdrom<Enter>

# umount /mnt/cdrom<Enter>
# eject<Enter> // 弹仓
# mount /mnt/cdrom<Enter>
注意:真实机器必须先卸载,才能弹仓,否则无法弹出。

抱歉!评论已关闭.