2007年9月25日 星期二

Linux 裝置的命名方式

硬碟分割區簡單說明:

Linux中,硬碟分割區(Partition)包含
  • Primary 主要分割區 (編號1-4)
  • Extended 延伸分割區
    • Logical 分割區 (編號5-15)
  • swap 分割區 (交換空間)
限制
  • 主要分割區+延伸分割區的數目小於等於四 (P+E<=4)
  • 延伸分割區的數目小於等於一 (意即最多一個)
  • 分割至少存在一個主要分割區或延伸分割區
  • 最多可用分割區 3(主要)+11(邏輯)=14 (個)

Linux 中的裝置

在 Linux 中,裝置可被表現成裝置檔案,這些虛造的檔案被放置於 /dev 中,以下有些範例:
root@linuxdiary:/dev# ls -al
brw-rw---- 1 root disk 3, 0 2007-09-25 22:23 hda
brw-rw---- 1 root disk 8, 0 2007-09-25 22:23 sda
crw------- 1 root tty 4, 64 2007-09-25 22:23 ttyS0
之前文章可知 c 為 Character Device 字元裝置,b 為 Block Device 區塊裝置,在 Linux
中所有硬碟都以區塊裝置表示。

裝置檔案的命名規則

以下來到了正題,hda 是怎麼來的。命名規則:
以一般狀況來說,IDE 驅動控制的名稱通常為 /dev/hda 至 /dev/hdd,(如:硬碟A /dev/hda
代表第一顆磁碟,硬碟C /dev/hdc 代表第三顆磁碟),詳細說明如下表

磁碟名稱磁碟控制磁碟順序
/dev/hdaIDE0Master
/dev/hdbIDE0Slave
/dev/hdcIDE1
Master
/dev/hddIDE1
Slave

以一般的個人電腦而言,一個IDE 控制器可裝設兩顆磁碟,舉例來說 /dev/hda 即為第一個磁碟
裝在第一個 IDE 控制器,/dev/hdd 代表第二個磁碟裝在第二個 IDE 控制器。
那分割區呢?通常,一旦硬碟被分割,分割區會以數字的方式附加在磁碟名稱後面,舉例來說,
第二個磁碟的第二個分割區會命名為 /dev/hdb2,詳細如下:

磁碟名稱磁碟控制磁碟順序
分割區形式分割區號碼
/dev/hda1IDE0Masterprimary1
/dev/hda2IDE0Masterprimary2
/dev/hda3IDE0Masterprimary3
/dev/hda4IDE0MasterswapNA
/dev/hdb1IDE0Slaveprimary1
/dev/hdb2IDE0Slaveprimary2
/dev/hdb3IDE0Slaveprimary3
/dev/hdb4IDE0Slaveprimary4

磁碟分割表預留4個位置(hda1~4)給主要分割區與延伸分割區,第五個之後
為邏輯分割區(hda5~...)

SCSI的命名規則


SCSI (Small Cumpter System Interface)介面的磁碟也遵循之前所述的命名規則,只是以 sd
代替 hd。但對 Linux 而言, sd 不是單只 SCSI 磁碟,凡是支援熱插拔 (Hot Swap)的硬體,
皆屬於 sd 系列,如 USB 隨身碟,SATA 硬碟等等都以 sd 命名,以下上列表:

磁碟名稱磁碟控制磁碟順序分割區形式分割區號碼
/dev/sda116primary1
/dev/sda216primary2
/dev/sda316primary3

(磁碟控制,磁碟順序的號碼是任意填上的,不必也不要跟著這樣設定)

2007年9月19日 星期三

Linux 目錄內容

要查出目錄中的內容,可以使用 ls 指令:
root@dhcppc3:~# ls -al
total 124
drwxr-xr-x 19 root root 4096 Jun 3 09:11 .
drwxr-xr-x 22 root root 4096 Sep 17 01:00 ..
-rw------- 1 root root 485 May 21 23:02 .ICEauthority
drwx------ 2 root root 4096 May 20 22:27 .Trash
-略-

drwxr-xr-x 第一個字母代表檔案類型,意義分別如下:
  1. -:File 檔案
  2. d:Directory 目錄
  3. l:Symbolic Link 象徵連結
  4. c:Character Device 字元裝置(如鍵盤)
  5. b:Block Device 區塊裝置(如硬碟)
  6. s:Socket 插槽(本機提供呼叫的服務程式)

drwxr-xr-x 後九個字母代表檔案權限,意義分別如下:
  1. [ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)
  2. 以三個字母為一組,第一組說明所有者的權限
  3. 第二組說明群組的權限
  4. 第三組代表其他人的權限
以下圖片說明各區塊意義

  1. 檔案類型
  2. 檔案權限
  3. 檔案:此檔案的硬式連結數目;目錄:該目錄下有多少目錄(註一)。
  4. 擁有者
  5. 擁有者群組
  6. 檔案大小,以位元組表示。若想以其他單位表示,可在旗標中加上 -h (human),會表是為 xxx K bytes 或 xxx M bytes。若是目錄,則表示儲存目錄資訊所佔的空間,最小值為4096 bytes。
  7. 最後修改時間
  8. 檔案名稱
註一:在此以範例說明第三個欄位的意義
在 /tmp 底下發現一目錄,且 ls -l 時,第三個欄位的數字為 3
bang@linuxdiary:/tmp$ ls -l
drwxr-xr-x 3 ikujyh ikujyh 4096 2008-01-01 02:04 ls_test
bang@linuxdiary:/tmp$ cd ls_test
bang@linuxdiary:/ls_test$ ls -la
total 12
drwxr-xr-x 3 ikujyh ikujyh 4096 Jan 1 02:08 .
drwxrwxrwt 5 root root 4096 Jan 1 02:04 ..
drwxr-xr-x 2 ikujyh ikujyh 4096 Jan 1 02:08 dir_demo
-rw-r--r-- 1 ikujyh ikujyh 0 Jan 1 02:08 file_demo
當我們在 ls_test 目錄底下,以 ls -la 列出所有檔案內容時,發現共有三個目錄 (包含上一層目錄,工作目錄),對目錄而言,第三個欄位的數字代表目錄下包含多少目錄。
那檔案呢?檔案的這個數字刺甚麼意思,來試試用 ln 來製作硬式連結:
bang@linuxdiary:/ls_test$ ln file_demo hard_link1
bang@linuxdiary:/ls_test$ ls -l
total 4
drwxr-xr-x 2 ikujyh ikujyh 4096 Jan 1 02:08 dir_demo
-rw-r--r-- 2 ikujyh ikujyh 0 Jan 1 02:08 file_demo
-rw-r--r-- 2 ikujyh ikujyh 0 Jan 1 02:08 hard_link1
bang@linuxdiary:/ls_test$ ln file_demo hard_link2
bang@linuxdiary:/ls_test$ ls -l
total 4
drwxr-xr-x 2 ikujyh ikujyh 4096 Jan 1 02:08 dir_demo
-rw-r--r-- 3 ikujyh ikujyh 0 Jan 1 02:08 file_demo
-rw-r--r-- 3 ikujyh ikujyh 0 Jan 1 02:08 hard_link1
-rw-r--r-- 3 ikujyh ikujyh 0 Jan 1 02:08 hard_link2


對檔案而言,這個數字即代表硬式連結的數目,故此數字是檢視檔案是否有硬式連結的重要方式。

2007年9月17日 星期一

Linux 指令 - 一般格式

通常執行命令時會在一個叫做 shell 的視窗中:
>ls -la /tmp
  • >:command prompt 命令提示字元,系統會以一個符號讓使用者知道,系統已準備好接受命令,通常以 $ 或 # 等表示方法,並可能包含其他資訊,如主機名稱,使用者身分等。
  • ls :command 一個有效的命令。(shell 的內建命令,存放在 PASH 所列目錄中的程式或程序稿,或是包含完整路徑的命令。)
  • -la :flags 旗標
  • /tmp :arguments 參數

注意:
  • Shell 是一種解釋命令意義的程式,Linux 中預設的 shell 是 GNU 參考 sh 所寫出的版本,稱為 bash (Bourne-Again Shell)。
  • Linux 的命令列是有大小寫之分的 (case-sensitive)。


Flags (旗標)的說明:
Shell 只要在命令列上遇到 - (dash)號,會自動判斷為旗標,不管 - 出現的位置,但事實 - 有兩種格式,如以下:
  1. Short Format: - ,一個字元,一個 Flag
  2. Long Format : -- ,一個單字
警告:
  • 通常短格式 - 後,不可能不會遇到如 ls -directory /tmp。因為一個字元,代表一個 Flag。
  • 由於有減號的關係,ls 認出 -l 是一個旗標而非檔名。然而並非所有命令都強調,旗標前都要有減號,最著名的例子為 tar 和 ps。
  • 以上說的是通則,可幫助學會命令的語法,但許多特殊命令不可一慨而論。