【Linux文件系統】目錄結構

有沒有剛進入Linux世界時,對著黑乎乎的終端,輸入一個?ls /?后,看著蹦出來的一堆名字 like?bin,?etc,?usr,感覺一頭霧水,像是在看天書?

別擔心,你不是一個人。Linux的文件系統就像一個超級有條理的公司總部大樓,每個部門(目錄)都有其嚴格規定的職責和存放的資料。今天,就讓我當你的導游,帶你逛逛這座“大樓”,保證你逛完以后,再也不會迷路!

目錄

一、目錄結構全景圖

二、核心目錄

2.1 核心功能區 (/bin, /sbin, /lib, /etc, /dev)

2.2 用戶與數據區 (/home, /root, /tmp, /var)

2.3 軟件與擴展區 (/usr, /opt)

2.4 虛擬與內核區 (/proc, /sys)

2.5 雜項區 (/boot, /mnt, /media, /run)

三、實踐建議與注意事項


一、目錄結構全景圖

Linux文件系統采用樹狀結構,所有文件和目錄都從根目錄/開始延伸。這種層級設計遵循Filesystem Hierarchy Standard(FHS)標準,確保不同發行版具有一致性。以下是核心目錄的層級示意圖:

根目錄/
├── bin:存放常用普通命令(ls、cp等)
├── sbin:存放系統管理員命令(shutdown、reboot等)
├── dev:設備文件目錄(硬盤、鼠標等設備映射文件)
├── etc:系統配置文件目錄(網絡、用戶配置等)
├── lib:系統庫文件目錄(程序運行所需共享庫和內核模塊)
├── mnt:掛載目錄(臨時掛載U盤、移動硬盤等)
├── opt:第三方軟件存放目錄
├── proc:虛擬文件系統(系統進程和內核信息)
├── tmp:臨時文件目錄(重啟后文件刪除)
├── usr:用戶文件目錄
│   ├── usr/bin:存放更多系統命令
│   ├── usr/sbin:存放更多管理員命令
│   ├── usr/lib:存放庫文件
│   ├── usr/share:存放共享數據
│   └── usr/local:存放用戶自行編譯安裝的軟件
├── var:可變文件目錄(日志、郵件等)
└── sys:虛擬文件系統(內核與用戶空間交互,硬件相關信息)

二、核心目錄

2.1 核心功能區 (/bin, /sbin, /lib, /etc, /dev)

這一片區域是公司的“核心研發與運維部門”,系統能否正常啟動和運行,全靠它們。

  • /bin?(Binaries) - 基礎命令倉庫

    • 職責:存放所有用戶(包括管理員)都能使用的最基礎、最必要的命令。比如文件操作命令?ls,?cp,?mv,?rm,系統管理命令?ps,?kill,?echo?等等。

    • 打個比方:就像大樓里的公共工具墻,誰都可以拿來用,螺絲刀、鉗子、萬用表,都是日常維修必備的。

    • 注意:這里的命令是系統啟動和恢復所必需的,甚至在急救模式下也可能需要用到。

  • /sbin?(System Binaries) - 管理員專屬工具箱

    • 職責:存放系統管理員用于系統管理和修復的命令。普通用戶默認無法使用。比如磁盤分區?fdisk、網絡配置?ifconfig、系統初始化?init、文件系統檢查?fsck

    • 打個比方:這是機房和電房的鑰匙,只有物業經理(root用戶)才有權限動用,涉及整個大樓的水電安全,可不能隨便給人玩。

    • 小知識:在現代發行版中,/bin?和?/sbin?通常是?/usr/bin?和?/usr/sbin?的軟鏈接,但邏輯上的區別依然存在。

  • /lib?&?/lib64?(Libraries) - 共享庫文件

    • 職責:存放被?/bin?和?/sbin?中的程序所依賴的共享庫文件(類似于Windows里的DLL文件)。這些是許多程序正常運行所必需的“基礎零件”。

    • 打個比方:就像是核心部門所需要的公共基礎零件庫/bin?和?/sbin?的工具要正常工作,就得來這里找它們需要的“螺絲”和“齒輪”(.so文件)。

  • /etc?(Etcetera) - 系統配置中心

    • 職責系統全局配置文件的聚集地。幾乎所有系統和重要軟件的配置都存放在這里。比如用戶賬戶密碼文件?/etc/passwd,網絡配置?/etc/network/,軟件源列表?/etc/apt/sources.list

    • 打個比方:這里是公司的中央檔案室和規章制度部。所有部門和員工(程序)該怎么運作,都得遵循這里定下的規矩。改動這里的文件要萬分小心,改錯了可能導致服務甚至整個系統無法啟動!

  • /dev?(Devices) - 設備管理處

    • 職責:這是一個非常有趣的目錄,它不包含任何真正的文件,而是包含了一系列的設備文件。在Linux中,“一切皆文件”,硬件設備也被抽象成了文件。比如?/dev/sda?代表你的第一塊硬盤,/dev/null?是一個“黑洞”設備,/dev/random?是隨機數發生器。

    • 打個比方:這是整棟樓的設備總控開關面板。每個開關(文件)都對應一個真實的設備(燈、空調、電梯)。你想操作硬件,就得通過這個面板來“按開關”。

2.2 用戶與數據區 (/home, /root, /tmp, /var)

這一片區域是“員工辦公區”和“數據流轉中心”,充滿了活力和變化。

  • /home?- 員工宿舍

    • 職責:存放所有普通用戶的家目錄。每個用戶都會在這里有一個以自己用戶名命名的文件夾(如?/home/alice)。用戶對自己的家目錄有完全的控制權,可以在這里存放文檔、圖片、下載、個人配置等所有私人文件。

    • 打個比方:這簡直是員工的私人臥室和書房,關起門來你想怎么布置就怎么布置,系統一般不會來干涉你。這是系統重裝時最需要備份的目錄!

  • /root?- 董事長辦公室

    • 職責:這是系統管理員(root用戶)的家目錄。它沒有放在?/home?下,是為了在?/home?目錄無法掛載等極端情況下,root用戶依然能有一個可用的工作環境。

    • 打個比方董事長的獨立辦公室,就在核心機房旁邊,安全且獨立,確保在任何情況下大佬都能掌控全局。

  • /tmp?(Temporary) - 公共休息區茶幾

    • 職責:存放臨時文件。所有用戶和程序都可以在這里寫入臨時文件。這些文件通常會在每次系統重啟時被清空。

    • 打個比方:就像公司入口處的臨時物品寄存柜或者會議室里的白板,寫寫畫畫很方便,但別指望明天來看內容還在。

  • /var?(Variable) - 數據監控室

    • 職責:存放經常變化的(Variable)數據,比如日志、緩存、數據庫文件等。這是一個非常重要的目錄,系統管理員會經常來這里排查問題。

    • 打個比方:這是公司的運營監控中心和郵件收發室,所有動態的數據都在這里流動和記錄。

    • 重點子目錄

      • /var/log系統日志和應用程序日志都在這里。系統出了啥問題,第一反應就是來這“查監控錄像”。

      • /var/cache:應用程序的緩存數據

      • /var/www:通常用來存放網站的文件(如果你是Web服務器的話)。

      • /var/lib:存放應用程序的狀態信息和數據,比如數據庫的文件(/var/lib/mysql)。

2.3 軟件與擴展區 (/usr, /opt)

這片區域是“業務擴展部”和“第三方合作辦公室”,負責為系統添加更多功能。

  • /usr?(Unix System Resources) - 軟件資源總部

    • 職責:這是Linux系統中最大、最龐雜的目錄之一,可以理解為 Windows 下的?C:\Program Files?和?C:\Windows?的混合體。它包含了所有非系統運行所必需的應用程序、庫、文檔等資源。

    • 打個比方:這是公司的主營業務大樓,里面包含了各種業務部門、共享會議室和資料庫。系統啟動后,絕大部分操作都在這里進行。

    • 重點子目錄

      • /usr/bin:系統安裝的大多數用戶命令都在這里。數量和重要性都遠超?/bin

      • /usr/sbin:系統安裝的大多數管理員命令

      • /usr/lib:上述命令所需的共享庫

      • /usr/share:存放架構無關的只讀數據,比如文檔、圖標、字體、時區數據等。

      • /usr/local:這是手動編譯安裝軟件的默認位置。當你從源碼編譯一個程序時,通常會被安裝到這里。這樣做的好處是與系統自帶的軟件隔離開,避免混亂,方便管理。它是?/usr?里的“特權部門”。

  • /opt?(Optional) - 第三方軟件包廂

    • 職責:通常用來安裝第三方大型商業軟件獨立性很強的軟件包。這些軟件的所有文件(二進制、庫、數據)都會放在同一個以軟件名命名的子目錄下(如?/opt/google/chrome/),卸載時直接刪除整個目錄即可,非常干凈。

    • 打個比方:像是大樓里租給外部公司(如Google, Oracle)的獨立辦公室,他們自己管理自己的一切,與本公司業務相對獨立,搬走時也清清爽爽。

2.4 虛擬與內核區 (/proc, /sys)

這片區域是“科幻區”,這里的“文件”不是真的存儲在硬盤上,而是內核提供的運行時信息接口。

  • /proc?(Processes) - 進程信息鏡象館

    • 職責:這是一個虛擬文件系統,它里面的“文件”是系統內存的映射。通過查看這些特殊的“文件”,可以獲取到系統內核和正在運行的進程的實時信息。每個正在運行的進程都有一個以它的PID命名的目錄(如?/proc/1234)。

    • 實操一下:試試在終端里輸入?cat /proc/cpuinfo,它會立刻顯示出你CPU的詳細信息。再輸入?cat /proc/meminfo,查看內存使用情況。是不是很神奇?

    • 打個比方:這是一個魔法水晶球,通過它可以看到系統內部每一個進程的實時狀態和系統的各項參數,但它本身并不是一個實物倉庫。

  • /sys?(System) - 硬件設備信息鏡象館

    • 職責:同樣是虛擬文件系統,在Linux 2.6內核中引入。它提供了一個比?/proc?更規整的接口來訪問和管理內核和設備驅動的參數。與硬件、設備驅動、內核模塊相關的信息更多地放在這里。

    • 打個比方:這是另一個魔法控制臺,它更專注于展示和控制連接到系統的硬件設備,比如USB、PCI設備等的底層設置。

2.5 雜項區 (/boot, /mnt, /media, /run)

  • /boot?- 系統啟動艙

    • 職責:存放系統啟動所需的文件,包括Linux內核鏡像、初始RAM磁盤鏡像(initrd)以及引導加載程序(如GRUB)的文件。這個目錄通常獨立分區,以防主分區損壞導致無法啟動。

  • /mnt?(Mount) &?/media?- 外部設備接待處

    • 職責:都是用于手動掛載其他文件系統的臨時掛載點

    • 區別/media?通常由系統自動掛載可移動設備,比如U盤、光盤。插入U盤后,你很可能會在?/media/your-username/?下看到它。而?/mnt?通常由管理員手動臨時掛載一些設備,比如另一個硬盤分區或網絡共享。

  • /run?- 運行時數據前臺

    • 職責:一個較新的臨時文件系統,存放自系統啟動以來的運行時信息,例如運行的進程的PID文件、鎖文件、設備鎖文件等。它代替了舊版的?/var/run,旨在提供更早可用的臨時空間。

三、實踐建議與注意事項

1. 權限敏感目錄

  • 修改/etc/sbin等目錄需謹慎,建議備份后操作。
  • 使用sudo執行管理員命令,避免直接以root用戶登錄。

2. 臨時文件管理

  • 程序生成的臨時文件應存放在/tmp,并設置自動清理策略。
  • 避免在/tmp存放重要數據,以防系統重啟后丟失。

3. 第三方軟件安裝

  • 優先使用發行版官方倉庫安裝軟件,減少依賴沖突。
  • 必須手動安裝時,優先選擇/opt/usr/local,并記錄安裝路徑。

4. 硬件交互

  • 通過/dev目錄操作硬件時,需確認設備文件權限及所有者。
  • 使用udev規則動態管理設備文件,提升靈活性。

逛完這一圈,是不是感覺清晰多了?最后給你兩個最重要的忠告:

  1. 不要動?/?目錄下的任何你不認識的文件夾!?尤其是?/etc,?/bin,?/sbin?等核心目錄,胡亂刪除或修改文件分分鐘讓你的系統崩潰。

  2. 重要個人文件請一定放在?/home?你的用戶目錄下,并養成定期備份的好習慣。這樣即使系統重裝,只要不格式化?/home?分區,你的數據就還在。

Linux的目錄結構設計體現了Unix哲學的一種美:一切皆文件,并且每個目錄都有單一且明確的職責。理解了這套規則,就能更自信地在Linux世界里探索和解決問題了。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94247.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

螺旋槽曲面方程的數學建模與偏導數求解

螺旋槽曲面的數學描述 在鉆頭設計和機械加工領域,螺旋槽的幾何建模至關重要。螺旋槽通常由徑向截形繞軸做螺旋運動形成,其數學模型可通過參數方程和隱函數方程兩種方式描述。 設螺旋槽的徑向截形方程為: y=f(z)y = f(z)y=f(z) x=xcx = x_cx=xc? 其中 xcx_cxc? 為常數,…

線性回歸:機器學習中的基石

在機器學習的眾多算法中,線性回歸無疑是最基礎也是最常被提及的一種。它不僅在統計學中占有重要地位,而且在預測分析和數據建模中也發揮著關鍵作用。本文將深入探討線性回歸的基本概念、評估指標以及在實際問題中的應用,并通過一個模擬的氣象…

編程刷題-資料分發1 圖論/DFS

P2097 資料分發 1 題目描述 有一些電腦,一部分電腦有雙向數據線連接。 如果一個電腦得到數據,它可以傳送到的電腦都可以得到數據。 現在,你有這個數據,問你至少將其輸入幾臺電腦,才能使所有電腦得到數據。 輸入格式 第…

RabbitMQ:延時消息(死信交換機、延遲消息插件)

目錄一、死信交換機【不推薦】二、延遲消息插件【推薦】2.1 安裝插件【Linux】2.2 安裝插件【Windows】2.3 如何使用延時消息:生產者發送消息時指定一個時間,消費者不會立刻收到消息,而是在指定時間之后才收到消息。 延時任務:設置…

動學學深度學習05-深度學習計算

動學學深度學習pytorch 參考地址:https://zh.d2l.ai/ 文章目錄動學學深度學習pytorch1-第05章-深度學習計算1. 層(Layer)與塊(Block)1.1 什么是深度學習中的“層”?1.2 什么是“塊”(Block&…

智慧工廠煙霧檢測:全場景覆蓋與精準防控

智慧工廠煙霧檢測:構建工業安全的智能防線(所有圖片均為真實項目案例)在工業4.0時代,智慧工廠通過物聯網、人工智能與大數據技術的深度融合,實現了生產流程的數字化與智能化。然而,工廠環境中的火災隱患始終…

@JsonIgnoreProperties注解詳解

JsonIgnoreProperties是 Jackson 庫中的一個重要注解,用于在 JSON 序列化(對象轉 JSON)和反序列化(JSON 轉對象)過程中??控制屬性的可見性??。它提供了更高級別的屬性忽略能力,特別適合處理復雜場景。一…

紅酒數據集預處理實戰:缺失值處理的 5 種打開方式,從入門到進階一步到位

在數據分析與建模流程中,缺失值處理是數據預處理階段的關鍵步驟,直接影響后續模型的準確性與穩定性。本文以紅酒數據集為研究對象,詳細介紹如何通過基礎統計方法(均值、中位數、眾數)、完整案例分析(CCA&am…

Node.js 開發 JavaScript SDK 包的完整指南(AI)

一、核心概念SDK 包定義 專為特定服務/平臺封裝的工具庫,提供標準化 API 調用、錯誤處理、類型聲明等功能。示例:支付寶 SDK、AWS SDK、微信小程序 SDK。技術棧選擇 語言:JavaScript/TypeScript(推薦 TS,便于類型提示&…

Redis實戰-基于Session實現分布式登錄

1.流程分析1.1發送短信驗證碼提交手機號的時候要進行校驗手機號,校驗成功才會去生成驗證碼,將驗證碼保存到session,發生他把這部分那。1.2短信驗證碼登錄/注冊如果提交手機號和驗證碼之后,校驗一致才進行根據手機號查詢用戶&#…

瘋狂星期四文案網第47天運營日記

網站運營第47天,點擊觀站: 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 今日訪問量 今日搜索引擎收錄情況 必應現在是邊收錄邊k頁面 百度快倒閉 網站優化點 完善工作流,全面實現文案自動化采集,se…

Vue生命周期以及自定義鉤子和路由

Vue生命周期常用的onMounted掛載后執行和onUnmounted卸載前以及onupdated更新后實際上用react對比就是useEffect&#xff0c;而且掛載順序也是子組件先于父組件然后往外的棧結構&#xff0c;先進后出。1.Vue的生命周期<template><h2>當前求和為{{ sum }}</h2>…

探索Thompson Shell:Unix初代Shell的智慧

引言 在計算機科學的漫漫長河中&#xff0c;Thompson Shell 無疑占據著舉足輕重的開創性地位&#xff0c;它是 Unix 系統的第一個 shell&#xff0c;誕生于 1971 年&#xff0c;由計算機領域的傳奇人物 Ken Thompson 開發。在那個計算機技術剛剛起步、硬件資源極度匱乏的年代&a…

MySQL B+ 樹索引詳解:從原理到實戰優化

引言在現代數據庫應用中&#xff0c;查詢效率是影響系統性能的關鍵因素之一。而索引&#xff0c;尤其是 B 樹索引&#xff0c;是 MySQL 中最常用、最重要的性能優化手段。正確使用索引可以將查詢時間從毫秒級降低到微秒級&#xff0c;極大地提升應用響應速度。1. B 樹索引的重要…

計算機內存中的整型存儲奧秘、大小端字節序及其判斷方法

目錄 一、回顧與引入&#xff1a;整數在內存中的存儲方式 為什么要采用補碼存儲&#xff1f; 二、大小端字節序及其判斷方法 1、什么是大小端&#xff1f; 2、為什么存在大小端&#xff1f; 3、練習 練習1&#xff1a;簡述大小端概念并設計判斷程序&#xff08;百度面試…

Redis 最常用的 5 種數據類型

Redis 支持多種靈活的數據類型&#xff0c;每種類型針對特定場景優化。以下是 **Redis 最常用的 5 種數據類型**及其核心特點和應用場景&#xff1a;1. 字符串&#xff08;String&#xff09;描述&#xff1a;最基本的數據類型&#xff0c;可存儲文本、數字&#xff08;整數/浮…

【嵌入式】RK3588 對比 NVIDIA Jetson,Radxa Rock 5B vs Orange Pi 5 Max

RK3588這個芯片,適合AI應用么,為什么這么貴呢 AI 邊緣盒子里的旗艦芯 深度分析一下 RK3588(瑞芯微 Rockchip RK3588) 為什么被很多人關注在 AI 應用,以及它價格偏高的原因。 ?? 1. RK3588 的基本情況 制程:8nm(Samsung 8nm LP) CPU:8 核 big.LITTLE 架構(4 Cortex-…

暴雨讓高性能計算更“冷靜”

當AI大模型的參數突破萬億&#xff0c;當深地探測的精度邁向微米&#xff0c;當數字經濟的脈搏與千行百業深度共振&#xff0c;算力已成為驅動時代向前的核心引擎。然而&#xff0c;傳統風冷技術在高密度算力需求面前漸顯乏力——機柜內的熱浪如同無形的枷鎖&#xff0c;既制約…

SpringAI集成MCP

文章目錄1_調用公用MCP2_Stdio方式3_Stdio實現原理4_SSE方式5_自定義MCP客戶端6_MCP Server權限控制SpringAI 通過 SpringBoot 集成擴展了 MCP Java SDK &#xff0c;提供了客戶端和服務端 starter&#xff0c;讓 AI 應用程序快速支持 MCP。接下來直接演示。 1_調用公用MCP 在…

Spring Start Here 讀書筆記:第10章 Implementing REST services

REST 服務可用于實現兩個應用之間的通訊&#xff0c;包括 Web 應用中的客戶端和服務器之間&#xff0c;移動應用與后端服務之間&#xff0c;或兩個后端服務之間。 10.1 使用 REST 服務在應用之間交換數據 REST端點是應用程序通過 Web 協議公開服務的方式&#xff0c;因此也稱…