『學了就忘』Linux基礎 — 15、瞭解Linux系統的目錄結構

繁華似錦Fighting發表於2021-11-01

Linux系統的最高一級目錄是根目錄(/),相當於Windows系統中的計算機。在根目錄下會有一些一級目錄,首先我們要了解這些目錄的作用。(值得花點時間瞭解一下)

CentOS 6的根目錄內容如下圖所示:

image

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

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

1、一級目錄說明

(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/

4)提示:

推薦兩個可以做實驗的目錄:

  • 使用者的家目錄。
  • tmp臨時目錄。

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

2、重要的二級目錄說明

這些二級目錄的主要位置就是在根下的/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軟體包中是沒有安裝原始碼的,如果你需要檢視核心的原始碼進行學習,可以自己手動安裝。

提示:記住每個目錄的作用,是存放什麼東西的就可以了,方便以後我們對Linux系統的學習。

相關文章