- 想像一下,你盯著 Linux 中一大堆晦澀難懂的目錄名稱。你想知道應該把特定類型的文件放在哪裡。於是把文件隨意放進了 /usr/share,希望這樣做是正確的。
- 幾天后,你發現應該把它放在 /var/local。
- 我們都有過類似的經驗。 Linux 的目錄結構可能非常令人困惑,甚至有時毫無道理可言。這些名稱究竟代表什麼?哪裡才是放置檔案的「正確」位置?
- 準備好解密 Linux 目錄,因為我們將踏上一段穿越時光的旅程,讓你的未來更加無壓力。在本文中,我們將揭示這些名稱的含義,以及常見類型文件的存放位置。
- /bin
- #這是系統所需的可執行二進位檔案的主要儲存位置(因此被稱為“bin”)。這些基本二進位檔案在啟動過程中由系統需要,以確保成功完成。在這裡,你會找到像 ls 和 top 這樣的基本指令。
- 在啟動過程中,如果 /usr/bin 不可用,/bin 有時會作為一個符號連結提供在頂層。
- /boot
- 這個目錄包含了實際啟動作業系統所需的所有關鍵檔案。其中包括核心檔案、開機載入程式檔案(例如 GRUB)以及適用於現代 UEFI 系統的 EFI 檔案。
- 對於 Linux 系統來說,這個目錄是最重要的目錄之一,因為如果這裡出了問題,你的系統可能無法啟動,甚至不知道從何啟動。
- /dev
- /dev是「device」的縮寫,它是Linux 用來儲存對系統上大多數已連接設備(包括實體設備和虛擬設備)的引用的地方。在這裡,你可以找到硬碟、USB 週邊、虛擬終端甚至空設備的引用,你可以將東西導向這個設備,以便讓它們消失。
- 如果你從命令列存取任何類型的設備,即使它不是實體硬件,很可能它就存在於這裡。
- /etc
- 很有可能你以前曾在 /etc 目錄中研究過。這是 Linux 保存所有核心設定檔的地方,不僅包括自己的程序,還包括你安裝的第三方程式的設定檔。
- 如果你需要修改程式的運作方式、核心網路設定或 crontab,它們都存在於這個目錄中。
#
- /home
- 這是一個更具描述性的頂層目錄之一。這正是使用者的主目錄所在的位置。可以將其視為每個使用者在作業系統中擁有的獨立空間。通常情況下,他們擁有自己對應主目錄中的所有檔案和子目錄。
- 如果在共享機器上查看此目錄,你可能會發現許多以各個特定使用者命名的子目錄。在大多數系統上登入後,你可以使用路徑中的 ~ 字元來引用自己的主目錄。這對應的路徑是 /home/。
- 這是存放僅與你相關的個人文件的最佳位置。圖片、音樂檔案、電子表格或下一部偉大的小說,都應該存放在這裡。你不應該在這裡儲存共享的程式配置或系統級資料。
- /lib, /lib32, /lib64, …
- #這些目錄包含了共享的 C 函式庫和核心模組。這些模組和函式庫是之前我們提到的 /bin 目錄中的可執行二進位檔案所需的基礎。換句話說,為了實際啟動作業系統並使用任何預設的二進位文件,我們需要這些目錄中的庫文件。
- 注意:如果存在多個不同架構的庫文件,你會看到其他的 lib 目錄存在。
- /lost found
- 這個目錄很簡單。在這裡,你會找到一些檔案被損壞,但已經嘗試過恢復它們。這通常是由於意外斷電或有時是硬體故障導致的。
- /media
- 這也非常直覺。這是一個掛載點,用於掛載可移動介質。在歷史上,它用於 CD、軟碟甚至 Zip 磁碟機。現在,如果你掛載任何虛擬 ISO 或 CD 鏡像,它們可以出現在這裡,以及 USB 隨身碟和其他可移動快閃媒體。
- /mnt 這是一個更通用的掛載點,你可以在這裡掛載可移動媒體或整個檔案系統。現在,這通常用於存放外部磁碟、NFS 和其他遠端檔案儲存。
- 這個目錄是空的,你可以自行決定在這裡掛載什麼和如何掛載。
- /opt
- 這是「option」的縮寫,最初用於存放任何附加軟體包。這些軟體包在系統最初發行時並不包含在內,並且需要額外的費用。
- 如今,這是少數幾個可以安裝附加軟體套件的位置之一(無論是否需要額外費用)。在某些情況下,發行版可能根本不使用 /opt,但這是你會找到第三方軟體包資料和它們的靜態設定檔的一個位置。
- /proc
- 這是一個獨特的 Linux 目錄。你不會在這裡儲存任何東西,實際上作業系統也不會在這裡儲存任何東西。這是 Linux 核心的資訊中心。這個目錄中的所有「檔案」並不是普通檔案。它們包含有關進程、記憶體和其他子系統的度量資料。這些特殊檔案就像是窺視核心工作狀況的視窗。
- 透過簡單地讀取這個目錄中的文件,你可以取得一些其他二進位檔案所獲得的相同資料。
- /root
- 這是另一個簡單、直覺的目錄。這是 root 使用者的家目錄。如果你以 root 使用者身分登入系統上,你會發現你的家目錄現在在 /root 而不是預期的 /home/root。這是為了安全考慮,以防萬一 /home 被掛載在一個無法存取或更糟糕的破損的遠端分區上。
- /run
- 這個目錄處理更多的啟動和執行時間資訊。通常你會在這個位置找到進程 ID 或 PID 檔。這些檔案描述了進程運行的位置,以便其他程式可以在稍後找到它並控製或引用它。
- 此外,還可以在這裡放置其他臨時文件,例如鎖定文件和套接字資訊。這個目錄旨在保存運行時信息,而不是持久化數據。
- /sbin
- 和 /bin 類似,/sbin 目錄也包含了系統所需的可執行二進位。不同的是,這個目錄中的二進位具有特殊的用途。它們都專門用於在系統上執行管理員功能。這意味著它們具有強大的能力,可以對作業系統進行重大修改或維護,因此它們通常存在於此處。
- 你不會在這裡找到像 echo 或 cat 這樣的二進位。這個目錄保留給像 fdisk 或 usermod 這樣的工具。
- /srv
- 這是另一個非常通用的目錄。這個目錄用於存放系統負責「提供」的文件。例如,如果該主機是一個 Web 伺服器,你可能會將所有的 HTML 和圖像資源放在這裡。
- /sys
- 根據你所使用的發行版及其版本的不同,你的系統上可能會有或沒有 /sys 目錄。這個目錄與 /proc 目錄類似,它包含設備和內核訊息,但以更結構化的格式呈現。
- /tmp
- 又一個簡單的目錄。這是一個用於暫存檔案的目錄。你可以在這裡儲存幾乎任何你(或程式)喜歡的東西,但不能指望它會一直存在。尤其是在重啟之間。
- 如果你需要暫存一些不重要的資料或檢查某個檔案的輸出格式,將其放在這裡是一個選擇。額外的好處是,如果你忘記了它,它可能會自動消失。
- /usr
- 這個目錄可能需要寫一篇專門的文章來介紹。根據Linux 基金會的FHS 規範,它被描述為:
- 「共享的、只讀的數據。」
- 這實質上意味著它應該能夠在主機之間輕鬆傳輸,並且具有相同的未經修改的結構和層次結構。通常情況下,該目錄中不包含任何獨特的主機資料。背後的理念是,/usr 的整體可以以唯讀模式掛載到另一個系統上而不會出現問題。
- 然而,在實踐中,這個目錄確實被用來儲存任意的資訊。在某些情況下,你會發現文件存放在 /usr/share 或 /usr/local 中。你也會發現程式編譯或自訂腳本被放置在 /usr/local/bin 中。
- 一般來說,建議將不屬於前面任何類別的配置或特殊資料儲存在我們下一個、也是最後一個目錄中。
- /var
- 這是「variable」的縮寫,而這裡正是保存變數資料的地方。
- 以下是一些傳統上保存在這裡的內容:
Printer spools
- Lock files
- Debian apt and other running program caches
- E-mail data
- Logs
#主要的目的是將系統在運行時所使用和修改的任何動態資料保存在/var目錄中。如果你需要記錄日誌或保存動態的 .conf 文件,那麼你來到了正確的地方。
此外,還有 /var/local 目錄,在我的經驗中,它經常成為雜項設定檔和其他不太適合其他類別的資料的綜合儲存目錄。
總結
Linux檔案系統的層次結構非常複雜且有著豐富的演進歷史。一旦你熟悉了這些簡短標題背後的含義,它們開始變得非常直觀。花時間在每個目錄中探索並研究標準本身將使你不僅對放置檔案的位置更加熟悉,也對Linux在基本層面上的工作方式更加了解。
以上是破解 Linux 檔案安放之謎:哪裡才是絕佳檔案歸宿?的詳細內容。更多資訊請關注PHP中文網其他相關文章!