天天看點

Linux學習第二道坎——系統目錄結構及其作用

Linux學習第二道坎——系統目錄結構及其作用

如果說Linux學習的第一道坎是系統安裝及對磁盤分區的了解,那麼第二道坎就應該是對Linux系統目錄結構及其作用的掌握了(這裡主要指根目錄 / 下的一級目錄)!

随着Linux的不斷發展,Linux的主要目錄也有些微小的調整,當然不同的發行版本之間也有些細微的差别,不過主要目錄結構是不會有太大的變動的!

廢話不多說,直接開機跑起Linux來拉出目錄一個一個講!這裡主要以CentOS 8 x64為藍本進行講解,其主目錄結構如圖所示:

.

├── bin -> usr/bin

├── boot

├── dev

├── etc

├── home

├── lib -> usr/lib

├── lib64 -> usr/lib64

├── media

├── mnt

├── opt

├── proc

├── root

├── run

├── sbin -> usr/sbin

├── srv

├── sys

├── tmp

├── usr

└── var

在講解各個目錄的作用前先來簡要講一下截圖上有些特别的地方:

1、高亮的淺藍色檔案夾(bin、sbin、lib和lib64)表示它們是一些符号連結(Symbolic Link,也叫軟連結,類似Windows的快捷方式),Linux一共有兩種連結類型,另一種是硬連結(Hard Link);

硬連結:在Linux系統中,儲存在磁盤中的目錄或檔案不論是什麼類型,都會給它配置設定一個索引節點(Inode:Index node),多個檔案(名)可以同時指向同一個索引節點,當最後一個指向目标索引節點的檔案(名)被删除後,檔案的資料塊才會被真正删除;這裡檔案(名)通過索引節點進行真實檔案的連結(引用)就叫硬連結:

  軟連結:删除軟連結,其指向的真實目錄或檔案不會被删除;删除軟連結指向的真實目錄或檔案,則該目錄或檔案的所有軟連結都失效:

2、綠色背景的目錄(tmp)表示它是所有使用者都有權讀寫的目錄;

好了,現在來講解每個目錄的作用:

/bin:bin是binary的縮寫,它是 /usr/bin 的軟連結目錄,該目錄主要用于存放普通使用者(非root使用者)可執行的指令程式,即普通指令程式存放目錄,例如 ls、cd、pwd、cat、mv、cp、su等等;

/boot:見名知義,該目錄是系統啟動引導目錄,其中存放了Linux系統核心檔案和引導檔案,包含了系統啟動過程中所需的所有内容;

/dev: dev是device的縮寫,用于存放所有非可移動的硬體裝置和終端裝置,該目錄展現一Linux系統中一切皆檔案的思想,Linux中的裝置管理器程式——udev主要就管理着該目錄下的裝置節點,注意與 /media、/mnt 、/proc 和 /sys 等目錄的差別;

/etc:etc是etcetera的縮寫(表示一些零碎檔案的存放目錄),主要用于存放系統管理所需的各種配置檔案(靜态檔案),是Linux系統的神經中樞!

/home:普通使用者的主(家)目錄,主要用于存放普通使用者的使用者資料;

/lib:lib是library的縮寫,它是 /usr/lib 的軟連結目錄,該目錄是共享标準程式庫(也叫動态連結庫,類似windows中的*.dll檔案)的存放目錄,系統開機引導程式以及 /bin 和 /sbin 目錄中的指令程式一般都會調用該目錄中對應的lib;

/lib64:同 /lib 類似,它是 /usr/lib64 的軟連結目錄,隻是存放的是64位的标準程式庫;

/media:media是媒體、媒介的意思,該目錄主要用于挂載可移除裝置,例如U盤、CD光牒、移動硬碟等,還有已經淘汰了的軟碟等;

/mnt:mnt是mount的縮寫(裝載、挂載的意思),該目錄主要用于臨時挂載其他檔案系統或裝置,相對于 /media 目錄主要用于自動挂載裝置,/mnt 目錄一般用于手動挂載裝置;

/opt:opt是option的縮寫(可選),該目錄主要用于安裝一些可選的第三方應用程式,安裝在該目錄的程式,它的所有資料、庫檔案等等都是放在同一個目錄下,不會影響系統的其他任何設定,所安裝的程式不需要了可以直接删除(注意與 /usr/local的差別);

/proc:proc是process的縮寫(程序、過程),該目錄是虛拟的,即實體磁盤上不是存在這個目錄的,它是系統運作時,記憶體中的系統資訊和所有程序資訊的映射,可以通過該目錄來擷取系統資訊和程序資訊;

/root:系統超級管理者root使用者的主(家)目錄,主要用于存放root使用者的使用者資料;

/run:該目錄用于存放系統運作時所需的檔案,每次系統都會重新生成或修改該目錄中的檔案資料,系統運作過程中也會不時地修改該目錄中的資料,另外,以前是放置在 /var/run 目錄中的,現在 /var/run 目錄成了 /run 目錄的軟連結目錄(獨立自主了!);

/sbin:sbin是super binary的縮寫,它是 /usr/sbin 的軟連結目錄,該目錄主要用于存放超級管理者root使用者可執行的指令程式,即超級管理者指令程式存放目錄,例如普通使用者需要 sudo 才能執行的指令一般都存放于此;

/srv:srv是service的縮寫,該目錄用于存放某些服務程式的特定服務資料,例如有些發行版本會在安裝配置完FTP伺服器後,在該目錄建立一個ftp子目錄用于存放FTP服務資料;

/sys:sys是system的縮寫,該目錄也是一個虛拟目錄,主要用于收集和存放系統核心裝置資訊,主要指各類系統核心裝置及其驅動資訊,例如塊裝置block、總線bus、核心kernel、電源power等等;

/tmp:tmp是temp的縮寫,該目錄主要用于存放使用完後可以随時銷毀的臨時檔案,如果是系統或應用程式自動産生的臨時檔案,系統或應用程式一般也會自動删除這些臨時檔案,當然使用者也可以主動在此存放一下臨時檔案,該目錄所有使用者都可讀寫;

/usr:usr是unix system resource的縮寫,是最龐大的一個目錄,所有的應用程式或程式庫幾乎都安裝或放置在該目錄下,包括前面講到的普通使用者和超級管理者使用者的各類指令程式及程式庫,根目錄下的/bin、/sbin、/lib 和 /lib64 都隻是該目錄下某個子目錄的軟連結目錄!該目下的應用程式相關的手冊和其他文檔也幾乎都存放在該目錄中(有點像Windows平台下的【 C:Windows + C:Program Files + C:Program Files (x86) 】);

/var:var是variable的縮寫(變化的),該目錄主要用于存放頻繁變化的檔案,比系統和各種服務的輸出日志,注意與 /tmp目錄的差別;

Linux根目錄下的主要目錄就講完了,接下來再講一下我們伺服器運維過程中使用多非常多的一個重要目錄—— /usr/local 目錄:

/usr/local:該目錄主要用于存放那些手動安裝的軟體(即不是通過RPM、apt-get等包管理安裝的軟體),該目錄與它的上級目錄 /usr 具有非常相似的子目錄結構,一般情況下由包管理器安裝的軟體會直接存放于 /usr 下,而我們手動安裝的軟體通常會選擇放在 /usr/local 下:

最後,還有一個不常用到的目錄也提一下,那就是系統崩潰等出現檔案丢失時,用于存放丢失檔案的目錄—— /lost+found :

/lost+found:該目錄也位于根目錄下,隻是在非ext2/ext3格式的檔案系統中一般情況下是見不到它的(在ext2/ext3格式的檔案系統下每個分區預設都會有一個lost+found目錄),另外“lost+found”是一個完整的目錄名哦!一般在系統出現崩潰,有系統或服務丢失的檔案需要存儲時,會自動建立該目錄,并将相關檔案存入其中,待後面進行恢複時找回,該目錄預設隻有root使用者能打開。當然,我們也可以手工建立該目錄,隻是建立該目錄的指令不是普通的 mkdir 指令,而專用的 mklost+found 指令:

最後的建議:Linux主要目錄結構及其作是是學習Linux必過的一關,一下子記不住就多記幾次,同時可以類比着Windows來輔助了解,每天拿出來看一遍,再加上日常的各類服務的搭建,慢慢就記住了!

原文位址

https://www.cnblogs.com/xuruiming/p/12894277.html