-
鸟哥的
Linux
私房菜
为取得较佳浏览结果,请爱用
浏览本网页
| | | |
| | | | | | | |
最近更新日期:
2005/08/01
本文已不再维护,更新文章请参考
每
个系统管理员都应该至少要学会一种文字接口的字处理器,
以方便系统日常的管理
行为。
在
Linux
上头的文字处理软件非常的多,不过,鸟哥还是建议使用
vi
这个
正规的字处理器。
这是因为
vi
几乎在任何一个
Unix
Like
的机器都存在,
学会他,
轻松很多啊!
而且后来的计划也有推出
vim
这个
vi
的进阶版本,
可以用的额外功
能更多了!
vi
是未来我们进行
shell script
程序的编写与服务器设定的重要工
具喔!
而且是非常非常重要的工具,一定要学会才行啊!
^_^
1.
2.
3.
4.
5.
6.
7.
8.
vi
与
vim
由前面一路走来,我们一
直建议使用文本模式来处
理
Linux
的系统设定问题,因为不但可以让您比
较容易了解到
Linux
的运作状况,也比较容易了
解整个设定的基本精神
,更能『保证』您的修改可
以顺利的被运作。
所以,在
Linux
的系统中使用
文本编辑器来编辑您的
Linux
参数配置文件,嗯!
可是一件很重要的事情呦!所以说
嘛!系统管理员
至少应该要熟悉一种字处理器的!
Tips:
这里要再次的强调,
不同的
Linux
distribution
各
有其不同的附加软件,例如
Red
Hat
与
Fedora
的
userconf,
Linuxconf, ntsysv
与
setup
等等,而
SuSE
则有
YOU
管理工具等等,
因此,
如果您只会使
用此种类型的软件来控制您的
Linux
系统时,
当接管
不同的<
/p>
Linux
distributions
时,呵呵!那可就苦恼
了!
由
介绍中,我们知道
Linux
与
Unix
系统中的
参数文件几乎都是
ASCII
码的『纯文本』档!因
此,利用简单的文字编辑软
件就可以马上修改
Linux
的参数档啰!然而,与
Windows
不同的是,
如
果
您
用
惯
了
Microsoft
Word
或
Corel
Wordperfect
的话,那么除了
X window
里面的编
辑程序
(
如
< br> xemacs )
用起来尚可应付外,于
Linux
的
文
本
模
p>
式
下
,
会
觉
得
档
案
编
辑
程
序
< br>都
没
有
Windows
程序那么方便。
Tips:
还记得什么是纯文本档吗?忘记的话,
回到
里头去
瞧一瞧先~该文件格式以
ASCII
格式码为主。
说穿
p>
了,就是您『不论使用什么编辑器』来开启那个档案
时,
都可以将内容给您看到,
而不是呈现乱码的档案,
那就是纯文本档了!
当您以
Windows
的
word
存一
个
档案时,
在
DOS
的情况下使用
type
这个指令来
查阅
数据,嗯!完全不知到内容是什么?因为会出现很多
的乱码
,那并非是纯文本档,而如果以
word
在存档
时,选择『纯文本类型』
,嗯!那就可以使用
type
看
到该档案的内容了!
<
/p>
由于纯文本文件在任何操作系统
底下都可以被取用,是相当方便的
一种设定格式啊!
无论如何,要管理好
Linux
系统时,纯文本的手工设定仍是需要的!那么在
Linux
底
下有哪些文书编辑器呢?
可多了~例如
vi, emacs, xemacs,
joe, e3, xedit, kedit,
pico
....
多的很~
各家处理器各有其优缺点,您当然可以选择任何一个您觉得适用的
字处理器来使
用。不过,鸟哥还是比较建议使用
vi
啦!这是因为
vi
是
Unix
Like
的
机器上面默认都有安装的软件,也就是说,您一定可以接触到这个软件就
是了。
另外,
在较新的
distributions
上,
您也可以使用较新较先进的
vim
这个字处理器!
vim
可
以看做是
vi
< br>的进阶软件,他可以具有颜色显示,很方便程序开发人员在进行程序的撰
写呢!<
/p>
简单的来说,
vi
是老式的字处理
器,不过功能已经很齐全了,但是还是有可以进步的
地方。
vim
则可以说是程序开发者的一项很好用的工具,就连
vim
的官方网站
()
自
己也说
vim
< br>是一个『程序开发工具』而不是文字处理软件~
^_^
。
因为
vim
里面加入
了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复
制等等。
这
对于我们在
Linux
上面进行一些配置文件的修订工作时,是很棒的一项功能呢!
底下鸟哥会先就简单的
vi
做个介绍,然后再跟大家报告一下
vim
的额外功能与用法
呢!
vi
的使用
基本上
vi
共分为三种模式,分别
是『一般模式』
、
『编辑模式』与『
指令列命令模式』
三种!
这三种模式的作用是:
?
一般模式:
?
以
vi
处理一个档案的时后,
一进入该档案就是一般模式了。
在这个模式中,
你
可
以使用『上下左右』按键来移动光标,您可以使用『删除字符』或『删除整行』
来处理档
案内容,
也可以使用『复制、贴上』来处理您的文件数据。
?
?
编辑模式:
?
在一般模式中可以处理删除、复制
、贴上等等的动作,但是却无法编辑的!
要
等到您按下『
i, I, o,
O, a, A, r,
R
』等字母之后才会进入编辑模式。注意了!通常在
Linux
中,按下上述的字母时,在画面的左下方会出现『
INSERT
或
REPLACE
』的
字样,才可以输入任何字来输入到您的档案中!而如果要回到一般模式时,
则必须
要按下『
Es
c
』这个按键即可退出编辑模式。
?
?
指令列命令模式:
?
在一般模式当中,输入『
:
或
/
或
?
』就可以将光标移动到最底下那一行,
在这个模式当中,<
/p>
可以提供您『搜寻资料』的动作,而读取、存盘、大量取代字符
、
离开
vi
、显示行号
等等的动作则是在此模式中达成的!
简单的说,我们可以将这三个模式想成底下的图标来表示之:
图一、
vi
三种模式的相互关系
闲话不多说,我们底下以一个简单的例子来进行说明吧!
简易执行范例
我们怎么使用
vi
建立一个档名为
的资料呢?也是很简单的啦,
整个步骤可以是这
样:
使用
vi
进入一般模式;
[root@linux ~]# vi
直接输入『
vi
档名』即可进入
vi
了!如下图所
示,左下角还会显示这个档案目前的
状态!如果是新建档案会显示
[New
File]
,如果是已存在的档案,则会显示目
前的文件
名、行数与字符数,例如:
『
』
图二、
利用
vi
开启一个档案
按下
i
进入编辑模式,开始编辑文字;
在一般模式之中,只要按下
I,
o,
a
等字符,
< br>就可以进入编辑模式了!
在编辑模式当中,
您可以发现在
左下角会出现
–
INSERT- <
/p>
的画面,
那就是可以输入任意字符的提示啰!
这
个时候,
键盘上除了
[Esc]
这个按键之外,
其他的按键都可以视作为一般的输
入按钮了,
所以您可以进行任何的编辑啰!
(
注:在
vi
里面,
[tab]
这个按钮所得到
的结果与
空格符所得到的结果是不一样的,特别强调一下!
)
图三、
进入
vi
的编辑模式
?
?
按下
[ESC]
按钮回到一般模式;
?
?
好了,
假
设我已经按照上面的样式给他编辑完毕了,
那么应该要如何退出呢?是
< br>的!没错!就是给他按下
[Esc]
这个按钮即可!马上你就会发现画面左下角的
–
INSERT
–
不见了!
?
在一般模式中按下
:wq
储存后离开
vi
!
OK<
/p>
,我们要存档了,存盘并离开的指令很简单,输入『
:wq
』即可存档离开!
(注意了,
按下
:
该光标就会移动到最底下一行去!
)这时你
在提示字符后面输入『
ls
-l
』即可
看到我们刚刚建立的
档案啦!整个图示有点像底下这样:
图四、利用
vi
储存档案
?
如此一来,您的档案
就已经建立起来啰!很简单吧!需要注意的是,如果您的
档案权限不对,<
/p>
例如为
-r--r--r--
时,<
/p>
那么可能会无法写入,
那么可以使用
『强
制写入』的方式吗?可以!使用『
:wq!
』
多加一个惊叹号即可!不过,需要特别
注意呦!
那个是在
『您的权限可以改变』
的情况下才能成立的!
关于权限的概念,
请参考一下
啰!
命令行内容说明
如前所述,所谓的命
令行或命令模式,就是在最下面一行没有显示
『
--INSERT--
』
或者『
--REPLACE--
』
字样
的时候。通常在命令行中的指令有下面几种:
(注意,当
按下<
/p>
『
:
』
p>
时,光标会自动移动到屏幕的最下面一行!
)
一般模式:
移动光标的方法
h
或
向左箭头键
光标向左移动一个字符
(
←
)
j
或
向下箭头键
光标向下移动一个字符
(
↓
)
k
或
向上箭头键
光标向上移动一个字符
(
↑
)
l
或
向右箭头键
光标向右移动一个字符
(
→
)
如果想要进行多次移动的话,例如向下移动
30
行,可以使用
或
↓
的
组合按键,
亦即加上想要进行的次数
(
数字
)
后,按下动作即可!
[Ctrl] + [f]
[Ctrl] + [b]
[Ctrl] + [d]
[Ctrl] + [u]
+
-
屏幕『向下』移动一页,相当于
[Page Down]
按键
(
常用
)
屏幕『向上』移动一页,相当于
[Page Up]
按键
(
常用
)
屏幕『向下』移动半页
屏幕『向上』移动半页
光标移动到非空格符的下一列
光标移动到非空格符的上一列
那个
n
表示『数字』
,例如
20
。按下数字后再按空格键,光
n
标会向右移动这一行的
n
个字符。例如
20
则光标
会向后面移动
20
个字符距离。
0
$$
H
M
L
G
这是数字『
0
』
:移动到这一行的最前面字符处
(
常用
)
移动到这一行的最后面字符处
(
常用
)
光标移动到这个屏幕的最上方那一行
光标移动到这个屏幕的中央那一行
光标移动到这个屏幕的最下方那一行
移动到这个档案的最后一行
(
常用
)
n
为数字。
移动到这个档案的第
n
行。
例如
20G
则会移动到
nG
这个档案的第
20
行
(
可配合
:set nu)
gg
n
移动到这个档案的第一行,相当于
1G
啊!
(
常用
)
n
为数字。光标向下移动
n
行
(
常用
)
一般模式:
搜寻与取代
向光标之下寻找一个字符串名称为
word
的字符串。
例如要在
/word
档案内搜寻
vbird
这个字符串,就输入
/vbird
即可!
(
常用
)
?word
向光标之上寻找一个字符串名称为
word
的字符串。
这个
n
是
英文按键。代表『重复前一个搜寻的动作』的意思。
举例来说,
如果刚刚我们执行
/vbird
去向下搜寻
vbird
这
n
个字符串,
则按下
n
后,
会向下继续搜寻下一个名称为
vbird
的字符串。如果是执行
?vbird
的话,那么按下
n
则会向上继
续搜寻名称为
vbird
的字符串!
这个
N
是英文按键。与
n
刚好相反,为『反向』进行前一个
N
搜寻动作。
例如
/vbird
后,按下
N
则表示『向上』搜寻
vbird
。
n1
与
n2
为数字。在第
n1
与
n2
行之间寻找
word1
这个
:n1,n2s/word1/w
ord2/
g
字符串,
并将该字符串取代为
word2
!
举例来说,
在
100
到
200
行之间搜寻
vbird
并取代为
VBIRD
则:
『<
/p>
:100,200s/vbird/VBIRD/g
』
。
(
常用
)
:1,$$s/word1/word
2/g
从第一行到最后一行寻找
word1
字符串,并将该字符串取代
为
word2
!
(
常用
)
从第一行到最后一行寻找
word1
字符串,并将该字符串取代
:1,$$s/word1/word
为
word2
!且在取代前显示提示字符给用户确认
(confirm)
2/gc
是否
需要取代!
(
常用
)
一般模式:
删除、复制与贴上
x, X
在一行字当中,
x
为向后删除一个字符
(
相当于
[del]
按键
)
,
X
为向前删除一个字符
(
相当于
[backspace]
亦即是退格
键
)(
常用
p>
)
n
为数字,
连续向后删除
n
个字符。
举例来说,
我要连续删除
nx
10
个字符,
『
10x
』
。
dd
删除游标所在的那一整列
(
p>
常用
)
n
为数字。删除光标所在的向下
n
列,例如
20dd
则是删除
ndd
20
列
(
常用
)
d1G
dG
d$$
d0
yy
删除游标所在到第一行的所有数据
删除游标所在到最后一行的所有数据
删除游标所在处,到该行的最后一个字符
那个是数字的
0
< br>,
删除游标所在处,
到该行的最前面一个字符
复制游标所在的那一行
(
常用
)
n
为数字。复制光标所在的向下
n
列,例如
20yy
则是复制
nyy
20
列
(
常用
)
y1G
yG
y0
y$$
复制游标所在列到第一列的所有数据
复制游标所在列到最后一列的所有数据
复制光标所在的那个字符到该行行首的所有数据
复制光标所在的那个字符到该行行尾的所有数据
p
为将已复制的数据在光标下一行贴上,
P
则为贴在游标上一
p, P
行!
举例来说,
我目前光标在第
20
行,
且已经复制了
10
行
数据。
则按下
p
后,
那
10
行数据会贴在原本的
20
行之后,
亦即由
21
行开始贴。但如果是按下
P
呢?
那么原本的第
20
行会被推到变成
30
行。
(
常用
)
J
c
u
[Ctrl]+r
将光标所在列与下一列的数据结合成同一列
重复删除多个数据,例如向下删除
10
行,
[ 10cj ]
复原前一个动作。
(
常用
)
重做上一个动作。
(
常用
p>
)
这个
u
与
[Ctrl]+r
是很常用的指令!一个是复原,另一个则是重做一次~
利用这
两个功能按键,您的编辑,嘿嘿!很快乐的啦!
不要怀疑!这就是小数点!意思是重复前一个动作的意思。
如
.
果您想要重复删除、重复贴上等
等动作,按下小数点『
.
』就好
了!<
/p>
(
常用
)
进入编辑模式
插入:在目前的光标所
在处插入输入之文字,已存在的文字会
i, I
向后退;
其中,
i
为『从目前光标所在处插入』
,
I
为『在目
前所在行的第一个非空格
符处开始插入』
。
(
常用
)
a
为『从目前光标所在的下一个字符处开始插入』
,
A
为『从
a, A <
/p>
光标所在行的最后一个字符处开始插入』
。
(
常用
)
这是英文字母
o
的大小写。
o
为
『在目前光标所在的下一行处
o,
O
插入新的一行』
;
O
为在目前光标所在处的上一行插入新的一
< br>行!
(
常用
)
取代:
r
会取代光标所在的那一个字
符;
R
会一直取代光标所在
r, R
的文字,直到按下
ESC
为止;
(
常用
)
上面这些按键中,在
vi
画面的左下角处会出现『
--INSERT--
』或『
--REPLACE--
』
的字
样。
由名称就知道该动作了吧!
!特
别注意的是,我们上面也提过了,你想要在
档案里面输入字符时,
一定要在左下角处看到
INSERT/REPLACE
才能输入喔!
Esc
退出编辑模式,回到一般模式中
(
常用
)
指令列命令模式
:w
:w!
:q
:q!
将编辑的数据写入硬盘档案中
(
常用
)
若文件属性为『只读』时,强制写入该档案。不过,到底能不
能写入,
还是跟您对该档案的档案权限有关啊!
离开
vi
(
常用
)
若曾修改过档案,
又不想储存,
使用
!
为强制离开不储存档案。
注意一下啊,那个惊叹号
(!)
在
vi
当中,常常具有『强制』的意思~
:wq
:e!
ZZ
:w [filename]
:r [filename]
:n1,n2 w
将
n1
到
n2
的内容储存成
filename
这个档案。
[filename]
暂时离开
vi
到指令列模式下执行
command
的显示结果!
例
:! command
如
『
:! ls
/home
』即可在
vi
当中察看
/home
底下以
ls
输出
的档案信息!
:set nu
:set nonu
显示行号,设定之后,会在每一行的前缀显示该行的行号
与
set nu
相反,为取消行号!
储存后离开,若为
:wq!
则为强制储存后离开
(
常用
< br>)
将文件还原到最原始的状态!
若档案没有更动,则不储存离开,若档案已经经过更动,则储
存后离开!
将编辑的数据储存成另一个档案(类似另存新档)
在编辑的数据中,
读入另一个档案的数据。
亦即将
『
filename
』
这个档案内容加到游标所在行后面
特别注意,在
vi
中,
『数字』是很有意义的!数字通常代表重复做几次的意思!
也有