文章目錄
(一)學習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軟件包中是沒有安裝源代碼的,如果你需要查看內核的源代碼進行學習,可以自己手動安裝。
一定要記住每個目錄的作用,是存放什麼東西的。