最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux基本命令及Linux文件類(lèi)型用法及說(shuō)明

 更新時(shí)間:2026年05月15日 08:41:47   作者:羨云不羨君  
本文主要講解了Linux文件類(lèi)型、目錄切換命令、目錄操作命令、查找命令、文件內(nèi)容查看命令、文件內(nèi)容查詢(xún)命令以及文本處理命令,文中詳細(xì)解釋了每種命令的功能、使用方法及參數(shù)選項(xiàng),并通過(guò)實(shí)例展示了命令的具體用法

Linux文件類(lèi)型

1.普通文件它最常使用的一類(lèi)文件,其特點(diǎn)是不包含有文件系統(tǒng)的結(jié)構(gòu)信息。通常用戶(hù)所接觸到的文件,如圖形文件、數(shù)據(jù)文件、文檔文件、聲音文件等都屬于這種文件。這種類(lèi)型的文件按其內(nèi)部結(jié)構(gòu)又可細(xì)分為文本文件和二進(jìn)制文件。

2.目錄文件目錄文件是用于存放文件名及其相關(guān)信息的文件。它是內(nèi)核組織文件系統(tǒng)的基本節(jié)點(diǎn)。目錄文件可以包含下一級(jí)目錄文件或普通文件。在Linux中,目錄文件是一種文件。但Linux的目錄文件和其他操作系統(tǒng)中的“目錄”的概念不同,它是Linux文件中的一種。

3.鏈接文件鏈接文件是一種特殊的文件,實(shí)際上是指向一個(gè)真實(shí)存在的文件鏈接,類(lèi)似于Windows下的快捷方式。根據(jù)鏈接文件的不同,它又可以細(xì)分為硬鏈接(Hard Link)文件和符號(hào)鏈接(SymbolicLink,又稱(chēng)為軟鏈接)文件。

4.設(shè)備文件設(shè)備文件是Linux 中最特殊的文件。正是由于它的存在,使得Linux系統(tǒng)可以十分方便地訪問(wèn)外部設(shè)備。Linux 系統(tǒng)為外部設(shè)備提供一種標(biāo)準(zhǔn)接口,將外部設(shè)備視為一種特殊的文件,使用戶(hù)可以像訪問(wèn)普通文件一樣訪問(wèn)任何外部設(shè)備。通常Linux系統(tǒng)將設(shè)備文件放在“/dev”目錄下,設(shè)備文件使用設(shè)備的主設(shè)備號(hào)和次設(shè)備號(hào)來(lái)指定某外部設(shè)備。根據(jù)訪問(wèn)數(shù)據(jù)方式的不同,設(shè)備文件又可以分為塊設(shè)備和字符設(shè)備文件。

5.管道文件管道文件是一種很特殊的文件,主要用于不同進(jìn)程間的信息傳遞。當(dāng)兩個(gè)進(jìn)程間需要進(jìn)行數(shù)據(jù)或信息傳遞時(shí),可以使用管道文件。一個(gè)進(jìn)程將需傳遞的數(shù)據(jù)或信息寫(xiě)入管道的一端,另一進(jìn)程則從管道的另一端取得所需的數(shù)據(jù)或信息。通常管道是建立在調(diào)整緩存中的。

6.套接字(s,socket) :用于進(jìn)程間的網(wǎng)絡(luò)通信,也可以用于本機(jī)之間的非網(wǎng)絡(luò)通信。

目錄切換命令

  • cd usr : 切換該目錄下的usr目錄。
  • cd .. : 切換上一層目錄。
  • cd / : 切換到系統(tǒng)根目錄。
  • cd ~ : 切換到用戶(hù)主目錄。
  • cd - : 切換到上一個(gè)操作所在的目錄。

目錄的操作命令(增刪查改)

1.mkdir 目錄名稱(chēng) :增加目錄。

2.ls/ll : (ll是ls-l 的別名,ll命令可以看到該目錄下的所有目錄和文件的詳細(xì)信息,ls只有目錄):查看目錄信息。

3.find path -option [-print] [-exec -ok command {}] : find命令提供的尋找條件可以是一個(gè)用邏輯運(yùn)算符not、and、or組成的復(fù)合條件。

邏輯運(yùn)算符and、or、not的含義如下:

(1)and:邏輯與,在命令中用“-a”表示,是系統(tǒng)默認(rèn)的選項(xiàng),表示只有當(dāng)所給的條件都滿(mǎn)足時(shí),尋找條件才滿(mǎn)足。

(2)or:邏輯或,在命令中用“-o”表示。該運(yùn)算符表示只要所給的條件中有一個(gè)滿(mǎn)足時(shí),尋找條件就滿(mǎn)足。

(3)not:邏輯非,在命令中“!”表示。該運(yùn)算符表示查找不滿(mǎn)足所給條件的文件。

find命令的查找方式主要為以名稱(chēng)和文件屬性查找,參數(shù)如下:

(1)-name '字串' :查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[]。

(2)-lname '字串' :查找文件名匹配所給字串的所有符號(hào)鏈接文件,字串內(nèi)可用通配符*、?、[]。

(3)-gid n:查找屬于ID號(hào)為n的用戶(hù)組的所有文件。

(4)-uid n:查找屬于ID號(hào)為n的用戶(hù)的所有文件。

(5)-group string:查找屬于用戶(hù)組名為所給字串的所有的文件。

(6)-user string:查找屬于用戶(hù)名為所給字串的所有的文件。

(7)-empty:查找大小為0的目錄或文件。

(8)-path string:查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[]。

(9)-perm permission:查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711(表示文件目錄所有者具有讀寫(xiě)、執(zhí)行權(quán)限,同組用戶(hù)和系統(tǒng)其他用戶(hù)只具有執(zhí)行權(quán)限),644(文件/目錄所有者具有讀寫(xiě)權(quán)限,同組用戶(hù)和系統(tǒng)其他用戶(hù)之具有讀權(quán)限)等,具體如何設(shè)置數(shù)字權(quán)限形式,讀者請(qǐng)參看本章后面對(duì)文件/目錄訪問(wèn)權(quán)限管理的介紹。

(10)-size n[bckw]:查找指定文件大小的文件,n后面的字符表示單位,默認(rèn)為b,代表512字節(jié)的塊。

(11)-type c : 文件類(lèi)型是 c 的文件。

  • d: 目錄
  • c: 字型裝置文件
  • b: 區(qū)塊裝置文件
  • p: 具名貯列
  • f: 一般文件
  • l: 符號(hào)連結(jié)
  • s: socket

(12)-pid n : process id 是 n 的文件

(13)-amin n : 在過(guò)去 n 分鐘內(nèi)被讀取過(guò)

(14)-anewer file : 比文件 file 更晚被讀取過(guò)的文件

(15)-atime n : 在過(guò)去 n 天過(guò)讀取過(guò)的文件

(16)-cmin n : 在過(guò)去 n 分鐘內(nèi)被修改過(guò)

(17)-cnewer file :比文件 file 更新的文件

(18)-ctime n : 在過(guò)去 n 天過(guò)修改過(guò)的文件

該命令也提供了對(duì)查找出來(lái)的文件進(jìn)行特定操作的選項(xiàng)。

(1)-exec cmd{}:對(duì)符合條件的文件執(zhí)行所給的Linux命令,而不詢(xún)問(wèn)用戶(hù)是否要執(zhí)行該命令。表示命令的參數(shù)即為所找到的文件;命令的末尾必須以“\;”結(jié)束。

(2)-ok cmd{}:對(duì)符合條件的文件執(zhí)行所給的Linux命令,與exec不同的是,它會(huì)詢(xún)問(wèn)用戶(hù)是否要執(zhí)行該命令。

(3)-ls:詳細(xì)列出所找到的所有文件。

(4)-fprintf 文件名:將找到的文件名寫(xiě)入指定文件。

(5)-print:在標(biāo)準(zhǔn)輸出設(shè)備上顯示查找出的文件名。

實(shí)例

將目前目錄及其子目錄下所有延伸檔名是 c 的文件列出來(lái)。

# find . -name "*.c"

將目前目錄其其下子目錄中所有一般文件列出

# find . -ftype f

將目前目錄及其子目錄下所有最近 20 分鐘內(nèi)更新過(guò)的文件列出

# find . -ctime -20

查找/var/logs目錄中更改時(shí)間在7日以前的普通文件,并在刪除之前詢(xún)問(wèn)它們:

$ find /var/logs -type f -ctime +7 -ok rm { } ;

查找前目錄中文件屬主具有讀、寫(xiě)權(quán)限,并且文件所屬組的用戶(hù)和其他用戶(hù)具有讀權(quán)限的文件:

$ find . -type f -perm 644 -exec ls -l { } ;

為了查找系統(tǒng)中所有文件長(zhǎng)度為0的普通文件,并列出它們的完整路徑:

$ find / -type f -size 0 -exec ls -l { } ;

查找/var/logs目錄中更改時(shí)間在7日以前的普通文件,并在刪除之前詢(xún)問(wèn)它們:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

查找當(dāng)前目錄中所有以main開(kāi)頭的文件,并顯示這些文件的內(nèi)容。

$ find . - name 'main*' - exec more {} \;

刪除當(dāng)前目錄下所有一周之內(nèi)沒(méi)有被訪問(wèn)過(guò)的a.out或*.o文件

$ find . \(- name a.out - o - name '*.o'\)\ > - atime +7 -exec rm {} \;

4.locate命令:

locate [-d ][--help][--version][范本樣式...]

參數(shù): 

  • -d或--database= 配置locate指令使用的數(shù)據(jù)庫(kù)。locate指令預(yù)設(shè)的數(shù)據(jù)庫(kù)位于/var/lib/slocate目錄里,文檔名為slocate.db,您可使用 這個(gè)參數(shù)另行指定。
  • --help  在線幫助。
  • --version  顯示版本信息。

附加說(shuō)明

locate與find 不同: find 是去硬盤(pán)找,locate 只在/var/lib/slocate資料庫(kù)中找。

locate的速度比f(wàn)ind快,它并不是真的查找,而是查數(shù)據(jù)庫(kù),一般文件數(shù)據(jù)庫(kù)在/var/lib/slocate/slocate.db中,所以locate的查找并不是實(shí)時(shí)的,而是以數(shù)據(jù)庫(kù)的更新為準(zhǔn),一般是系統(tǒng)自己維護(hù),也可以手工升級(jí)數(shù)據(jù)庫(kù) ,命令為:

locate -u 

顯示文件內(nèi)容命令——cat、more、less、head、tail

1.cat命令

該命令的主要功能是用來(lái)顯示文件,可依次讀取其后所指文件的內(nèi)容并將其輸出到標(biāo)準(zhǔn)輸出設(shè)備上。另外,還能夠用來(lái)連接兩個(gè)或多個(gè)文件,形成新的文件。該命令的常用形式如下:

cat [option] filename

cat 命令中各個(gè)選項(xiàng)(option)的含義如下:

(1)v:用一種特殊形式顯示控制字符,LFD與TAB除外。

(2)T:將TAB顯示為“^I”。該選項(xiàng)要與 -v選項(xiàng)一起使用,即如果沒(méi)有使用-v選項(xiàng),則這個(gè)選項(xiàng)將被忽略。

(3)E:在每行的末尾顯示一個(gè)“$”符。該選項(xiàng)要與 -v選項(xiàng)一起使用。

(4)u:輸出不經(jīng)過(guò)緩沖區(qū)。

(5)A:等同于 -vET。

(6)t:等同于 -vT。

(7)e:等同于 -vE。

例子:

在屏幕上顯示出Readme.txt文件的內(nèi)容。

# cat Readme.txt

在屏幕上顯示出Readme.txt文件的內(nèi)容,如果文件中含有特殊字符的話(huà),一起顯示出來(lái)。

# cat - A Readme.txt

把文件test1和文件test2的內(nèi)容合并起來(lái),放入文件test3中。(此時(shí)在終端屏幕上不能直接看到該命令執(zhí)行的結(jié)果,也就是文件test3的內(nèi)容,若想看到連接后的文件內(nèi)容,可以使用cat test3命令)

# cat test1 test2 > test3

2.more命令

在查看文件過(guò)程中,因?yàn)槟承┪谋具^(guò)于龐大,文本在屏幕上迅速的閃過(guò),用戶(hù)來(lái)不及看清其內(nèi)容。該命令就可以一次顯示一屏文本,并在終端底部打印出“--more--”,系統(tǒng)還將同時(shí)顯示出已顯示文本占全部文本的百分比。若要繼續(xù)顯示,按回車(chē)或空格鍵即可。

more [option] filename

more命令中部分常用選項(xiàng)的含義如下。

(1)-p :顯示下一屏之前先清屏。

(2)-c:作用同-p類(lèi)似。

(3)-d:在每屏的底部顯示更友好的提示信息為“--more-- (XX%)[Press space to continue,'q' to quit]”。

(4)-s:文件中連續(xù)的空白行壓縮成一個(gè)空白行顯示。

另外,在more命令的執(zhí)行過(guò)程中,用戶(hù)可以使用其一系列命令動(dòng)態(tài)地根據(jù)需要來(lái)選擇顯示的部分。more在顯示完一屏內(nèi)容之后,將停下來(lái)等待用戶(hù)輸入某個(gè)命令。下面列入常用的幾種命令:

(1)n:n在命令行中指定了多個(gè)文件名的情況下,可用此命令使之顯示第i個(gè)文件,若i過(guò)大(出界),則顯示文件名列表中的最后一個(gè)文件。

(2)p:p在命令行中指定了多個(gè)文件名的情況下,可用此命令使之顯示倒數(shù)第i個(gè)文件,若i過(guò)大(出界),則顯示第一個(gè)文件。

(3)f:f顯示當(dāng)前文件的文件名和行數(shù)。

3.less命令

該命令的功能和more命令的功能基本相同,也是用來(lái)按頁(yè)顯示文件。不同之處在于,less命令在顯示文件時(shí),允許用戶(hù)既可以向前又可以向后逐行翻閱文件,而more命令只能向后翻閱文件。由于該命令參數(shù)的使用與more命令類(lèi)似,在此不在贅述。如果要按頁(yè)顯示test文件,則執(zhí)行如下命令:

# less test

如果要向后翻閱,可以使用鍵盤(pán)的【Page Up】鍵;如果要向前翻閱文件,則相應(yīng)地使用鍵盤(pán)的【Page Down】鍵即可。按方向鍵可以逐行滾動(dòng),按【Q】鍵退出。

4.head命令

該命令用來(lái)顯示一個(gè)文件的頭幾行數(shù)據(jù)。如果用戶(hù)希望查看一個(gè)文件究竟保存的是什么內(nèi)容,只要查看文件的頭幾行,而不必瀏覽整個(gè)文件,便可以使用這個(gè)命令。該命令的常用形式如下:

head - number filename

該命令用來(lái)顯示每個(gè)指定文件的前面n行。如果沒(méi)有給出n值,默認(rèn)設(shè)置為10。如果沒(méi)有指定文件,head就從標(biāo)準(zhǔn)輸入讀取。例如,以下命令顯示文件test.c的前3行。# head - 3 test.c

5.tail命令

和head命令的功能相對(duì)應(yīng)。如果想查看文件的尾部,可以使用tail命令。該命令顯示一個(gè)文件的指定內(nèi)容。他把指定文件的指定顯示范圍內(nèi)的內(nèi)容顯示在標(biāo)準(zhǔn)輸出上。同樣,如果沒(méi)有給定文件名,則使用標(biāo)準(zhǔn)輸入文件。該命令的常用形式如下。

tail option filename

tail命令中各個(gè)選項(xiàng)的含義如下。

(1)+num:從第num行以后開(kāi)始顯示。

(2)-num:從距文件尾num行處開(kāi)始顯示;如果省略num參數(shù),系統(tǒng)默認(rèn)值為10。

(3)1:以文本行為num的計(jì)數(shù)單位;與參數(shù)選項(xiàng)+num或-num選項(xiàng)同時(shí)使用時(shí),num表示要顯示的文本行行數(shù)。(這個(gè)為系統(tǒng)的默認(rèn)選項(xiàng),即按行計(jì))

(4)c:以字節(jié)為num的計(jì)數(shù)單位;與參數(shù)選項(xiàng)+num或-num選項(xiàng)同時(shí)使用時(shí),num表示要顯示的字符數(shù)。

文件內(nèi)容查詢(xún)命令——grep、egrep、fgrep

1.grep

 grep指令用于查找內(nèi)容包含指定的范本樣式的文件,如果發(fā)現(xiàn)某文件的內(nèi)容符合所指定的范本樣式,預(yù)設(shè)grep指令會(huì)把含有范本樣式的那一列顯示出來(lái)。若不指定任何文件名稱(chēng),或是所給予的文件名為"-",則grep指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)。

語(yǔ)法

grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數(shù)>][-B<顯示列數(shù)>][-C<顯示列數(shù)>][-d<進(jìn)行動(dòng)作>][-e<范本樣式>][-f<范本文件>][--help][范本樣式][文件或目錄...]

參數(shù)

  • -a或--text 不要忽略二進(jìn)制的數(shù)據(jù)。
  • -A<顯示列數(shù)>或--after-context=<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外,并顯示該列之后的內(nèi)容。
  • -b或--byte-offset 在顯示符合范本樣式的那一列之前,標(biāo)示出該列第一個(gè)字符的位編號(hào)。
  • -B<顯示列數(shù)>或--before-context=<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外,并顯示該列之前的內(nèi)容。
  • -c或--count 計(jì)算符合范本樣式的列數(shù)。
  • -C<顯示列數(shù)>或--context=<顯示列數(shù)>或-<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外,并顯示該列之前后的內(nèi)容。
  • -d<進(jìn)行動(dòng)作>或--directories=<進(jìn)行動(dòng)作> 當(dāng)指定要查找的是目錄而非文件時(shí),必須使用這項(xiàng)參數(shù),否則grep指令將回報(bào)信息并停止動(dòng)作。
  • -e<范本樣式>或--regexp=<范本樣式> 指定字符串做為查找文件內(nèi)容的范本樣式。
  • -E或--extended-regexp 將范本樣式為延伸的普通表示法來(lái)使用。
  • -f<范本文件>或--file=<范本文件> 指定范本文件,其內(nèi)容含有一個(gè)或多個(gè)范本樣式,讓grep查找符合范本條件的文件內(nèi)容,格式為每列一個(gè)范本樣式。
  • -F或--fixed-regexp 將范本樣式視為固定字符串的列表。
  • -G或--basic-regexp 將范本樣式視為普通的表示法來(lái)使用。
  • -h或--no-filename 在顯示符合范本樣式的那一列之前,不標(biāo)示該列所屬的文件名稱(chēng)。
  • -H或--with-filename 在顯示符合范本樣式的那一列之前,表示該列所屬的文件名稱(chēng)。
  • -i或--ignore-case 忽略字符大小寫(xiě)的差別。
  • -l或--file-with-matches 列出文件內(nèi)容符合指定的范本樣式的文件名稱(chēng)。
  • -L或--files-without-match 列出文件內(nèi)容不符合指定的范本樣式的文件名稱(chēng)。
  • -n或--line-number 在顯示符合范本樣式的那一列之前,標(biāo)示出該列的列數(shù)編號(hào)。
  • -q或--quiet或--silent 不顯示任何信息。
  • -r或--recursive 此參數(shù)的效果和指定"-d recurse"參數(shù)相同。
  • -s或--no-messages 不顯示錯(cuò)誤信息。
  • -v或--revert-match 反轉(zhuǎn)查找。
  • -V或--version 顯示版本信息。
  • -w或--word-regexp 只顯示全字符合的列。
  • -x或--line-regexp 只顯示全列符合的列。
  • -y 此參數(shù)的效果和指定"-i"參數(shù)相同。
  • --help 在線幫助。

實(shí)例

1、在當(dāng)前目錄中,查找后綴有"test"字樣的文件中包含"test"字符串的文件,并打印出該字符串的行。此時(shí),可以使用如下命令:

grep test *file 

結(jié)果如下所示:

$ grep test test* #查找后綴有“test”的文件包含“test”字符串的文件  
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 

2、以遞歸的方式查找符合條件的文件。例如,查找指定目錄/etc/acpi 及其子目錄(如果存在子目錄的話(huà))下所有文件中包含字符串"update"的文件,并打印出該字符串所在行的內(nèi)容,使用的命令為:

grep -r update /etc/acpi 

輸出結(jié)果如下:

$ grep -r update /etc/acpi #以遞歸的方式查找“etc/acpi”  
#下包含“update”的文件  
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  
IO.) Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update 

3、反向查找。前面各個(gè)例子是查找并打印出符合條件的行,通過(guò)"-v"參數(shù)可以打印出不符合條件行的內(nèi)容。

查找文件名中包含test 的文件中不包含test 的行,此時(shí),使用的命令為:

grep -v test*

結(jié)果如下所示:

$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.  

2.fgrep

本指令相當(dāng)于執(zhí)行g(shù)rep指令加上參數(shù)"-F",詳見(jiàn)grep命令說(shuō)明。

Linux fgrep命令用于查找文件里符合條件的字符串。

語(yǔ)法

fgrep [范本樣式][文件或目錄...]

3.egrep

Linux egrep命令用于在文件內(nèi)查找指定的字符串。

egrep執(zhí)行效果與"grep-E"相似,使用的語(yǔ)法及參數(shù)可參照grep指令,與grep的不同點(diǎn)在于解讀字符串的方法。

egrep是用extended regular expression語(yǔ)法來(lái)解讀的,而grep則用basic regular expression 語(yǔ)法解讀,extended regular expression比basic regular expression的表達(dá)更規(guī)范。

語(yǔ)法

egrep [范本模式] [文件或目錄](méi) 

參數(shù)說(shuō)明:

  • [范本模式] :查找的字符串規(guī)則。
  • [文件或目錄](méi) :查找的目標(biāo)文件或目錄。

實(shí)例

顯示文件中符合條件的字符。例如,查找當(dāng)前目錄下所有文件中包含字符串"Linux"的文件,可以使用如下命令:

egrep Linux *

結(jié)果如下所示:

$ egrep Linux * #查找當(dāng)前目錄下包含字符串“Linux”的文件  
testfile:hello Linux! #以下五行為testfile 中包含Linux字符的行  
testfile:Linux is a free Unix-type operating system.  
testfile:This is a Linux testfile!  
testfile:Linux  
testfile:Linux  
testfile1:helLinux! #以下兩行為testfile1中含Linux字符的行  
testfile1:This a Linux testfile!  
#以下兩行為testfile_2 中包含Linux字符的行  
testfile_2:Linux is a free unix-type opterating system.  
testfile_2:Linux test  
xx00:hello Linux! #xx00包含Linux字符的行  
xx01:Linux is a free Unix-type operating system. #以下三行為xx01包含Linux字符的行  
xx01:This is a Linux testfile!  
xx01:Linux 

文本處理命令——sort、uniq

1.sort命令

該命令的功能是對(duì)文件中的各行進(jìn)行排序(對(duì)于重復(fù)的行不能刪除掉而uniq對(duì)于重復(fù)的行可以覆蓋)。該命令逐行地對(duì)文件中地內(nèi)容進(jìn)行排序,如果兩行的首字符相同,那該命令將繼續(xù)比較這兩行的下一字符。sort排序是根據(jù)從輸入行抽取的一個(gè)或多個(gè)關(guān)鍵字進(jìn)行比較來(lái)完成的。排序關(guān)鍵字定義了用來(lái)排序的最小的字符序列。

在默認(rèn)情況下,以整行為關(guān)鍵字按ASCLL字符順序進(jìn)行排序。

sort命令的常用格式如下:

sort [option] filename

該命令改變默認(rèn)設(shè)置的主要選項(xiàng)如下:

(1)-m:若給定文件已排好序,合并文件。

(2)-c:檢查給定文件是否已排好序,如果他們沒(méi)有都排好序,則打印一個(gè)出錯(cuò)的信息,并以狀態(tài)值1退出。

(3)-u:對(duì)排序后認(rèn)為相同的行只保留其中一行。

(4)-o:輸出文件將排序輸出寫(xiě)到輸出文件中而不是標(biāo)準(zhǔn)輸出,如果輸出文件是輸人文件之一,sort便將該文件的內(nèi)容寫(xiě)入一個(gè)臨時(shí)文件,然后再排序和寫(xiě)輸出結(jié)果。

(5)-d:按字典順序排序,比較時(shí)僅字母、數(shù)字、空格和制表符有意義。

(6)-f:將小寫(xiě)字母與大寫(xiě)字母同等對(duì)待。

(7)-I:忽略非打印字符。

(8)-M:作為月份比較,“JAN”<“FEB”<?<“DEC”。

(9)-r:按逆序輸出排序結(jié)果。

(10)+posl-pos2:指定一個(gè)或幾個(gè)字段作為排序關(guān)鍵字,字段位置從posl開(kāi)始,到pos21為止(包括posl,不包括pos2)。如不指定pos2,則關(guān)鍵字為從posl到行尾。字段和字符的位從0開(kāi)始。

(11)-b:在每行中尋找排序關(guān)鍵字時(shí)忽略前導(dǎo)的空白(空格和制表符)。

(12)-t separator:指定字符separator 作為字段分隔符。

2.uniq

文件經(jīng)過(guò)處理后在它的輸出文件中可能會(huì)出現(xiàn)重復(fù)的行。例如,用cat 命令將兩個(gè)文件合并后,再使用sort命令進(jìn)行排序,就可能出現(xiàn)重復(fù)行。這時(shí)可以用uniq命令將這些重復(fù)行從輸出文件中刪除,只留下每條記錄的唯一樣本。

uniq命令的常用格式如下:

uniq [option] filename

該命令各選項(xiàng)含義如下:

(l)-d:只顯示重復(fù)行。

(2)-u:只顯示文件中不重復(fù)的行。

  (3)-c:顯示輸出中,在每行行首加上本行在文件中出現(xiàn)的次數(shù)。它可取代-u和-d選項(xiàng)。(4)-n:前n個(gè)字段與每個(gè)字段前的空白一起被忽略。一個(gè)字段是一個(gè)非空格、非制表符的字符串,彼此由制表符和空格隔開(kāi)(字段從0開(kāi)始編號(hào))。

  (5) +n: 前n個(gè)字符被忽略,之前的字符被跳過(guò)(字符從0開(kāi)始編號(hào))。

  (6) -fn: 與-n相同,這里n是字段數(shù)。

(7)-sn:與+n相同,這里n是字符數(shù)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

彭泽县| 神池县| 两当县| 甘肃省| 凤城市| 兖州市| 绵阳市| 玛曲县| 祥云县| 右玉县| 泰顺县| 余姚市| 凌源市| 太仆寺旗| 大港区| 扎囊县| 毕节市| 万山特区| 安塞县| 靖远县| 岐山县| 石嘴山市| 金秀| 太保市| 石泉县| 延寿县| 和平区| 江北区| 清苑县| 孝昌县| 莱州市| 黑水县| 开平市| 繁昌县| 东光县| 汤阴县| 岳普湖县| 宁强县| 通辽市| 台江县| 宁乡县|