Linux的目錄結構及ls命令介紹

        

一、Linux 系統的目錄結構:來自菜鳥教程

      瞭解Linux系統的文件目錄結構的標準和每個目錄的詳細功能,對於學好linux系統至關重要。

登錄系統後,在當前命令窗口下輸入命令:ls /

    

樹狀結構:

     

       在 Linux 或 Unix 操作系統中,所有的文件和目錄都被組織成以一個根節點開始的倒置的樹狀結構。文件系統的最頂層是由根目錄開始的,系統使用 / 來表示根目錄。在根目錄之下的既可以是目錄,也可以是文件,而每一個目錄中又可以包含子目錄文件。如此反覆就可以構成一個龐大的文件系統。

在Linux文件系統中有兩個特殊的目錄:

       一個用戶所在的工作目錄,也叫當前目錄,可以使用一個點 . 來表示;也可以使用 ./ 來表示當前目錄

       另一個是當前目錄的上一級目錄,也叫父目錄,可以使用兩個點 .. 來表示,也可以 ../ 來代表上一級目錄

       如果一個目錄或文件名以一個點 . 開始,表示這個目錄或文件是一個隱藏目錄或文件(如:.bashrc)。即以默認方式查找時,不顯示該目錄或文件。

 

以下是對這些目錄的解釋:

1、/:根目錄,位於Linux文件系統目錄結構的頂層,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中。

2/bin/usr/bin:這兩個目錄爲命令文件目錄,bin是Binary的縮寫,也稱爲二進制目錄。包含了供系統管理員及普通用戶使用的重要的linux命令和二進制(可執行)文件,包含shell解釋器等。

3、/boot: 該目錄中存放的是啓動Linux時使用的一些核心(內核)文件,包括一些連接文件以及鏡像文件。/boot/vmlinuz爲linux的內核文件,以及/boot/gurb。一般情況下都是單獨分區,分區大小200M即可。

4、/dev: 設備文件目錄,dev是Device的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。 常用的是掛載光驅: mount   /dev/cdrom     /mnt

5、/etc: 系統配置文件存放的目錄,用來存放所有的系統管理所需要的配置文件和子目錄,不建議在此目錄下存放可執行文件,修改配置文件之前記得備份。該目錄下的文件由系統管理員來使用, 普通用戶對大部分文件有隻讀權限。

6/home  系統默認的用戶宿主目錄,新增用戶賬號時,用戶的宿主目錄都存放在此目錄下,~表示當前用戶的宿主目錄,~test表示用戶test的宿主目錄。如果做文件服務器,建議單獨分區,並設置較大的磁盤空間,方便用戶存放數據。用戶傳上來的數據和其他系統文件隔離,安全性高些!

7/lib/usr/lib/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助,該目錄下存放了各種編程語言庫。典型的linux系統包含了C、C++和FORTRAN語言的庫文件。/lib目錄下的庫映像文件可以用來啓動系統並執行一些命令,目錄/lib/modules包含了可加載的內核模塊,/lib目錄存放了所有重要的庫文件,其他的庫文件則大部分存放在/usr/lib目錄下。

8、/sbin/usr/sbin/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount等。與/bin不同的是,這幾個目錄是給系統管理員root使用的命令,一般用戶只能"查看"而不能設置和使用。

9/opt: 給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下。

10、/proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。 如系統核心,外部設備,網絡狀態等,由於數據都存放於內存中,所以不佔用磁盤空間,比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。

11、/root:系統管理員root的宿主目錄,也稱作超級權限者的用戶主目錄。系統第一個啓動的分區爲/,所以最好將/root 和/放置在一個分區下。

12、/mnt/media  mnt目錄主要用來臨時掛載文件系統,爲某些設備提供默認掛載點,如cdrom 。這樣當掛載了一個設備如光驅時,就可以通過訪問目錄/mnt下的文件來訪問相應的光驅上的文件了。/media目錄:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。

13/tmp  一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下。

14、/srv: 該目錄存放一些服務啓動之後需要提取的數據,如www服務需要訪問的網頁數據存放在/srv/www內。

15/usr: 應用程序存放目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄。/usr/bin 存放應用程序, /usr/share 存放共享數據,/usr/lib 存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件,/usr/local 存放軟件升級包,/usr/share/doc 系統說明文件存放目錄。

16/usr/share/man: 程序說明文件存放目,使用 man ls時會查詢/usr/share/man/man1/ls.1.gz的內容,建議單獨分區,設置較大的磁盤空間。

17、/var: 這個目錄中存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件如隨時更改的日誌文件 /var/log。/var/log/message: 所有的登錄文件存放目錄。/var/spool/mail: 郵件存放的目錄。建議單獨分區,設置較大的磁盤空間。

18、/run:是一個臨時文件系統,存儲系統啓動以來的信息。當系統重啓時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。

19、 /sys: 這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs ,過sysfs 文件系統訪問Linux 內核。

sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統。

該文件系統是內核設備樹的一個直觀反映。

當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。

在 Linux 系統中,有幾個目錄比較重要,平時需要注意不要誤刪除或者隨意更改內部文件。

/etc:這個目錄相當重要,如上所述,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啓動。而在往後的文件中,你會發現我們常常使用這個目錄下的 /etc/rc.d/init.d 這個子目錄,因爲這個 init.d 子目錄是開啓一些 Linux 系統服務的 scripts 的地方。而在 /etc/rc.d/rc.local 這個文件是開機的執行檔。

/bin,   /sbin,   /usr/bin,   /usr/sbin:這是系統預設的執行文件的放置目錄,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的數據都放在這幾個目錄中,所以如果你在提示字符下找不到某個執行檔時,可以在這四個目錄中查一查!其中,

/bin, /usr/bin 是給系統使用者使用的指令,而 /sbin, /usr/sbin 則是給系統管理員使用的指令!

/usr/local:這是系統預設的讓你安裝你後來升級的套件的目錄。例如,當你發現有更新的 Web 套件(如 Apache )可以安裝,而你又不想以 rpm 的方式升級你的套件,則你可以將 apache 這個套件安裝在 /usr/local 底下。安裝在這裏有個好處,因爲目前大家的系統都是差不多的,所以如果你的系統要讓別人接管的話,也比較容易上手!也比較容易找的到數據!因此,如果你有需要的話,通常都會將 /usr/local/bin 這個路徑加到 path 中。

/home:這個是系統將有賬號的人口的家目錄設置的地方。

/var:這個路徑就重要了!系統上跑了很多程序,那麼每個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,而 mail 的預設放置也是在這裏 。所以當你的系統有問題時,就需要來這個目錄記錄的文件數據中察看問題的所在!

/usr/share/man,   /usr/local/man  這兩個目錄爲放置各類套件說明檔的地方例如你如果執行 man man,則系統會自動去找這兩個目錄下的所有說明文件。補充小命令:tree:可以查看當前目錄下的所有子目錄和文件結構。

 

二、目錄查看命令ls

Linux ls命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。

通過命令: ls -- help   或者 man ls 查看更多ls命令信息

1、命令處理格式和目錄查看命令ls

語法格式:

 ls [OPTION]... [FILE]...
 ls [選項] [目錄或文件名]

常用選項:

選項 功能
-a 顯示全部的文件,包括隱藏文件(開頭爲 . 的文件)也一起羅列出來,這是最常用的選項之一。
-A 顯示全部的文件,連同隱藏文件,但不包括 . 與 .. 這兩個目錄。
-d 僅列出目錄本身,而不是列出目錄內的文件數據。
-f ls 默認會以文件名排序,使用 -f 選項會直接列出結果,而不進行排序。
-F 在文件或目錄名後加上文件類型的指示符號,例如,* 代表可運行文件,/ 代表目錄,= 代表 socket 文件,| 代表 FIFO 文件。
-h 以人們易讀的方式顯示文件或目錄大小,如 1KB、234MB、2GB 等。
-i 顯示 inode 節點信息。
-l 使用長格式列出文件和目錄信息。
-n 以 UID 和 GID 分別代替文件用戶名和羣組名顯示出來。
-r 將排序結果反向輸出,比如,若原本文件名由小到大,反向則爲由大到小。
-R 連同子目錄內容一起列出來,等於將該目錄下的所有文件都顯示出來。
-S 以文件容量大小排序,而不是以文件名排序。
-t 以時間排序,而不是以文件名排序。
--color=never
--color=always
--color=auto
never 表示不依據文件特性給予顏色顯示。
always 表示顯示顏色,ls 默認採用這種方式。
auto 表示讓系統自行依據配置來判斷是否給予顏色。
--full-time 以完整時間模式 (包含年、月、日、時、分)輸出
--time={atime,ctime} 輸出 access 時間或改變權限屬性時間(ctime),而不是內容變更時間。

注意:當 ls 命令不使用任何選項時,默認只會顯示非隱藏文件的名稱,並以文件名進行排序,同時會根據文件的具體類型給文件名配色(藍色顯示目錄,白色顯示一般文件)

有多個選項的時候,我們可以將選項連寫,也可以分開寫,用空格隔離,比如: ls   -al 或 ls   -a   -l

選項有簡寫,和完整寫之分,一般簡寫前只有一個“-”,完整寫有兩個“--” 比如:ls   --all

 

2、常用命令:

     注意不加參數它顯示除隱藏文件外的所有文件及目錄的名字。

ls –l 顯示文件及其詳細信息(這個命令有一個別名:ll):

# ls -l
第一列: 文件類型(共10個字符) + 權限   -->  man find 搜索type可看
            -:普通文件
            d:目錄
            c:字符設備 --> /dev/tty     例如 USB接口、貓等一些串行端口設備
            b:塊設備   --> /dev下查找  例如光驅,硬盤等屬於塊設備
            .:SELINUX相關 
            l:鏈接文件 --> 軟連接
   後面的9個字符每3個爲一組[rwx],分別代表文件所有者、文件所有者所在用戶組、其它用戶對文件擁有的權限。
   [r]代表可讀(read)、[w]代表可寫(write)、[x]代表可執行(execute)。若沒有其中的任何一個權限則用“-”表示。
   執行的權限有兩個字符可選,最常見的一個是“x”代表可執行。另一個是“s”代表套接口文件。

第二列:硬鏈接個數 默認從1開始  
    如果是目錄,則默認是2(目錄不做硬鏈接)爲這個目錄下的目錄文件數目(這個數目=隱藏目錄數目+普通目錄數目)。
   (如果這只是一個普通文件,那“2”就代表這個文件有兩個別名,這個文件被人創建了一個硬鏈接文件),總而言之它就是一個計數

第三列:所有者,也就是這個文件屬於哪個用戶。默認所有者是文件的建立用戶。
第四列:所屬組,默認所屬組是文件建立用戶的有效組,一般情況下就是建立用戶的所在組。
第五列:文件大小(默認字節數),如果想看K或者M等,前面加一個選項-h
第六-八列:文件修改時間,文件狀態修改時間或文件數據修改時間都會更改這個時間,注意這個時間不是文件的創建時間。
第九列:文件名或目錄名。

   

列出根目錄(\)下的所有目錄:

# ls /

列出根目錄(\)下的所有目錄,按照時間順序排序,越新的排越後面 :

# ls -ltr

  

文件安裝大小倒敘:

# ll -hSr 

  

 

   命令及命令組合很多種,會查會用,熟能生巧,常用命令要熟記

 

   站在前輩的肩膀上,每天進步一點點

ends~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章