Linux系統的最高一級目錄是根目錄(/
),相當於Windows系統中的計算機。在根目錄下會有一些一級目錄,首先我們要了解這些目錄的作用。(值得花點時間了解一下)
CentOS 6
的根目錄內容如下圖所示:
學習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系統的學習。