Linux基本命令及Linux文件類(lèi)型用法及說(shuō)明
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)文章
Ubuntu 遠(yuǎn)程登陸服務(wù)器 ssh的安裝和配置詳解
這篇文章主要介紹了Ubuntu 遠(yuǎn)程登陸服務(wù)器 ssh的安裝和配置詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Linux掛載硬盤(pán)并設(shè)置開(kāi)機(jī)自動(dòng)掛載的實(shí)現(xiàn)步驟
本文介紹了在Linux系統(tǒng)下掛載硬盤(pán)的概念和步驟,并講解了開(kāi)機(jī)自動(dòng)掛載的方法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定幫助,需要的朋友可以參考下2024-08-08
修改.htaccess實(shí)現(xiàn)子目錄綁定示例分享
這篇文章主要介紹了修改.htaccess實(shí)現(xiàn)子目錄綁定示例,需要的朋友可以參考下2014-03-03
一篇文章弄懂Linux磁盤(pán)和磁盤(pán)分區(qū)
分區(qū)是將一個(gè)硬盤(pán)驅(qū)動(dòng)器分成若干個(gè)邏輯驅(qū)動(dòng)器,分區(qū)是把硬盤(pán)連續(xù)的區(qū)塊當(dāng)做一個(gè)獨(dú)立的磁硬使用。下面這篇文章主要給大家介紹了關(guān)于Linux磁盤(pán)和磁盤(pán)分區(qū)的相關(guān)資料,需要的朋友可以參考下2018-12-12
Linux系統(tǒng)下如何掛載FAT32的U盤(pán)
Linux掛載U盤(pán)步驟如下: 1:將U盤(pán)插入U(xiǎn)SB接口,檢查是否插好 2:用fdisk命令檢查分區(qū)和USB設(shè)備信息2013-04-04
Linux系統(tǒng)安裝Tomcat并配置Service啟動(dòng)關(guān)閉
這篇文章主要介紹了Linux系統(tǒng)安裝Tomcat并配置Service啟動(dòng)關(guān)閉,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
詳解為新版Apache服務(wù)器開(kāi)啟HTTP/2支持的方法
這篇文章主要介紹了在Apache服務(wù)器中開(kāi)啟HTTP/2的方法,HTTP/2被稱(chēng)為未來(lái)的新HTTP協(xié)議,需要的朋友可以參考下2015-12-12
Linux環(huán)境實(shí)現(xiàn)替換jar包中class文件
文章介紹了如何通過(guò)替換class文件來(lái)避免重復(fù)打包的問(wèn)題,具體步驟包括查找目標(biāo)文件目錄、解壓目標(biāo)文件、替換已解壓文件、替換jar包文件等2025-11-11

