Linux 入門時(shí)必學(xué)60文件處理個(gè)命令_第1頁(yè)
Linux 入門時(shí)必學(xué)60文件處理個(gè)命令_第2頁(yè)
Linux 入門時(shí)必學(xué)60文件處理個(gè)命令_第3頁(yè)
Linux 入門時(shí)必學(xué)60文件處理個(gè)命令_第4頁(yè)
Linux 入門時(shí)必學(xué)60文件處理個(gè)命令_第5頁(yè)
已閱讀5頁(yè),還剩126頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Linux入門時(shí)必學(xué)60文件處理個(gè)命令

Linux系統(tǒng)信息存放在文件里,文件與普通的公務(wù)文件類似。每個(gè)文件都有自己的名字、

內(nèi)容、存放地址及其它一些管理信息,如文件的用戶、文件的大小等。文件可以是一封信、

一個(gè)通訊錄,或者是程序的源語(yǔ)句、程序的數(shù)據(jù),甚至可以包括可執(zhí)行的程序和其它非正文

內(nèi)容。Linux文件系統(tǒng)具有良好的結(jié)構(gòu),系統(tǒng)提供了很多文件處理程序。這里主要介紹常

用的文件處理命令。

file

1.作用

file通過(guò)探測(cè)文件內(nèi)容判斷文件類型,使用權(quán)限是所有用戶。

2.格式

file[options]文件名

3.[options]主要參數(shù)

-v:在標(biāo)準(zhǔn)輸出后顯示版本信息,并且退出。

-z:探測(cè)壓縮過(guò)的文件類型,

-L:允許符合連接。

-fname:從文件namefile中讀取要分析的文件名列表。

4.簡(jiǎn)單說(shuō)明

使用file命令可以知道某個(gè)文件究竟是二進(jìn)制(ELF格式)的可執(zhí)行文件,還是Shell

Script文件,或者是其它的什么格式。file能識(shí)別的文件類型有目錄、Shell腳本、英文

文本、二進(jìn)制可執(zhí)行文件、C語(yǔ)言源文件、文本文件、DOS的可執(zhí)行文件。

5.應(yīng)用實(shí)例

如果我們看到一個(gè)沒(méi)有后綴的文件grap,可以使用下面命令:

$filegrap

grap:Englishtext

此時(shí)系統(tǒng)顯示這是一個(gè)英文文本文件。需要說(shuō)明的是,file命令不能探測(cè)包括圖形、

音頻、視頻等多媒體文件類型。

mkdir

1.作用

mkdir?命令的作用是建立名稱為dirname的子目錄,與MSDOS下的md命令類似,它的

使用權(quán)限是所有用戶。

2.格式

mkdir[options]目錄名

3.[options]主要參數(shù)

一m,---mode:模式:設(shè)定權(quán)限〈模式與chmod類似。

—P,---parents:需要時(shí)創(chuàng)建上層目錄;如果目錄早已存在,則不當(dāng)作錯(cuò)誤。

—v,---verbose:每次創(chuàng)建新目錄都顯示信息。

---version:顯示版本信息后離開(kāi)。

4.應(yīng)用實(shí)例

在進(jìn)行目錄創(chuàng)建時(shí)可以設(shè)置目錄的權(quán)限,此時(shí)使用的參數(shù)是“一ni”。假設(shè)要?jiǎng)?chuàng)建的目

錄名是“tsk”,讓所有用戶都有rwx(即讀、寫(xiě)、執(zhí)行的權(quán)限),那么可以使用以下命令:

$mkdir-m777tsk

grep

1.作用

grep命令可以指定文件中搜索特定的內(nèi)容,并將含有這些內(nèi)容的行標(biāo)準(zhǔn)輸出。grep全

稱是GlobalRegularExpressionPrint,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有

用戶。

2.格式

grep[options]

3.主要參數(shù)

[oplions]主要參數(shù):

-c:只輸出匹配行的計(jì)數(shù)。

-I:不區(qū)分大小寫(xiě)(只適用于單字符)。

-h:查詢多義件時(shí)不顯示文件名。

-1:查詢多文件時(shí)只輸出包含匹配字符的文件名。

-n:顯示匹配行及行號(hào)。

-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息。

-V:顯示不包含匹配文本的所有行。

pattern正則表達(dá)式主要參數(shù):

\:忽略正則表達(dá)式中特殊字符的原有含義。

\匹配正則表達(dá)式的開(kāi)始行C

$:匹配正則表達(dá)式的結(jié)束行。

\<:從匹配正則表達(dá)式的行開(kāi)始。

\>;:到匹配正則表達(dá)式的行結(jié)束。

[]:?jiǎn)蝹€(gè)字符,如[A]即A符合要求。

[-]:范圍,如[A-Z],即A、B、C一直到Z都符合要求。

。:所有的單個(gè)字符。

*:有字符,長(zhǎng)度可以為0。

正則表達(dá)式是Linux/Unix系統(tǒng)中非常重要的概念。正則表達(dá)式(也稱為“regex”或

“regexp")是一個(gè)可以描述一類字符串的模式(Pattern)。如果一個(gè)字符串可以用某個(gè)

正則表達(dá)式來(lái)描述,我們就說(shuō)這個(gè)字符和該正則表達(dá)式匹配(Match)。這和DOS中用戶可

以使用通配符“*”代表任意字符類似。在Linux系統(tǒng)上,正則表達(dá)式通常被用來(lái)查找文本

的模式,以及對(duì)文本執(zhí)行“搜索一替換”操作和其它功能。

4.應(yīng)用實(shí)例

查詢DNS服務(wù)是日常工作之一,這意味著要維護(hù)覆蓋不同網(wǎng)絡(luò)的大量IP地址。有時(shí)IP

地址會(huì)超過(guò)2000個(gè)。如果要查看nnn.nnn網(wǎng)絡(luò)地址,但是卻忘了第二部分中的其余部分,

只知到有兩個(gè)句點(diǎn),例如nnnrm.要抽取其中所有nnn.nnnIP地址,使用[0-9]\{3\}\.[0

-0\{3\}\o含義是任意數(shù)字出現(xiàn)3次,后跟句點(diǎn),接著是任意數(shù)字出現(xiàn)3次,后跟句點(diǎn)。

$grep>[0-9]\{3\}\.[0-0\{3\}Vipfile

補(bǔ)充說(shuō)明,grep家族還包括fgrep和egrep。fgrep是fixgrep,允許查找字符串而

不是一個(gè)模式;egrep是擴(kuò)展grep,支持基本及擴(kuò)展的正則表達(dá)式,但不支持\q模式范圍

的應(yīng)用及與之相對(duì)應(yīng)的一些更加規(guī)范的模式。

dd

1.作用

dd命令用來(lái)復(fù)制文件,并根據(jù)參數(shù)將數(shù)據(jù)轉(zhuǎn)換和格式化。

2.格式

dd[options]

3.[opitions]上要參數(shù)

bs二字節(jié):強(qiáng)迫ibs=<字節(jié));及obs=<字節(jié)>;。

cbs二字節(jié):每次轉(zhuǎn)換指定的〈字節(jié)

*■=關(guān)鍵字:根據(jù)以逗號(hào)分隔的關(guān)鍵字表示的方式來(lái)轉(zhuǎn)換文件,

客口山二塊數(shù)目:只復(fù)制指定〈塊數(shù)目〉;的輸入數(shù)據(jù)。

ibs二字節(jié):每次讀取指定的<字節(jié)>;。

if二文件:讀取〈文件〉;內(nèi)容,而非標(biāo)準(zhǔn)輸入的數(shù)據(jù)。

obs=字節(jié):每次寫(xiě)入指定的〈字節(jié)》;。

of二文件:將數(shù)據(jù)寫(xiě)入〈文件工,而不在標(biāo)準(zhǔn)輸出顯示。

seek二塊數(shù)目:先略過(guò)以obs為單位的指定〈塊數(shù)目);的輸出數(shù)據(jù)。

skip二塊數(shù)目:先略過(guò)以ibs為單位的指定<?jí)K數(shù)目》;的輸入數(shù)據(jù)。

4.應(yīng)用實(shí)例

dd命令常常用來(lái)制作Linux啟動(dòng)盤(pán)。先找一個(gè)可引導(dǎo)內(nèi)核,令它的根設(shè)備指向正確的

根分區(qū),然后使用dd命令將其寫(xiě)入軟盤(pán):

$rdevvmlinuz/dev/hda

$ddif=vmlinuzof=/dev/f(10

上面代碼說(shuō)明,使用rdev命令將可引導(dǎo)內(nèi)核vmlinuz中的根設(shè)備指向/dev/hda,請(qǐng)把

“hda”換成自己的根分區(qū),接下來(lái)用dd命令將該內(nèi)核寫(xiě)入軟盤(pán)。

find

1.作用

find命令的作用是在目錄中搜索文件,它的使用權(quán)限是所有用戶。

2.格式

find[path][options][expression]

path指定目錄路徑,系統(tǒng)從這里開(kāi)始沿著目錄樹(shù)向下查找文件。它是一個(gè)路徑列表,

相互用空格分離,如果不寫(xiě)path,那么默認(rèn)為當(dāng)前目錄。

3.主要參數(shù)

[options]參數(shù):

-depth:使用深度級(jí)別的查找過(guò)程方式,在某層指定目錄中優(yōu)先查找文件內(nèi)容。

—maxdepthlevels:表示至多查找到開(kāi)始目錄的第level層子目錄。level是一個(gè)非

負(fù)數(shù),如果level是。的話表示僅在當(dāng)前目錄中查找。

—mindepthlevels:表示至少查找到開(kāi)始目錄的第level層子目錄。

—mount:不在其它文件系統(tǒng)(如Msdos、Vfat等)的目錄和文件中查找。

—version:打印版本。

[expression]是匹配表達(dá)式,是find命令接受的表達(dá)式,find命令的所有操作都是針

對(duì)表達(dá)式的。它的參數(shù)非常多,這里只介紹一些常用的參數(shù)。

—name:支持統(tǒng)配符*和?。

-atimen:搜索在過(guò)去n天讀取過(guò)的文件。

—ctimen:搜索在過(guò)去n天修改過(guò)的文件。

—groupgrpoupname:搜索所有組為grpoupname的文件。

-user用戶名:搜索所有文件屬主為用戶名(ID或名稱)的文件。

—sizen:搜索文件大小是n個(gè)block的文件。

-print:輸出搜索結(jié)果,并且打印。

4.應(yīng)用技巧

find命令查找文件的幾種方法:

(1)根據(jù)文件名查找

例如,我們想要查找一個(gè)文件名是lilo.conf的文件,可以使用如下命令:

find/—namelilo.conf

find命令后的“/”表示搜索整個(gè)硬盤(pán)。

(2)快速查找文件

根據(jù)文件名查找文件會(huì)遇到一個(gè)實(shí)際問(wèn)題,就是要花費(fèi)相當(dāng)長(zhǎng)的一段時(shí)間,特別是大

型Linux文件系統(tǒng)和大容量硬盤(pán)文件放在很深的子目錄中時(shí)。如果我們知道了這個(gè)文件存放

在某個(gè)目錄中,那么只要在這個(gè)目錄中往下尋找就能節(jié)省很多時(shí)間。比如smb.conf文件,

從它的文件后綴”.conf”可以判斷這是一個(gè)配置文件,那么它應(yīng)該在/etc目錄內(nèi),此時(shí)可

以使用下面命令:

find/etc—namesmb.conf

這樣,使用“快速查找文件”方式可以縮短時(shí)間。

(3)根據(jù)部分文件名查找方法

有時(shí)我們知道只某個(gè)文件包含有abvd這4個(gè)字,那么要查找系統(tǒng)中所有包含有這4個(gè)

字符的文件可以輸入下面命令:

find/—name**abvd*,

輸入這個(gè)命令以后,Linux系統(tǒng)會(huì)將在/目錄中查找所有的包含有abvd這4個(gè)字符的文

件(其中*是通配符),比如abvdrmyz等符合條件的文件都能顯示出來(lái)。

(4)使用混合查找方式查找文件

find命令可以使用混合查找的方法,例如,我們想在/etc目錄中查找大于500000字

節(jié),并且在24小時(shí)內(nèi)修改的某個(gè)文件,則可以使用-and(與)把兩個(gè)查找參數(shù)鏈接起來(lái)組合

成一個(gè)混合的查找方式。

find/etc-size+500000c-and-mtime+1

mv

1.作用

mv命令用來(lái)為文件或目錄改名,或者將文件由一個(gè)目錄移入另一個(gè)目錄中,它的使用

權(quán)限是所有用戶。該命令如同DOS命令中的ren和move的組合。

2.格式

mv[options]源文件或目錄目標(biāo)文件或目錄

3.[options]主要參數(shù)

-i:交互方式操作。如果mv操作將導(dǎo)致對(duì)已存在的目標(biāo)文件的覆蓋,此時(shí)系統(tǒng)詢問(wèn)

是否重寫(xiě),要求用戶回答“y”或"n",這樣可以避免誤覆蓋文件。

-f;禁止交互操作。mv操作要覆蓋某個(gè)己有的目標(biāo)文件時(shí)不給任何指示,指定此參數(shù)

后i參數(shù)將不再起作用。

4.應(yīng)用實(shí)例

(1)將/usr/cbu中的所有文件移到當(dāng)前目錄(用”表示)中:

$mv/usr/cbu/*.

(2)將文件cjh.txt重命名為wjz.txt:

$mvcjh.txtwjz.txt

Is

1.作用

Is命令用于顯示目錄內(nèi)容,類似DOS下的dir命令,它的使用權(quán)限是所有用戶。

2.格式

Is[options][filename]

3.options主要參數(shù)

一a,一—all:不隱藏任何以字符開(kāi)始的項(xiàng)目。

-A,一一almost-all:列出除了“.”及”以外的任何項(xiàng)目。

一一author:印出每個(gè)文件著作者。

—b,-escape:以八進(jìn)制溢出序列表示不可打印的字符。

一一block-size;大小:塊以指定<大?。?的字節(jié)為單位。

—B,-ignore-backups:不列出任何以~字符結(jié)束的項(xiàng)目。

-f:不進(jìn)行排序,一all參數(shù)生效,-1st參數(shù)失效。

—F,——classify:加上文件類型的指示符號(hào)(*/=@|其中一個(gè))。

—g:like_1,butdonotlistowner0

-G,--no-group:inhibitdisplayofgroupinformation,

一i,---innde:列出每個(gè)文件的incda號(hào)八

—I,--ignore二樣式:不印出任何符合Shell萬(wàn)用字符<樣式);的項(xiàng)目。

-k:即---block-size=lK0

一1:使用較長(zhǎng)格式列出信息。

—L,-dereference:當(dāng)顯示符號(hào)鏈接的文件信息時(shí),顯示符號(hào)鏈接所指示的對(duì)象,

而并非符號(hào)鏈接本身的信息。

一01:所有項(xiàng)目以逗號(hào)分隔,并填滿整行行寬。

—n,-numeric—uid—gid:類似一1,但列出UID及GID號(hào)。

-N,一—literal:列出未經(jīng)處理的項(xiàng)目名稱,例如不特別處理控制字符。

-P,一一file-type:加上文件類型的指示符號(hào)(/二@|其中一個(gè))。

一Q,---quote-name:將項(xiàng)目名稱括上雙引號(hào)。

—r,--reverse:依相反次序排列。

一R,---recursive:同時(shí)列出所有子目錄層。

-s,一一size:以塊大小為序。

4.應(yīng)用舉例

Is命令是Linux系統(tǒng)使用頻率最多的命令,它的參數(shù)也是Linux命令中最多的。使用

1s命令時(shí)會(huì)有幾種不同的顏色,其中藍(lán)色表示是目錄,綠色表示是可執(zhí)行文件,紅色表示

是壓縮文件,淺藍(lán)色表示是鏈接文件,加粗的黑色表示符號(hào)鏈接,灰色表示是其它格式文件。

1s最常使用的是1s-1,見(jiàn)圖1所示。

圖1使用ls-1命令

文件類型開(kāi)頭是由10個(gè)字符構(gòu)成的字符串。其中第一個(gè)字符表示文件類型,它可以是

下述類型之一:一(普通文件)、d(目錄)、1(符號(hào)鏈接)、b(塊設(shè)備文件)、c(字符

設(shè)備文件)。后面的9個(gè)字符表示文件的訪問(wèn)權(quán)限,分為3組,每組3位。第一組表示文件

屬主的權(quán)限,第二組表示同組用戶的權(quán)限,第三組表示其他用戶的權(quán)限。每一組的三個(gè)字符

分別表示對(duì)文件的讀(r)、寫(xiě)(>)和執(zhí)行權(quán)限(x)。對(duì)于目錄,表示進(jìn)入權(quán)限。s表示

當(dāng)文件被執(zhí)行時(shí),把該文件的IHD或GID賦予執(zhí)行進(jìn)程的UID(用戶ID)或GID(組ID)。

t表示設(shè)置標(biāo)志位(留在內(nèi)存,不被換出)。如果該文件是目錄,那么在該目錄中的文件只

能被超級(jí)用戶、目錄擁有者或文件屬主刪除。如果它是可執(zhí)行文件,那么在該文件執(zhí)行后,

指向其正文段的指針仍留在內(nèi)存。這樣再次執(zhí)行它時(shí),系統(tǒng)就能更快地裝入該文件。接著顯

示的是文件大小、生成時(shí)間、文件或命令名稱。

diff

1.作用

diff命令用于兩個(gè)文件之間的比較,并指出兩者的不同,它的使用權(quán)限是所有用戶。

2.格式

diff[options]源文件目標(biāo)文件

3.[options]主要參數(shù)

-a:將所有文件當(dāng)作文本文件來(lái)處理。

-b:忽略空格造成的不同。

-B:忽略空行造成的不同。

-c:使用綱要輸出格式。

-H:利用試探法加速對(duì)大文件的搜索。

-I:忽略大小寫(xiě)的變化。

~n-res:輸出RCS格式。

cmp

1.作用

cmp("compare”的縮寫(xiě))命令用來(lái)簡(jiǎn)要指出兩個(gè)文件是否存在差異,它的使用權(quán)限

是所有用戶。

2.格式

cmp[options]文件名

3.[options]主要參數(shù)

-1:將字節(jié)以十進(jìn)制的方式輸出,并方便將兩個(gè)文件中不同的以八進(jìn)制的方式輸出。

cat

1.作用

cat("concatenate"的縮寫(xiě))命令用于連接并顯示指定的一個(gè)和多個(gè)文件的有關(guān)信

息,它的使用權(quán)限是所有用戶。

2.格式

cat[options]文件1文件2...

3.[options]主要參數(shù)

-n:由第一行開(kāi)始對(duì)所有輸出的行數(shù)編號(hào)。

一b:和一n相似,只不過(guò)對(duì)于空白行不編號(hào)。

-s:當(dāng)遇到有連續(xù)兩行以上的空白行時(shí),就代換為一行的空白行。

4.應(yīng)用舉例

(1)cat命令一個(gè)最簡(jiǎn)單的用處是顯示文本文件的內(nèi)容。例如,我們想在命令行看一

下README文件的內(nèi)容,可以使用命令:

$catREADME

(2)有時(shí)需要將幾個(gè)文件處理成一個(gè)文件,并將這種處理的結(jié)果保存到一個(gè)單獨(dú)的輸

出文件。cat命令在其輸入上接受一個(gè)或多個(gè)文件,并將它們作為一個(gè)單獨(dú)的文件打印到它

的輸出。例如,把README和INSTALL的文件內(nèi)容加上行號(hào)(空白行不加)之后,將內(nèi)容附

加到一個(gè)新文本文件Filei中:

$catREADMEINSTALLFilel

(3)cat還有一個(gè)重要的功能就是可以對(duì)行進(jìn)行編號(hào),見(jiàn)圖2所示。這種功能對(duì)于程

序文檔的編制,以及法律和科學(xué)文檔的編制很方便,打印在左邊的行號(hào)使得參考文檔的某一

部分變得容易,這些在編程、科學(xué)研究、業(yè)務(wù)報(bào)告甚至是立法工作中都是非常重要的。

圖2使用cat命令/etc/named,conf文件進(jìn)行編號(hào)

對(duì)行進(jìn)行編號(hào)功能有-b(只能對(duì)非空白行進(jìn)行編號(hào))和-n(可以對(duì)所有行進(jìn)行編號(hào))

兩個(gè)參數(shù):

$cat-b/etc/named.conf

In

1.作用

In命令用來(lái)在文件之間創(chuàng)建鏈接,它的使用權(quán)限是所有用戶。

2.格式

In[options]源文件[鏈接名]

3.參數(shù)

-f:鏈結(jié)時(shí)先將源文件刪除。

-d:允許系統(tǒng)管理者硬鏈結(jié)自己的目錄。

—s:進(jìn)行軟鏈結(jié)(SymbolicLink)。

-b:將在鏈結(jié)時(shí)會(huì)被覆蓋或刪除的文件進(jìn)行備份。

鏈接有兩種,一種被稱為硬鏈接(HardLink),另一種被稱為符號(hào)鏈接(SymbolicLink)。

默認(rèn)情況下,In命令產(chǎn)生硬鏈接c

硬連接指通過(guò)索引節(jié)點(diǎn)來(lái)進(jìn)行的連接。在Linux的文件系統(tǒng)中,保存在磁盤(pán)分區(qū)中的

文件不管是什么類型都給它分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)(InodeIndex).在Linux中,

多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。一般這種連接就是硬連接。硬連接的作用是允許一

個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功

能。其原因如上所述,因?yàn)閷?duì)應(yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不

影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連

接才會(huì)被釋放。也就是說(shuō),文件才會(huì)被真正刪除。

與硬連接相對(duì)應(yīng),Lnux系統(tǒng)中還存在另一種連接,稱為符號(hào)連接(SymbilcLink),

也叫軟連接。軟鏈接文件有點(diǎn)類似于Windows的快捷方式。它實(shí)際上是特殊文件的一種.在

符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。

動(dòng)手聯(lián)系

上面我們介紹了Linux文件處理命令,下面介紹幾個(gè)實(shí)例,大家可以動(dòng)手練習(xí)一下剛

才講過(guò)的命令。

1.利用符號(hào)鏈接快速訪問(wèn)關(guān)健目錄

符號(hào)鏈接是一個(gè)非常實(shí)用的功能。假設(shè)有一些目錄或文件需要頻繁使用,但由于Linux

的文件和目錄結(jié)構(gòu)等原因,這個(gè)文件或目錄在很深的子目錄中。比如,ApacheWeb服務(wù)器

文檔位于系統(tǒng)的/usr/local/httpd/htdocs中,并且不想每次都要從主目錄進(jìn)入這樣一個(gè)長(zhǎng)

的路徑之中(實(shí)際上,這個(gè)路徑也非常不容易記憶)。

為了解決這個(gè)問(wèn)題,可以在主目錄中創(chuàng)建一個(gè)符號(hào)鏈接,這樣在需要進(jìn)入該目錄時(shí),

只需進(jìn)入這個(gè)鏈接即可。

為了能方便地進(jìn)入Web服務(wù)器(/usr/local/httpd/htdocs)文檔所在的目錄,在主目錄

下可以使用以下命令:

$In-s/usr/local/httpd/htdocsgg

這樣每次進(jìn)入gg目錄就可訪問(wèn)Web服務(wù)器的文檔,以后如果不再訪問(wèn)Web服務(wù)器的文

檔時(shí),刪除gg即可,而真正的Web服務(wù)器的文檔并沒(méi)有刪除。

2.使用dd命令將init.rd格式的root,ram內(nèi)容導(dǎo)入內(nèi)存

ddif=/dev/fdOof二floppy.fd

ddif=root.ramof=/dev/ramO#

3.grep命令系統(tǒng)調(diào)用

grep是Linux/Unix中使用最廣泛的命令之一,許多Linux系統(tǒng)內(nèi)部都可以調(diào)用它。

(D如果要查詢目錄列表中的目錄,方法如下:

$Is-1|grep'Ad,

(2)如果在一個(gè)目錄中查詢不包含目錄的所有文件,方法如下:

$Is-1|grep'A[Ad]

(3)用find命令調(diào)用grep,如所有C源代碼中的“Chinput”,方法如下:

$find/ZhXwin-name*.c-execgrep-q-sChinput{}\;-print

Linux基礎(chǔ)之一實(shí)例解說(shuō)目錄/文件命令

一、列出文件列表的1s命令

Is命令(list)是很常用的命令,可以讓用戶顯示目前目錄中有哪些文件和子目錄。因

為Is的參數(shù)相當(dāng)多,但是有些極少在使用,所以這里僅介紹常用的部分:

1、不加任何參數(shù)時(shí),顯示當(dāng)前目錄的內(nèi)容。

[root@localhost/root]#Is

Desktop

2、-a顯示所有文件和目錄1若無(wú)此參數(shù),句點(diǎn)開(kāi)始的文件和目錄不會(huì)顯示出來(lái))。

[root@localhost/root]#Is-a

..bash_logout.Desktop_big5.gv.tcshrc

...bash_profile.Desktop_en.kde.Xauthority

.abcuser.diet.bashre.Desktop_gb.kderc.Xdefaults

.abcuser.rem.eshre.gnome.lynx_cookies

.bash_historyDesktop.gnome-desktop.sawfish

3、-A顯示所有文件和目錄[它比-a少顯示.和..兩項(xiàng))。

4、-1以長(zhǎng)格式顯示

[root@localhost/root]#Is-1

total0

Irwxrwxrwx1rootroot126月1911:20Desktop->;.Desktopgb/

5、混合使用參數(shù):命令的大部分參數(shù)可以合并使用。

讀者可能己經(jīng)注意到,藏格式顯示提供了許多信息,其中各個(gè)字段的意義將在以后的

系列中介紹。

二、切換目錄的cd命令

cd(changedirectory)可以讓用戶切換目前的目錄,下面來(lái)看幾個(gè)cd命令的常見(jiàn)用法:

[root@localhost/root]#cddata<==切換到data子目錄

[root@localhost/root]#cd..<==切換到上一級(jí)目錄

[root@localhost/root]#cd/<=切換到根目錄

[root@localhost/root]#cd~<==切換到用戶根目錄

[root@localhost/root]#cd/usr/bin<==切換到/usr/bin目錄

在Linux的目錄中,有幾個(gè)特別的目錄:表示當(dāng)前目錄,表示上一層目錄,

表示根目錄,八”表示用戶根目錄(用戶登錄時(shí)所在的目錄)。

三、建立目錄的mkdir命令

mkdir(makedirectory)可莊來(lái)建立子目錄。例如:

[root@localhost/root]#mkdirdata<==在當(dāng)前目錄下建立data目錄

[root@localhost/root]#mkdir/data<=在根目錄下建立data目錄

注意:用戶不能在一個(gè)不存在的目錄中建立子目錄。例如:目錄/home2若不存在,則不

能直接建立/home2/tony目錄。

四、刪除目錄的rmdir命令

rmdir(removedirectory)可以用來(lái)刪除"空”的子目錄:

[root@localhost/root]#rmdirdata<=:刪除data目錄

[root@localhost/root]#rindir/data<==刪除根目錄下的data目錄

五、拷貝文件的cp命令

cp(copy)可以將文件拷貝成另一個(gè)文件,或是拷貝到另一個(gè)目錄中。例如,下面實(shí)例

可以在目前所在目錄中,將data〉txt拷貝成data2.txt。

[root@localhost/root]#cpdatal.txtdata2.txt

下面范例可以將data3.txt拷貝到/tmp/data目錄中:

[root@localhost/root]ftcpdata3.txt/tmp/data

為了方便進(jìn)行各種拷貝操作,cp命令包含了許多參數(shù):

1、-i覆蓋相同名稱文件前先詢問(wèn)用戶。下面實(shí)例會(huì)將data.txl拷貝到backup目錄

中,如果有覆蓋情況發(fā)生,則詢問(wèn)用戶。

[root@localhost/root]#cp-idata,txtbachup

cpverwrite'backup/data,txt'?y

2、-v顯示用命令執(zhí)行過(guò)程,例如:

[root@localhost/root]#cp-vdata,txtdatal.txt

data,txt*->;'datal.txt*<=執(zhí)行過(guò)程

3、-R遞歸拷貝,即拷貝時(shí)將所有目錄一并拷貝。下面范例會(huì)將目前目錄下的所有文

件(含子目錄)拷貝到backup目錄中:

[root@localhost/root]#cp-R*bachup

六、刪除文件或目錄的rm命令

rm(remove)可用來(lái)刪除文件或目錄。一般用法如下:

[root@localhost/root]#rmdata,txt<==刪除data,txt文件

[root@localhost/root]#rm*<==刪除目前目錄中所有文件

rm有一些常用參數(shù):

1、-f強(qiáng)迫刪除文件愛(ài)你。在某些Unix系統(tǒng)默認(rèn)狀態(tài)下,rm命令會(huì)對(duì)每個(gè)要?jiǎng)h除的文

件提出確認(rèn)詢問(wèn)。如果用戶確定要?jiǎng)h除這些文件,可以使用J參數(shù)來(lái)避免詢問(wèn)。

[root@localhost/root]#rin-f*.txt

2、-i在刪除文件時(shí)提出詢問(wèn)。

[root@loca1host/root]#rm-i*

rm:back:isadirectory<=:遇到目錄會(huì)略過(guò)

rm:remove*datal.txt*?y<==刪除文件時(shí)會(huì)詢問(wèn)

rm:remove'data2.txt'?n

rm:remove'data3.txt’?n

3、-r遞歸刪除(連子目錄一并刪除)。下列命令會(huì)刪除backup目錄和backup目錄下

的所有文件和子目錄。

[root@localhost/root]#rm-rbackup

七、讓顯示畫(huà)面暫停的more命令

當(dāng)所要顯示的內(nèi)容會(huì)超過(guò)屏幕大小時(shí),用戶可以使用more命令來(lái)顯示內(nèi)容按多頁(yè)方式

進(jìn)行顯示,在用戶按下任何鍵時(shí),繼續(xù)顯示下一個(gè)畫(huà)面:

[root@locQlhost/root]#ls-al|more

total132

drwxr-x—9rootroot40966月2721:18.

drwxr-xr-x22rootroot40966月2721:06

-rw-r―r―1rootroot422566月1917:25.abcuser.diet

.....略

—More—<==暫停,按下任何鍵會(huì)繼續(xù)顯示

more命令也可以單獨(dú)使用,可以用來(lái)顯示文字文件的內(nèi)容。下面實(shí)例會(huì)顯示data.txt

文件的內(nèi)容,并會(huì)在畫(huà)面滿屏?xí)r,暫時(shí)停止顯示:

[root@localhost/root]#moredata.txt

八、連接或顯示文件的cat命令

cat(concatenate)可以顯示文件的內(nèi)容(經(jīng)常和more搭配使用),或?qū)⒍鄠€(gè)文件合并成

一個(gè)文件。以下命令會(huì)顯示/etc/issue文件的內(nèi)容:

[root@localhostroot]#cat/etc/issue|more

RedFlagLinuxrelease4.0(HOT)

Kernel\ronan\m

以下實(shí)例會(huì)用cat命令將data,txt的內(nèi)容顯示出來(lái),而》;>;命令將顯示結(jié)果重新定向

附加到all_data.txt后面:

[root@localhostroot]#catdata,txt>;>;alldata.txt

用戶也可使用cat命令將文件內(nèi)容合并到另一個(gè)文件中。例如,下面命令會(huì)將

datal.txt和data2.txt的內(nèi)容合并到all_data.txt文件中:

[root@localhostroot]#catdatal.txtdata2.txt>;all_data.txt

關(guān)于">;"與〃的用法,稍后介紹。

九、移動(dòng)或更改文件名的mv命令

mv(move)可以將文件移動(dòng)到另一個(gè)地方,或者更改文件名稱(Lniux中并沒(méi)有ren或

rename命令來(lái)更改文件名)。下面范例可將data,txt文件移動(dòng)到別的目錄中:

[root@localhostroot]#mvdata.txt..<==將data,txt文件移動(dòng)到上一層目錄

[root@localhostroot]#mvdata,txt/<=將data.txt文件移動(dòng)到根目錄

下面范例可將datal.txt改名為data2.txt:

[root@localhostroot]#mvdatal.txtdata2.txt

十、顯示目前所在目錄的pwd命令

pwd(pi'intworkingdirectory)可顯示用戶目前所在目錄。

[root@localhostroot]#pwd

/root

H^一、尋找文件的find命令

find命令可以指定搜索目錄,并在搜索目錄(和它所有的子目錄)中搜索特定文件。

下面實(shí)例指定搜索目錄為根目錄(/)和根目錄以下的所有子目錄i這等于是搜索整個(gè)系

統(tǒng)),搜尋文件名(-name參數(shù))為gzip,如果能夠找到相符合的文件,則顯示出來(lái)(如果不加

-print,搜尋結(jié)果不會(huì)顯示出來(lái)):

[root@localhostroot]#find/-namegzip-print

/usr/bin/gzip

/bin/gzip

搜尋結(jié)果表示/usr/bin/和/bin/目錄都有名為gzip的義件。

十二、顯示文件類型的file命令

file命令可以用來(lái)顯示文件類型。下面范例會(huì)顯示當(dāng)前中所有文件的文件類型:

[root@localhostroot]#file./*

./Desktop:directory

./install,log:NonTSOextended-ASCIItext

./install,log.syslog:empty

./partit.inninfn:ASCIItext

十三、搜索字符串的grep命令

grep命令可以搜索特定字符串并顯示出來(lái),一般用來(lái)過(guò)濾先前結(jié)果,而避免顯示太多

不必要的信息,下面實(shí)例顯示了file./*命令所顯示的結(jié)果中,包含ASCII字符串的行:

[root@localhostroot]#file./*|grepASCII

./install,log:Non-1SOextended-ASCIItext

./partitioninfo:ASCIItext

"I"是管道符,稍后會(huì)介紹。

十四、重新定向與管道符

重新定向(redirect)可將某命令的結(jié)果輸出到文件中,它有兩種命令和

可將結(jié)果輸出到文件中,如果該文件原本就存在,則該文件原有的內(nèi)容會(huì)被刪除;>;>;則將

結(jié)果附加在原文件后面,原文件的內(nèi)容不會(huì)被清除。

下面實(shí)例可將目前目錄下的文件名輸出到dir.txt文件中:

[root@localhostroot]#ls-al>;dir.txt

下面實(shí)例可將datal.txt文件內(nèi)容附加到all_data.txt文件中:

[root@localhostroot]#catdatal.txt>;>;all_data.txt

管道符I(pipe)可將某命令的結(jié)果輸出給另一命令。下面范例可將file./*命令的結(jié)果

輸出給grepASCII命令處理:

[root@localhostroot]#file./*|grepASCII

./install,log:Non-1SOextended-ASCIItext

./partitioninfo:ASCIItext

Linux文件命令精通指南(初級(jí))

雖然GUI桌面(如KDE和GNOME)能夠幫助用戶利用Linux特性,而無(wú)需關(guān)于命令

行接口的功能知識(shí),但還是經(jīng)常會(huì)需要更多的功能和靈活性。而且,基本熟悉這些命令對(duì)于

在shell腳本中正確地使某些功能自動(dòng)化仍然是必需的。

這篇文章是關(guān)于Linux文件命令的一個(gè)“速成教程”,它是為那些剛接觸這個(gè)操作系

統(tǒng)或者只是需要補(bǔ)充這方面知識(shí)的用戶提供的。它包含了對(duì)一些更有月的命令的一個(gè)簡(jiǎn)明的

概述以及關(guān)于它們的最強(qiáng)大的應(yīng)用的指導(dǎo)。下面包含的信息一結(jié)合一些實(shí)驗(yàn)一將使您能

夠容易地掌握這些基本的命令。(注意:當(dāng)涉及到一個(gè)與Oracle集群文件系統(tǒng)(OCFS)結(jié)

合的內(nèi)核時(shí),這些命令中的某些命令的行為可能會(huì)稍微有所不同。在此情況下,Oracle提

供了一個(gè)OCFS工具集,該工具集可以為文件命令應(yīng)用提供一個(gè)更好的選擇。)

注意,這里包含的所有示例都在SUSELinux8.0Professional上進(jìn)行了測(cè)試。雖然

沒(méi)有理由相信它們?cè)谄渌南到y(tǒng)上將不能工作,但如果出現(xiàn)問(wèn)題,您應(yīng)當(dāng)查看您的文檔,以

了解可能的變化。

背景概念

在深入研窕規(guī)范之前,讓我們回顧一些基礎(chǔ)知識(shí)。

文件和命令

在Linux/UNIX操作系統(tǒng)中,所有事物都被當(dāng)作文件來(lái)處理:硬件設(shè)備(包括鍵盤(pán)和終端)、

目錄、命令本身,當(dāng)然還有文件。這個(gè)奇怪的慣例實(shí)際上是Linux/UNIX的能力和靈活性的

基礎(chǔ)。

大多數(shù)(幾乎是全部)的命令形式如下:

command[option][sourcefile(s)][targetfile]

獲取幫助

最有用的命令之一是那些提供幫助的命令(特別是對(duì)那些學(xué)習(xí)Linux的人而言)。Linux中

的兩個(gè)重要的信息來(lái)源是聯(lián)機(jī)參考手冊(cè),或man頁(yè)面和whatis工具。您可以用whatis命

令來(lái)訪問(wèn)一個(gè)不熟悉的命令的man頁(yè)面。

$whatisecho

要了解關(guān)于這個(gè)命令的更多信息,可以使用:

$manecho

如果您不知道某個(gè)特殊任務(wù)所需的命令,您可以用man-k(也稱為apropos)和一

個(gè)主題來(lái)生成可能的命令。例如:

$man-kfiles

一個(gè)很有用但常常被忽視的命令可以提供關(guān)于使用man本身的信息:

$manman

您可以用SPACEBAR來(lái)瀏覽任意的man頁(yè)面;UPARROW將向上翻滾文件。.要退出,

則輸入q,!,或CTRL-Zo

用戶類別

記得那句名言”所有動(dòng)物一例平等但有些動(dòng)物比其他動(dòng)物更加平等”嗎?在Linux

世界中,根用戶掌管一切。

根用戶可以以另一個(gè)用戶名su(源自"superuser")登錄。要執(zhí)行諸如添加一個(gè)新

用戶、打印機(jī)或文件系統(tǒng)之類的任務(wù),必須作為根用戶登錄或者用su命令和根用戶密碼切

換到超級(jí)用戶。系統(tǒng)文件(包括控制初始化過(guò)程的系統(tǒng)文件)歸根用戶所有。雖然可能允許

普通用戶對(duì)它們進(jìn)行讀操作,但出于系統(tǒng)安全性的原因,編輯的權(quán)利將留給根用戶。

BASHshell

雖然提供了其它的shell,但BASH(BourneAgainShell)是Linux的默認(rèn)shell?,

它結(jié)合了與它同名的Bourneshell的特性和Korn.C和TCSHshell的特性。

BASH內(nèi)置的命令history默認(rèn)記錄最后輸入的500條命令??梢酝ㄟ^(guò)在命令提示符

下輸入history來(lái)查看它們。要檢索某個(gè)特定的命令,可以在命令提示符下按UPARROW或

DOWNARROW,或在歷史列表中輸入它的編號(hào),并在編號(hào)前面加上"!",例如:

$!49

您還可以通過(guò)一條命令在歷史列表中離位置最靠前的項(xiàng)目的距離來(lái)執(zhí)行該命令:如果

在歷史列表中有53個(gè)事件,$!-3將執(zhí)行事件號(hào)51o

像UNIX/Linux世界的其它shell一樣,BASH使用了特殊的環(huán)境變量來(lái)方便系統(tǒng)管

理。例如:

?HOME,用戶主目錄

?PATILLinux用來(lái)搜索您輸入的命令的可執(zhí)行鏡像的搜索路徑

?HISTSIZE,系統(tǒng)保存的歷史事件的數(shù)量

除了這些保留的關(guān)鍵字之外,您還可以定義您自己的環(huán)境變量。例如,Oracle使用

ORACLEJIOME(還有其它一些變量),要使Oracle安裝成功完成,必須在您的環(huán)境中設(shè)置

這些變量。

可以在提示符下臨時(shí)設(shè)置變量:

$HISTSIZE=1OO

或者,在/etc/profile(需要根用戶權(quán)限)中進(jìn)行系統(tǒng)范圍的永久設(shè)置,或

在.profile中進(jìn)行局部永久設(shè)置。

可以通過(guò)echo命令,并用一個(gè)$符號(hào)來(lái)訪問(wèn)一個(gè)環(huán)境變量的值,進(jìn)而查看該值。

$echo$HOME

/home/bluher

可以用env命令來(lái)查看當(dāng)前所有的環(huán)境變量。

正則表達(dá)式和通配符

許多Linux命令使用通配符*和?來(lái)匹配任意數(shù)量的字符或分別匹配任意的單個(gè)

字符;正則模式匹配表達(dá)式利用一個(gè)句點(diǎn)(.)來(lái)匹配除“換行符”之外的任意單個(gè)字符。

這兩種情況下都使用方括號(hào)([])來(lái)匹配除號(hào)之外的字符組。不過(guò),*號(hào)在各種情況

下有類似但不同的意義:雖然它在shell中將匹配一個(gè)或更多的字符,但在正則表達(dá)式中,

它匹配上述字符的零個(gè)或更多的實(shí)例。一些命令(如egrep和awk)使用了一組更廣泛的

特殊字符來(lái)進(jìn)行模式匹配。

文件處理命令

剖析一個(gè)文件列表

1s命令用來(lái)查看用戶有執(zhí)行權(quán)限的任意目錄中的文件列表,該命令有許多有趣的選

項(xiàng)。例如:

$Is-liah*

22684-rw-r-r―1bluherusers952Dec2818:43.profile

19942-rw-r-r—1scalishusers30Jan320:00test2.out

925-rwxr-xr-x1scalishusers378Sep22002test,sh

上面的列表顯示8歹ij:

?第1列指示文件的inode,因?yàn)槲覀兪褂昧?i選項(xiàng)。剩下的列通過(guò)-1選項(xiàng)來(lái)進(jìn)行正

常顯示。

?第2列顯示文件類型和文件訪問(wèn)權(quán)限。

?第3列顯示鏈接數(shù),包括目錄。

?第4和第5列顯示文件的所有者和組所有者。這里,所有者"bluher"屬于組

userso

?第6列顯示文件大?。▎挝粸樗@示的單位,而不是默認(rèn)的字節(jié)數(shù),因?yàn)槲覀兪褂昧?h

選項(xiàng)。

?第7列顯示日期(它看起來(lái)像是三列),包括月、口和年,以及當(dāng)天的時(shí)間。

?第8列顯示文件名。在選項(xiàng)列表中使用-a將使列表中包含隱藏文件(如.profile)

的列表。

處理文件

可以移動(dòng)(mv)、兔制(cp)或刪除(rm)文件和目錄。明智地使用-i選項(xiàng),以獲得

確認(rèn)通常是個(gè)不錯(cuò)的主意。

$cp-iIs.outls2.out

cp:overwrite、ls2.out'?

mv命令允許使用-b選項(xiàng),這將在移動(dòng)文件之前作一個(gè)備份拷貝。rm和cp接受功

能強(qiáng)大但卻危險(xiǎn)的-r選項(xiàng),它將在一個(gè)目錄和它的文件上遞歸執(zhí)行。

$rm-irTest

rm:descendintodirectoryTest'?y

可以用mkdir來(lái)創(chuàng)建目錄,用rmdir來(lái)刪除目錄。不過(guò),因?yàn)椴荒苡胷mdir來(lái)刪除

包含文件的目錄,所以使用rm加-r選項(xiàng)通常要更方便些。

出于安全的原因,所有的文件都有所有權(quán)和保護(hù)。文件訪問(wèn)權(quán)限(或文件模式)包含

之前提到的相同的10個(gè)字符:

?第一個(gè)字符指示文件類型。最常見(jiàn)的是-代表文件,d代表目錄,而1代表鏈接。

?接下來(lái)的9個(gè)字符是三種用戶類別的訪問(wèn)權(quán)限:文件所有者(字符2-4),用戶組(5-7)

和其它(8-10),其中r表示讀權(quán)限,w表示寫(xiě)權(quán)限,x指示一個(gè)文件上的執(zhí)行權(quán)限。破折

號(hào)-如果出現(xiàn)在這九個(gè)位置的任意一個(gè).則指示這個(gè)操作對(duì)該類別的用戶禁K.

可以使用chmod命令通過(guò)字符符號(hào)或二進(jìn)制掩碼來(lái)設(shè)置訪問(wèn)權(quán)限。要使用二進(jìn)制掩

碼,必須將三個(gè)權(quán)限組的字符表示轉(zhuǎn)換成二進(jìn)制格式,然后轉(zhuǎn)換成八進(jìn)制格式:

用戶類別:所有者用戶組其它

字符表示:rwxr-xr-

二進(jìn)制表示:111101100

八進(jìn)制表示:754

將寫(xiě)權(quán)限賦予用戶組,您可以使用:

chmodg+wtest,shorchmod774test,sh

用umask命令,在/etc/init.dev文件中進(jìn)行系統(tǒng)范圍內(nèi)的、或在.profile文件

中進(jìn)行的本地的文件權(quán)限默認(rèn)設(shè)置。這個(gè)命令指示用777減去這個(gè)數(shù)字來(lái)獲取默認(rèn)的權(quán)限:

$umask022

這將為用戶創(chuàng)建的所有新文件生成一個(gè)默認(rèn)的文件權(quán)限755o

可以用chown來(lái)修改文件的所有權(quán):

$chownbluherIs.out

這里,bluher是新的文件所有者。類似地,組成員資格將按以下方式修改:

$chgrpdcvgrpIs.out

這里,devgrp是新的用戶組。

Is不提供哪些文件是文本的,哪些文件是二進(jìn)制的的信息。要了解這個(gè)信息,您可以

使用file*命令。

重命名文件

賦予一個(gè)文件多個(gè)名字的兩種流行的方法是利用鏈接和alias命令。Alias可以用來(lái)

為一個(gè)更長(zhǎng)的命令重新起一個(gè)更方便的名字:

$alias11='Is-V

$11

注意單引號(hào)的使用,這使得BASH將該項(xiàng)目傳遞給別名,而不是自己估計(jì)它。別名還

可用作較長(zhǎng)的路徑名的縮寫(xiě):

$aliasjdev9i=/jdev9i/jdev/bin/jdev

關(guān)于alias和它的反命令unalias的更多信息,請(qǐng)查看BASH的man頁(yè)面的

"SHELLBUILTINCOMMANDS"子部分。在最后一個(gè)例子中,定義了一個(gè)環(huán)境變量來(lái)實(shí)現(xiàn)相同

的結(jié)果。

$exportJDEV_H0ME=/jdev9i/jdav/bin/jdev

$echo$JDEV_HOME

/jdev9i/jdev/bin/jdev

$$JDEV_HOME

鏈接允許幾個(gè)文件名引用單個(gè)源文件,格式如下:

In[-s]fileyouwanttolinktonswname

單獨(dú)的In命令創(chuàng)建到文件的一個(gè)硬鏈接,而使用-s選項(xiàng)來(lái)創(chuàng)建一個(gè)符號(hào)鏈接。簡(jiǎn)

而言之,一個(gè)硬鏈接幾乎不能和原始的文件區(qū)分開(kāi)(除了這兩個(gè)文件的inode將相同之外)。

符號(hào)鏈接較容易區(qū)分,因?yàn)樗鼈兂霈F(xiàn)在一個(gè)長(zhǎng)的文件列表中,并用->來(lái)指示源文件,1指

示文件類型。

查看和查找文件

義件過(guò)濾器

用來(lái)讀取文件內(nèi)容和在文件內(nèi)容上執(zhí)行操作的命令有時(shí)被稱為ly濾器。sed和awk

命令是兩個(gè)濾波器的例子,因?yàn)樵谝郧暗腛TN文章中有它們?cè)敿?xì)的討論,在這里將略過(guò)。

諸如cat^more和less之類的命令讓您能夠從命令行查看一個(gè)文本文件的內(nèi)容,

而無(wú)需調(diào)用編輯器。Cat是"concatenate”的縮寫(xiě),它將默認(rèn)地在標(biāo)準(zhǔn)輸出(顯示屏)上

顯示文件內(nèi)容。和cat一起提供的最有趣的選項(xiàng)之一是-n選項(xiàng),它用編號(hào)的輸出行來(lái)顯

示文件內(nèi)容。

$cat-ntest,out

1Thisisatest.

因?yàn)閏at一次性輸出文件中的所有行,所以您可能更喜歡用more和less,因?yàn)樗?/p>

們都一次輸出一屏的文件內(nèi)容。Less是more的一個(gè)增強(qiáng)的版本,它允許用來(lái)自vi文本

編輯器的關(guān)鍵命令來(lái)增強(qiáng)文件查看,例如,d向前翻滾、b向后翻滾N行(如果N是在(1

或b之前指定的)。為N輸入的值成為隨后的d命令的默認(rèn)值。man頁(yè)面實(shí)用工具使用

less來(lái)顯示使用說(shuō)明的內(nèi)容。

重定向和管道

重定向允許將命令輸出重定向到文件中,而不是標(biāo)準(zhǔn)輸出,或者類似地,也可重定向

輸入。重定向的標(biāo)準(zhǔn)符號(hào)>創(chuàng)建一個(gè)新的文件。?符號(hào)將輸出添加到一個(gè)現(xiàn)有的文件中:

$moretest2.out

Anothertest.

$cattest,out?test2.out

$cattest2.out

Anothertest.

Thisisatest.

到文件的標(biāo)準(zhǔn)輸入可以用<符號(hào)來(lái)重定向:

$cat<test2.out

錯(cuò)誤消息用2>和2?來(lái)重定向和添加,格式如下:

$command2>namc_of_error_file

要避免無(wú)意地覆蓋一個(gè)現(xiàn)有的文件,使用BASH內(nèi)置的命令集:

$set-onoclobber

可以在命令和輸出文件之間用>!符號(hào)來(lái)重載這個(gè)特性。要關(guān)閉這個(gè)特性,用+o代

替-0o

重定向在一個(gè)命令和文件之間、或文件和文件之間工作。重定向語(yǔ)句的一項(xiàng)必須是一個(gè)文件。

管道使用I符號(hào),并且在命令之間工作。例如,您可以用以下方式將一個(gè)命令的輸出

直接發(fā)送到打印機(jī)上:

$Is-1*|Ipr

可以用以下方式快速地找到歷史列表中的一個(gè)命令:

$history|grepcat

更多的濾波器

Grep、fgrep和egrep都顯示匹配一種模式的行。所有這三個(gè)命令都在文件中搜索指

定的模式,如果您想不起來(lái)一個(gè)所需文件的名稱,這將非常有用?;靖袷绞牵?/p>

grep[options]PATTERN[FILE...]

$grep-r'Subject'nsmail

CTRL-Z將終止上述或其它任何命令。

grep的最有用的選項(xiàng)可能是-s。如果您以除根用戶之外的任何身份搜索系統(tǒng)文件,

那么對(duì)于每一個(gè)您沒(méi)有訪問(wèn)權(quán)限的文件,都將產(chǎn)生錯(cuò)誤消息。這個(gè)命令禁止那些消息。

Fgrep(也以grep-F調(diào)用)只查找固定的字符串,而不是grep接收的正則表達(dá)式。

而egrep接收包含更大范圍的特殊字符(如“|",它指示條件OR運(yùn)算符)的模式。

$egrep,SubjectmaiIto**

查找文件

find命令的GNU版本非常強(qiáng)大、靈活并且比UNIX系統(tǒng)上存在的經(jīng)典版本更具包容

性。它對(duì)于涉及到目錄結(jié)構(gòu)的任務(wù)非常有用,包括在文件上查找和執(zhí)行命令。find命令的

基本格式是:

$findstartdirectoryoptionsmatcheriteria[actionoptions]

如果您知道文件的名稱、或者甚至名稱的一部分,但不知道它所處的目錄,您可以這

么做:

$find.-name'test*'

./test

./jdevhome/mywork/EmpWS/EmpBC4J/test

與經(jīng)典的UNIX系統(tǒng)不同,在Linux中不需要在末尾添加-print操作,因?yàn)槿绻麤](méi)

有指定其它的操作選項(xiàng),就將假定執(zhí)行這個(gè)操作。在目錄起始位置上的一個(gè)點(diǎn)(.)將使

find在您的工作目錄中開(kāi)始搜索。兩個(gè)點(diǎn),..,在父目錄中開(kāi)始搜索。您可以在任意目錄

下開(kāi)始搜索。

注意,您可以使用通配符作為搜索準(zhǔn)則的一部分(只要用單引號(hào)將整個(gè)項(xiàng)目括起來(lái))。

$find.-name'test*'-print

./test,out

./test2.out

顯示擁有.out擴(kuò)展名的一系列文件:

$find/home-name'out'

不過(guò)記住,除非您是作為超級(jí)用戶運(yùn)行這個(gè)命令,否則您將可能得到許多的

“Permissiondenied*錯(cuò)誤消息。

最強(qiáng)大的搜索工具之一是和grep一起使用的-exec操作:

$find.-name**.htrnF-execgrep'm

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論