1. 程式人生 > >12、Linux一級子目錄學習

12、Linux一級子目錄學習

Linux一級子目錄學習

Windows:PE
Linux:ELF:可執行的可鏈接的文件格式
文件系統(rootfs):根文件系統
FHS:Linux

下面開始了解/目錄下的一級子目錄,有以下一些:
簡單介紹
/boot
/boot:系統啟動的時候主要用到的一些相關的文件:如內核,initrd(系統啟動流程重要的),以及grub(MBR只是一個存儲空間,起作用的是grub:bootloader,這個才是主要的程序),都在/boot/目錄下.

/dev:設備文件
技術分享圖片

設備文件:
塊設備:隨機訪問(可以實現隨機訪問的數據),數據塊(數據被分成一個一個的塊)
字符設備:線性訪問模型(有次序的訪問)
如:鍵盤,顯示器都是線性訪問模型
特殊文件沒有大小(可以看到上圖大小是10,5,這些不是他們的大小),只有元數據,如上圖的c設備,還有b設備;這是他們的設備號:主設備號(major)和次設備號(minor)|2013年馬哥視頻中這一段會有嘈雜的響聲

/etc
配置文件的主要存放路徑,這裏主要是純文本的配置文件

/home:
用戶的家目錄,每一個用戶的家目錄通常默認為/home/USERNAME
在自己的家目錄下是有所有權限的,root的用戶的家目錄就是/root
root用戶的家目錄就是/root,沒有/home
工作中的root用戶不經常登錄的,因為root的權限非常的大
只有在管理員的權限要做的時候才用到root用戶

/lib:
主要是存放庫文件。
當然除了lib存放庫文件,還有其他存放在了/lib/modules:內核模塊文件
靜態庫:Linux的是 .a
動態庫: window的是.dll
Linux的是.so(shared object)稱為動態庫也稱為(共享庫)
技術分享圖片

上圖表示的是:我的共享庫給你用,你的ls就可以用,但是你ls移植到了另外一個環境,你的ls就不能用了,因為另一個環境沒有ls的共享庫,也就是圖中的.so

庫文件是不能單獨執行的,只能被調用,因為沒有訪問入口

/media:/mnt:這兩個是我們經常用於掛載點的目錄
我們光盤放進光驅以後,必須關聯到某一個樹的根節點上,才能訪問
/media通常掛載移動設備的
/mnt:是掛載額外的臨時文件系統,cd-rom常可以掛載到這裏

/misc:雜項
/opt:可選目錄,第三方官方的程序的安裝目錄,現在比較多放在了/usr/local

/proc:這個是一個偽文件系統
這裏所有顯示的文件,其實是內核映射的文件,一般是內核的可調參數
所以我們所說的系統調優跟這個很大相關,但是這也是非常難理解的目錄
/sys 這是另一個偽文件系統,這個不是內核映射文件,是跟硬件設備相關的屬性映射文件
通常實現對硬件相關的信息映射

[root@www sys]# ls
block bus class dev devices firmware fs hypervisor kernel module power

/tmp:臨時文件,可以用其他用戶查看,還有一個臨時文件目錄在var/tmp下面
每一個可以在裏面創建文件,當然也只能創建自己的文件(主要是因為其他屬組是t權限沒這是個特殊權限,其他兩個是u+s,g+s。這個是o+t)
/var:可變化的文件,隨著運行系統的時間,這個文件會越來越大
[root@www sys]# ls /var/
account cache(緩存) db games gopher lib lock(鎖文件) mail opt run(存儲進程,有pid) tmp (第二個臨時文件目錄) ypadm crash empty gdm kerberos local log(日誌) nis preserve spool var
run裏存放的有pid,這裏存放的就是進程IP號

/bin:可執行文件,用戶命令
/sbin:管理命令
s可以理解成super,所以,這兩個裏面放的是程序,lib放的是庫,這兩個程序運行的時候可能依賴於這個/lib裏面的庫,每一個庫就有可能用到配置文件,配置文件在哪裏啊,就在/etc下

/usr:這個不是user的簡寫,s表示的是shared ,r就是read-only
/usr表示的就是:全局的共享的只讀文件
/usr/bin
/usr/sbin
/usr/lib
為什麽要多這麽一個路徑呢
/bin和/sbin是跟系統啟動相關的,而/usr/bin,和/usr/sbin是跟系統正常功能相關的,當然這只是方便大家認識做的分類,所以/usr/lib也是庫文件存放路徑
對於操作系統立場來講,上面的是必須的,而下面的/usr/local/*就不是必須的,存放的是第三方軟件的東西,但不影響系統的啟用
/usr/local:
/usr/local/bin
/usr/local/sbin
/usr/local/lib
之前的目錄(usr/bin;usr/sbin;usr/lib)沒有了是不能正常啟動的,但是第三方的路徑下格式化了也是沒有問題的,系統是可以啟動的。

命名規則:

1、長度不能超過255個字符;
2、不能使用/當文件名
3、嚴格區分大小寫
Linux是沒有註冊表的概念
所以弄出的系統可以隨時移植

軟件包管理
應用程序
程序,Architecture
C語言:源代碼——》(編譯)二進制格式
腳本:解釋器(二進制程序)
技術分享圖片

技術分享圖片

配置文件(程序啟動的時候,就是去讀取了這些文件的內容,說白了就是一些變量)
類如dir=/path/to/somewhere的
比如httpd的服務,會確定網站目錄也是以這一種形式記錄的

程序組成部分:
二進制程序/bin,/sbin之類的
庫/lib這類的
配置文件/etc下之類的
幫助文件:/usr/share之類的

glibc(最最底層需要的庫):很多服務都依賴這個庫
而Apache可能需要更多需要的庫
所以隨著服務軟件越來越多,就是會產生越多越多的庫

我們之前就說過我們Linux的一些一級目錄
根文件系統詳解
技術分享圖片技術分享圖片

其中
/lib庫文件
/etc/配置文件
/bin/二進制文件
/sbin/二進制文件
這四個很重要
技術分享圖片

幫助文件/usr/share/man(usr不是user的縮小,而是“全局的共享的只讀目錄”的意思)
當然,我們之前說過我們Linux下還有一個目錄用於安裝程序的
技術分享圖片

/usr是操作系統核心功能,可以單獨分區(應該單獨分區)
Window重新格式化C盤,而Linux可以只格式化跟目錄,不影響/usr/
技術分享圖片

/usr/local是一個獨立王國,這裏運行的各種獨立的軟件,他的裏面的東西,他自己就有二進制/bin,/sbin之類的。完全依靠他們這個目錄,也能獨立運行起來的
在這裏一般就是安裝第三方軟件的(像oracle經常安裝在這裏)
/opt
以前比較老的軟件,默認安裝的話,都是安裝在這裏
/proc和/sys默認是空的,並且不能單獨分區,管理內核非常重要的
/dev/設備,不能單獨分區(對Linux而言,一切皆文件)
udev(根據內核的信息動態的在/dev下創建設備文件)
/home只需要創建其他用戶的時候,都會創建其他用戶的家目錄在這裏
/root:root管理員的家目錄,其實管理員是沒有家目錄,不能單獨分區
/var:有了它,能夠對我們管理增加方便,我們應該對它單獨分區,剛開始很小,隨著使用得過程中,日誌信息不斷的增多
/boot:存放的是內核,initrd(initramfs);系統的啟動過程(一般情況下,/boot目錄應該單獨分區)

系統啟動

POST--》BIOS(HD)—》MBR(bootloader能識別文件系統結構(ext2,ext4,xfs這些))—》內核(文件系統是內核的功能)—》啟動文件系統(boot目錄)

12、Linux一級子目錄學習