感谢作者苏振老师
针对于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>
注意:真实机器必须先卸载,才能弹仓,否则无法弹出。