和 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 最完整攻略》,大家可以在自己的虛擬機器進行演練,注意系統目錄不要刪除,否則系統可能就崩掉了,最好在自己的家目錄或者臨時目錄中進行操作。
相關閱讀:
- The End -