Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54156
  • 博文数量: 16
  • 博客积分: 125
  • 博客等级: 入伍新兵
  • 技术积分: 131
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-12 08:47
文章分类

全部博文(16)

文章存档

2014年(1)

2013年(1)

2012年(3)

2011年(11)

我的朋友

分类: LINUX

2014-06-06 14:16:47

原文地址:vim的常用操作 作者:linshangsheng

VI常用命令

(1) 进入vi的命令

vifilename:打开或新建文件,并将光标置于第一行首

vi+nfilename :打开文件,并将光标置于第n行首

vi+filename :打开文件,并将光标置于最后一行首

vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处

vi-rfilename :在上次正用vi编辑时发生系统崩溃,恢复filename

vifilename....filename :打开多个文件,依次编辑

(2) 移动光标

vi可以直接用键盘上的光标键来上下左右移动,但正规的vi是用小写英文字母

h、j、k、l,分别控制光标左、下、上、右移一格。

按Ctrl+B:屏幕往后移动一页。[常用]

按Ctrl+F:屏幕往前移动一页。[常用]

按Ctrl+U:屏幕往后移动半页。

按Ctrl+D:屏幕往前移动半页。

按0(数字零):移动文章的开头。[常用]

按G:移动到文章的最后。[常用]

按w:光标跳到下个word的开头。[常用]

按e:光标跳到下个word的字尾。

按b:光标回到上个word的开头。按$:移到光标所在行的行尾。[常用]

按^:移到该行第一个非空白的字符。按0:移到该行的开头位置。[常用]

按#:移到该行的第#个位置,例:51、121。[常用]

(3) 删除文字

x:每按一次删除光标所在位置的后面一个字符。[超常用]

#x:例如,6x表删除光标所在位置的后面6个字符。[常用]

X:大字的X,每按一次删除光标所在位置的前面一个字符。

#X:例如,20X表删除光标所在位置的前面20个字符。

dd:删除光标所在行。[超常用]

#dd:例如,6dd表删除从光标所在的该行往下数6行之文字。[常用]

(4) 复制

yw:将光标所在处到字尾的字符复制到缓冲区中。(想在和#x、#X的功能相反)

p:将缓冲区内的字符粘贴到光标所在位置(指令‘yw’与‘p必须搭配使用)。

yy:复制光标所在行。[超常用]p:复制单行到您想粘贴之处。(指令‘yy’与‘p’必须搭配使用)

#yy:如:6yy表示拷贝从光标所在的该行往下数6行之文字。[常用]

p:复制多行到您想粘贴之处。(指令‘#yy’与‘p’必须搭配使用)

ayy:将复制行放入buffera,vi提供buffer功能,可将常用的数据存在buffer

ap:将放在buffera的数据粘贴。

b3yy:将三行数据存入bufferb。

b3p:将存在bufferb的资料粘贴

(5) 取代

r: 取代光标所在处的字符:[常用]

R:取代字符直到按Esc为止。

(6) 复原(undo)上一个指令

u:假如您误操作一个指令,可以马上按u,回复到上一个操作。[超常用]

.:.可以重复执行上一次的指令。

(7) 更改

cw:更改光标所在处的字到字尾$处。

c#w:例如,c3w代表更改3个字。

(8) 跳至指定行

Ctrl+G:列出光标所在行的行号。#G:例如,15G,表示移动光标至文章的第15行行首。[常用]

命令行指令简介读者您要使用命令行指令之前,请记得先按Esc键确定您已经处于Command

mode下后,再按冒号

“:”或“/”或“?”三键的其中一键进入Lastlinemode。

1.列出行号

setnu:输入“setnu”后,会在文章的每一行前面列出行号。

2.跳到文章的某一行

#:井号代表一个数字,在Lastlinemode提示符号“:”前输入数字,再按

Enter就会跳到该行了,如:15[Enter]就会跳到文章的第15行。[常用]

3.寻找字符串

/关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按

n会往下寻找到您要的关键字为止。?关键字:先按?,再输入您想寻找的字,如果第一次找的

关键字不是您想要的,可以按n会往前寻找到您要的关键字为止。

4.取代字符串

1,$s/string/replae/g:在lastlinemode输入“1,$s/string/replace/g”会将全文的

string字符串取代为replace字符串,其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是

表示全部取代不必确认。%s/string/replace/c:同样会将全文的string字符串取代为replace

字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次

确认是否取代。

1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。

5.存文件

w:在命令行提示符号“:”前按w即可将文件存起来。[超常用]

#,#wfilename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,

例如30,50wnice,将您正在编辑文章的第30~50行存成nice这个文件。

6.离开

q:按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!”

qw:一般建议离开时,搭配w一起使用,如此离开时还可存文件。

光标控制命令

命令 光标移动

h或^h 向左移一个字符

j或^j或^n 向下移一行

k或^p 向上移一行

l或空格 向右移一个字符

G 移到文件的最后一行

nG 移到文件的第n行

w 移到下一个字的开头

W 移到下一个字的开头,忽略标点符号

b 移到前一个字的开头

B 移到前一个字的开头,忽略标点符号

L 移到屏幕的最后一行

M 移到屏幕的中间一行

H 移到屏幕的第一行

e 移到下一个字的结尾

E 移到下一个字的结尾,忽略标点符号

( 移到句子的开头

) 移到句子的结尾

{ 移到段落的开头

} 移到下一个段落的开头

0或| 移到当前行的第一列

n| 移到当前行的第n列

^ 移到当前行的第一个非空字符

$ 移到当前行的最后一个字符

+或return 移到下一行的第一个字符

- 移到前一行的第一个非空字符

在vi中添加文本

命令 插入动作

a 在光标后插入文本

A 在当前行插入文本

i 在光标前插入文本

I 在当前行前插入文本

o 在当前行的下边插入新行

O 在当前行的上边插入新行

:rfile 读入文件file内容,并插在当前行后

:nrfile 读入文件file内容,并插在第n行后

escape 回到命令模式

^vchar 插入时忽略char的指定意义,这是为了插入特殊字符

在vi中删除文本

命令 删除操作

x 删除光标处的字符,可以在x前加上需要删除的字符数目

nx 从当前光标处往后删除n个字符

X 删除光标前的字符,可以在X前加上需要删除的字符数目

nX 从当前光标处往前删除n个字符

dw 删至下一个字的开头

ndw 从当前光标处往后删除n个字

dG 删除行,直到文件结束

dd 删除整行

ndd 从当前行开始往后删除

db 删除光标前面的字

ndb 从当前行开始往前删除n字

:n,md 从第m行开始往前删除n行

d或d$ 从光标处删除到行尾

dcursor_command 删除至光标命令处,如dG将从当产胆行删除至文件的末尾

^h或backspace 插入时,删除前面的字符

^w 插入时,删除前面的字

修改vi文本

每个命令前面的数字表示该命令重复的次数

命令 替换操作

rchar 用char替换当前字符

Rtextescape 用text替换当前字符直到换下Esc键

stextescape 用text代替当前字符

S或cctextescape 用text代替整行

cwtextescape 将当前字改为text

Ctextescape 将当前行余下的改为text

cGescape 修改至文件的末尾

ccursor_cmdtextescape 从当前位置处到光标命令位置处都改为text

在vi中查找与替换

命令 查找与替换操作

/text 在文件中向前查找text

?text 在文件中向后查找text

n 在同一方向重复查找

N 在相反方向重复查找

ftext 在当前行向前查找text

Ftext 在当前行向后查找text

ttext 在当前行向前查找text,并将光标定位在text的第一个字符

Ttext 在当前行向后查找text,并将光标定位在text的第一个字符

:setic 查找时忽略大小写

:setnoic 查找时对大小写敏感

:s/oldtext/newtext 用newtext替换oldtext

:m,ns/oldtext/newtext 在m行通过n,用newtext替换oldtext

& 重复最后的:s命令

:g/text1/s/text2/text3 查找包含text1的行,用text3替换text2

:g/text/command 在所有包含text的行运行command所表示的命令

:v/text/command 在所有不包含text的行运行command所表示的命令

在vi中复制文本

命令 复制操作

yy 将当前行的内容放入临时缓冲区

nyy 将n行的内容放入临时缓冲区

p 将临时缓冲区中的文本放入光标后

P 将临时缓冲区中的文本放入光标前

"(a-z)nyy 复制n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行

"(a-z)ndd 删除n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行

"(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后

"(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前

在vi中撤消与重复

命令 撤消操作

u 撤消最后一次修改

U 撤消当前行的所有修改

. 重复最后一次修改

, 以相反的方向重复前面的f、F、t或T查找命令

; 重复前面的f、F、t或T查找命令

"np 取回最后第n次的删除(缓冲区中存有一定次数的删除内容,一般为9)

n 重复前面的/或?查找命令

N 以相反方向重复前面的/或?命令

保存文本和退出vi

命令 保存和/或退出操作

:w 保存文件但不退出vi

:wfile 将修改保存在file中但不退出vi

:wq或ZZ或:x 保存文件并退出vi

:q! 不保存文件,退出vi

:e! 放弃所有修改,从上次保存文件开始再编辑

vi中的选项

选项 作用

:setall 打印所有选项

:setnooption 关闭option选项

:setnu 每行前打印行号

:setshowmode 显示是输入模式还是替换模式

:setnoic 查找时忽略大小写

:setlist 显示制表符(^I)和行尾符号

:setts=8 为文本输入设置tabstops

:setwindow=n 设置文本窗口显示n行

vi的状态

选项 作用

:.= 打印当前行的行号

:= 打印文件中的行数

^g 显示文件名、当前的行号、文件的总行数和文件位置的百分比

:l 使用字母"l"来显示许多的特殊字符,如制表符和换行符

在文本中定位段落和放置标记

选项 作用

{ 在第一列插入{来定义一个段落

[[ 回到段落的开头处

]] 向前移到下一个段落的开头处

m(a-z) 用一个字母来标记当前位置,如用mz表示标记z

'(a-z) 将光标移动到指定的标记,如用'z 表示移动到z

在vi中连接行

选项 作用

J 将下一行连接到当前行的末尾

nJ 连接后面n行

光标放置与屏幕调整

选项 作用

H 将光标移动到屏幕的顶行

nH 将光标移动到屏幕顶行下的第n行

M 将光标移动到屏幕的中间

L 将光标移动到屏幕的底行

nL 将光标移动到屏幕底行上的第n行

^e(ctrl+e) 将屏幕上滚一行

^y 将屏幕下滚一行

^u 将屏幕上滚半页

^d 将屏幕下滚半页

^b 将屏幕上滚一页

^f 将屏幕下滚一页

^l 重绘屏幕

z-return 将当前行置为屏幕的顶行

nz-return 将当前行下的第n行置为屏幕的顶行

z. 将当前行置为屏幕的中央

nz. 将当前行上的第n行置为屏幕的中央

z- 将当前行置为屏幕的底行

nz- 将当前行上的第n行置为屏幕的底行

vi中的shell转义命令

选项 作用

:!command 执行shell的command命令,如:!ls

:!! 执行前一个shell命令

:r!command 读取command命令的输入并插入,如:r!ls会先执行ls,然后读入内容

:w!command 将当前已编辑文件作为command命令的标准输入并执行command命令,

如:w!grepall

:cddirectory 将当前工作目录更改为directory所表示的目录

:sh 将启动一个子shell,使用^d(ctrl+d)返回vi

:sofile 在shell程序file中读入和执行命令

vi中的宏与缩写

(避免使用控制键和符号,不要使用字符K、V、g、q、v、*、=和功能键)

选项 作用

:mapkeycommand_seq 定义一个键来运行command_seq,如:mapeea,无论什么时候都可以

e移到一个字的末尾来追加文本

:map 在状态行显示所有已定义的宏

:umapkey 删除该键的宏

:abstring1string2 定义一个缩写,使得当插入string1时,用string2替换string1。当要插入

文本时,键入string1然后按Esc键,系统就插入了string2

:ab 显示所有缩写

:unastring 取消string的缩写

在vi中缩进文本

选项 作用

^i(ctrl+i)或tab 插入文本时,插入移动的宽度,移动宽度是事先定义好的

:setai 打开自动缩进

:setsw=n 将移动宽度设置为n个字符

n<< 使n行都向左移动一个宽度

n>> 使n行都向右移动一个宽度,例如3>>就将接下来的三行每行都向右移动一个

移动宽度

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑

器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,

vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中

最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1、vi的基本概念

基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和

底行模式(lastlinemode),各模式的功能区分如下:

1)命令行模式commandmode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到last

linemode。

2)插入模式(Insertmode)

只有在Insertmode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3)底行模式(lastlinemode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(lastlinemode)也算入命令行

模式commandmode)。

2、vi的基本操作

a) 进入vi

在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:

$vimyfile

不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(commandmode)」,您要

切换到「插入模式(Insertmode)」才能够输入文字。初次使用vi的人都会想先用上下左右键移

动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插

入模式(Insertmode)」再说吧!

b)切换至插入模式(Insertmode)编辑文件

在「命令行模式(commandmode)」下按一下字母「i」就可以进入「插入模式(Insertmode)」,

这时候你就可以开始输入文字了。

c)Insert 的切换

您目前处于「插入模式(Insertmode)」,您就只能一直输入文字,如果您发现输错了字!想用

光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(commandmode)」

再删除文字。

d)退出vi及保存文件

在「命令行模式(commandmode)」下,按一下「:」冒号键进入「Lastlinemode」,例如:

:wfilename (输入「wfilename」将文章以指定的文件名filename保存)

:wq(输入「wq」,存盘并退出vi)

:q!(输入q!,不存盘强制退出vi)

3、命令行模式(commandmode)功能键

1). 插入模式

按「i」切换进入插入模式「insertmode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2). 从插入模式切换为命令行模式

按「ESC」键。

3). 移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、

「l」,分别控制光标左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“后”移动一页。

按「ctrl」+「f」:屏幕往“前”移动一页。

按「ctrl」+「u」:屏幕往“后”移动半页。

按「ctrl」+「d」:屏幕往“前”移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的“行尾”。

按「^」:移动到光标所在行的“行首”

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

4). 删除文字

「x」:每按一次,删除光标所在位置的“后面”一个字符。

「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

「dd」:删除光标所在行。

「#dd」:从光标所在行开始删除#行

5). 复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配

合才能完成复制与粘贴功能。

6). 替换

「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7). 回复上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次

回复。

8). 更改

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

9). 跳至指定的行

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

4、Lastlinemode下命令简介

在使用「lastlinemode」之前,请记住先按「ESC」键确定您已经处于「commandmode」下后,

再按「:」冒号即可进入「lastlinemode」。

A)列出行号

「setnu」:输入「setnu」后,会在文件中的每一行前面列出行号。

B)跳到文件中的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数

字15,再回车,就会跳到文章的第15行。

C)查找字符

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可

以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可

以一直按「n」会往前寻找到您要的关键字为止。

D)保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来。

E)离开vi

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。

「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

5、vi命令列表

1、下表列出命令模式下的一些键的功能:

h

左移光标一个字符

l

右移光标一个字符

k

光标上移一行

j

光标下移一行

^

光标移动至行首

0

数字“0”,光标移至文章的开头

G

光标移至文章的最后

$

光标移动至行尾

Ctrl+f

向前翻屏

Ctrl+b

向后翻屏

Ctrl+d

向前翻半屏

Ctrl+u

向后翻半屏

i

在光标位置前插入字符

a

在光标所在位置的后一个字符开始增加

o

插入新的一行,从行首开始输入

ESC

从输入状态退至命令状态

x

删除光标后面的字符

#x

删除光标后的#个字符

X

(大写X),删除光标前面的字符

#X

删除光标前面的#个字符

dd

删除光标所在的行

#dd

删除从光标所在行数的#行

yw

复制光标所在位置的一个字

#yw

复制光标所在位置的#个字

yy

复制光标所在位置的一行

#yy

复制从光标所在行数的#行

p

粘贴

u

取消操作

cw

更改光标所在位置的一个字

#cw

更改光标所在位置的#个字

2、下表列出行命令模式下的一些指令

wfilename

储存正在编辑的文件为filename

wqfilename

储存正在编辑的文件为filename,并退出vi

q!

放弃所有修改,退出vi

setnu

显示行号

/或?

查找,在/后输入要查找的内容

n

与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?

联用)继续查找,直到找到为止。

对于第一次用vi,有几点注意要提醒一下:

1、用vi打开文件后,是处于「命令行模式(commandmode)」,您要切换到「插入模式(Insert

mode)」才能够输入文字。切换方法:在「命令行模式(commandmode)」下按一下字母「i」

就可以进入「插入模式(Insertmode)」,这时候你就可以开始输入文字了。

2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC」键。

3、保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的:)

linuxvi命令简介

linuxvi命令是“Visualinterface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。

它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要

对其进行定制,这是其他编辑程序所没有的。

linuxvi命令不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性

进行编排,它只是一个文本编辑程序。

linuxvi命令没有菜单,只有命令,且命令繁多。Vi有三种基本工作模式:命令行模式、文本输

入模式和末行模式。

命令行模式

任何时候,不管用户处于何种模式,只要按一下键,即可使linuxvi命令行模式;我们在shell

环境(提示符为$)下输入启动linuxvi命令,进入编辑器时,也是处于该模式下。

在该模式下,用户可以输入各种合法的linuxvi命令,用于管理自己的文档。此时从键盘上输入

的任何字符都被当做编辑命令来解释,若输入的字符是合法的linuxvi命令,则linuxvi命令在

接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若

输入的字符不是Vi的合法命令,Vi会响铃报警。

文本输入模式

在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令

s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,

并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。

末行模式

末行模式也称ex转义模式。

linuxvi命令和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单

个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。linuxvi命令有一个专

门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模

式下,此时linuxvi命令会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作

为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编

辑缓冲区的内容写到文件中等)。末行命令执行完后,linuxvi命令自动回到命令模式。例如:

:1,$s/A/a/g

则从文件第一行至文件尾将大写A全部替换成小写a。

若在末行模式下输入命令过程中改变了主意,可按键,或用退格键将输入的命令全部删除之后,

再按一下退格键,即可使linuxvi命令回到命令模式下。

如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按

Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。

linuxvi命令的进入与退出

linuxvi命令的进入

用户登录到系统中之后,系统给出提示符“$”。在提示符后键入Vi和想要编辑(或建立)的文

件名,便可进入Vi。

[例1]键入命令:

$viexample.c

屏幕显示如下:

~

~

~

~

~

~

~

“example.c” [NewFile]

如果只键入Vi,而不带文件名,也可以进入Vi。之后在光标处键入文件内容,退出Vi时,只

需在退出命令后输入文件名即可。

进入Vi之后,首先进入的就是命令模式,也就是说等待命令输入而不是文本输入。这时输入的

字母都将作为命令来解释。光标停在屏幕第一行首位上(用表示),其余各行行首均有一个“~”

符号,表示该行为空行。最后一行也称状态行,显示出当前正在编辑的文件名以及其状态。如

本例是[NewFile],表示example.c是一个新建的文件。如果example.c文件已在系统中存在,

那么输入上述命令后,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态

行显示出该文件的文件名、行数和字符数。

[例2]键入命令:

$viexample.c

然后键入:

#include

main()

{intk;

for (k=0;k<3;k++)add();

}

add()

{staticintx=0;

x++;

printf(“x=%d\n”,x);

}

~

~

“example.c” [NewFile]

注意,在这里我们为了节省篇幅起见,屏幕只显示15行。事实上,初始的显示行数与用户所用

终端有关,一般的CRT终端可显示25行。在窗口系统中,显示行数与运行linuxvi命令的那个

窗口有关。然而我们可以对显示行数进行设置。例如,在能显示25行的CRT终端上,让Vi只

显示15行。设置的方法将在本节后面介绍。

当用linuxvi命令建立一个新文件时,在进入linuxvi命令中也可以不给出文件名,当编辑完文

件需要保存数据时,再由用户指定文件名。

进入linuxvi命令时,用户不仅可以指定一个待编辑的文件名,而且还有许多附加操作。

如果希望在进入linuxvi命令之后,光标处于文件中特定的某行上,可在linuxvi命令后加上任

选项+n,其中n为指定的行数。

[例3]键入命令:

$vi+5example1.c

后,屏幕显示如下:

#include

main()

{intk;

for (k=0;k<3;k++)add();

}

add()

{staticintx=0;

x++;

printf(“x=%d\n”,x);

}

~

~

~

“example.c”12lines,125characters

光标将位于文件example1.c中的第5行上。

如果希望在进入linuxvi命令之后光标处于文件最末行,则只需把命令中附加项“+”后面的数字

n省略掉即可。

在进入linuxvi命令时,除了可以指定一个光标起始行号之外,还可以在命令中指定一个模式串,

此时在进入linuxvi命令后,光标就处于文件中第一个与指定模式串相匹配的那行上。

[例4]键入命令:

$vi+/intexample1.c

屏幕显示如下:

#include

main()

{intk;

for (k=0;k<3;k++)add();

}

add()

{staticintx=0;

x++;

printf(“x=%d\n”,x);

}

~

~

~

“example.c”12lines,125characters

光标将位于文件example1.c中的第3行上。

使用linuxvi命令可以同时编辑多个文件,只要在进入linuxvi命令的命令中写入所要操作的文

件即可,还可以使用通配符。

[例5]键入命令:

$vi*.cat

就可以编辑所有后缀为cat的文件了。当然,您还可以使用shell中内置的模式匹配来装载文件,

这样会更富技巧性。一旦您在命令行中包含了所有的待编辑文件名,就可以在linuxvi命令中方

便地移来移去。

退出Vi

当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。

在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,

返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。

在末行模式下,输入命令:w

linuxvi命令保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,

可以再给编辑文件起一个新的文件名。

[例6]

:wnewfile

此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个

已存在的文件,则Vi在显示窗口的状态行给出提示信息:

Fileexists (use!tooverride)

此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令

:w!newfile

否则可选择另外的文件名来保存当前文件。

在末行模式下,输入命令:q

系统退出linuxvi命令返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显

示窗口的最末行显示如下信息:

Nowritesincelastchange (use!tooverrides)

提示用户该文件被修改后没有保存,然后linuxvi命令并不退出,继续等待用户命令。若用户就

是不想保存被修改后的文件而要强行退出linuxvi命令时,可使用命令:q!

linuxvi命令放弃所作修改而直接退到shell下。

在末行模式下,输入命令:wq

linuxvi命令将先保存文件,然后退出linuxvi命令返回到shell。

在末行模式下,输入命令:x

该命令的功能同命令模式下的ZZ命令功能相同。

linuxvi命令中的行号

linuxvi命令中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是非常

不方便的。为此linuxvi命令提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应

行的内容则显示在行号之后。

使用的命令为:在末行方式下输入命令:

:setnumber

需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件内容的一部分。

linuxvi命令一览表2009年08月31日星期一22:52进入vi的命令

vifilename:打开或新建文件,并将光标置于第一行首

vi+nfilename :打开文件,并将光标置于第n行首

vi+filename :打开文件,并将光标置于最后一行首

vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处

vi-rfilename :在上次正用vi编辑时发生系统崩溃,恢复filename

vifilename....filename :打开多个文件,依次进行编辑

移动光标类命令[/b]

h:光标左移一个字符

l :光标右移一个字符

space:光标右移一个字符

Backspace:光标左移一个字符

k或Ctrl+p:光标上移一行

j或Ctrl+n:光标下移一行

Enter:光标下移一行

w或W:光标右移一个字至字首

b或B:光标左移一个字至字首

e或E:光标右移一个字至字尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H:光标移至屏幕顶行

M:光标移至屏幕中间行

L:光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

$:光标移至当前行尾

屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令

i :在光标前

I :在当前行首

a:光标后

A:在当前行尾

o:在当前行之下新开一行

O:在当前行之上新开一行

r:替换当前字符

R:替换当前字符及其后的字符,直至按ESC键

s:从当前光标位置处开始,以输入的文本替代指定数目的字符

S:删除指定数目的行,并以所输入文本代替之

ncw或nCW:修改指定数目的字

nCC:修改指定数目的行

删除命令

ndw或ndW:删除光标处开始及其后的n-1个字

do:删至行首

d$:删至行尾

ndd:删除当前行及其后n-1行

x或X:删除一个字符,x删除光标后的,而X删除光标前的

Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

:s/p1/p2/g:将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置

all:列出所有选项设置情况

term:设置终端类型

ignorance:在搜索中忽略大小写

list:显示制表位(Ctrl+I)和行尾标志($)

number:显示行号

report:显示由面向行的命令修改过的数目

terse:显示简短的警告信息

warn:在转到别的文件时若没保存当前文件则显示NOwrite信息

nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始

mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令

:n1,n2con3:将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2mn3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2d:将n1行到n2行之间的内容删除

:w:保存当前文件

:efilename:打开文件filename进行编辑

:x:保存当前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:!command:执行shell命令command

:n1,n2w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不

指定n1,n2,则表示将整个文件内容作为command的输入

:r!command:将命令command的输出结果放到当前行

寄存器操作

"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字

"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字

"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字

"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一

个数字

ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

这是本人花了两天时间整理得来的,一些最常用的地球人都知道的命令就省去啦!最后提供pdf

手册下载

1.更改档案拥有者

命令:chown[-cfhvR][--help][--version]user[:group]file...

功能: 更改文件或者文件夹的拥有者

参数格式:

user: 新的档案拥有者的使用者IDgroup: 新的档案拥有者的使用者群体(group)

-c: 若该档案拥有者确实已经更改,才显示其更改动作

-f: 若该档案拥有者无法被更改也不要显示错误讯息

-h: 只对于连结(link)进行变更,而非该link 真正指向的档案

-v: 显示拥有者变更的详细资料

-R: 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐

个变更)

例如:chown-Roracle:oinstall/oracle/u01/app/oracle

更改目录拥有者为oracle

2.修改权限

命令:chmod(changemode)

功能:改变文件的读写和执行权限。有符号法和八进制数字法。

选项:(1)符号法:

命令格式:chmod{u|g|o|a}{+|-|=}{r|w|x}filename

u(user) 表示用户本人。

g(group) 表示同组用户。

o(oher) 表示其他用户。

a(all) 表示所有用户。

+ 用于给予指定用户的许可权限。

- 用于取消指定用户的许可权限。

= 将所许可的权限赋给文件。

r(read) 读许可,表示可以拷贝该文件或目录的内容。

w(write) 写许可,表示可以修改该文件或目录的内容。

x(execute)执行许可,表示可以执行该文件或进入目录。

(2)八进制数字法:

命令格式:chmodabcfile

其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限。

4(100) 表示可读。

2(010) 表示可写。

1(001) 表示可执行。

若要rwx属性则4+2+1=7;

若要rw-属性则4+2=6;

若要r-x属性则4+1=5。

例如:#chmoda+rxfilename

让所有用户可以读和执行文件filename。

#chmodgo-rxfilename

取消同组和其他用户的读和执行文件filename的权限。

#chmod741filename

让本人可读写执行、同组用户可读、其他用户可执行文件filename。

#chmod-R755/home/oracle

递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行

3.修改文件日期

命令:touch

格式:touchfilenae

功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。

例如:%touchfile

4.链接文件

命令:ln(link)

格式:ln[option]filenamelinkname

ln[option]directorypathname

功能:为文件或目录建立一个链。其中,filename和directory是源文件名和

源目录名;linkname和pathname分别表示与源文件或源目录名相链接的

文件或目录。

选项:-s 为文件或目录建立符号链接。不加-s表示为文件或目录建立硬链接

注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出

现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。

例如:%ln-sfilenamelinkname

5.显示日期

命令:date

例如:%date

6.显示日历

命令:cal(calendar)

格式:cal[month]year

功能:显示某年内指定的日历

例如:%cal1998

7.显示文件头部

命令:head

格式:head[option]filename

功能:显示文件的头部

选项:缺省显示文件的头10行。

-i 显示文件的开始i行。

例如:%headfilename

8.显示文件尾部

命令:tail

格式:tail[option]filename

功能:显示文件的尾部

选项:缺省显示文件的末10行。

-i 显示文件最后i行。

+i 从文件的第i行开始显示。

例如:%tailfilename

9.显示用户标识

命令:id

格式:id[option][user]

功能:显示用户标识及用户所属的所有组。

选项:-a 显示用户名、用户标识及用户所属的所有组

注释:

例如:%idusername

10.查看当前登录的用户

命令:users

11.显示都谁登录到机器上

命令:who

格式:who

功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。

例如:%who

12.显示当前终端上的用户名

命令:whoami

格式:whoami

功能:显示出当前终端上使用的用户。

例如:%whoami

13.寻找文件

命令:find

格式:findpathname[option]expression

功能:在所给的路经名下寻找符合表达式相匹配的文件。

选项:-name 表示文件名

-user 用户名,选取该用户所属的文件

-size 按大小查找,以block为单位,一个block是512B

-mtimen 按最后一次修改时间查找,选取n天内被修改的文件

-perm 按权限查找

-type 按文件类型查找

-atime 按最后一次访问时间查找

例如:%find./-name'*abc*' -print

14.搜索文件中匹配符

命令:grep

格式:grep[option]patternfilenames

功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。

选项:-i 匹配时忽略大小写

-v 找出模式失配的行

例如:%grep-i'java*' ./test/run.sh

15.统计文件字数

命令:wc[option]filename

功能:统计文件中的文件行数、字数和字符数。

选项:-l 统计文件的行数

-w 统计文件的单词数

-c 统计文件的字符数

注释:若缺省文件名则指标准输入

例如:%wc-c./test/run.sh

16.显示磁盘空间

命令:df(diskfree)

格式:df[option]

功能:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总

字节数、已用字节数、剩余字节数占用百分比。

选项:

-a:显示全部的档案系统和各分割区的磁盘使用情形

-i:显示i-nodes的使用量

-k:大小用k来表示(默认值)

-t:显示某一个档案系统的所有分割区磁盘使用量

-x:显示不是某一个档案系统的所有分割区磁盘使用量

-T:显示每个分割区所属的档案系统名称

-h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用GB、MB等易读的格式。

注释:

例如:%df-hi

17.查询档案或目录的磁盘使用空间

命令:du(diskusage)

格式:du[option][filename]

功能:以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小

选项:

-a:显示全部目录和其次目录下的每个档案所占的磁盘空间

-b:大小用bytes来表示(默认值为kbytes)

-c:最后再加上总计(默认值)

-s:只显示各档案大小的总合

-x:只计算同属同一个档案系统的档案

-L:计算所有的档案大小

-h: 表示档案系统大小使用GB、MB等易读的格式。

例如:%du-a

%du-sh/etc 只显示该目录的总合

%du/etc| sort-nr| more统计结果用sort 指令进行排序,

sort 的参数-nr 表示要以数字排序法进行反向排序。

18.显示进程

命令:ps

格式:ps[option]

功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。

选项:

-a 显示所有进程信息

-Uuidlist列出这个用户的所有进程

-e 显示当前运行的每一个进程信息

-f 显示一个完整的列表

-x 显示包括没有终端控制的进程状况。

注释:

例如:%ps-ef

%ps-aux 然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行

操作。

19.终止进程

命令:kill

格式:kill[option]pid

功能:向指定的进程送信号或终止进程。kill指令的用途是送一个signal给某一个process,

因为大部份送的都是用来杀掉process的SIGKILL或SIGHUP,因此称为kill

选项:-9 强行终止进程

注释:pid标示进程号,可由ps命令得到。

例如:%kill-9pid

你也可以用kill-l 来察看可代替signal 号码的数目字。kill的详细情形请参阅mankill。

20.查看自己的IP地址

命令:ifconfig

格式:ifconfig-a

21.查看路由表

命令:netstat

格式:netstat-rn

22.远程登录

命令:telnet

格式:telnethostname

23.文件传输

命令:ftp(filetransferprogram)

格式:ftphostname

功能:网络文件传输及远程操作。

选项:ftp命令:

cd[dirname] 进入远程机的目录

lcd[dirname] 设置本地机的目录

dir/ls 显示远程的目录文件

bin 以二进制方式进行传输

asc 以文本文件方式进行传输

get/mget 从远程机取一个或多个文件

put/mput 向远程机送一个或多个文件

prompt 打开或关闭多个文件传送时的交互提示

close 关闭与远程机的连接

quit 退出ftp

!/exitftp登陆状态下,!表示暂时退出ftp状态回到本地目录,exit表示返回ftp状态

注释:

例如:%ftphostname

24.查看自己的电子邮件

命令:mailx

格式:mailx

选项:

delete 删除

next 下一个

quit 退出

reply 回复

25.回忆命令

命令:history

格式:history

功能:帮助用户回忆执行过的命令。

选项:

注释:

例如:%history

26.网上对话

命令:talk

格式:talkusername

功能:在网上与另一用户进行对话。

选项:

注释:对话时系统把终端分为上下两部分,上半部显示自己键入信息,下半部

显示对方用户键入的信息。键入delete或Ctrl+C则结束对话。

例如:%talkusername

27.允许或拒绝接受信息

命令:mesg(message)

格式:mesg[n/y]

功能:允许或拒绝其它用户向自己所用的终端发送信息。

选项:n拒绝其它用户向自己所用的终端写信息

y允许其它用户向自己所用的终端写信息(缺省值)

注释:

例如:%mesgn

28.给其他用户写信息

命令:write

格式:writeusername[ttyname]

功能:给其他用户的终端写信息。

选项:

注释:若对方没有拒绝,两用户可进行交谈,键入EOF或Ctrl+C则结束对话。

例如:writeusername

29.创建、修改、删除用户和群组

a. 创建群组:

例如:groupaddoinstall 创建群组名为oinstall的组

groupadd-g344dba

创建组号是344的组,此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

b.修改群组:

groupmod:该命令用于改变用户组帐号的属性

groupmod–g新的GID用户组帐号名

groupmod–n新组名原组名:此命令由于改变用户组的名称

c. 删除群组:

groupdel组名:该命令用于删除指定的组帐号

d.新建用户:

命令:useradd[-dhome][-sshell][-ccomment][-m[-ktemplate]]

[-finactive][-eexpire][-ppasswd][-r]name

主要参数

-c:加上备注文字,备注文字保存在passwd的备注栏中。

-d:指定用户登入时的启始目录。

-D:变更预设值。

-e:指定账号的有效期限,缺省表示永久有效。

-f:指定在密码过期后多少天即关闭该账号。

-g:指定用户所属的群组。

-G:指定用户所属的附加群组。

-m:自动建立用户的登入目录。

-M:不要自动建立用户的登入目录。

-n:取消建立以用户名称为名的群组。

-r:建立系统账号。

-s:指定用户登入后所使用的shell。

-u:指定用户ID号。

举例:#useradd-goinstall-Gdbaoracle 创建Oracle用户

e. 删除用户

命令:userdel用户名

删除指定的用户帐号

userdel–r 用户名(userdel 用户名;rm 用户名):删除指定的用户帐号及宿主目录

例:#useradd-grootkkk//把kkk用户加入root组里

f. 修改用户

命令:usermod

修改已有用户的信息

usermod–l 旧用户名新用户名:修改用户名

usermod–L用户名:用于锁定指定用户账号,使其不能登陆系统

usermod–U用户名:对锁定的用户帐号进行解锁

passwd–d用户名:使帐号无口令,即用户不需要口令就能登录系统

例:#usermod-luser2user1//把用户user2改名为user1

30.启动、关闭防火墙

永久打开或则关闭

chkconfigiptableson

chkconfigiptablesoff

即时生效:重启后还原

serviceiptablesstart

serviceiptablesstop

或者:

/etc/init.d/iptablesstart

/etc/init.d/iptablesstop

31.启动VSFTP服务

即时启动:/etc/init.d/vsftpdstart

即时停止:/etc/init.d/vsftpdstop

开机默认VSFTP服务自动启动:

方法一:(常用\方便)

[root@localhostetc]#chkconfig--list|grepvsftpd( 查看情况)

vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@localhostetc]#chkconfigvsftpdon (执行ON设置)

或者:方法二:

修改文件/etc/rc.local, 把行/usr/local/sbin/vsftpd&插入文件中,以实现开机自动启动。

32.vi技巧

a. 进入输入模式

新增(append)

a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。

A:从光标所在列最後面的地方开始新增资料。

插入(insert)

i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。

I :从光标所在列的第一个非空白字元前面开始插入资料。

开始(open)

o:在光标所在列下新增一列并进入输入模式。

O:在光标所在列上方新增一列并进入输入模式。

b.退出vi

在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。其中:wq和:x是存盘退出,而:q是直

接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命

令保存文件后再用:q 退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要

用:q!命令,这个命令将不保存文件而直接退出vi。

c. 删除与修改文件的命令:

x:删除光标所在字符。

dd:删除光标所在的列。

r :修改光标所在字元,r 後接著要修正的字符。

R:进入取替换状态,新增文字会覆盖原先文字,直到按[ESC] 回到指令模式下为止。

s:删除光标所在字元,并进入输入模式。

S:删除光标所在的列,并进入输入模式。

d.屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b:向文件首翻一屏

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

e. 删除命令

ndw或ndW:删除光标处开始及其后的n-1个字

do:删至行首

d$:删至行尾

ndd:删除当前行及其后n-1行

x或X:删除一个字符,x删除光标后的,而X删除光标前的

Ctrl+u:删除输入方式下所输入的文本

f. 搜索及替换命令

/pattern: 从光标开始处向文件尾搜索pattern

?pattern: 从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

:s/p1/p2/g: 将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g: 将文件中所有p1均用p2替换

g.复制,黏贴

(1) 选定文本块,使用v进入可视模式;移动光标键选定内容

(2) 复制选定块到缓冲区,用y;复制整行,用yy

(3) 剪切选定块到缓冲区,用d;剪切整行用dd

(4) 粘贴缓冲区中的内容,用p

h.其他

在同一编辑窗打开第二个文件,用:sp[filename]

在多个编辑文件之间切换,用Ctrl+w

Linux下文件的压缩与解压缩命令详解2009-11-0217:42在Windows下最常见的压缩文件就只有

两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众

多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip

和.rar的人就太少了。本文就来对这些常见的压缩文件进行一

番小结,希望你下次遇到这些文件时不至于被搞晕icon_smile.gif

在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。打包是指

将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压

缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的很多压

缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助

另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包

,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进

行压缩了,所以首先就来讲讲tar命令的基本用法:

tar命令的选项有很多(用mantar可以查看到),但常用的就那么几个选项,下面

来举例说明一下:

#tar-cfall.tar*.jpg

这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包

,-f指定包的文件名。

#tar-rfall.tar*.gif

这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的

意思。

#tar-ufall.tarlogo.gif

这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

#tar-tfall.tar

这条命令是列出all.tar包中所有文件,-t是列出文件的意思

#tar-xfall.tar

这条命令是解出all.tar包中所有文件,-x是解开的意思

以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压

文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压

缩程序,比如调用gzip、bzip2等。

1)tar调用gzip

gzip是GNU组织(GNU是一个自由软件工程项目)开发的一个压缩程序,.gz结尾的文件就

是gzip压缩的结果。与gzip

相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下

#tar-czfall.tar.gz*.jpg

这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个

gzip压缩过的包,包名为all.tar.gz

#tar-xzfall.tar.gz

这条命令是将上面产生的包解开。

2)tar调用bzip2

bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。

与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例

说明一下:

#tar-cjfall.tar.bz2*.jpg

这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个

bzip2压缩过的包,包名为all.tar.bz2

#tar-xjfall.tar.bz2

这条命令是将上面产生的包解开。

3)tar调用compress

compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人

多。.Z结尾的文件就是bzip2压缩的结果。与compress相对的解压程序是uncompress

。tar中使用-Z这个参数来调用compress。下面来举例说明一下:

#tar-cZfall.tar.Z*.jpg

这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成

一个uncompress压缩过的包,包名为all.tar.Z

#tar-xZfall.tar.Z

这条命令是将上面产生的包解开

有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文

件作一个小结:

1)对于.tar结尾的文件

tar-xfall.tar

2)对于.gz结尾的文件

gzip-dall.gz

gunzipall.gz

3)对于.tgz或.tar.gz结尾的文件

tar-xzfall.tar.gz

tar-xzfall.tgz

4)对于.bz2结尾的文件

bzip2-dall.bz2

bunzip2all.bz2

5)对于tar.bz2结尾的文件

tar-xjfall.tar.bz2

6)对于.Z结尾的文件

uncompressall.Z

7)对于.tar.Z结尾的文件

tar-xZfall.tar.z

另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它

们:

1)对于.zip

linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参

数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

#zipall.zip*.jpg

这条命令是将所有.jpg的文件压缩成一个zip包

#unzipall.zip

这条命令是将all.zip中的所有文件解压出来

2)对于.rar

要在linux下处理.rar文件,需要安装RARforLinux,可以从网上下载,但要记

住,RARforLinux

不是免费的;可从[url]http://www.rarsoft.com/download.htm[/url]下载RARforLinux3.2.

0,然后安装:

#tar-xzpvfrarlinux-3.2.0.tar.gz

#cdrar

#make

这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar

是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

#raraall*.jpg

这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar

扩展名将自动附加到包名后。

#unrareall.rar

这条命令是将all.rar中的所有文件解压出来

阅读(1186) | 评论(0) | 转发(0) |
0

上一篇:[raspberry pi] 树莓派 Kernel 编译笔记

下一篇:没有了

给主人留下些什么吧!~~