Linux學習筆記[3] - Linux系統結構(磁盤分區、文件系統、文件類型)


磁盤及分區

  設備管理 在 Linux 中,每一個硬件設備都映射到一個系統的文件,對於硬盤、光驅等 IDE 或SCSI 設備也不例外。Linux 把各種 IDE 設備分配了一個由hd 前綴組成的文件;而對於各種 SCSI 設備,則分配了一個由 sd 前綴組成的文件。

  例如,第一個IDE 設備,Linux 就定義為 hda;第二個IDE 設備就定義為 hdb;下面以此類推。而 SCSI 設備就應該是sda、sdb、sdc 等。

  分區數量 要進行分區就必須針對每一個硬件設備進行操作,這就有可能是一塊IDE硬盤或是一塊SCSI硬盤。對於每一個硬盤(IDE 或SCSI)設備,Linux 分配了一個 1 到16 的序列號碼,這就代表了這塊硬盤上面的分區號碼。

  例如,第一個IDE 硬盤的第一個分區,在 Linux 下面映射的就是 hda1,第二個分區就稱作是hda2。對於 SCSI 硬盤則是 sda1、sdb1等。

  各分區的作用 在 Linux 中規定,每一個硬盤設備最多能有4 個主分區(其中包含擴展分區)構成,任何一個擴展分區都要占用一個主分區號碼,也就是在一個硬盤中,主分區和擴展分區一共最多是 4 個。

  對於早期的DOS 和 Windows(Windows 2000 以前的版本),系統只承認一個主分區,可以通過在擴展分區上增加邏輯盤符(邏輯分區)的方法,進一步地細化分區。

  主分區的作用就是計算機用來進行啟動操作系統 的,因此每一個操作系統 的啟動,或者稱作是引導程序,都應該存放在主分區上。這就是主分區和擴展分區及邏輯分區的最大區別。

  我們在指定安裝引導Linux 的bootloader 的時候,都要指定在主分區上,就是最好的例證。

  Linux規定了主分區(或者擴展分區)占用 1 至 16 號碼中的前4 個號碼。

  以第一個IDE 硬盤為例說明,主分區(或者擴展分區)占用了hda1、hda2、hda3、hda4,而邏輯分區占用了 hda5 到hda16 等12 個號碼。

  因此,Linux下面每一個硬盤總共最多有 16 個分區。

  對於邏輯分區,Linux規定它們必須建立在擴展分區上(在 DOS 和 Windows 系統上也是如此規定),而不是主分區上。

  因此,我們可以看到擴展分區能夠提供更加靈活的分區模式,但不能用來作為操作系統 的引導。除去上面這些各種分區的差別,我們就可以簡單地把它們一視同仁了。

  分區指標

  對於每一個Linux 分區來講,分區的大小和分區的類型是最主要的指標。

  容量的大小讀者很容易理解,但是分區的類型就不是那么容易接受了。

  分區的類型規定了這個分區上面的文件系統的格式。

  Linux支持多種的文件系統格式,其中包含了我們熟悉的FAT32、FAT16、NTFS、HP-UX,以及各種Linux 特有的Linux Native和Linux Swap分區類型。在Linux 系統中,可以通過分區類型號碼來區別這些不同類型的分區。

文件系統

  Linux繼承了Unix操作系統結構清晰的特點。在linux下的文件結構非常有條理。但是,上述的優點只有在對linux相當熟悉時,才能體會到。

  /

根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。

  /bin

bin就是二進制(binary)英文縮寫。在一般的系統當中,你都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄,比如 ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中的文件都是可執行的、普通用戶都可以使用的命令。作為基礎系統所需要的最基礎的命令就是放在這里。

  /boot

Linux的內核及引導系統程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位於這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄。

  /cdrom

這個目錄在你剛剛安裝系統的時候是空的。你可以將光驅文件系統掛在這個目錄下。例如:mount /dev/cdrom /cdrom

  /dev

dev是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部設備。但是這里並不是放的外部設備的驅動程序。這一點和我們常用的windows,dos操作系統不一樣。它實際上是一個訪問這些外部設備的端口。我們可以非常方便地去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。

  /etc

etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。我們要用到的網絡配置文件,文件系統,x系統配置文件,設備配置信息,設置用戶信息等都在這個目錄下。

  /home

如果我們建立一個用戶,用戶名是"xx",那么在/home目錄下就有一個對應的/home/xx路徑,用來存放用戶的主目錄。

  /lib

lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連接共享庫的。幾乎所有的應用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什么操作,一旦發生問題,你的系統就不能工作了。

  /lost+found

在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,並修復已經損壞的文件系統。有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。

  /mnt

這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如有cdrom 等目錄。可以參看/etc/fstab的定義。有時我們可以把讓系統開機自動掛載文件系統,把掛載點放在這里也是可以的。主要看/etc/fstab中怎么定義了;比如光驅可以掛載到/mnt/cdrom。

  /media

有些linux的發行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅動器等等。

  /opt

這里主要存放那些可選的程序。你想嘗試最新的firefox測試版嗎?那就裝到/opt目錄下吧,這樣,當你嘗試完,想刪掉firefox的時候,你就可 以直接刪除它,而不影響系統其他任何設置。安裝到/opt目錄下的程序,它所有的數據、庫文件等等都是放在同個目錄下面。

  /proc

可以在這個目錄下獲取系統信息。這些信息是在內存中,由系統自己產生的。操作系統運行時,進程信息及內核信息(比如cpu、硬盤分區、內存信息等)存放在這里。/proc目錄偽裝的文件系統proc的掛載目錄,proc並不是真正的文件系統,它的定義可以參見 /etc/fstab

  /root

Linux超級權限用戶root的家目錄。

  /sbin

這個目錄是用來存放系統管理員的系統管理程序。大多是涉及系統管理的命令的存放,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的;我們記住就行了,凡是目錄sbin中包含的都是root權限才能執行的。

  /selinux好像是對SElinux的一些配置文件目錄,SElinux可以讓你的linux更加安全。

  /srv 服務啟動后,所需訪問的數據目錄,舉個例子來說,www服務啟動讀取的網頁數據就可以放在/srv/www中

  /sys

Linux內核中設計較新的一種虛擬的基於內存的文件系統,它的作用與proc 有些類似,但除了與 proc 相同的具有查看和設定內核參數功能之外,還有為 Linux 統一設備模型作為管理之用。

  /tmp

臨時文件目錄,用來存放不同程序執行時產生的臨時文件。有時用戶運行程序的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。

  /usr

這是linux系統中占用硬盤空間最大的目錄。用戶的很多應用程序和文件都存放在這個目錄下。在這個目錄下,你可以找到那些不適合放在/bin或/etc目錄下的額外的工具。比如像游戲啊,一些打印工具拉等等。/usr目錄包含了許多子目錄:/usr/bin目錄用於存放程序;/usr/share用於存放一些共享的數據,比如音樂文件或者圖標等等;/usr/lib目錄用於存放那些不能直接運行的,但卻是許多程序運行所必需的一些函數庫文件。你的軟件包管理器(應該是“新立得”吧)會自動幫你管理好/usr目錄的。

  /usr/local

這里主要存放那些手動安裝的軟件,即不是通過“新立得”或apt-get安裝的軟件。它和/usr目錄具有相類似的目錄結構。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面,我想這應該是個不錯的主意。

  /usr/share

系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。

  /var

這個目錄的內容是經常變動的,看名字就知道,我們可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日志的目錄。/var/www目錄是定義Apache服務器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放地。

文件類型

  在介紹屬性時,提到了最前面的標志(d或-)可以表示目錄或文件,那就是不同的文件種類。Linux的文件種類主要有下面這幾種:

  普通文件(regularfile):就是一般我們存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如[-rwxrwxrwx]。另外,依照文件的內容,又大致可以分為:

  純文本文件(ASCII):這是Unix系統中最多的一種文件類型,之所以稱為純文本文件,是因為內容為我們可以直接讀到的數據,例如數字、字母等等。設置文件幾乎都屬於這種文件類型。舉例來說,使用命令“cat~/.bashrc”就可以看到該文件的內容(cat是將文件內容讀出來)。

  二進制文件(binary):我們在GNU發展史中提過,系統其實僅認識且可以執行二進制文件(binary file)。Linux中的可執行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令cat就是一個二進制文件。

  數據格式的文件(data):有些程序在運行過程中,會讀取某些特定格式的文件,那些特定格式的文件可以稱為數據文件(data file)。舉例來說,Linux在用戶登入時,都會將登錄數據記錄在 /var/log/wtmp文件內,該文件是一個數據文件,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因為它是屬於一種特殊格式的文件。

  目錄(directory):就是目錄,第一個屬性為 [d],例如[drwxrwxrwx]。

  連接文件(link):類似Windows下面的快捷方式。第一個屬性為[l],例如 [lrwxrwxrwx]。

  設備與設備文件(device):與系統外設及存儲等相關的一些文件,通常都集中在 /dev目錄。通常又分為兩種:

  塊(block)設備文件:就是存儲數據以供系統存取的接口設備,簡單而言就是硬盤。例如一號硬盤的代碼是 /dev/hda1等文件。第一個屬性為[b]。

  字符(character)設備文件:即串行端口的接口設備,例如鍵盤、鼠標等等。第一個屬性為 [c]。

  套接字(sockets):這類文件通常用在網絡數據連接。我們可以啟動一個程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性為 [s],最常在/var/run目錄中看到這種文件類型。

  管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]。

加載程序

  LILO(LInux LOader),LILO代表Linux加載程序。LILO是一個在系統啟動時運行的程序,它允許選擇用於引導計算機的操作系統

  GNUGRUB(簡稱“GRUB”)是一個來自GNU項目的多操作系統啟動程序。GRUB是多啟動規范的實現,它允許用戶可以在計算機內同時擁有多個操作系統,並在計算機啟動時選擇希望運行的操作系統。GRUB可用於選擇操作系統分區上的不同內核,也可用於向這些內核傳遞啟動參數。

相關用戶

  普通用戶可以在其權限許可的范圍內使用系統資源,而超級用戶(用戶名為root)不僅可以使用系統中的所有資源而且可以管理系統資源。

工作方式

  Linux的工作方式分為字符工作方式和圖形工作方式。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com