Linux循序漸進(jìn)(6)
第十課(一) 文件和目錄操作相關(guān)命令
顯示文件內(nèi)容命令
用戶需要查看一個(gè)文件的內(nèi)容時(shí),可以根據(jù)顯示要求的不同選用以下的命令。
cat命令
功能1:在標(biāo)準(zhǔn)輸出上顯示文件。
語法:cat [ - 選項(xiàng) ] 文件
說明:該命令功能之一是用來顯示文件。它依次讀取其后所指文件的內(nèi)容并將其輸出到標(biāo)準(zhǔn)輸出。
cat命令中各個(gè)選項(xiàng)的含義為:
- v 用一種特殊形式顯示控制字符,LFD與TAB除外。
加了- v選項(xiàng)后,- T和- E選項(xiàng)將起作用。其中:
- T 將TAB顯示為“Ù I”。該選項(xiàng)需要與- v選項(xiàng)一起使用。即如果沒有使用- v選項(xiàng),則這個(gè)選項(xiàng)將被忽略。
- E 在每行的末尾顯示一個(gè)$符。該選項(xiàng)需要與- v選項(xiàng)一起使用。
- u 輸出不經(jīng)過緩沖區(qū)。
- A 等于- vET。
- t 等于- vT。
- e 等于- vE。
例1:$ cat example.txt
則在屏幕上顯示出example.txt 文件的內(nèi)容。
本想今天去香山看紅葉,無奈天公不作美沒去成,真遺憾,但愿明天艷陽高照,使我們夢(mèng)想成真。
例2:$ cat - A exam2.txt
則在屏幕上顯示出exam2.txt 文件的內(nèi)容,而且如果文件中含有特殊字符的話,一并顯示。
I am a boy ! ùI You are a cute boy$
功能2:連接兩個(gè)或多個(gè)文件
說明:該命令功能之二是用來將兩個(gè)或多個(gè)文件連接起來。
例3:$ cat file1 file2 > file3
這樣就把文件filel和文件file2的內(nèi)容合并起來,放入文件file3中。(此時(shí)在屏幕上并不能直接看到該命令執(zhí)行后的結(jié)果。若想看到連接后的文件內(nèi)容,可以再使用“cat file3”。)
需要說明的是,當(dāng)文件內(nèi)容過多時(shí),就帶來一個(gè)問題,因?yàn)槲谋驹谄聊簧涎杆俚亻W過,用戶來不及看清其內(nèi)容。因此,當(dāng)文件內(nèi)容較大時(shí),一般可用more等命令分屏顯示,以免因屏幕滾動(dòng)太快而無法看清。
more命令
功能:在終端屏幕按屏顯示文本文件。
語法: more [ - 選項(xiàng) ] 文件
說明: 該命令一次顯示一屏文本,顯示滿之后,停下來,并在終端底部打印出- - More- - ,系統(tǒng)還將同時(shí)顯示出已顯示文本占全部文本的百分比,若要繼續(xù)顯示,按回車或空格鍵即可。
more命令中各個(gè)選項(xiàng)的含義為:
- p 顯示下一屏之前先清屏。
- c 作用同- p基本一樣。
- d 在每屏的底部顯示更友好的提示信息:
- - More- - (XX%)[Press space to contiune , ‘q' to quit . ]
而且若用戶輸入了-個(gè)錯(cuò)誤命令則顯示出錯(cuò)信息,而不是簡(jiǎn)單地鳴響終端。
- l 不處理< Ctrl+l >(換頁符)。如果沒有給出這個(gè)選項(xiàng),則more命令在顯示了一個(gè)包含有< Ctrl+l >字符的行后將暫停顯示,并等待接收命令。
- s 文件中連續(xù)的空白行壓縮成一個(gè)空白行顯示。
執(zhí)行中的命令
在more命令的執(zhí)行過程中,用戶可以使用more自己的一系列命令動(dòng)態(tài)地根據(jù)需要來選擇顯示的部分。more在顯示完一屏內(nèi)容之后,將停下來等待用戶輸入某個(gè)命令。下表列出了more指令在執(zhí)行中用到的一些常用命令,而有關(guān)這些命令的完整內(nèi)容,可以在more執(zhí)行時(shí)按h查看。這些命令的執(zhí)行方法是先輸入i(行數(shù))的值,再打所要的命令,不然它會(huì)以預(yù)設(shè)值來執(zhí)行命令。
i空格 若指定i,顯示下面的i行;否則,顯示下一整屏。
i回車 若指定i,顯示下面的i行;否則,顯示下一行。
iÙ D 按,若指定i,顯示下面的i行;否則,往下顯示半屏(一般為11行)。
id 同iÙ D 。
iz 同“i空格”類似,只是i將成為以下每個(gè)滿屏的缺省行數(shù)。
is 跳過下面的i行再顯示一個(gè)整屏。預(yù)設(shè)值為1。
if 跳過下面的i屏再顯示一個(gè)整屏。預(yù)設(shè)值為1。
iÙ B 按,往回跳過(即向文件首回跳)i屏,再顯示一個(gè)滿屏。預(yù)設(shè)值為1。
b 與iÙ B相同。
' 回到上次搜索的地方
q或Q 退出more。
= 顯示當(dāng)前行號(hào)。
v 在當(dāng)前行啟動(dòng)/usr/bin/vi對(duì)之進(jìn)行編輯修改。
h 顯示各命令的幫助信息。
i/pattern 查找匹配該模式的第i行。預(yù)設(shè)值為1。
in 查找符合表達(dá)式的倒數(shù)i行。預(yù)設(shè)值為1。
! 或 :! 在子shell中執(zhí)行命令。
i:n 在命令行中指定了多個(gè)文件名的情況下,可用此命令使之顯示第i個(gè)文件,若i過大(出界),則顯示文件名列表中的最后一個(gè)文件。
i:p 在命令行中指定了多個(gè)文件名的情況下,可用此命令使之顯示倒數(shù)第i個(gè)文件。若i過大(出界),則顯示第一個(gè)文件。
i:f 顯示當(dāng)前文件的文件名和行數(shù)。
· 重復(fù)上次鍵人的命令。
例1:用分頁的方式顯示一個(gè)文件的內(nèi)容。
$ more example1.c
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
/* author f opus.BBS@BBS.cs.nthu.edu.tw */
/* target f BBS main/login/top-menu routines */
/* create f 99/10/23 */
/* update f 99/12/15 */
/*-------------------------------------------*/
#define _MAIN_C_
#inc1ude < BBS. h >
jmp_buf byebye;
int talkrequest=NA;
static uschar Enter_uflag i
#ifdef SHOW_IDLE_TIME
--More- (3%)
例2:顯示一個(gè)文件的內(nèi)容,但顯示之前先清屏,并且在顯示器的最下方顯示完整的百分比。
$ more - dc example1.c
執(zhí)行該命令后,先清屏,然后顯示文件example.c的內(nèi)容。
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
/* author f opus.BBS@BBS.cs.nthu.edu.tw */
/* target f BBS main/login/top-menu routines */
/* create f 99/10/23 */
/* update f 99/12/15 */
[!--empirenews.page--]/*-------------------------------------------*/
#define _MAIN_C_
#inc1ude < BBS. h >
jmp_buf byebye;
int talkrequest=NA;
static uschar Enter_uflag i
#ifdef SHOW_IDLE_TIME
char fromhost( );
--More- (3%)[Press space to continue , ‘q' to quit .]
例3:顯示一個(gè)文件的內(nèi)容,要求每十行顯示一次,且顯示之前先清屏。
$ more - c - 10 example1.c
執(zhí)行該命令后,先清屏,然后將以每十行每十行的方式顯示文件example.c的內(nèi)容。
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
/* author f opus.BBS@BBS.cs.nthu.edu.tw */
/* target f BBS main/login/top-menu routines */
/* create f 99/10/23 */
/* update f 99/12/15 */
/*-------------------------------------------*/
#define _MAIN_C_
inc1ude < BBS. h >
--More- (3%)
less命令
less命令的功能幾乎和more命令一樣,也是用來按頁顯示文件,不同之處在于less命令在顯示文件時(shí)允許用戶既可以向前又可以向后翻閱文件。
less命令的使用與more命令類似,在此就不贅述了,用戶如有不清楚的地方可直接查看聯(lián)機(jī)幫助。
用less命令顯示文件時(shí),若需要在文件中往前移動(dòng),按< b >鍵;要移動(dòng)到用文件的百分比表示的某位置,則指定一個(gè)0到100之間的數(shù),并按< p >即可。
例如,需要按頁顯示test文件
$ less test
head命令
如果用戶希望查看一個(gè)文件究竟保存的是什么內(nèi)容,可以只查看文件的頭幾行,而不必瀏覽整個(gè)文件。用head命令只顯示文件或標(biāo)準(zhǔn)輸入的頭幾行。
語法:head [- n ] 文件
功能:顯示指定文件的前若干行。
說明:該命令顯示每個(gè)指定文件的前面n行。如果沒有給出n值,缺省設(shè)置為10。如果沒有指定文件,head就從標(biāo)準(zhǔn)輸入讀取。例如顯示文件example.c的前3行。
$ head - 3 example.c
/*-------------------------------------------*/
/* example1.c */
/*-------------------------------------------*/
tail命令
同樣,如果用戶想查看文件的尾部,可以使用tail命令。
語法:tail [+ / - num ] [參數(shù)] 文件
說明:該命令顯示一個(gè)文件的指定內(nèi)容。它把指定文件的指定顯示范圍內(nèi)的內(nèi)容顯示在標(biāo)準(zhǔn)輸出上。如果沒有給定文件名,則使用標(biāo)準(zhǔn)輸入文件。
tail命令中各個(gè)選項(xiàng)的含義為:
+num 從第num行以后開始顯示。
- num 從距文件尾num行處開始<