[转帖] vi 命令常见问题解答Windows系统

| 收藏本文 下载本文 作者:忍冬

下面是小编整理的[转帖] vi 命令常见问题解答Windows系统(共含6篇),欢迎您阅读,希望对您有所帮助。同时,但愿您也能像本文投稿人“忍冬”一样,积极向本站投稿分享好文章。

[转帖] vi 命令常见问题解答Windows系统

篇1:[转帖] vi 命令常见问题解答Windows系统

vi命令常见问题解答 作者:译者Elale [vi-faq中文版] 0.0-引言--我怎样用这个FAQ 这个文档分为了几个部分.首先,第0节和第1节介绍了什么是vi;第2节则收录了很多新 学者的问题,一些对vi没有很多经验的人也经常问这些问题.这里面包括诸如“命令模式和插入 模式

vi 命令常见问题解答

作者:译者Elale

[vi-faq中文版]

0.0 - 引言 -- 我怎样用这个FAQ

这个文档分为了几个部分.首先,第0节和第1节介绍了什么是vi;第2节则收录了很多新

学者的问题,一些对vi没有很多经验的人也经常问这些问题.这里面包括诸如“命令模式和插入

模式之间的区别”,以及“我怎样拷贝和粘贴”之类的问题.第3节是面向vi的中级用户的,它从

问题“我如何查找和替换”开始,逐步深入,直到对vi里面的宏(Macro)的用法讨论为止.第3

节还包括了一个vi的快速参考,有一个规范的vi命令列表.再下面,是一个有关“:set”命令的

列表,包含了所有能定制vi环境的变量,这些变量也可以在.exrc文件中定义.

我们已经在一个运行SunOS和UCB版本vi的机器上验证了快速参考.除了SunOS带的vi外,

每个命令都可以在系统V和UCB版本vi运行,但是我个人并没有验证这一点.

除非我们在文档中指明,缺省我们假定你处在命令模式下.

我们还尝试保留尽可能多的术语,因为在原始的vi文档中使用了这些术语,尽管我可能

忘了它的本来含义.

0.1 - 索引

第一个文件:

0.0 - 引言 -- 我怎样用这个FAQ?

0.1 - 索引

0.2 - 我可以散发这个FAQ吗?

0.3 - 你能为这个FAQ做什么?

1.0 - 什么是vi?

1.1 - 关于vi有什么重大的交易吗? 为什么大家都用它? 更进一步说,为什么我要用它?

1.2 - 噢! 这听起来不错! 有没有理由不用vi?

1.3 - vi能在多少不同的操作系统下面运行?

1.4 - 好吧, 你说服了我. 我决定开始使用vi. 我该从哪儿开始?

1.5 - vi有其他一些可用的变种吗?

2.0 - vi入门

2.1 - 有什么游戏帮助我们学习vi吗?

2.2 - 命令模式和插入模式有什么区别?

2.3 - 等等,我的键盘没有键,我该怎么办?

2.4 - 那些~s是什么东西?

2.5 - 我无法习惯用 hjkl, 你有什么建议吗?

2.6 - 我如何才能不存盘就退出?

2.7 - 我怎样插入一个文件?

2.8 - 我怎样查找文本?

2.9 - 我怎样搜索一个控制序列?

2.10 - 我怎样重新格式化文本?

2.11 - 我怎样复制文本?

2.12 - 啊! 我刚才敲了一个dG,然后我的论文就没有了! 我该怎么办?

(或者,我刚才犯了个错误,我该怎么办?)

2.13 - 我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?

2.14 - 所有的:命令都是怎样处理的?

3.0 - 怎样查找和替换?

3.1 - 我怎样在vi中运行一个程序?

3.2 - 啊! 我正在写我的论文, 系统崩溃了! 怎么办?

3.3 - 有没有使vi对程序员更友好的窍门?

3.4 - 宏 -- 我怎样写宏?

3.5 - 我怎样将一个功能键定义成一个宏?

3.6 - 有没有办法缩写文本?

3.7 - 我怎样在当前文档中做拼写检查?

3.8 - 我手头有一个硬拷贝的终端, 我还能用vi吗?

3.9 - 好了,是不是处在开放模式下的原因呀?! 但是我现在没有用硬拷贝终端,它还是在

开放模式呀?

第二个文件:

4.0 - vi档案的在线帮助在哪儿?

5.0 - 好玩的vi诀窍,无聊的宏

5.1 - 好玩的vi诀窍

5.2 - 好玩的宏

6.0 - 依字母顺序的vi快速参考

6.1 - 命令模式的输入选项(:命令)

6.2 - 设置选项(set)

7.0 - 建立 .exrc文件

7.1 - .exrc文件的样本

8.0 - vi的漏洞

9.0 - 术语表

10.0 - 关于vi的参考书目

0.2 - 我可以散发这个FAQ吗?

可以!只要你没有对它做任何修改,或者用它来赚钱.

0.3 - 你能为这个FAQ做什么?

首先, 把你发现的错误告诉我. 如果你有什么建议我们也很欢迎. 你认为还不清楚的地方

告诉我们,我们同样欢迎.

还有, 使用vi! (Spread the word) 我很抱歉我无法将所有对这个FAQ有贡献的人都列出

来, 因为许许多多的人都给过我建议和帮助,如果我将他们都列出来的话,那么恐怕这张贡献

者的清单将和这个文档本身一样长了.

1.0 - 什么是vi?

vi是个可视化的编辑器(vi就意味着可视化--VIsual). 那么,什么是可视化的编辑器呢?

(相对于非可视化的编辑器来说)?可视化的编辑器就是可以让你在编辑文本的时候看到它们.

今天,这听起来似乎非常普通,反之,非可视化的编辑器似乎很奇怪. 非可视化的编辑器的例子

可以举出不少:如ed, sed和edlin(直到相当近的一段时间内,它是DOS自带的最后一个编辑器)

等.

vi是威廉.侨伊写的,作为BSD UNIX的一部分. 后来AT&T也开始用vi, 于是标准UNIX也开始

用vi了.

1.1 - 关于vi有什么重大的交易吗? 为什么大家都用它? 更进一步说,为什么我要用它?

vi是UNIX下面的缺省编辑器, 因此几乎近来所有的UNIX都捆绑了vi(近来是指1984年左右).

这意味着无论何时你跨平台使用某种UNIX,你都知道在你指尖下面有一个强力的编辑器.为什么

不是别的呢? vi是个强大的编辑器.同样,一旦你了解了vi,你就能很快的编辑你的文件,因为它

非常能节省你的敲键次数. 由于它在插入和命令两种情况下使用不同的模式,它比大多数的不

基于这种模式的编辑器要快. 而且,vi非常小(我机器上面的版本只有200K).还有,vi几乎能做

任何事,只要你知道如何使它做你想做的事.

1.2 - 噢! 这听起来不错! 有没有理由不用vi?

有. 有一个非常好的理由: vi稍微有些难学, 如果你开始学的话,vi又慢又让人痛苦,

当然,一旦你学会了, vi就快多了. 但是学习的过程很慢. 有人曾经问我, 如果vi是个比较

易学的编辑器, 它是否直观(intuitive)呢? 我一般这样回答:“是的,我们有些人是这样认为.

但是大多数人认为我们疯了.”

1.3 - vi能在多少不同的操作系统下面运行?

UNIX. 就是它. 尽管如此,还是有很多vi的变种运行在不同的操作系统上. 我就在以下一些

操作系统上用过vi: UNIX, DOS, OS/2, MAC SYSTEM 7.(后面有一个有关细节的列表)

1.4 - 好吧, 你说服了我. 我决定开始使用vi. 我该从哪儿开始?

好吧, 狡猾的家伙. 关于vi有很多很好的书:大多数讲UNIX的书至少有一章给了vi,而且

有不少是专门讲vi的书.我没有什么偏爱. 所以你最好是问问你们那儿的vi高手们他们是从

哪儿学来的. 还有,到处试. 用vi打开一个不重要的文档(你的论文不象是个学vi的好实验品),

然后再到处试. 我无法想象有人学习vi却不花相当多的时间去到处试试. 记住:如果你有些

地方不明白了, 只要敲两次键,你就又回到命令模式下了.

我要提到的一点是,我想在这里提比较合适,就是如果要成为系统管理员或者其他对UNIX配置

做什么修改的话,最好是学学ed或者ex,因为有些版本的UNIX没有把vi放在根分区里面,这样你

就可能无计可施了. ed是个不错的选择.

1.5 - vi有其他一些可用的变种吗?

只能列出一部分:STvi (STevie), elvis, vile, vim, 和nvi, xvi.

elvis适用于:Amiga, DOS, OS/2,Unix, VMS, Atari.

STevie适用于: Atari ST, DOS, Unix, Mac System 7.

Mac System 7可以在很多info-mac的镜象站点获取,在/info-mac/text下.

(例如ftp.hawaii.edu)

nvi是将和BSD 4.4捆绑在一起的vi.

vim适用于: Amiga, DOS, Mac System 7, Unix.

Amiga, DOS,和源码可以在以下站点换取:ftp.fu-berlin.de /misc/editors/vim

Mac System 7可以在很多info-mac的镜象站点获取,在/info-mac/text下.

(例如ftp.hawaii.edu)

vile适用于: DOS, OS/2, Unix, VMS.

xvi适用于: DOS, Unix.

vi的变种之间很有很多差异.很多都改进了vi,大多数都可以使用在这个文档

种列出的命令,但是有一些不同的地方.更进一步的细节,你可以参考这些变种

附带的相应的文档.

2.0 - vi入门

对vi的初学者来说,有些基本的提示.第一,任何时候,手头都要有一份命令摘要.

我们将在后面给出一个快速参考/命令摘要. 第二, 找一本vi方面的比较好的书.

这个文档不是学vi的最佳途径(最起码现在还不是),我不敢保证这个文档能教会一个

对vi一无所知的人, 而很多书已经做到了这一点. 但是,我们这里还是给出了不少

提示. 对选择书籍来说,有一个标准的原则:买之前一定要仔细阅读. 要了解这本书

对你是否有意义.确信它能在你练习vi的时候有用. 和其他的书做个比较 -- 不管怎样,

vi可能让你感到非常莫名其妙, 而且你要确信这么一点:是书让你糊涂,而不是

你低估了学vi的难度.

还有, 找一些诸如“学vi”(vilearn),“vi向导”(vitutor)之类的软件来帮助你掌握

vi的基本知识.

2.1 - 有什么游戏帮助我们学习vi吗?

这似乎很无聊, 但是事实上UNIX系统里面有不少游戏可以帮助你学习使用vi.这些帮助

主要是一些基本知识. 虽然我还不知道有哪个游戏可以帮你学习vi的所有命令, 但我

确实知道有一些可以帮助你学习使用 hjkl来移动光标. NetHack,一个类Rogue的游戏,

就对这非常有帮助. 而且它是一个很大的游戏,能玩很长一段时间. 我没有贬低其他游戏

的意思,这些游戏是: rogue, moria, omega, worm, snake.

2.2 - 命令模式和插入模式有什么区别?

vi将命令模式和插入模式区分开来,这经常被认为是vi的一个大问题,但往往这也被认为是

vi的优势所在. 理解其中的区别是掌握vi的关键.vi启动时,开始处于命令模式;在这种模式

下,我们可以在文件中到处移动,改变文本的某个特定区域, 剪切, 复制和粘贴文本,还有更

多. 插入模式是指用户可以真正插入文本.换句话说,命令模式是用来在文件中移动,而插入

模式是用来在文件中键入文本.

有些命令,例如: a, i, c, C, O, o和其他一些可以从命令模式切换到插入模式.

键或者^C(CRTL+C)可以脱离插入模式而返回到命令模式.

你要适应这种差别. 它使得vi区别于其他的编辑器. 它也使你能在你的手不离开标准

键盘做很多事情.

2.3 - 等等,我的键盘没有键,我该怎么办?

试试敲 ^[(CTRL+[). 如果你的键盘有一个键,再试试它.如果还不行,再试试^3.

2.4 - 那些~s是什么东西?

它们仅仅是用来让你知道你的文档末尾在哪儿.实际上它们并不在你的文档里面,所以

你用不着担心它们.

2.5 - 我无法习惯用 hjkl, 你有什么建议吗?

首先,如果你的终端设置正确而且你连接的也没有问题的话,你可以使用箭头键.但是,

如果你认为你要经常使用vi,那么最好是习惯使用 hjkl,因为它们敲起来更快. 而且,

有时候连接出问题了,使得ESC序列都可能丢失了.(这样你可能就无法使用箭头键了--译注)

2.6 - 我如何才能不存盘就退出?

:q!可以做到这一点. 如果vi看起来冻住了,确信你没有错敲了个 ^S. 敲^Q可以解开^S.

2.7 - 我怎样插入一个文件?

:r <文件名>

例如,要插入文件/etc/motd, 可以敲 :r /etc/motd.

这将把文件插入到光标处.如果你在r前面指定了一个数字,那么这条命令将把文件插入

到那个位置.

2.8 - 我怎样查找文本?

/<文本>将向前查找, ?<文本>将向后查找. ??或者//将重复上次查找. 在UNIX下,这已经

是个可爱的标准用法了. 而且, 在vi中, n将查找文本下一次的出现位置. N重复上次查找,

不过逆转了查找的方向. 在查找中可以使用规范式.

2.9 - 我怎样搜索一个控制序列?

/^V^<序列>

^V会告诉vi照字面理解下一个字符,不要把它看作是一条命令.

2.10 - 我怎样重新格式化文本?

如果你的计算机有一个名叫fmt的程序, 你要做的仅仅是在命令模式下面敲!}fmt(记住,

不要在前面加. 这可以重新格式化你的文件,从光标所在的位置一直到当前段落的结尾.

如果你的机器里面没有fmt这个程序, 你就得去找个类似的软件了(我记得在公共域里面有

不少这样的程序,但是我对此了解不多)

2.11 - 我怎样复制文本?

这有点复杂.把这节拿出来,多看几遍;还有,一定要多做实验.

“<字母>yy可以把一行文本拷贝到寄存器中(这里的寄存器是vi的术语,指可以存放剪切和

拷贝下来的东西的地方), <字母>里面的字母必须是a到z之间的一个. ”<字母>dd可以把一行

剪切下来放到寄存器里面. 你可以在yy或者dd前面用数字指明要拷贝或者剪切的行数.如果

<字母>中的字母是大写的话,意味着把文本插入到寄存器中已有的文本之前.

“<字母>p把文本插入到光标之后,”<字母>P把文本插入到光标之前.如果寄存器中含有某

一行的开头或结尾,这一行将会被放到另一合适的行上. Y是yy的快捷方式. 还有, y$, yH,

yM,等等,都是可以用的.d命令也是一样的.如果要快速的剪切和粘贴, 你就无须指定寄存器

了.如果这样的话,你就不能往寄存器里面添加文本了.而且只要有一个删除命令的话,寄存器

中的东西就没有了(包括x命令).

举例来说,如果要移动上一段的话,你可以把光标移到段落的开头,敲“a13dd,再把光标移到

你想要放文本的地方,敲”ap,就可以把那段文本放到光标所在的行后面.

现在,大概你想要剪切和粘贴文本到不是行末尾的区域去.我们来看如何做到这一点:我们

可以使用 m<字母> 命令来标记一个区域,这个字母可以和剪切/粘贴寄存器的字母相同,因为

它们是保存在内存中的不同位置. 然后,敲“<寄存器>`<字母>[yy或者dd], 这里的寄存器就是

要保存文本的那个寄存器,<字母>是用来标记的,yy和dd是你的操作.

2.12 - 啊! 我刚才敲了一个dG,然后我的论文就没有了! 我该怎么办?

(或者,我刚才犯了个错误,我该怎么办?)

u可以撤消你刚才的操作.U可以撤消你对当前行的修改(当然,一行对于一篇论文来说当然

很不够了). :e!可以不保存修改而重新把你的文件调进来. 还有,你删除的文本都保存在从

0到9编号的寄存器里.所以,”p就可以把上第n次的删除文本粘贴出来.你可以按如下的

方法迅速地查看所有删除的文本. 先试一个,不对的话,敲u,再试下一个.(为加速这个过程,

这时vi中的.命令和通常的用法不一样了.它不是重复上次操作,而是试下一个寄存器,这样

你要做的无非就是: “1p u . u .,直到你撤消了你想撤消的删除操作)

2.13 - 我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?

:[m],[n]w <文件名>可以将从第m行到第n行之间的文本保存到<文件名>所指定的文件中.

这种行序号方法几乎在所有的:命令下都可以使用. 如果你用命令:[m],[n] w >><文件名>,

这些文本将添加到文件的后面.

2.14 - 所有的:命令都是怎样处理的?

:后面的命令都是从ex编辑器里面过来的. 这就给vi加入了很多灵活性,也使vi功能更强

大. 例如, 有很多的方法可以用来查找和替换,它们有很多的类似地方(事实上,它们在某种

意义上说都是一样的)

3.0 - 怎样查找和替换?

有很多方法. 最简单的是:

:s/old/new/g, 但是,这仅对当前行起作用..., 所以,我们用

:%s/old/new/g, 更一般的,我们还可以用

:[范围]s/old/new/[cg],这里,[范围]是任意的行范围,包括行号,$(文件末尾),.(当前行),

%(当前文件),或者两个行号之间加个破折号(或者可以这样: .,+5,这表示下面5行).[cgi]是

c,g,i中间的一个或者什么也没有.c告诉vi每次替换的时候要给提示,g是说对所有一行中出现

的地方都做替换.i则是指在查找时不区分大小写.如果最后一个斜杠(/)后面没有东西的话,那

么vi只替换在行中第一次匹配的地方.

我比较喜欢这样做:

:g/foobar/s/bar/baz/g, 这个命令首先搜寻foobar,然后把它变成foobaz. 它没有改变

jailbars, 而其他的一些命令可能会改变jailbars. 这是我的方法,但是可能比较难记.

当然,你还可以在查找的的时候使用正规式,以及在替换文本的时候使用其他一些命令.如果

你在正规式里用\(和\)来剥离一个序列的话,你会发现你可以做很多好玩的事情.

例如:

:g/\(foo\)\(bar\)/s/\2/\1baz/g 将foobar替换成foobaz

还有一些特殊的序列:

& 所有查找时匹配到的东西

\[1-9] 1到9号用\(和\)括起来的东西

\u 下一个字符将被变成大写.

\U 以后的字符都变成大写,直到遇到\e或\E

\l 下一个字符将被变成小写.

\L 以后的字符都变成大写,直到遇到\e或\E

\[Ee] 更改大小写的选择区域的终点

3.1 - 我怎样在vi中运行一个程序?

:!命令 可以在vi中运行程序. :sh会启动一个交互式的外壳(SHELL).在这个外壳

里面, 如果你愿意,你还可以再次运行vi. 当你在编辑Makefiles和配置文件来编译

某个程序的时候,这可能比较有用. 这比:e优越之处在于它无须保存文件,而且如果

你退出外壳的时候,vi还回到原来的地方.(当然,我还是建议你先保存一下文件)

3.2 - 啊! 我正在写我的论文, 系统崩溃了! 怎么办?

不要怕! 你会收到一封电子邮件,里面就是你的论文.敲入vi -r <文件名>

(这个文件名就是系统崩溃时你正在编辑的文件)你就可以恢复出你的论文来.只敲

vi -r将把所有可能恢复的文件都列出来.

3.3 - 有没有使vi对程序员更友好的窍门?

:set ai可以让vi自动对齐.

:set sw=#,#是移动的宽度(shiftwidth),或者说TAB键的宽度(tabwidth);你可以

用<<或者>>命令来左移或右移某一行. 还有, 你可以使用 <%或>%来将{,(或[等符号

括起来的文本都左移或右移;这时候,你必须把光标放在这些符号({,(或[)上面.

:set sm会在你敲},]或)显示出对应匹配的{,[或(来.

:set lisp会对lisp编程有些帮助. 被移到s表达式(s-expressions)外面,如果

原子(atoms)没有停止则{}将被移走.

3.4 - 宏 -- 我怎样写宏?

:map  , 其中最多10个字符,最多100个字符. 以后,如果

你敲了,vi就会用来取代它.所有的宏都是在命令模式下开始的,但是可以

在你想在的模式下终止. 记住,在你想用的控制字符前面加上^V.

:unmap 将删除这个宏. :map!  使得插入到文档

中去.

3.5 - 我怎样将一个功能键定义成一个宏?

如果是#n,n是0-9之间的一个数,那么这个宏就映射成某一个功能键了.(你

可以试一下F1-F10之间的键--译者)

3.6 - 有没有办法缩写文本?

当然了. 这可是vi呀,它能做任何事情!

:ab email ellidz@midway.uchicago.edu 可以在你敲完email后,把那个没有缩写

的文本插入到文件中. :una email取消缩写.

3.7 - 我怎样在当前文档中做拼写检查?

这儿有一个宏可以做到这一点. 这些应该放在你的.exrc文件中(后面我们将对.exrc

进一步讨论). 它是一个相当简单的宏. 它仅仅是调用ispell来处理当前文件.当然,你

的系统里面一定得有ispell这个程序. 使用它的时候,只需要敲个V键就行了(因为vi并

没有用V,所以V是一个比较合适的键)

map V :w^M:!ispell % ^M:e!^M^M

第二个^M使你在拼写检查完之后无须敲回车就可以到vi中.

(译注, 在我的系统里,没有ispell,只有spell,我用它替换了ispell,工作的不错;还有,

^M不是两个字符,而是一个字符,通过^V^M敲进去的;另外,我个人认为第二个^M还是不要

的好,因为直接回到vi后你就无法看到拼写检查的结果了)

3.8 - 我手头有一个硬拷贝的终端, 我还能用vi吗?

好了,好了. 我并认为有人会真的问这个问题.这个问题太偏了,我们大可不必理

它.(而且,它回答了一个非常普通的问题)

vi启动的时候处于一种特殊的模式下面,叫做”开放模式“; 在这种状态下,事情或多或少

的有些不同. 删除的字符在你面前显示成一些\',vi会认为你的终端窗口只有一行. ^r

可以把当前行重新输出. z则把当前行周围的窗口重画一遍.

3.9 - 好了,是不是处在开放模式下的原因呀?! 但是我现在没有用硬拷贝终端,它还是在开放

模式呀?

这儿的问题就是vi没有认出你用的终端的类型. 于是它假定你有的是个最烂的终端,

所以它决定依然处在开放模式下.这似乎没什么用处.因为没有多少人喜欢开放模式,但是开放

模式还是需要知道你的终端的一些最起码的信息的.

现在,我们来看如何解决这个问题.我们有可能把它分成几种特殊的情形,但是,一般情况下,

这并没有用处. 如果你直到你的终端的类型, 你可以在UNIX提示符下面设置终端类型(在CSH

及其变种下面,使用命令setenv TERM <终端类型>;在SH及其变种下面,使用命令TERM=<终端类型>;

export TERM)

最好你能把上面的命令写在.profile文件或者.cshrc文件里面,这样你一登录它就自动地给

你设置好了.(当然,你应该知道如何使用ed,或者你能在UNIX提示符下面设置好终端类型以便能

使用vi, 这样你才有可能去编辑这些文件)

如果你确实不知道你地终端类型,试一试vt100.现在大多数地终端或者终端仿真器都能仿真

vt100. 如果这还不能生效的话,你只好去找个高手来帮你了.

4.0 - vi档案的在线帮助在哪儿?

有一个vi的FAQ,其中列出了vi档案的所有在线文件. 同时它还列出了这些文档

的镜象站点. 最主要的一个地址是alf.uib.no,但是这些文档在很多很多地地方

都保存着. vi-archive faq把它们都给列出来了.你在下载这些文件之前一定要

核对一下这个FAQ.因为很有可能有一个站点比去挪威的站点更近更快些.

一个镜象站点是cs.uwp.edu/pub/vi, 另一个是monu6.clearcase/” target=“_blank” >cc.monash.edu.au/pub/Vi,

这些站点上有很多有关vi的文件,还有一些vi的变种版本;当然,UCB版本的vi是

肯定有的, 还有许多的宏.

5.0 - 好玩的vi诀窍,好玩的宏

这一节主要讲述一些无聊的诀窍和一些无聊的宏.事实上,任何vi的诀窍和宏我们

都欢迎,只要它们不是过分冗长. 如果有人向我建议而我也认为确实值得加的话,

我会考虑加进去的.

5.1 - 好玩的vi诀窍

xp 删除光标下的字符,再把粘贴到后面去.换句话说,它交换了当前两个字符

的位置.

ddp 和xp类似,不过是交换两行的位置.

uu 撤消和重复上次所做的修改.(这可以使你不改变什么东西就可以到你上次所

做的修改处)

5.2 - 好玩的宏

和垂直上方的字符交换位置

map * kxjphxkP

折行

map g $80|F r

(译注,我对这条宏表示疑问!)

改变大多数单词的大小写

map v ywmno:s/./\~/g

(译注,这条好象也不大对!)

在当前的单词周围加上`和'

map *` i`'

在当前的单词周围加上'和'

map *' i''

在当前的单词周围加上“和”

map *“ i”“

(这几条也太无聊了吧--译注)

在当前的单词周围加上``和``

map! `` `'

(咦,好象又有问题?--译注)

从光标处把当前行分开,在下一行开头加上一个>号(例如,引用USENET).如果加上了单词的折行

功能那么最后一个单词可能被折在第一行.

map g may0O`ay$:s/./ /g

(不对吧--译注)

插入一个字符

map g i$^[r

6.0 - 依字母顺序的vi快速参考

... 是指有些东西需要在命令之前或之后指明.这通常是说光标的移动键

(h,j,k,l,w,b等等)或者是指行号.

# (这里#代表一个数字) 执行n次后面的命令...

: 进入ex模式

) 下一句

( 上一句

} 下一段

{ 上一段

]] 下一节

[[ 上一节

0 行的开头

$ 行的末尾

^ 行的第一个非空白字符

+ 下一行的开头

- 上一行的开头

(空格) 下一个字符

(回车) 下一行

/ 向前搜索

? 向后搜索

% 查找当前小(中,大)括号的匹配字符

, 逆向重复上一个f,F,t或T操作

; 重复上一个f,F,t或T操作

. 重复上一个操作

` 转到标记处

' 转到标记所在行的开头

`` 查找前回到上一个做标记的地方

'' 查找前回到上一个做标记所在行的开头

~ 切换字符的大小写

” 保存到寄存器中

!! 重复上一次SHELL命令

! 把后面的文本送给命令, 取代输出(例如, !}fmt把当前的段落

送给命令fmt处理,然后用fmt返回的东西替换输出.)

>> 右移当前段落一个移动宽度(shiftwidth)

<< 左移当前段落一个移动宽度(shiftwidth)

>% 从当前到匹配小(中,大)括号之间的文本右移

<% 从当前到匹配小(中,大)括号之间的文本左移

(似乎漏了一个符号|, 移动到某一列----译注)

a 在当前位置之后添加

A 在当前行的末尾添加

^a 没有使用

b 上一个单词的开头

B 上一个单词的开头,忽略标点符号

^b 上移一屏

c 覆盖...

C 覆盖到行末尾

^c 终止插入模式,在命令模式没有用

d 删除...

D 删除到行末尾

^d 下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftTab)处

e 单词的末尾

E 单词的末尾,忽略标点符号

^e 屏幕下卷一行

f 查找...

F 向后查找...

^f 下移一屏

g 未用

G ...跳至[缺省是到文件末尾]

^g 显示状态栏

h 左移

H 屏幕上的第一行

^h 在插入模式下是退格,命令模式下是左移

i 在当前的位置前面插入

I 在本行的第一个非空白字符前面插入

^i 插入模式下是制表键,命令模式下未用

j 下移

J 把下一行合并到本行

^j 命令模式下是下移,插入模式下是建一个新行

k 上移

K 未用

^k 未用

l 右移

L 屏幕中的最后一行

^l 重绘屏幕

m 把当前位置标记到寄存器中

M 屏幕的中间行

^m 回车

n 重复上次查找

N 逆向重复上次查找

^n 命令模式下是下移

o 在当前行的下面建一个新行

O 在当前行的上面建一个新行

^o 未用

p 在当前行的下面粘贴

(译注--应为在当前位置的后面粘贴)

P 在当前行的上面粘贴

(译注--应为在当前位置的前面粘贴)

^p 命令模式下是上移

q 未用

Q 退出并且启动ex

^q 未用

r 覆盖当前的字符

R 在插入模式下一直覆盖字符

^r 在命令模式下面重绘屏幕

s 替换

S 替换整行

t 到...

T 向后到...

^t 移到下一个移动宽度(shifttab)处

u 撤消上一次操作

U 撤消对本行的所有修改

^u 上移半屏

v 未用

V 未用

^v 未用

w 下一个单词的开头

W 下一个单词的开头,忽略标点符号

^w 命令模式下未用,在插入模式下是到上一个单词的开头处

x 删除当前字符

X 删除前一个字符

^x 未用

y 复制...

Y 复制整行

^y 屏幕上卷一行

z 重新配置当前行周围的屏幕

ZZ 保存之后退出

^z 未用

(译注--在命令模式下,^z执行了UNIX暂停操作)

6.1 - 命令模式的输入选项(:命令)

(注: 这不是一个规范的列表,, 我只是列出了一些最重要的命令)

:r <文件> 把<文件>读入到当前文档

:r !<命令> 把<命令>的输出插入到当前文本中

:nr <文件> 把<文件>插入到第n行

:!<命令> 运行<命令>,然后返回

:sh 转到SHELL

:so <文件> 读取<文件>,再执行文件里面的命令

(译注--文件中的命令应该都是一些ex命令)

保存之后退出

:wq 保存之后退出

:l1,l2w <文件>把第l1和第l2行之间的文本写到<文件>中去,如果没有指定<文件>,

vi就假定是当前文件,如果没有指定l1,l2,就假定是整个文件(就成了:w)

:w >> <文件> 添加到<文件>末尾. 也可以使用行号

:w! 覆盖当前文件

:q 退出

:q! 不存盘就退出

:e <文件> 不离开vi编辑<文件>

:e! 重新编辑当前文件,忽略所有的修改

:n 编辑下一个文件

:e +n <文件> 从第n行开始编辑<文件>,如果超过了末尾,就从末尾开始编辑

:e# 编辑替换文件(如果使用了命令:e<文件>,替换文件就指的是原始文件)

:args 显示所有要编辑的文件

:rew 重新回到第一个编辑的文档

:map m n 创建一个宏(使 m 做 n)

:map! m n 创建一个插入模式的宏(使 m 做 n)

:unmap m 删除宏m

:unmap! m 删除插入模式的宏m

:ab <1> <2> 缩写,敲<1>的时候用<2>取代

:unab <1> 取消缩写<1>

:set <选项> 设置<选项>...

6.2 - 设置选项(set)

可以使用括号中的缩写形式. 语法:

:set <选项> <参数> (如果需要参数的话)

也可以在一行中指定多个选项

:set <选项>? 显示出当前这个选项的参数值

:set all 则显示所有的选项值

对那些无须参数的选项来说,使用:set no<选项>就可以把它给关了

选项: 缺省值: 含义:

autoindent (ai) noai 使新行自动缩进,和上(下)行的位置对齐

autoprint (ap) ap 每条命令之后都显示出修改之处

autowrite (aw) noaw 在:n,:!命令之前都自动保存文件

beautify (bf) nobf 在输入的时候忽略所有的控制字符

(除了制表键(tab),换行(newline),进纸(formfeed))

directory= (dir=) /tmp 存放缓冲区的目录名

edcompatible noedcompatible 在替换的时候使用类ed的用法

errorbells (eb) errorbells 出错的时候响铃

exrc (ex) noexrc 允许在主目录(home)外面之外放.exrc文件

hardtabs= (ht=) 8 设置硬制表的边界

ignore case (ic) noic 正规式里忽略大小写

lisp nolisp 打开lisp模式

list nolist 显示所有的制表键和行的结尾

magic magic 可以使用更多的正规表达式

mesg mesg 允许向终端发送消息

number (nu) nonumber 显示行号

open open 允许开放和可视化

optimize (opt) optimize 优化吞吐量,打印时不发回车

paragraphs= (para=) IPLPPPQPPLIbp 设置{ & }的分界符

prompt prompt 命令模式下的输入给出:的提示符

readonly (ro) noro 除非用!号否则不准保存文件

redraw noredraw 当编辑的时候重绘屏幕

remap remap 允许宏指向其他的宏

report= 5 如果影响的行数>这个数的话就报告

scroll 1/2 window 下卷屏幕时滚动屏幕的数目,

同样这也是z命令输出的行数(z 输出2倍滚屏的大小)

sections= SHNHH HU 定义节的末尾(当使用命令[[ 和 ]] 时)

shell= (sh=) /bin/sh 缺省的SHELL,如果设置了环境变量SHELL的话,就使用变量

shiftwidth= (sw=) 8 当使用移动(shift)命令时移动的字符数

showmatch (sm) nosm 显示{, }, (, , [, 或者 ] 的匹配情况

showmode noshowmode 显示你处在什么模式下面

slowopen (slow) 插入之后不要立刻更新显示

tabstop= (ts=) 8 设置制表停止位(tabstop)的长度

taglength= (tl=) 0 重要标记的字符个数(0表示所有的字符)

tags= tag, /usr/lib/tags 定义包含标记的文件路径

term= 设置终端类型

terse noterse 显示简短的错误信息

timeout (to) timeout 一秒钟后键盘映射超时

ttytype= 设置终端类型

warn warn 显示“No write since last change”信息

window= (w=) 可视模式下窗口的行数

wrapmargin= (wm=) 0 右边距,大于0的话最右边的单词将折行,留出n个空白位置

wrapscan (ws) ws 查找到文件尾后再重头开始

writeany (wa) nowa 可以保存到任意一个文件去

(译注--这些选项在各种vi版本中都基本上大同小异,以SunOS带的vi为例,它没有这里列出来的open选项,

scroll的参数值也不同,还多出来一些选项,如flash,modelines,novice,tagstack等等)

7.0 - 建立 .exrc文件

所有命令输入模式下的命令(即 :命令)都可以在.exrc文件中使用,在.exrc中的命令在启动vi的时候自动

加载.尤其是源命令(so),缩写(ab)和宏定义都可以用.在.exrc中不允许有空行.以“开头的一行vi将把它当成

注释.

7.1 - .exrc文件的样本

以下的.exrc文件是一个实际的例子, 我自己的. 因此,它就没有有些人想象的那样设置很多的选项.即便

如此,它还是给出一些基本的概念,而且它也相当易懂.

首先,记住你无须在命令前面加:号,因为它是缺省就添加了的.

”译注--以下是.exrc文件中的内容,为真实起见,而且事实上也相当浅显,我没有翻译其中的注释

“ set wordwrap 9 characters from the right

set wm=9

” show matching parenthesis. When },), or ] is hit, show the opening

“ {,(, or [ that matches it.

set sm

” set the shell to be /usr/local/bin/tcsh

set sh=/usr/local/bin/tcsh

“ a few abbreviations

” this makes -l automatically become -Larry, and zidlle to be my

“ name and email address.

ab zidlle E. Larry Lidz - ellidz@midway.uchicago.edu

ab -l -Larry

” uppercase V will run ispell -x (-x tells it not to save backups) on current

“ file

map V :w

” K will center the line... (this doesn't work on SunOS -- ??)

map K :s/^[ ]*//

“ v will reformat the current paragraph

map v {0!}fmt

” q runs a program to lock my terminal

map q :!lock2

“ Splits a line in two at current cursor location, puts a > at the

”beginning of the line - useful for Usenet/email

map g may0O`ay$:s/./ /g

8.0 - vi的bug

我很想说vi中没有bug,但很不幸,它不是这样的. 这些bug都是初始版本vi中的,

它其他的一些变种就不一定有.

例如 _宏有时就运行的有问题.

9.0 - 术语表

如果有人提议说某个术语他不明白,我们将更新这个术语表.如果你有什么建议,

请一定要告诉我.

命令模式 command mode

命令模式是说我们在此模式下面可以向vi发命令(包括光标移动,编辑命令等等)

ed

UNIX里面一个非可视化的编辑器

escape键. 键盘上标记为escape(ESC)的一个键.有时候^[可以起到相同的作用.

如果没有escape键,你可以试试Meta键

ex

UNIX下的一个编辑器.所有vi中的:命令都是送给它处理的

插入模式 insert mode

插入模式是指我们可以在此模式下面键入文本.

宏 macro

宏是一些键的组合起来的快捷方式.例如,某个宏允许我们只敲一个键就可以执行

好几个不同的命令.

开放模式 open mode

开始模式是说vi启动的时候不能确定你的终端类型,或者它肯定你的是一个硬的或

电子管的终端

正规表达式 regular expressions (RegEx)

正规表达式,通常缩写为“RegEx”,是一些关键字的集合,它允许用户在查找的时候有更大的

控制力度. RegEx是在UNIX下面用的,但是在很多程序中也用到了它.

sed

流-行式的编辑器.它没有界面,所有命令都是通过命令行的形式给出的.

vi

就是这个FAQ讨论的编辑器

rom98 回复于:-02-10 20:52:48很好!

hmkart 回复于:2003-02-11 09:22:33经典,收藏!

mjwaishelley 回复于:2003-02-11 11:33:30收,精华区,

[转帖] vi 命令常见问题解答Windows系统

。。。。。

cxyzl0 回复于:2003-02-11 11:51:06经典,收藏!

thank you!

cxyzl0 回复于:2003-02-11 11:51:32经典,收藏!

thank you!

sleuthyt 回复于:2003-02-11 11:53:06这东东,我收了。

guest_client 回复于:2003-07-03 17:39:10请问,我用vi 编辑文件时,在存盘退出时执行:wq,有提示“/bin/sh:没有找到命令”,,如何解决,,SCO UNIX下,除了VI ,,还有什么在字符模式下的编辑器????再线等。。。

bf1720 回复于:2003-07-04 21:45:33

这让我使用vi更方便了

stanlee 回复于:2003-07-05 16:13:45很好!讲的很细。

收下拉!

Air_Fish 回复于:2003-08-27 18:59:52OK! GOOD!

flightshi 回复于:2003-09-08 20:30:02我有个问题,在每行中都插入,类似Ultraedit的列模式怎么用?今天找了一天,没有找到。

yangl76 回复于:2003-09-08 21:58:03寻他千摆渡

原文转自:www.ltesting.net

篇2:[转]VI 指令详解Windows系统

使用vi如何以斡l理的方式碇匮}理n案中的Y料,K在不更釉n案的情r下,⑦@些Y料存放到新n案中? 栏裾f恚@拥奶理作I,x裣sed,awk@拥墓ぞ撸在理效率上比^好;如果,理 需求 渭的,grep也足以付,但那拥倪x瘢通常是

使用 vi 如何以斡l理的方式碇匮}理n案中的Y料,K在不更釉n案的情r下,⑦@些Y料存放到新n案中?

栏裾f恚@拥奶理作I,x裣 sed,awk @拥墓ぞ撸在理效率上比^好;如果,理需求渭的,grep 也足以付。但那拥倪x瘢通常是在理流程已相成熟,且有必要常性的重}使用之下,所做的工具x瘛T谕话l性且e模式尚未清前,使用 vi 是^具性的x瘛

我以一整理 httpd aclearcase/“ target=”_blank“ >ccess_log 碜髡f明。

/12/16 凌晨,我好在主C上做cy。r的W路有c忙,我使用.netstat -ct 看了一壕W路的r,知道目前 httpd 有孜辉L客。一rd起想看看她砜词颤N,於是我使用 vi 去看了一下 Apache 的 access_log,意外地lF,同一rg,我的同胞 202.102.141.56 正在呙柚C的 httpd server。再^察一下 netstat -ct 的息,我lX她]有完全做完。心想不打嗳思业墓ぷ鳌.r人已有c了,所以我退出了 vi Kso^m做我的事情。不久,周公他老人家就碜ノ页龉差,做他最近I的 playboy W站。M境的W,T制,非十八q以下的暨z才俊不收。我只有做苦工的份,]Y格加入。

隔日自然醒恚打_X,先砩弦欢 Queen 的 We are the champions 加上一杯咖啡。突然想起凌晨未完成的^察,R上用 vi 再查看 access_log。乖乖!不是一,前後共三位青年才俊上W。此r在 vi 模式下,我想分e⑷位的Y料 access_log n案中分x出恚建立三en案。@N想法,以前不曾想^!一r卡住了,不知道怎N做?拿起P恚在上下了”如何“挪移”@字。喝完我的咖啡後,趴在桌上小咪一下..才一下,就被周公槌醒,我看著“挪移”勺郑方法找到了。

# vi access_log

我使用 vi 指令M入了要的 access_log n案中。因]有加上任何特殊x,所以游在第一行的位置。接著,我打算⒂榍嗄暌惶,位址是 202.102.141.56,所z留的拜Lo全部挪移到n案的最末端。指令如下:

:g/202.102.141.56/mo$

行指令其中 g 代表 global,是整n案的意思。在 :g/ 後面的是要搜さ淖执,我代入的是 202.102.141.56,也就是有榍嗄暌惶。最後 mo$ 其是 ex 器的指令,mo 是 move 搬移;$ t代表最後一行的意思。所以@行指令做的就是,n案纳系较z查群有 202.102.141.56 的每一行,找到了就⒃行搬移到n案的最後一行。绦型戤後,游停留在最後一行。

@樱我就_到“有榍嗄暌惶”的拜LY料透析出淼哪康牧恕.然,我是可以^m使用相同的手法整理有榍嗄甓、三,不^我的想法是为存n,所以@r不需要理。o接著我要h除oP的Y料。

:/202.102.141.56

因橛艘言谧钺嵋恍校搜自犹回第一行重^_始ふ易执。藉此,我已⒂艘拥“有榍嗄暌惶”Y料的_^位置。游艘陨系氖俏也恍枰的Y料,以下t是打算存n的热荨

接著我⒂送上跳一行(也就是按一下 k I),然後清除行到第一行的所有Y料。

d1G

清除後留下的就是“有榍嗄暌惶”全部Y料。

:w Timmy-no1

F存的Y果另存新n,n名槿∽ Timmy-no1。(Timmy 一字,碜造栋西莫夫c席S伯格合著的某本科幻小f,是一位非常特殊的主角)

到此,事情算到一段落。因槲疫要原淼馁Y料,在一般r下,我x :q! 放存nK退出 vi 。但因槲疫需^m透析出“有”青年二、三“的Y料。所以我得回驮n案的Y料,稳缦

:e!

@幼鳎我人比^喜gQ”倒“。好了,倒完п幔n案的热菥突偷缴洗未n的B,我因]存^n,所以便回偷竭M入 vi r的原Y料,接著就可以用先前的做法理”青年二、三“了。最後得用 :q! 退出 vi 就可以了。

做完@件事之後,我M足地睡回\X。粞e,周公ξ艺f:值暮醚剑孩子。e忘了睡醒後把新T的Y料,E-mail o我呦。下回嘉你享受一下”M境“的滋味。F在白天,既然砹耍就好好地加班,建W去.....,不快去!

鹘y的 vi 指令,不支援多重窗。所以o法用一b vi 程式同r_n案做Y料交Q、D移的。但@cK]有太大的不便,因樘娲的方法也很巍V灰善用 vi 程式的具名n^,先 A n案的Y料捍嫫恚然後^m B n案,再呼叫出砑纯伞

 vi 程式的\作而言,使用 d (delete) c y (yank) 都①Y料放入具名的 buffer 中。但Ρ疚牡男枨碚f,我自己^Σx delete 碜觯m然做得到,但太危U。所以唯一且正_的x袷鞘褂 yank。她支援小字母 a ~ z 命名的具名n^供使用者\作。F在仔想想,似乎我牟辉嫌^ 26 不蛴茫康她竟是一相有限的限制。

接下硎俏H\作的例子。每天系y的 message n案,有一些常的信息。@些息m多半具有律性,但仍然有o法掌握的情r出F。由於我的系y服辗浅渭,所以我T使用 vi 查看每天l生的事情。z的^程中如果有踊蜃约焊悴磺宄的警,我就先⑺存入具名n^中,等到全部z完後,再Q定如何理,

F在,假O我要_始z messages n案中有P於 12 月 24 日的o;

# vi +/”Dec 24“ messages

游停在我要的第一PY料上。我往下z天o,不久lFBm三行Y料有樱我把游送T诘谝恍械奈恢茫下指令先⑺放入具名n^中;

”q3yy

如此,三行Y料就存入 q n^取T偻下z,又lF零散的仔挟常都c某 IP 有P。因此我 IP 的Y料。一游蚁⒂送T谠 IP 的_^位置,然後再下指令;

“w8yw

行的意思是存 8 ”字“(word)存到 w n^取xxx.xxx.xxx.xxx 是 IP 的固定格式,其中的 dot 在定x上是特殊符,同一”字“(word),所以像 IP @拥母袷皆诒硎旧嫌 8 ”字“(word)。

往下再找到的,我都以相似的方法⑺存在不同的n^取W钺嵛液艚形易约旱漠常on案,①Y料Υ嫫恚

:e + strange2k112

在呼叫r我加上x ”+“,所以我游停碓谧钺嵋恍小N议_始序地⒋娣旁诰呙n^的Y料 put 到 strange2k112 @n案中;

”qp

“wp

”ep

....

小的 p ①Y料放在游酥後;想放在游酥前使用大的 P 即可。

在的^程中,早已h除的Y料,突然想再找回怼_@拥氖虑殡y免偶而l生。有人x褚宦 undo 回去,甚至完全放所有的,我人K不J檫@是好的做法。因此如^可能的,我是想找回恚如果找得回淼脑。要想@幼觯首先就必清楚,vi 程式是如何理 delete 的Y料。

vi 程式了 9 具名n^供 delete 做Y料捍妗>n^的名Q就是底 1 到 9。Y料“先M先出”的模式存放。也就是f,你清除一PY料,它被放入n^ 1,原先n^ 1 鹊馁Y料被新M的Y料D到n^ 2,以此推,可以想像,n^ 8 的Y料DMn^ 9 後,原先n^ 9 的Y料被G。而被G的Y料,o法使用呼叫具名n^的方式挽救回怼

清楚其\作方式後,你lF,要明_地掌握Y料在哪一n^龋在是一件高y度的事情!原因在清楚不^,l去@a事?就算有人刻意去恐怕也不是一件p的事。坦白f,打死我,我也不去!

所以f一事情l生了,想使用@方法找回恚心e必有担只有九n^,可不可能在?如果可能的再用。得用上r,土法的方法是,由呼叫n^ 9, 8, 7...一路找,

“9p

”8p

“7p

”6p

“5p

”4p

“3p

”2p

“1p

然,序也可以反^砝玻〉方法在不是普通的y看。如果旁有人,有可能е乱皇烙⒚ъ兑坏。所以做@件事情的r候,得用比^好看一c的姿碜觥

首先,我先f明,@方法,是由底中〉酱蠛艚芯n^。o法由大到小。呼叫的第一n^,可以不必由n^ 1 _始,可以是其他底帧N人因X袋L得比^小,年o也比^大,所以我T念^_始,

”1p

出F的然毫o疑地是最後一次。然後,

u.

打 u 是 undo 的意思,幕上n^ 1 的Y料消失。而 dot (.) 是 repeat 的意思。效果相於呼叫下一n^的Y料,所以n^ 2 的Y料@示出怼O朐倏聪乱n^,就再打一次 u. 就可以了。

如果o法在底志n^找回Y料,只要在未存n的的情r下,我F盍泶嫘n,然後回驮n案的Y料,搜さ劫Y料後,放在具名的n^龋再另存的新n即可。

mjlinux回复于:-08-23 08:55:44谢谢

qianchengguo 回复于:2004-08-23 15:42:45牛,,

,怎么是繁体,,看着累,

cddxwx 回复于:2004-08-24 09:38:28正在收集这方面的资料,万分感谢老查 !

:em02:  :em02:  :em02:

jinxingvenus 回复于:2004-08-24 10:25:43支持一下老乡!!!

cretelb 回复于:2004-08-26 17:44:35好东西!谢谢!就是不习惯繁体!

littlecong 回复于:2004-08-30 12:06:46:g/202.102.141.56/mo$

小 辉 回复于:2004-09-01 12:32:49好东西!

小马儿 回复于:2004-09-01 14:35:02感觉还是UltraEdit好用啊~vi命令记得太少了,汗~

xzh 回复于:2004-11-06 22:54:10其实vi中:开头的命令都是ex命令

scyejing 回复于:2004-11-09 14:46:26谢谢 :lol:

原文转自:www.ltesting.net

篇3:安装Windows 的常见问题解答Windows系统

1、我的计算机适合安装Windows 2000吗? 为了保证安装的顺利,在安装Windows 2000之前,必须保证计算机的硬件配置满足Windows 2000的要求,特别是内存与硬盘空间,Windows 2000 Professional推荐最小为64MB,硬件要求至少有850MB的可用空间,此外,另一个需

1、我的计算机适合安装Windows 2000吗?

为了保证安装的顺利,在安装Windows 2000之前,必须保证计算机的硬件配置满足Windows 2000的要求,特别是内存与硬盘空间,Windows 2000 Professional推荐最小为64MB,硬件要求至少有850MB的可用空间。此外,另一个需要考虑的是硬件兼容问题,在Windows 2000的安装光盘中可以查到HCL文件,即硬件兼容列表文件,看看你的配置是否在清单之列。

2、Windows 2000支持哪些系统的多重引导?

如果既想安装Windows 2000,又想保留已安装的操作系统。那么可以使用Windows 2000多重引导系统功能,即在安装时不选择“升级安装”就可以了,

Windows 2000支持NT 3.51、NT 4.0、Windows 95、Windows 98、MS-DOS、OS/2等操作系统进行多重引导。多重引导的好处是可以让你的计算机充分发挥Windows 2000的效能,又可以运行一些16位的应用程序。

3、我该选用哪种文件系统?

Windows 2000支持的文件系统有FAT/FAT32和NTFS,其中NTFS是Windows 2000(原先为Windows NT)的专用格式,它能更充分有效地利用磁盘空间、支持文件级压缩、具备更好的文件安全性,因此如果只安装Windows 2000,建议选择NTFS文件系统。如果多重引导系统,则系统盘必须为FAT/FAT32,否则不支持多重引导。当然,其它磁盘的文件系统可以为NTFS。

4、我需要创建安装启动盘吗?

安装过程中,建议你创建安装启动盘,因为日后当Windows 2000出错面无法引导时,启动盘可以修复出错从而重新引导系统。建议创建的另一个原因,当安装完成Windows 2000后,无法找到创建启动盘的程序。要想补创,需要从安装光盘中运行程序Makeboot,比较麻烦。

原文转自:www.ltesting.net

篇4:unix安全架构[转帖]Windows系统

[center]下面是一些个人的经验的总结,我相信对于是否受到入侵的 UNIX 或者UNIX-clone(freebsd,openbsd .net bsd, linux ,etc)都是有用的: 首先大家可以通过下面的系统命令和配置文件来跟踪入侵者的来源路径: 1.who------(查看谁登陆到系统中) 2.w--------

[center]下面是一些个人的经验的总结,我相信对于是否受到入侵的UNIX或者UNIX-clone(freebsd,openbsd.netbsd,linux,etc)都是有用的:

首先大家可以通过下面的系统命令和配置文件来跟踪入侵者的来源路径:

1.who------(查看谁登陆到系统中)

2.w--------(查看谁登陆到系统中,且在做什么)

3.last-----(显示系统曾经被登陆的用户和TTYS)

4.lastcomm-(显示系统过去被运行的命令)

5.netstat--(可以查看现在的网络状态,如telnet到你机器上来的用户的IP地址,还有一些其它的网络状态,)

6.查看router的信息。

7./var/log/messages查看外部用户的登陆状况

8.用finger 查看所有的登陆用户。

9.查看用户目录下/home/username下的登陆历史文件(.history.rchist,etc).后注:'who','w','last',和'lastcomm'这些命令依靠的是/var/log/paclearcase/“ target=”_blank“ >cct, /var/log/wtmp,/etc/utmp来报告信息给你。许多精明的系统管理员对于入侵者都会屏蔽这些日志信息(/var/log/*,/var/log/wtmp,etc)建议大家安装tcp_wrapper非法登陆到你机器的所有连接)

接下来系统管理员要关闭所有可能的后门,一定要防止入侵者从外部访问内部网络的可能。(对FREEBSD感兴趣的文章,可以看一下我在绿色兵团中安全文献中的FreeBSD网站的安全构架(1) ).如果入侵者发现系统管理员发现他已经进入系统,他可能会通过rm -rf /*试着隐蔽自己的痕迹.

第三,我们要保护下面的系统命令和系统配置文件以防止入侵者替换获得修改系统的权利。

1. /bin/login

2. /usr/etc/in.*文件(例如:in.telnetd)

3.inetd超级守护进程(监听端口,等待请求,派生相应服务器进程)唤醒的服务.(下列的服务器进程通常由inetd启动:

fingerd(79),ftpd(21),

rlogind(klogin,eklogin,etc),rshd,talkd,telnetd(23),tftpd. inetd还可以启动其它内部服务,/etc/ inetd.conf中定义的服务.

4.不允非常ROOT用户使用netstat,ps,ifconfig,su

第四,系统管理员要定期去观察系统的变化(如:文件,系统时间,等)

1. #ls -lac去查看文件真正的修改时间,

2. #cmp file1 file2来比较文件大小的变化。

第五,我们一定要防止非法用户使用suid(set-user-id)程序来得到ROOT 的权限。

1.首先我们要发现系统中所有的SUID程序。

#find / -type f -perm -4000 -ls

2.然后我们要分析整个系统,以保证系统没有后门。

第六,系统管理员要定时的检查用户的.rhosts,.forward文件,

1.#find / -name .rhosts -ls -o -name .forward -ls

来检查.rhosts文件是否包含'++',有则用户可以远程修改这个文件而不需要任何口令。

2.#find / -ctime -2 -ctime +1 -ls

来查看不到两天以内修改的一些文件,从而判断是否有非法用户闯入系统。

第七,要确认你的系统当中有最新的sendmail守护程序,因为老的sendmail守护程序允许其它UNIX机器远程运行一些非法的命令。

第八,系统管理员应当要从你机器,操作系统生产商那里获得安全铺丁程序,如果是自由软件的话(如Linux平台,建议大家可以到linux.box.sk来获得最好的安全程序和安全资料。)

第九,下面有一些检查方法来监测机器是否容易受到攻击。

1.#rpcinfo -p来检查你的机器是否运行了一些不必要的进程。

2.#vi /etc/hosts.equiv文件来检查你不值得信任的主机,去掉。

3.如果没有屏蔽/etc/inetd.conf中的tftpd,请在你的/etc/inetd.conf加入tftp dgram udp wait nobody /usr/etc/in.tftpd

in.tftpd -s /tftpboot

4.建议你备份/etc/rc.conf文件,写一个shell script定期比较 cmp rc.conf backup.rc.conf

5.检查你的 inetd.conf和/etc/services文件,确保没有非法用户在里面添加一些服务。

6.把你的系统的/var/log/*下面的日志文件备份到一个安全的地方,以防止入侵者#rm /var/log/*

7.一定要确保匿名FTP服务器的配置正确,我的机器用的是proftpd,在proftpd.conf一定要配置正确。

8.备份好/etc/passwd,然后改变root口令。一定要确保此文件不能够入侵者访问,以防止它猜测。

9.如果你还不能够防止入侵者的非法闯入,你可以安装ident后台守护进程和TCPD后台守护进程来发现入侵者使用的帐号!

10.确保你的控制台终端是安全的,以防止非法用户能够远程登陆你的网络上来。

11.检查hosts.equiv,.rhosts,hosts,lpd都有注释标识#,如果一个入侵者用它的主机名代替了#,那么就意味着他不需要任何口令就能够访问你的机器.

[/center]

konashu 回复于:-07-15 15:55:55这个对tru64有效吗?

吹拂的晨风 回复于:2005-07-18 17:28:17总体来说是针对Solaris的,可能有些地方和Tru64有点出入,但对Tru64的使用者来说还是有借鉴作用的。

原文转自:www.ltesting.net

篇5:Windows系统五类常见网络设置问题解答

无法进入路由器配置画面

我的WindowsXP下无法进入D-LinkDI-604路由器配置画面,请问该如何排除故障?

无法进入路由器配置画面分为两种情况,一是网卡参数配置不当,即网卡的IP地址是否在D-LinkDI-604路由器说明的设置范围内。如果不是当然无法进入配置页面,此时需要在

二是在网卡设置无误的情况下,D-LinkDI-604路由器的面板灯、WAN及PORT灯都正常亮起,却还是无法进入配置画面。此时,只有依照下面的步骤,尝试将路由器恢复到出厂默认值看能否解决问题。首先,将大头针插入DI-604背面面板上的Reset孔不要放开,接着将DI-604的电源线拔掉并插回。在电源接通后,会看到正面面板上的1、2、3、4灯号亮过一次之后(约6秒),立即松开大头针,待灯号正常显示时即可恢复出厂默认值。此时,再按路由器说明书的配置方法进入路由器的管理页面即可。

区分打印服务器与打印共享器

我一直搞不清楚机房中的打印服务器和打印共享器有什么区别,专家能解释一下吗?

打印服务器可以将打印机的软件与硬件进行智能扩展,将它应用于大、中、小型网络环境尤为适宜。打印共享器则是一种能够将打印线缆的线路进行切换使用的硬件设备,一般只能应用于两台电脑或两台打印机。

真正的打印服务器是一种独立的电脑外设,它可以脱离电脑而单独作为网络共享打印的服务器,如D-Link的打印服务器DP-303,就有3个并口,并能够实现10/100Mbps自适应。打印服务器一般都支持多协议打印服务,如支持IPX、NetBEUI、TCP/IP、AppleEther等打印协议,从而可以支持使用不同网络操作系统的电脑发出的打印任务。此外,多端口的打印服务器可以接驳多台打印机,从而实现打印任务至所有打印机的自动分配。相对来说,打印共享器则显得简单得多,打印共享器通常则有两种硬件连接方式:一是允许两台电脑共同使用一台打印机;二是允许一台打印机被两台电脑使用;有的打印共享器会没有开关,指向A开关则可以使用A打印机,指向B开关则可以使用B打印机

限制客户端连接终端服务器

我如何对TerminalServices进行限制,使一个用户仅仅能够连接一次?我想知道它在WindowsServer中的设置方法,

对于WindowsServer2003,请在TerminalServicesConfiguration(TerminalServices配置)中将“限制每位用户只拥有一个会话”(Restricteachusertoonesession)设置为“是”(Yes)。亦可以将“限制终端服务用户使用单个远程会话”组策略设置为“启用”。此外,对于Windows的用户,可以使用微软推荐的第三方程序(thethin.net/r25b.zip

在WindowsXP中安装Modem出错

不知道是什么原因,我在WindowsXPSP1中安装Modem时,总是出现这样或是那样的错误。即使偶尔一次安装成功并能拨号上网,也是慢得出奇。怎样才能解决这个问题?

在WindowsXP的帮助中有一个“调制解调器疑难解答”向导,你可以参考一下它提供的信息。启动方法是在“运行”栏中输入“hcp://help/tshoot/tsmodem.htm”并按Enter键确认。此外,你应检查两方面:一是Modem的驱动是否支持WindowsXP?驱动是否为原配?安装WindowsXP内置的驱动是否可以解决问题?二是WindowsXP是否为完整版?一些网上可以下载的精简版,大多都去除了对Modem的支持。

修改网卡的MAC地址

在一个Windows98的网络安全检测中,我需要修改一下网卡的MAC地址满足测试。请问,有什么方法可以实现?

有很多种方法可以实现。这里介绍一种比较简单的。因为Windows中的MAC地址就存储在操作系统的指定存储单元内,而Windows98就是根据这个存储单元的内容来识别网卡的物理地址的。所以,只需要通过修改如下存储单元的内容,就能达到修改MAC地址的目的。

在注册表编辑器窗口中,依次展开并定位到如下分支:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0001,接着在0001分支下新建字符串值“NetworkAddress”,并将其属性设计为想设置的MAC地址,如112233445566。设置完毕并重新启动计算机。然后,使用Winipcfg等命令时,均可以看到网卡MAC地址已经被修改成了11-22-33-44-55-66。

篇6:(转帖)神州数码DCN530TX快速以太网卡在Solaris 2/7/8下的安装Windows系统

下面是530TX驱动盘上的文件: 神州数码DCN-530TX快速以太网卡在Solaris2/7/8下的安装 该文档描述了神州数码DCN-530TX快速以太网卡在Solaris2/7/8(x86版本)下安装步骤, 内容: --------- (A)在Solaris7/8下安装/卸载驱动 (B)在Solaris2下安装/卸载驱动 (C)

下面是530TX驱动盘上的文件:

神州数码DCN-530TX快速以太网卡在Solaris 2/7/8下的安装

该文档描述了神州数码DCN-530TX快速以太网卡在Solaris 2/7/8(x86版本)下安装步骤。

内容:

---------

(A)在Solaris 7/8下安装/卸载驱动

(B)在Solaris 2下安装/卸载驱动

(C)改变媒体联接类型

(A)在Solaris 7/8下安装/卸载驱动

===============================

(A.1) 安装驱动

1.如果系统已经启动,输入su并回车。系统将提示输入root口令。否则,打开电源,启动系统,输入root口令。

2.插入驱动程序磁盘。推荐使用下列命令激活磁盘驱动器:

# volcheck

3.用下列命令添加驱动程序打包文件:

# cd /floppy/floppy0/solaris/x86

# ./installer

然后根据下面指令完成安装。

4.制作hostname.afe0,使得Solaris系统在启动过程中加载网卡驱动。

# uname -n > /etc/hostname.afe0

现在hostname.afe0包含Solaris系统的主机名。

5.通过配置Hosts文件来配置网卡的IP地址。具体细节请参考Solaris文档。

(A.2) 卸载驱动

为了卸载驱动,只需要简单地在GEDafed包上运行“pkgrm”命令。如果不是root身份,系统会请求输入系统的root口令。

# pkgrm GEDafed

(B)在Solaris 2下安装/卸载驱动

=============================

(B.1) 安装驱动

1.如果系统已经启动,输入su并回车。系统将提示输入root口令。否则,打开电源,启动系统,输入root口令。

2.插入驱动程序磁盘。推荐使用下列命令激活磁盘驱动器:

# mount -F pcfs /dev/fd0 /mnt

3.使用下列命令复制驱动程序文件到系统

# cd /mnt/SOLARIS/X86/Packages/I386/GEDafed/RELOC/KERNEL

# cd DRV

# cp AFE /kernel/drv/afe

4.更改驱动程序文件的访问权限

# cd /kernel/drv

# chmod 755 afe

5.使用下列命令加载驱动

# add_drv -m ”* 0666 root root“ -i '”pci1113,1216“' afe

6.复制配置文件到系统

# cd /mnt/SOLARIS/X86

# cp AFE.CONF /kernel/drv/afe.conf

7.制作hostname.afe0,使得Solaris系统在启动过程中加载网卡驱动。

# uname -n > /etc/hostname.afe0

现在hostname.afe0包含Solaris系统的主机名。

8.通过配置Hosts文件来配置网卡的IP地址。具体细节请参考Solaris文档。

(B.2) 卸载驱动

1. 卸载驱动

# cd /kernel/drv

# rem_drv afe

2. 删除hostname.afe0

# rm /etc/hostname.afe0

(C)改变媒体联接类型

========================

安装完成后,可以在afe.conf文件(位于/kernel/drv/)中设置媒体类型,所有支持的媒体类型在文件中列出。

缺省:缺省媒体类型为“AutoSense”。

下面是在afe.conf文件中的缺省设定:

AutoSense;                        ###  AutoSense

#speed=10 full-duplex=0;          ###  10BaseT

#speed=10 full-duplex=1;          ###  10BaseT Full-Duplex

#speed=100 full-duplex=0;         ###  100BaseTx

#speed=100 full-duplex=1;         ###  100BaseTx Full-Duplex

例如,如果你想将媒体类型改为100BaseTx,请按照下列例子改动afe.conf文件:

#AutoSense;                       ###  AutoSense

#speed=10 full-duplex=0;          ###  10BaseT

#speed=10 full-duplex=1;          ###  10BaseT Full-Duplex

speed=100 full-duplex=0;          ###  100BaseTx

#speed=100 full-duplex=1;         ###  100BaseTx Full-Duplex

English:

DigitalChina DCN-530TX Fast Ethernet Adapter

Solaris 2/7/8 Driver Installation

This document describes the steps necessary to install the

drivers for the DigitalChina DCN-530TX Fast Ethernet Adapter in

Solaris 2/7/8 on x86 systems.

Contents:

---------

(A) Installing/Uninstalling the driver under Solaris 7/8

(B) Installing/Uninstalling the driver under Solaris 2

(C) Changing the Media Type in Solaris

(A) Installing/Uninstalling the driver under Solaris 7/8

================================================================

(A.1) Installing the driver

1. If the system is already on, enter su [ENTER]. You will be

prompted for the root password. Otherwise, power up the

system, and enter the root password when prompted.

2. Insert the Driver Disk. We recommend that you use the command

'volcheck' to mount the Floppy driver by following command:

# volcheck

3. Add the driver packages by entering the following command:

# cd /floppy/floppy0/solaris/x86

# ./installer

Then following the screen instructions to complete the

installation.

4. Make hostname.afe0 to make Solaris system load the driver

during system up.

# uname -n > /etc/hostname.afe0

Now the hostname.afe0 file contains the hostname of your

Solaris system.

5. Configure the Hosts File to configure IP address of the

adapter. Please Refer to Solaris Document for more detail.

(A.2) Uninstalling the driver

================================================================

To remove the software, simply running ”pkgrm“ command on the

GEDafed package. If you are not already root, it will prompt

you for the system's root password.

# pkgrm GEDafed

(B) Installing/Uninstalling the driver under Solaris 2

================================================================

(B.1) Installing the driver

1. If the system is already on, enter su [ENTER]. You will be

prompted for the root password. Otherwise, power up the

system, and enter the root password when prompted.

2. Insert the Driver Disk. Mount the Floppy drive by following

command:

# mount -F pcfs /dev/fd0 /mnt

3. Copy the driver from Floppy Disk to System

# cd /mnt/SOLARIS/X86/Packages/I386/GEDafed/RELOC/KERNEL

# cd DRV

# cp AFE /kernel/drv/afe

4. Change aclearcase/” target=“_blank” >ccess mode of the driver by following command:

# cd /kernel/drv

# chmod 755 afe

5. Add the driver by following command:

# add_drv -m “* 0666 root root” -i '“pci1113,1216”' afe

6. Copy the configuration file to System.

# cd /mnt/SOLARIS/X86

# cp AFE.CONF /kernel/drv/afe.conf

7. Make hostname.afe0 to make Solaris system load the driver

during system up.

# uname -n > /etc/hostname.afe0

Now the hostname.afe0 file contains the hostname of your

Solaris system.

8. Configure the Hosts File to configure IP address of the

adapter. Please Refer to Solaris Document for more detail.

(B.2) UnInstalling the driver

1. Remove Driver

# cd /kernel/drv

# rem_drv afe

2. Remove hostname.afe0

# rm /etc/hostname.afe0

(C) Changing the Media Type in Solaris

================================================================

After installation, you can set Media Type in afe.conf file

under /kernel/drv/ directory. All the supported Media Types are

listed in the file.

Defaults:  The default Media Type will always be “AutoSense”.

Following is the default setting in the afe.conf file:

AutoSense;                       ###  AutoSense

#speed=10 full-duplex=0;          ###  10BaseT

#speed=10 full-duplex=1;          ###  10BaseT Full-Duplex

#speed=100 full-duplex=0;         ###  100BaseTx

#speed=100 full-duplex=1;         ###  100BaseTx Full-Duplex

For example, if you wantto set Media Type to 100BaseTx, modify

the afe.conf like following:

#AutoSense;                       ###  AutoSense

#speed=10 full-duplex=0;          ###  10BaseT

#speed=10 full-duplex=1;          ###  10BaseT Full-Duplex

speed=100 full-duplex=0;         ###  100BaseTx

#speed=100 full-duplex=1;         ###  100BaseTx Full-Duplex

www.mydrivers.com下有530tx  solaris下驱动.

刘云 回复于:2003-10-08 00:21:01可以告诉我以太网控制器的驱动哪边有的下载?

拜托了

我急用的

回信箱

lang309@sohu.com

落伍者 回复于:2004-05-11 07:47:26官方下载地址:www.dcnetworks.com.cn/service/download1.asp?act=all&pid=24

正在研究安装

原文转自:www.ltesting.net

linux下vi编辑器命令入门

请教!Windows系统

LINUX紧急常见问题解答Linux

迅雷常见的问题解答

MSN群常见问题解答

「转帖」《庄子》故事教案

几种常见类型服务器的比较 (1)Windows系统

澳洲留学:签证常见问题解答

百度Site App常见问题解答

面试技巧:外企面试常见问题解答

[转帖] vi 命令常见问题解答Windows系统(精选6篇)

欢迎下载DOC格式的[转帖] vi 命令常见问题解答Windows系统,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档