目錄
?目錄
第一章 ? ?windows下客戶端軟件putty
1.1 ?Putty簡介
1.2 ?Putty快速啟動
第二章 ?Linux使用入門
2.1 ? ?概述
2.2 ? ?基本指令
2.3 ? ?用戶文件的安全性
2.4 ? ?文本編輯器vim
第一章 ? ?windows下客戶端軟件putty
1.1 ?Putty簡介
Putty是Win32平臺下的客戶端,通過它,可以登陸到Linux服務(wù)器,其好處:
1.完全免費的telnet和ssh客戶端工具
2.全面支持ssh1和ssh2
3.綠色軟件,無需安裝,下載后在桌面建個快捷方式就行
4.體積很小
5.操作簡單,所有的操作都在一個控制面板中實現(xiàn)。
1.2 ?Putty快速啟動
1.開始一個任務(wù) ?雙擊putty.exe;
2.在Host ?Name(or ?IP ?address)輸入欲訪問的主機名或IP;
例如:222.24.21.110
3.在protocol選擇使用的協(xié)議ssh。
4.可以把所選的任務(wù)配置存起來,在Saved ?Session輸入任務(wù)的名字。
5.雙擊Open, ?就出現(xiàn)畫面,至此,就可以使用putty
第二章 ?Linux使用入門
2.1 ? ?概述
Linux是一個多任務(wù)、多用戶的操作系統(tǒng)。在Linux系統(tǒng)中同時可以有多個用戶使用同一臺計算機,運行多個不同的應(yīng)用。這與平時使用的Windows ?XP/2000個人版操作系統(tǒng)是不同的。學(xué)生平時使用的幾乎都單用戶獨占系統(tǒng)(因此不用登錄)。在Linux系統(tǒng)上,用戶為了使系統(tǒng)能夠識別自己,必須進行登錄。登錄分為兩步:輸入用戶的登錄名,系統(tǒng)將根據(jù)該登錄名來識別用戶;輸入用戶的口令,該口令是用戶自己選擇的一個字符串、對其他用戶是保密的、在登錄時系統(tǒng)用來辨別真假用戶的關(guān)鍵字。系統(tǒng)認為只有用戶自己和用戶授權(quán)的人知道這個口令,所以只允許正確口令的用戶登錄,其他用戶則不能登錄到這個帳戶下。
在一般情況下,系統(tǒng)管理員會在為用戶建立帳戶時賦給用戶一個用戶名和一個初始的口令。
另外,每個Linux系統(tǒng)都被賦予一個主機名(hostname)。這個主機名是賦給計算機的名字(標(biāo)識)。主機名用來在網(wǎng)絡(luò)上識別獨立的計算機。
登錄
啟動putty后,可看見屏幕有如下顯示:
? ? ? ?login:■
在靠近login處使用小寫字母鍵入你的用戶名rg0601~04(按你的班級輸入),然后按RETURN鍵,?可看見屏幕有如下 ?顯示:
? ? ? ?password:■
在靠近password處使用小寫字母鍵入你的口令rg123,然后按RETURN鍵,如果系統(tǒng)審核輸 ?入的保密字正確,則顯示:
? ? ? ?Welcome ?to ?LINUX ?System ?V...
? ? ? ?$■
其中顯示shell提示符為$,表示完成注冊進程.在某些Linux系統(tǒng)中,shell提示符為百分號%。 ?shell提示符是注冊序列的結(jié)束,當(dāng)用戶看到shell提示符時,?說明你已成功地在你的Linux系統(tǒng)中注冊.
2.Shell外殼
這shell是LINUX與用戶的交互接口,它是用戶輸入的鍵盤命令的解釋程序(翻譯器)和程序語言工具。shell解釋程序執(zhí)行的命令也稱shell命令,所有shell命令之集合稱作shell語言。
3.退出系統(tǒng)
當(dāng)用戶要終止他的LINUX對話時,必須注銷,相應(yīng)于shell提示符,請按Ctrl-D(^D),或者鍵入logout/exit。
在用戶注銷后,LINUX可能會顯示login:信息的內(nèi)容.屏幕會有如下顯示:
? ? ? ?$
? ? ? ?login:■
如果你按RETURN鍵時LINUX不顯示shell提示符,那么表示已注銷成功;如果?LINUX ?仍顯示你的shell提示符,那么表示你未注銷,則請重復(fù)注銷進程。
2.2 ? ?基本指令
⑴ ?指令格式
指令名稱 ? ? ? ?[選擇項] ? ? ? ?[參數(shù)]
同一行中可以輸入一個以上的指令,只要指令間以分號(;)隔開,Linux將會按次序執(zhí)行命令序列。
⑵ ?指令選擇項
為了執(zhí)行動作產(chǎn)生不同的結(jié)果;選擇項以(-)號開頭;
⑶ ?指令參數(shù)
參數(shù)的目的是描述指令所需的一些信息(例如:文件名稱),而這些信息在每次執(zhí)行該指令時都不相同。
⑷ ?通配符
“*”:可用來代表文件名中的任意長度的字符串;
“?”:可用來代表文件名中的任一字符;
“[]”:可用來代表文件名中的任一屬于字符組中的字符。
以下這些命令均為shell命令。
1.man ? ? ? ? ?顯示聯(lián)機Linux手冊
[格式] ? ? ? ? ?$ ?man[oprion][chapter]title...
[描述] ? ? ? ? ?man命令打印你所指定的命令。在你的LINUX系統(tǒng)中,也許有LINUX系統(tǒng)V用戶 ?手冊或Linux程序員手冊。在較小的Linux系統(tǒng)中,也許沒有man命令,?因為聯(lián)機手冊需要相當(dāng)大的磁盤空間。
[舉例] ? ? ? ? ?你可使用命令man ? ?who查看who命令的手冊[描述]。
2. ?ls ? ?顯示當(dāng)前工作目錄下內(nèi)容
[格式] ? ? ? ? ?$ ?ls ? ?[-ltr]
[描述] ? ? ? ? ?ls命令根據(jù)文件名按字母順序列出你的文件目錄及子目錄名稱。
[選擇項] ? ? ?ls命令有多個選擇項,下面列出幾個重要的選擇項:
-l ? ?以長[格式]列出文件,其中包括文件中的字符個數(shù),?以及最近修改的日期和時間。
-t ? ?以最近修改的時間順序列出文件。
-r ? ?將-t選擇的列表順序變反。
--a ? ?顯示隱藏文件
[舉例] ? ? ?以修改時間的順序列文件,輸入命令ls ? ?-ltr<CR>。
Linux文件的類型:
“-”為正文文件——普通文件;
“d”為目錄文件;
“b”為塊設(shè)備文件;
“c”為字符設(shè)備文件;
“l(fā)”為鏈接文件;
“p”為管道文件;
3. ?cd ? ?切換工作目錄----在目錄樹中移動
[格式] ? ? ? ? ? ?$ ?cd ? ?[路徑]
[描述] ? ? ? ? ? ?cd(change ? ?directory)命令建立指定的目錄,并把它作為工作目錄。 ?它有三種[格式]:
cd ? ? ? ? ? ? ? ? ? ? ? ? ?返回用戶主目錄,并把它作為工作目錄。 ?
cd ? ?目錄名稱 ? ? ?改變現(xiàn)行目錄到指定目錄。
cd.. ? ? ? ? ? ? ? ? ? ? ?返回到工作目錄的父目錄,并把它作為工作目錄。
cd/ ? ? ? ? ? ? ? ? ? ? ? ?進到根目錄
4. ?mkdir ? ?在當(dāng)前工作目錄下建立子目錄
[格式] ? ? ? ? ?$ ?mkdir ? ?目錄名稱
[描述] ? ? ? ? ?mkdir(make ? ?directory)命令建立1個或多個指定目錄。
5. ?rmdir ? ?刪除當(dāng)前工作目錄下子目錄
[格式] ? ? ? ? ?$ ?rmdir ? ?目錄名稱...
[描述] ? ? ? ? ?rmdir(remove ? ?directory)命令刪除指定目錄,而目錄必須為空。如果目錄不為空,LINUX將顯示適當(dāng)?shù)膱箦e信息。
[注釋] ? ? ? ? ?要刪除含有文件的目錄,你可使用帶有危險性的rm-r命令。
6. ?rm ? ?刪除文件
[格式] ? ? ? ? ?$ ?rm ? ?文件名...
[描述] ? ? ? ? ?rm命令刪除一個或多個指定文件。
選擇項 ? ? ?-i ? ?選擇項使LINUX問是否要刪除指定文件。如果是這樣,則鍵入y?(表示yes),否則鍵入n ?(表示no).
[舉例] ? ? ? ?為刪除文件pterodacty,請鍵入命令rm ? ?pterodacty<CR>。
為用-i選擇項刪除文件“dinosaur”,請輸入命令rm-i ?dinosaur<CR> ?。LINUX會問你“rm:remove ? ?dinosaur?(刪除dinosaur嗎?)”如果你要刪除“ ?dinosaur”,則鍵入y,否則,鍵入n。
7. ?rm ?-r ? ?刪除目錄及其文件
[格式] ? ? ? ? ?$ ?rm ?-r ? ?目錄名稱
[描述] ? ? ? ? ?rm ?-r(remove ? ?recursively)命令刪除指定目錄及其內(nèi)容。
[注釋] ? ? ? ? ?rm ?-r命令刪除指定目錄以及目錄所含的所有文件和目錄。命令rm ?-r具有很大的危險性,因為你也許不小心刪除了你不愿刪除的文件。
8. ?cp ? ?復(fù)制文件
[格式] ? ? ? ? ?$ ?cp ? ?文件名1 ? ?文件名2
[描述] ? ? ? ? ?cp命令進行文件“文件名1”的復(fù)制拷貝,拷貝件稱為“文件名2”
[注釋] ? ? ? ? ?如果你將一文件拷貝到已存在的文件中,那么現(xiàn)存文件的內(nèi)容會被改寫。
[舉例] ? ? ? ? ?為將文件從“this”拷貝到“that”中,請輸入命令cp ? ?this ? ?that<CR>
9. ?mv ? ?移動或重新命名文件和目錄
[格式] ? ? ? ? ?$mv ? ?文件名1 ? ?文件名2
$mv ? ?文件名...directory
$mv ? ?directory ? ?directory
[描述] ? ? ? ?mv命令的
第1種[格式]重新命名指定的普通文件;
第2種[格式]將指定的普通文件移到指定目錄;
第3種[格式]重新命名帶指定名的指定目錄,或如果第2個目錄名是1?個現(xiàn)存目錄,那么就把第1個指定目錄移到它里面。
[注釋] ? ? ?下面的命令將普通文件“文件名1”和“文件名2”移到目錄“directory.1”中:
mv ? ?文件名1 ? ?文件名2 ? ?directory.1
下面這條命令將工作目錄中其名以“??文件名?”開頭的所有文件移到目錄“ ?directory.1”中:
mv ? ?file* ? ?directory.1
下面這條命令不僅重新命名目錄“index”,?而且把它從你的工作目錄移到目錄“/usr/ishmael/book”中。然而,如果“/usr/ishmael/book/index?” ?是1個現(xiàn)存目錄,那么該命令將把“directory.1”移到其中,而不變更名字。
mv ? ?directory.1 ? ?/usr/ishmael/book/I
10. ?閱讀news消息
[格式] ? ? ? ? ?$ ?news
[描述] ? ? ? ? ?在某些系統(tǒng)上,當(dāng)你注冊時,也許出現(xiàn)信息“you ? ?have ? ?news?(有你的新聞消息)”。它告訴你有系統(tǒng)新聞消息。輸入命令news,可讀取新聞消息。
11. ?cat ? ?直接顯示文件內(nèi)容
[格式] ? ? ? ? ?$ ?cat ? ?文件名...
[描述] ? ? ? ? ?cat命令將文件名作為其自變量顯示文件的內(nèi)容。
[注釋] ? ? ? ? ?cat命令通常用文件名作為自變量,如果在你按RETURN?鍵之前忘記鍵入文件名,那么請按DELETE鍵。之后,會出現(xiàn)shell提示符.“cat”表示concatenate; ?cat命令還可用來合并文件。如果文件顯示太快,你可按control-s(∧?S?)終止 ?cat的輸出;同時,你可按control-q(∧Q)恢復(fù)輸出。
[舉例] ? ? ? ?顯示兩個文件“bird”和“dog”,輸入命令cat ? ?bird ? ? ?dog<CR>。?一旦cat顯示完“bird”,它便顯示“dog”。
12. ?more ? ?分屏顯示文件內(nèi)容
[格式] ? ? ? ? ?$ ?more ? ?文件名...
[描述] ? ? ? ? ?more命令顯示文件,一次顯示一屏。對每一屏,more都打印一個百分數(shù), ?指出已顯示了文件的多少內(nèi)容。為顯示另一屏幕,應(yīng)按SPACEBAR(空格鍵)。如果你僅想顯示下一行,則可按RETURN鍵。當(dāng)more顯示整個文件后,就返回shell?提示符。要在完成文件顯示之前退出more,請按DELETE鍵。
[選擇項] ? ? ? ?more有一些選擇項,在你成為有經(jīng)驗的用戶后, ?這些選擇項對你會有用。 ?你的用戶手冊會[描述]這些選擇項。
[注釋] ? ? ? ? ? ?more命令不是所有LINUX系統(tǒng)中都有。 ?如果你的系統(tǒng)有more命令,你可使用more命令而不使用cat命令,因為more命令允許你控制顯示多少文件內(nèi)容。
13. ?less ?上下瀏覽文件內(nèi)容
[格式] ? ? ? ? ?$less ? ?文件名
[描述] ? ? ? ? ?less命令顯示文件,且可以回顧前面的內(nèi)容。當(dāng)使用less ? ?文件名查看一個文件內(nèi)容時,屏幕上先顯示出第一頁的內(nèi)容,看完后按空格鍵跳到下一頁,按Enter鍵向下移一行。另外,按PageUp及PageDown鍵可以看上一頁及下一頁的內(nèi)容。結(jié)束時要按Q鍵跳回shell。
14. ?locate ? ?搜索文件
[格式] ? ? ? ? ?$locate ? ?字符串
[描述] ? ? ? ? ?locate命令按給定字符串搜索文件,它可將所有文件名稱中及路徑中包含該字符串的文件,都會連同路徑一起顯示,甚至只知道文件的部分名稱就可以使用本命令。
15.find ? ?搜索包含特定字符串的文件
[格式] ? ? ? ? ?grep ?[-clnvy] ?‘字符串’ ?[要搜索的文本文件]
15. ?mail ? ?發(fā)送或接收用戶中的郵件
Linux本身帶有郵件系統(tǒng),當(dāng)用戶使用Linux時,可以使用mail命令電子郵件發(fā)送和接收信息.
[格式] $ ?mail ? ?username...
mail ? ?[-r] ? ?[-f ? ?file]
[描述] mail用1個或多個用戶名的列表將電子郵件發(fā)送給指定用戶。?如果郵件命令中使用了1個無效用戶名,那么信息在文件“dead.letter”中處理。?如果沒有自變量,mail程序?qū)⑾蕊@示最新的郵件信息。 ?當(dāng)你查看你的郵件時,mail?顯示1個問號(?)郵件提示符,要你處理每條信息。
[選擇項] -r ? ?按反序顯示郵件,先顯示最舊的信息。
-f ? ?file ? ?處理來自命名文件(如“mbox”)中的信息。
郵件命令
*(或?) ? ? ? ?打印郵件命令一覽表。在系統(tǒng)V,“幫助”命令是“*”號。?在其他Linux系統(tǒng)中,“幫助”命令是“?”號。
<CR> ? ? ? ? ? ? ?顯示下一個信息。
d ? ? ? ? ? ? ? ? ? ? ? ?刪除信息。
s ? ?[file] ? ? ? ?若無自變量,將信息保存在“mbox”中;如果“?mbox?”不存在, ?Linux會建立該文件。若有自變量,則將信息保存在一命令文件中。如果文件已存在, ?Linux就將信息添加到文件后面。
q ? ? ? ? ? ? ? ? ? ? ? ?退出mail程序。 ?除你用d命令刪除的信息或用s命令保存的信息外, ?將信息保留在你的郵件文件中。
x ? ? ? ? ? ? ? ? ? ? ? ?退出,但不修改你的郵件文件。
! ? ?command ? ? ?執(zhí)行單個shell命令。
[舉例] ? ? ? ?你可以輸入命令:
mail ? ?username ? ?username ? ? ?username ?<CR>。
將同一信息發(fā)送給多個用戶(其中包括你自己)。
你可使用命令mail ? ?username通過mail程序發(fā)送文件內(nèi)容。
16. ?who ? ?列出當(dāng)前聯(lián)機用戶
[格式] ? ? ? ? ?$ ?who ? ?[am ? ?I]
[描述] ? ? ? ? ?who命令顯示注冊名.端口或終端(tty)號, ?以及用戶注冊的注冊時間。 ?如果我們使用who ? ?am ? ?I命令,那么LINUX僅在終端上顯示帳號的信息。如果你在多個終端上注冊,并想知道你目前正使用哪一個,那么命令who ? ?am ? ?I是很有用的。
[舉例] ? ? ? ? ?為查看目前誰已注冊,請輸入命令who。
17. ?pwd ? ?列出當(dāng)前目錄的完整路徑名
[格式] ? ? ? ? ? ?$ ?pwd
[描述] ? ? ? ? ? ?pwd(print ? ?working ? ?directory)命令顯示工作目錄的絕對路徑名。
18. ?cmp ? ?比較文件
[格式] ? ? ? ? ?$ ?cmp ? ?文件名1 ? ?文件名2
[描述] ? ? ? ? ?cmp命令對任意兩個文件進行比較(包括二進制文件).
19. ?diff ? ?兩個文本文件比較
[格式] ? ? ? ? ?$ ?diff ? ?文件名1 ? ?文件名2
[描述] ? ? ? ? ?本命令僅用于文本文件,產(chǎn)生兩個文本文件間全部差異的索引.
20.echo ? ?復(fù)制命令行中的參數(shù)
[格式] $echo ?<參數(shù)1> ?<參數(shù)2>……<參數(shù)n>
[描述] 在屏幕顯示命令行中的參數(shù)
[舉例] $echo ?“Hello ?world”
該命令將在屏幕上顯示字符串“Hello ?world”。
21. ?wc ?對文件中的字、行、字符進行計數(shù)
[格式] wc ?[選項] ?<文件1> ?<文件2> ?……<文件n>
[描述] 該命令用于正文文件中統(tǒng)計正文的單元。如果命令行中沒有指定文件,則指對標(biāo)準(zhǔn)輸入進行統(tǒng)計。
[選擇項]
-w ?對字數(shù)進行統(tǒng)計
-l ?對行數(shù)進行統(tǒng)計
-c ?對字符數(shù)進行統(tǒng)計
22. ?help ? ? ? ?提供幫助
[格式] ? ? ? ? ?$ ?help ? ?arguments
[描述] ? ? ? ? ?help解釋診斷信息的含義是什么,或講解命令如何使用。自變量可是命令 ?名,也可是信息。如果你用stuck做為自變量,那么LINUX將講解如何使用help。
[舉例] ? ? ? ? ?如果你輸入命令help ? ?man<CR>,LINUX將講解如何使用man命令。如果你輸入命令help ? ?stuck<CR>,LINUX將給出有關(guān)如何使用help命令的信息。
23. ?& ? ?在后臺運行一個進程
[描述] ? ? ? ? ?LINUX系統(tǒng)不但允許不同用戶同時執(zhí)行命令,?而且也允許一個單用戶一次完 ?成兩個以上的任務(wù).用戶可以在后臺運行一個長任務(wù),只要在你要在后臺執(zhí)行的命令行的結(jié)尾,簡單地鍵入表示and的字符(&),于是系統(tǒng)將在終端上打印出一個號碼,?立即出現(xiàn)提示符($)要求輸入下一個命令.
[舉例] ? ? ? ? ?$ ?sort ?-r/usr/dict/words ? ?-o ?word.sort ?&
? ? ? ? ? ? ? ? ? ? ?800
? ? ? ? ? ? ? ? ?$■
24. ?∧S ? ? ? ? ? ?終止命令輸出
[描述] ? ? ? ? ?要終止命令輸出,應(yīng)鍵入control-s。 ?
[舉例] ? ?如果LINUX用cal命令顯示輸出內(nèi)容并想查看2月份的日歷,則鍵入?control-s。
[注釋] ? ? ? ? ?如果你的屏幕不對你的命令作出回答,你也許不小心按了control-s。試按control-q解決這一問題。
25. ?∧Q ? ? ? ? ? ?恢復(fù)命令輸出
[描述] ? ? ? ? ?如果你已終止命令輸出,則鍵入control-q即恢復(fù)輸出。
26. ?DELETE ? ? ? ?刪除命令和命令行
[描述] ? ? ? ? ?DELETE刪除命令行,使新的shell提示符出現(xiàn),它還終止進程中的命令。
[注釋] ? ? ? ? ?DELETE是控制鍵。如果你不理解LINUX正在做什么,請按兩下DELETE鍵。這樣,你的shell提示符通常會重新出現(xiàn)。
27. ?su ? ? ? ? ?從普通用戶注冊到root帳戶
[描述] ? ? ? ? ?su命令可以從普通用戶注冊到root帳戶,而不用退出用戶帳戶重新登錄。在shell提示符$下鍵入su,回車,輸入root口令
2.3 ? ?用戶文件的安全性
1 ? ?文件權(quán)限
普通文件
目錄
讀
r
文件可讀,可拷貝
能顯示打印該目錄下的文件名稱,因此可以用ls指令
寫
w
文件內(nèi)容可修改
能在該目錄下刪除、改變文件名和建立文件
執(zhí)行
x
文件可執(zhí)行(shell腳本或程序)
能夠使用該目錄下的文件,即能cd到該目錄,或?qū)ξ募穆窂侥茏鱗描述]
沒有權(quán)限
-
2 ? ?對文件的權(quán)利分為三組:
⑴ ?文件主(owner):文件擁有者對文件的存取權(quán)利
⑵ ?文件用戶組(group):擁有文件的用戶組;同組用戶對象文件的存取權(quán)利
⑶ ?其它用戶(other):既非文件主又非文件用戶組的其他人對該文件的存取權(quán)利
注意:對于沒有讀或?qū)憴?quán)利的文件,只要對該文件的路徑具有寫入和執(zhí)行(搜索)的權(quán)利,就可以刪除或重新命名該文件!!!
3. ?chmod ?修改權(quán)限
[格式] ? ? ? ? ?$chmod ?[who] ?Op-code ?Permission ? ?文件名(or ?directory)
[描述] ? ? ? ? ?改變一個或多個文件或目錄的權(quán)限.
? ? ? ?參數(shù):
? ? ?who: ? ?u ? ? ?登錄的所有者
? ? ? ? ? ? ? ? ?g ? ? ?組
? ? ? ? ? ? ? ? ?o ? ? ?全部其它的用戶
? ? ? ? ? ? ? ? ?a ? ? ?全部(隱含):用戶、組、其它
? ? ?Op-code:
? ? ? ? ? ? ? ? ?+ ? ? ?增加文件的訪問權(quán)限
? ? ? ? ? ? ? ? ?- ? ? ?撤消文件的某權(quán)限
? ? ? ? ? ? ? ? ?= ? ? ?規(guī)定絕對權(quán)限
? ? ?Permission:
? ? ? ? ? ? ? ? ?r ? ? ?讀
? ? ? ? ? ? ? ? ?w ? ? ?寫
? ? ? ? ? ? ? ? ?x ? ? ?執(zhí)行
[舉例] ? ? ? ? ?$chmod ?g-w ?temp ? ?撤消temp文件組用戶的寫權(quán)限
欲使用文件,必須對該文件,即該文件的路徑具有合適的存取權(quán)利。
唯有文件的擁有者或superuser才可改變文件的擁有者和組別。改變了文件的擁有者,用戶將失去對該文件的某些存取權(quán)利,因為該用戶不再是擁有者了。
⑴改變文件的權(quán)限---chmod
⑵改變目錄的權(quán)限---chmod
⑶改變擁有者----chown&chgrp
$chown ? ?新?lián)碛姓哂脩魳?biāo)識符 ? ?文件名
⑷改變組別----chgrp
$chgrp ? ?文件的新組別 ? ?文件名
2.4 ? ?文本編輯器vim
2.4.1 ?VIM ?簡介
VIM ?是 ?Linux ?世界中極為普遍的全屏幕文本編輯器,幾乎可以說任何一臺 ?Linux ?機器都會提供這套軟體。
Linux ?提供一系列的 ?ex ?編輯器,包括 ?ex, ?edit ?和 ?VIM ?。相對於全屏幕編輯器,現(xiàn)在可能很難想像如何使用 ?ex, ?edit ?這種行列編輯器(有人用過 ?DOS ?3.3 ?版以前所附的 ?EDLIN ?嗎?)。 ?VIM ?的原意是 ?"Vi ?IMproved",它是一個所見所得的編輯程式,也就是說可以立刻看到操作結(jié)果。
只要簡單的執(zhí)行 ?VIM ?就可以進入 ?VIM ?的編輯環(huán)境。在實際操作之前先對它有個概略的了解會比較好。VIM ?有兩種模式,輸入模式以及指令模式。輸入模式即是用來輸入文字資料,而指令模式則是用來下達一些編排文件、存檔、以及離開 ?VIM ?等等的操作指令。當(dāng)執(zhí)行 ?VIM ?後,會先進入指令模式,此時輸入的任何字元都視為指令。
進入與離開
要進入 ?VIM ?可以直接在系統(tǒng)提示下鍵入 ?VIM ?<文件名稱>,VIM ?可以自動幫你載入所要編輯的文件或是開啟一個新文件。進入 ?VIM ?后屏幕左方會出現(xiàn)波浪符號,凡是行首有該符號就代表此列目前是空的。要離開 ?VIM ?可以在指令模式下鍵入 ?:q, ?:wq ?指令則是存檔後再離開(注意冒號)。要切換到指令模式下則是用 ?[ESC] ?鍵,如果不曉得現(xiàn)在是處於什麼模式, ?可以多按幾次 ?[ESC],系統(tǒng)會發(fā)出嗶嗶聲以確定進入指令模式。
2.4.2 ?VIM ?輸入模式
要如何輸入資料呢?下面的指令均可以進入輸入模式:
1.新增 ?(append)
a ?從光標(biāo)所在位置后面開始新增資料,光標(biāo)后的資料隨新增資料向后移動。
A ?從光標(biāo)所在列最后面的地方開始新增資料。
2.插入 ?(insert)
i ?從光標(biāo)所在位置前面開始插入資料,光標(biāo)后的資料隨新增資料向后移動。
I ?從光標(biāo)所在列的第一個非空白字元前面開始插入資料。
3.開始 ?(open)
o ?在光標(biāo)所在列下新增一列并進入輸入模式。
O ?在光標(biāo)所在列上方新增一列并進入輸入模式。
2.4.3 ?VIM ?基本編輯
配合一般鍵盤上的功能鍵,像是方向鍵、[Insert] ?、[Delete] ?等等,現(xiàn)在你應(yīng)該已經(jīng)可以利用 ?VIM ?來處理文字資料了。當(dāng)然 ?VIM ?還提供其他許許多多功能讓文字的處理更形方便。
刪除與修改
何謂編輯?在這里我們認為是文字的新增修改以及刪除,甚至包括文字區(qū)塊的搬移、復(fù)制等等。這里先介紹 ?VIM ?的如何做刪除與修改。(注意:在 ?VIM ?的原始觀念里,輸入跟編輯是兩碼子事。編輯是在指令模式下操作的,先利用指令移動光標(biāo)來定位要進行編輯的地方,然后才下指令做編輯。)
x ?刪除光標(biāo)所在字元。
dd ?刪除光標(biāo)所在的列。
r ?修改光標(biāo)所在字元,r ?后接著要修正的字元。
R ?進入取代狀態(tài),新增資料會覆蓋原先資料,直到按 ?[ESC] ?回到指令模式下為止。
s ?刪除光標(biāo)所在字元,并進入輸入模式。
S ?刪除光標(biāo)所在的列,并進入輸入模式。
2.4.4 ?VIM ?進階應(yīng)用
1.移動光標(biāo)
由于許多編輯工作是由光標(biāo)來定位,所以 ?VIM ?提供許多移動光標(biāo)的方式,這個我們列幾張簡表來說明(這些當(dāng)然是指令模式下的指令):
指令
說明
功能鍵
0
移動到光標(biāo)所在列的最前面
HOME
$
移動到光標(biāo)所在列的最后面
END
^d
向下半頁
^f
向下一頁
PageDown
^u
向上半頁
^b
向上一頁
PageUp
指令
說明
H
移動到視窗的第一列
M
移動到視窗的中間列
L
移動到視窗的最后列
b
移動到下個字的第一個字母
w
移動到上個字的第一個字母
e
移動到下個字的最后一個字母
^
移動到光標(biāo)所在列的第一個非空白字元
指令
說明
n-
減號移動到上一列的第一個非空白字元
n+
加號移動到下一列的第一個非空白字元
nG
直接用數(shù)字 ?n ?加上大寫 ?G ?移動到第 ?n ?列
指令
說明
fx
往右移動到 ?x ?字元上
Fx
往左移動到 ?x ?字元上
tx
往右移動到 ?x ?字元前
Tx
往左移動到 ?x ?字元前
;
配合 ?f&t ?使用,重復(fù)一次
,
配合 ?f&t ?使用,反方向重復(fù)一次
/string
往右移動到有 ?string ?的地方
?string
往左移動到有 ?string ?的地方
n
配合 ?/&? ?使用,重復(fù)一次
N
配合 ?/&? ?使用,反方向重復(fù)一次
指令
說明
備注
n(
左括號移動到句子的最前面,前面加上數(shù)字可以指定往前移動 ?n ?個句子
句子是以 ?! ?. ?? ?三種符號來界定
n)
右括號移動到下個句子的最前面,前面加上數(shù)字可以指定往后移動 ?n ?個句子
n{
左括弧移動到段落的最前面 ?,前面加上數(shù)字可以指定往前移動 ?n ?個段落
段落是以,段落間的空白列界定
n}
右括弧移動到下個段落的最前面,前面加上數(shù)字可以指定往后移動 ?n ?個段落
2.進階編輯指令
這些編輯指令非常有彈性,基本上可以說是由指令與范圍所構(gòu)成。例如 ?dw ?是由刪除指令 ?d ?與范圍 ?w ?所組成,代表刪除一個字 ?d(elete) ?w(ord) ?。
指令列表如下:
d ?刪除(delete)
y ?復(fù)制(yank)
p ?放置(put)
c ?修改(change)
范圍可以是下列幾個:
e ?光標(biāo)所在位置到該字的最后一個字母
w ?光標(biāo)所在位置到下個字的第一個字母
b ?光標(biāo)所在位置到上個字的第一個字母
$ ?光標(biāo)所在位置到該列的最后一個字母
0 ?光標(biāo)所在位置到該列的第一個字母
) ?光標(biāo)所在位置到下個句子的第一個字母
( ?光標(biāo)所在位置到該句子的第一個字母
} ?光標(biāo)所在位置到該段落的最后一個字母
{ ?光標(biāo)所在位置到該段落的第一個字母
對于整列操作,VIM ?另外提供了更方便的編輯指令。前面曾經(jīng)提到過刪除整列文字的指令 ?dd ?就是其中一個;cc ?可以修改整列文字;而 ?yy ?則是復(fù)制整列文字;指令D則可以刪除光標(biāo)到該列結(jié)束為止所有的文字。
? ? ? ?3.文件指令
? ? ? ?文件指令多以 ?: ?開頭,跟編輯指令有點區(qū)別。例如前面提到結(jié)束編輯的指令就是 ?:q。現(xiàn)在就簡單說明一下作為本篇故事的結(jié)尾:
:q ?結(jié)束編輯(quit)
如果不想存檔而要放棄編輯過的文件則用 ?:q! ?強制離開。
:w ?存檔(write)
其后可加所要存檔的檔名。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?