『無慾則無求』Linux基礎 — 15、瞭解Linux目錄結構

(一)學習Linux目錄結構有什麼好處?

Linux系統的最高一級目錄是根目錄(/),相當於windows系統中的計算機。在根目錄下會有一些一級目錄,首先我們要了解這些目錄的作用。(重點)
在這裏插入圖片描述

學習Linux目錄結構有什麼好處?

  • 你會更加熟悉Linux系統的文件目錄結構。
  • 瞭解了目錄結結構之後,以後遇到一些陌生的文件,你就看他放在哪裏,基本上就能猜出來這個文件的大概作用。
  • 如果大家都遵守這樣的目錄,Linux系統的管理將變得非常規範。因爲服務器不是一個人在維護,是一個團隊中很多人一起進行維護。

(二)一級目錄說明

1、一級目錄列表

目錄名 目錄作用
/bin/ 存放系統命令的目錄,普通用戶和超級用戶都可以執行。是/usr/bin/目錄的軟鏈接。
/usr/bin/ 存放系統命令的目錄,普通用戶和超級用戶都可以執行。
/sbin/ 存放系統命令的目錄,只有超級用戶纔可以執行。是/usr/sbin/目錄的軟鏈接。
/usr/sbin/ 存放系統命令的目錄,只有超級用戶纔可以執行。
/boot/ 系統啓動目錄,保存與系統啓動相關的文件,如內核文件和啓動引導程序(grub)文件等。
/dev/ 硬件設備文件保存位置。
/etc/ 配置文件保存位置。系統內所有采用默認安裝方式(rpm安裝)的服務配置文件全部保存在此目錄中,如用戶信息、服務的啓動腳本、常用服務的配置文件等。
/home/ 普通用戶的家目錄。在創建用戶時,每個用戶要有一個默認登錄和保存自己數據的位置,就是用戶的家目錄,所有普通用戶的宿主目錄是在/home/下建立一個和用戶名相同的目錄。如用戶user1的家目錄就是/home/user/,~就是代表當前位置在用戶的家目錄下。
/lib/ 系統調用的函數庫保存位置。是/usr/lib/的軟鏈接。
/lib64/ 64位函數庫保存位置。是/usr/lib6/的軟鏈接。
/lost+found/ 當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這裏。當系統啓動的過程中fsck工具(自動執行)會檢查這裏,並修復已經損壞的文件系統。這個目錄只在每個分區中出現,例如/lost+found就是根分區的備份恢復目錄,/boot/lost+found就是/boot分區的備份恢復目錄。
/media/ 掛載目錄。系統建議是用來掛載媒體設備的,如軟盤和光盤。
/misc/ 掛載目錄。系統建議用來掛載NFS服務的共享目錄。
/mnt/ 掛載目錄。早期Linux中只有這一個掛載目錄,並沒有細分。現在系統建議這個目錄用來掛載額外的設備,如U盤、移動硬盤和其他操作系統的分區
/opt/ 第三方安裝的軟件保存位置。這個目錄是放置和安裝其他軟件的位置,手工安裝的源碼包軟件都可以安裝到這個目錄中。不過還是習慣把軟件放到/usr/local/目錄中,也就是說,/usr/local/目錄也可以用來安裝軟件。
/proc/ 虛擬文件系統。該目錄中的數據並不保存在硬盤上,而是保存到內存中。主要保存系統的內核、進程、外部設備狀態和網絡狀態等。如/proc/cpuinfo是保存CPU信息的,/proc/devices是保存設備驅動的列表的,/proc/filesystems是保存文件系統列表的,/proc/net是保存網絡協議信息的。(不要動就好)
/sys/ 虛擬文件系統。和/proc/目錄相似,該目錄中的數據都保存在內存中,主要保存與內核相關的信息
/root/ root的宿主目錄。普通用戶宿主目錄在/home/下,root宿主目錄直接在“/”下。
/selinux/ Linux系統的增強安全組件的保存位置。
/srv/ 服務數據目錄。一些系統服務啓動之後,可以在這個目錄中保存所需要的數據。(不許動)
/tmp/ 臨時目錄。系統存放臨時文件的目錄,在該目錄下,所有用戶都可以訪問和寫入。我們建議此目錄中不能保存重要數據,最好每次開機都把該目錄清空。
/usr/ 系統軟件資源目錄。注意usr不是user的縮寫,而是“UNIX Software Resource”的縮寫,所以不是存放用戶數據的目錄,而是存放系統軟件資源的目錄。系統中安裝的軟件大多數保存在這裏
/var/ 動態數據保存位置。主要保存緩存、日誌以及軟件運行所產生的文件

2、bin目錄和sbin目錄說明

  • bin目錄和sbin目錄的區別?
    (1)bin目錄和sbin目錄下放的是Linux的系統命令。
    (2)在這兩個bin目錄中放的命令,是普通用戶和超級用戶都可以執行的命令。
    (3)在兩個sbin目錄中放的命令,只有超級用戶才能執行。
    (4)bin是二機制(binary)的縮寫,表示是二進制命令,sbin是(super binary)的縮寫。
  • /bin/目錄和/usr/bin/目錄中命令有什麼區別?
    在Red Hat 6版本,這兩個目錄還是分開的,到Red Hat 7版本,這兩個目錄就合併了。就只剩下一個/usr/bin/目錄。

3、boot目錄說明

boot目錄中的文件,都是系統啓動時必須的。如果誤刪了,系統一定會啓動失敗。沒事別動它。

4、/lib/和/lib64/目錄說明

/lib/和/lib64/目錄中放的是函數庫。函數庫就是程序集合,函數就是程序。

一些需要頻繁調用的程序,就可以封裝成一個函數庫。

函數庫降低了開發人員的開發難度,提升了效率。

所有的成熟語言都會有完整的函數庫的。Linux系統是C語言開發的函數庫。

Linux的函數庫的命名規則:.so+數字結尾命名的文件就是函數庫。

5、/lost+found/目錄說明

這個目錄就是意外崩潰或者關機之後的文件修復目錄。開機時通過fsck工具自動修復,如果自動修復不了,手動其實也解決不了什麼問題,所以這個目錄知道有什麼作用就可以了。

6、/media/、/misc/、/mnt/目錄說明

我們在之前的文章已經解釋了掛載,知道只要是一個已經建立的空目錄就可以作爲掛載點。

那麼系統雖然準備了三個默認掛載目錄/media、/mnt、/misc,但是到底在哪個目錄中掛載什麼設備都可以由管理員自己決定。

例如剛接觸Linux的時候,默認掛載目錄只有/mnt一個,所以養成了在/mnt下建立不同目錄掛載不同設備的習慣。如/mnt/cdrom 掛載光盤,/mnt/usb掛載U盤,這都是可以的。

官方推薦/media目錄掛載光盤,/misc目錄掛網絡存儲設備,/mnt/掛載U盤或者移動盤。

根據自己的需求和使用習慣進行分配就可以。

提示:cgroup目錄,在Red Hat 7版本中就淘汰了。

7、總結

(1)一定要記住的目錄

/bin//sbin//usr/bin//usr/sbin//boot//dev//etc//home//lib//lib64/、/mnt//tmp//root//usr//var/

(2)瞭解即可的目錄

/lost+found//media//misc//opt/

(3)沒事不要動的目錄

/proc//sys//selinux//srv/

提示:

  • 推薦兩個可以做實驗的目錄
    用戶的家目錄
    tmp臨時目錄

(自己創建的隨便刪,系統自帶的或者生成的還是慎重刪)

(三)重要的二級目錄說明

這些二級目錄的主要位置就是在根下的/usr/目錄和/var/目錄中。

1、重要的二級目錄列表

目錄 說明
/usr/lib/ 也是一個應用程序調用的函數庫保存位置
/usr/local/ 手工安裝的軟件保存位置。我們一般建議源碼包軟件安裝在這個位置,不建議放在/opt目錄下。(軟件的安裝位置)
/usr/share/ 應用程序的資源文件保存位置,如幫助文檔、說明文檔和字體目錄
/usr/src/ 源碼包保存位置。我們手工下載的源碼包和內核源碼包都可以保存到這裏。不過一般習慣把手工下載的源碼包保存到/usr/local/src/目錄中,把內核源碼保存到/usr/src/kernels/目錄中。(/usr/src/是軟件安裝包的位置)
/usr/src/kernels/ 內核源碼保存位置
/var/www/html/ RPM包安裝的Apache的網頁主目錄(也就是默認安裝(rpm)的Apache的網頁在這裏,裝完Apache會自動生成/www/html/目錄)
/var/log/ 系統日誌保存位置(默認安裝的軟件的日誌在這裏,手動的不在這裏)
/var/lib/ 程序運行中需要調用或改變的數據保存位置。如MySQL的數據庫保存在/var/lib/mysql/目錄中。(默認安裝的MySQL數據庫的保存位置在/var/lib/mysql/,這裏重點記住)
/var/run/ 一些服務和程序運行後,它們的PID(進程ID)保存位置。是/run/目錄的軟鏈接
/var/spool/ 放置隊列數據的目錄。就是排隊等待其他程序使用的數據,比如郵件隊列和打印隊列
/var/spool/mail/ 新收到的郵件隊列保存位置。系統新收到的郵件會保存在此目錄中
/var/spool/cron/ 系統的定時任務隊列保存位置。系統的計劃任務會保存在這裏

2、總結:

(1)一定要記住的目錄

/usr/local//usr/share//usr/src/或者/usr/local/src//var/log//var/www/html//var/lib//var/run//var/spool//var/spool/mail//var/spool/cron/

(2)瞭解即可的目錄

/usr/lib//usr/src/kernels/

說明:

/usr/src/kernels/是空的,是因爲我們選擇安裝的軟件包是basicserver。

basicserver軟件包中是沒有安裝源代碼的,如果你需要查看內核的源代碼進行學習,可以自己手動安裝。

一定要記住每個目錄的作用,是存放什麼東西的。

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