VI 常用命令 经典版

原文出自: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" 38lines--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(右)→

^ 行首行尾 $

HHigh,当前屏首(行首)
MMiddle,当前屏中(行首)
LLow,当前屏尾(行首)

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

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

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

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

iinsert,光标前插入
I行首插入

aappend,光标后追加
A行尾追加

oopen,光标所在行下,新开一行

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

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

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

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

dd删除光标所在一行

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

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

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

Dd$删除光标所在字符到行尾
d0d^删除光标前到行首字符

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
yyes,逐个确认替换
nno,逐个确认不替换
aall,所有全替换
qquit,退出不替换

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、引导装载程序
GRUBredhat >= 8.0
liloredhat <= 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 5X window
init 6重启

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

# login<Enter>// 登陆

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

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

二、挂载和卸载

mount相当于在win当中,指派盘符
用法:# mount [-t 类型] [-o 参数] [设备] [挂载点]<Enter>
-ttype,类型。包括(ext3、ext2、vfat、iso9660)
-ooption,选项。包括(ro、rw、loop回环、remount)
-aall,所有。一般用于"/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>
注意:真实机器必须先卸载,才能弹仓,否则无法弹出。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页