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

Linux基本命令及Linux文件類型用法及說明

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

Linux文件類型

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

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

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

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

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

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

目錄切換命令

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

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

1.mkdir 目錄名稱 :增加目錄。

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

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

邏輯運算符and、or、not的含義如下:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

該命令也提供了對查找出來的文件進行特定操作的選項。

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

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

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

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

(5)-print:在標準輸出設備上顯示查找出的文件名。

實例

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

# find . -name "*.c"

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

# find . -ftype f

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

# find . -ctime -20

查找/var/logs目錄中更改時間在7日以前的普通文件,并在刪除之前詢問它們:

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

查找前目錄中文件屬主具有讀、寫權限,并且文件所屬組的用戶和其他用戶具有讀權限的文件:

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

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

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

查找/var/logs目錄中更改時間在7日以前的普通文件,并在刪除之前詢問它們:

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

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

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

刪除當前目錄下所有一周之內(nèi)沒有被訪問過的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ù)庫。locate指令預設的數(shù)據(jù)庫位于/var/lib/slocate目錄里,文檔名為slocate.db,您可使用 這個參數(shù)另行指定。
  • --help  在線幫助。
  • --version  顯示版本信息。

附加說明

locate與find 不同: find 是去硬盤找,locate 只在/var/lib/slocate資料庫中找。

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

locate -u 

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

1.cat命令

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

cat [option] filename

cat 命令中各個選項(option)的含義如下:

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

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

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

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

(5)A:等同于 -vET。

(6)t:等同于 -vT。

(7)e:等同于 -vE。

例子:

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

# cat Readme.txt

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

# cat - A Readme.txt

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

# cat test1 test2 > test3

2.more命令

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

more [option] filename

more命令中部分常用選項的含義如下。

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

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

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

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

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

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

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

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

3.less命令

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

# less test

如果要向后翻閱,可以使用鍵盤的【Page Up】鍵;如果要向前翻閱文件,則相應地使用鍵盤的【Page Down】鍵即可。按方向鍵可以逐行滾動,按【Q】鍵退出。

4.head命令

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

head - number filename

該命令用來顯示每個指定文件的前面n行。如果沒有給出n值,默認設置為10。如果沒有指定文件,head就從標準輸入讀取。例如,以下命令顯示文件test.c的前3行。# head - 3 test.c

5.tail命令

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

tail option filename

tail命令中各個選項的含義如下。

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

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

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

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

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

1.grep

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

語法

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

參數(shù)

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

實例

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

grep test *file 

結果如下所示:

$ 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 及其子目錄(如果存在子目錄的話)下所有文件中包含字符串"update"的文件,并打印出該字符串所在行的內(nèi)容,使用的命令為:

grep -r update /etc/acpi 

輸出結果如下:

$ 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、反向查找。前面各個例子是查找并打印出符合條件的行,通過"-v"參數(shù)可以打印出不符合條件行的內(nèi)容。

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

grep -v test*

結果如下所示:

$ 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

本指令相當于執(zhí)行grep指令加上參數(shù)"-F",詳見grep命令說明。

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

語法

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

3.egrep

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

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

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

語法

egrep [范本模式] [文件或目錄] 

參數(shù)說明:

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

實例

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

egrep Linux *

結果如下所示:

$ egrep Linux * #查找當前目錄下包含字符串“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命令

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

在默認情況下,以整行為關鍵字按ASCLL字符順序進行排序。

sort命令的常用格式如下:

sort [option] filename

該命令改變默認設置的主要選項如下:

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

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

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

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

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

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

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

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

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

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

(11)-b:在每行中尋找排序關鍵字時忽略前導的空白(空格和制表符)。

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

2.uniq

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

uniq命令的常用格式如下:

uniq [option] filename

該命令各選項含義如下:

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

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

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

  (5) +n: 前n個字符被忽略,之前的字符被跳過(字符從0開始編號)。

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

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

總結

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

相關文章

最新評論

诸城市| 洞头县| 梧州市| 贺兰县| 库伦旗| 柏乡县| 会宁县| 大庆市| 香河县| 玛曲县| 镇原县| 抚松县| 察哈| 定兴县| 哈巴河县| 桓仁| 竹山县| 和林格尔县| 盐源县| 百色市| 松江区| 拜城县| 江北区| 阜新| 肥东县| 儋州市| 临猗县| 新宁县| 西吉县| 法库县| 临泉县| 柳江县| 泾阳县| 浙江省| 云龙县| 松江区| 京山县| 墨竹工卡县| 广宁县| 旺苍县| 积石山|