Linux 目錄詳解

JF Zhu發表於2020-05-22

和 Windows 一樣,Linux 也有目錄的概念。系統中眾多的檔案需要藉助到目錄進行儲存與管理。我們下面對 Linux 系統中的目錄結構以及經常使用到的概念進行一個完整介紹。


Linux 系統目錄結構


在 Windows下,系統把硬碟劃分為不同的磁碟分割槽,每個磁碟分配一個不同的碟符,比如 C:\、D:\ 等等。每個分割槽都單獨存放自己的檔案,有自己的根目錄,比如 C:\、D:\ 就相當於 C 盤和 D 盤的根目錄了。而 Linux 則是將整個硬碟統一管理,整個系統只有一個根目錄 "/",所有的檔案和目錄都是在這個根目錄下,它表示 Linux 檔案系統的起點。另外要注意一點,Linux 中目錄間的間隔使用的是斜線 (forward slash)"/",而 Windows中用的是反斜線 (back slash)"\"。


為了規範,絕大多數的 Linux 發行版本中 (參見 《這麼多Linux版本,你究竟該怎麼選擇?》)系統目錄的機構都保持了一致。以 CentOS 7 為例,下面介紹一下常用的系統目錄和它們的作用。



  • /root:超級使用者 root 的家目錄

  • /bin:是 Binary 的縮寫,用於存放系統中常用的命令,任何使用者都有許可權執行

  • /boot:存放系統啟動時所需要的檔案,Linux 的核心就存放在這個目錄中

  • /dev:是 Device 的縮寫,存放硬碟、光碟機、滑鼠等裝置檔案,在 Linux中訪問裝置和訪問檔案的方式是相同的

  • /etc:存放系統和程式所需的配置檔案,作用類似於 Windows 的登錄檔

  • /home:普通使用者的家目錄。普通使用者的家目錄一般和使用者賬號名相同,比如 user1 的家目錄是 /home/user1

  • /var:存放一些經常變化的檔案,比如 /var/log 存放日誌,/var/spool/mail 存放郵件

  • /lib /lib64:存放連線共享庫,作用類似於 Windows 的 dll 檔案。它們自己不能被執行,需要被其他的程式呼叫,幾乎所有的應用程式都需要用到共享庫

  • /usr:軟體預設的安裝位置,存放使用者應用程式和檔案,類似於 Windows 下的 Program Files

  • /media:用於掛載 U 盤、光碟機等系統自動識別的裝置

  • /lost+found:存放系統崩潰或意外關機時產生的碎片檔案,正常情況下是空的

  • /mnt:用於臨時掛載別的檔案系統,比如增加一塊硬碟,需要手動掛載

  • /opt:用於安裝額外軟體所用的目錄,預設是空的

  • /proc:虛擬檔案系統,是系統記憶體的對映。訪問這個目錄可以獲取很多有用的系統資訊

  • /sbin:s 就是 super 的意思,存放只有系統管理員才有許可權執行的命令

  • /srv:存放一些服務啟動後所需要提取的資料

  • /sys:該目錄下安裝了檔案系統 sysfs,該檔案系統是核心裝置樹的一個直觀反映

  • /tmp:存放臨時檔案,所有使用者都可執行寫操作

  • /run:存放程式產生的臨時檔案,系統重啟以後,這個目錄會被清空

 

絕對路徑與相對路徑


1) 絕對路徑:將目錄用完整的路徑表示出來,從根目錄“/”開始,比如 /user/bin,使用絕對路徑可以非常準確的表示一個目錄的位置,只不過路徑較長的時候,輸入會比較麻煩。


下面看一個例子,當以使用者 user1 登入後,使用 pwd (print working directory)命令來列印出當前的工作目錄

$ pwd

/home/user1

/home/user1 就是當前工作目錄的絕對路徑,也是 user1 的家目錄,如上面介紹,普通使用者的家目錄都是在 /home 下面。


2) 相對路徑:顧名思義,就是不用絕對路徑表示,而是用當前工作目錄為起點來表示的相對路徑,比如當前工作目錄為 /home/user1,/home/user1/Desktop 用相對路徑表示即為 ./Desktop 或者直接 Desktop,“.”表示當前工作目錄,“..”表示上一級目錄

$ cd Desktop

$ pwd

/home/user1/Desktop


常用的目錄操作


1) cd:change directory 切換工作目錄,語法格式為 

$ cd [目錄名]


2) pwd:print working directory 列印當前工作目錄,語法格式為 

$ pwd

如上面的例子演示,切換目錄後可以再用 pwd 命令確認一下當前目錄是否正確


3) ls:list,語法格式為 

$ ls [選項] [目錄或檔名]

如果ls 命令後邊是目錄,會顯示目錄下包含的檔案資訊,如果是檔名則會顯示該檔案的資訊,如果沒有跟任何引數則顯示當前工作目錄下包含的檔案資訊。

常用選項: 

-a  顯示所有檔案,包括隱藏檔案

-l   以長格式顯示目錄或檔案的資訊

-d  只顯示目錄本身的資訊,不顯示目錄下包含的檔案

-h  human readable,用人性化顯示的形式檢視,比如以 K (KB),M (MB),G(GB)表示檔案大小


4) mkdir:make directory,建立目錄,語法格式為 

$ mkdir [選項] 目錄名

常用選項:

-p  可以用於建立巢狀的多級目錄


5) cp:copy,複製檔案或目錄

語法格式為 

$ cp [選項] 原始檔或目錄 目標檔案或目錄

常用選項:

-r  如果複製的是一個目錄,則必須使用這個選項,會把目錄下所有的內容都複製到目標目錄中去


6) mv:move,移動檔案或目錄

語法格式為 

$ mv [選項] 原始檔或目錄 目標檔案或目錄

如果移動的是一個目錄,不需要加 -r 選項,可以直接將目錄進行移動


7) rm:remove,刪除檔案或目錄

語法格式為 

$ rm [選項] 檔案或目錄

常用選項:

-r  如果刪除的是一個目錄,則必須使用這個選項

-f  強制刪除,無須使用者確認

一般刪除目錄時,兩個選項會同時使用 -rf,但是建議刪除前先用 mv 命令將待刪除的目錄移動到一個指定的回收目錄中去,等過一段時間確認不再需要這些檔案和目錄,再使用 rm 命令將其刪除。

 

最後


本文介紹了 Linux 系統目錄的結構和它們的用途,目錄相關的概念,以及最常用到的相關命令。結合之前的文章《虛擬機器安裝 Linux 最完整攻略》,大家可以在自己的虛擬機器進行演練,注意系統目錄不要刪除,否則系統可能就崩掉了,最好在自己的家目錄或者臨時目錄中進行操作。




相關閱讀:

《這麼多Linux版本,你究竟該怎麼選擇?》

《虛擬機器安裝 Linux 最完整攻略》

《Vi 和 Vim 的使用》





- The End -


 

相關文章