Linux檔案系統管理 (第二篇)
發表于:2007-05-26來源:作者:點擊數:
標簽:
1-3 建立ext3檔案系統 在上個小節中,我們了解了ext3檔案系統的優鲇及內容,所以在這個小節中,我們將說明如何建立ext3,以加強讀者的實際操作經驗,而建立ext3主要的步驟分為磁碟分割和格式化為ext3。 1-3-1 以fdiSk分割磁碟 「fdisk」是種功能強大的磁碟分
1-3 建立ext3檔案系統
在上個小節中,我們了解了ext3檔案系統的優鲇及內容,所以在這個小節中,我們將說明如何建立ext3,以加強讀者的實際操作經驗,而建立ext3主要的步驟分為磁碟分割和格式化為ext3。
1-3-1 以fdiSk分割磁碟
「fdisk」是種功能強大的磁碟分割工具,管理員可在作業系統安裝期間或是完成后使用,它的指令語法如下:
fdisk/dev/裝置名稱
上式的「裝置名稱」必需視實際的環境而定,本書在此以分割第一顆IDE硬碟上的Master為例,因此輸入的指令及出現的訊息如下:
[root@ns1 root] # fdisk/dev/hda
The number of cylinders for this disk is set to 5005
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1)software that runs at boot time (e.g.,old versions of LILO)
2)booting and partitioning software from other Oss
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help):
在輸入fdisk指令后,該程式會自動偵測硬碟上的磁柱(Cylinder)數量,若磁柱的數量大於1024,則系統會出現以上的警告訊息,其中說明一些開機時執行的軟體(例如舊版的LILO),或是由其中的作業系統分割磁碟時(DOS FDISK或OS/2 FDISK),可能會產生問題,但是
以Fedora Core 而言,您可以忽略這些訊息。
在執行fdiSk后,游標會停留在「Command (m for help):」的訊息處,建議您先輸入」「m」指令,以參考所有可用的選項說明。下表為筆者整理的中文選項說明:
在了解fdiSk指令的基本顯示功能後,接下來本書將說明如何利用fdisk來新增分割區,以下是詳細的步驟及說明:
在開始進行磁碟分割前,建議您先按「p」鈕,以顯示目前存在的分割區內容:
在了解目前的分割區狀況後,您可在「Command(m for help):」
處按「n」鈕以新增分割區,若是在系統中目前並未擁有其他分割區則fdisk程式會出現類似以下的訊息:
Command(m for help):n
Command action
e extended
p primary partition(1-4)
在出現以上的訊息後,此時您有 2 種選擇 :
◆ e :若按「e」(Extended),則表示要新增延伸分割區。
◆ p :若按「p」(Primary),則表示要新增主要分割區。
Command(m for help):n
Command action
1 logical (5 or over)
p primary partition(1-4)
若是在系統中目前擁有其他分割區,則會出現以下的訊息 :
Command(m for help):n
Command action
1 logical (5 or over)
p primary partition(1-4)
◆ I :若按「1」(Logical),則表示要新增邏輯分割區。
◆ p :若按「p」(Primary),則表示要新增主要分割區。
本書以新增一個主要分割區為例,首先輸入「p」後再按 Enter 鈕, fdisk 程式可能會出現以下的訊息:
p
Partition number (1-4) : 1
Partition 1 is a
lready defined. Delete it before re-adding it.
Command (m for help):
在以上訊息中的「Partition number(1-4)」表示 fdisk 要求您指定主要分割區的編號,而筆者在此輸入「1」但卻出現 Partition 1 is already defined。Delete it before re-adding it.」 , 並且跳離開分割區的新增工作。這表示在硬碟上已存在其他分割區,而它們的主要分割區編號為 1 ,所以若要再新增其他的主要分割區,必須使用其他的編號。
以下的范例我們將新增一個編號為4的主要分割區,其訊息如下:
Command (m for help) : n
Command action
e extended
p primary partition (1-4)
p
partition number (1-4): 4
First cylinder (1-5005,default 1):1
Last cylinder or +sizeM or +sizeK (1-653,default653): 653
在上例中,筆者先指定分割區的編號為4,則fdisk程式會出現以下的訊息:
First cylinder (1-5005), default 1)
此處需輸入分割區起始磁柱的值, fdisk 程式也會自動顯示允許輸入的值 (1-5005) ,並且會以允許范圍的第一個數字為預設值 (1) ,所以輸入預設值與直接按 Enter 鈕的功能相同。
Last cylinder or +size or sizeM or +sizeK (1-653, default 653)
此處需輸入分割區結束磁柱的數值, fdisk 程式也會自動顯示允許輸入的值 (1-653) ,並且會以允許范圍的最后一個數字為預設值 (653) ,所以輸入預設值與直接按 Enter 鈕的功能相同。而除了使用磁柱來設定分割區的結束位置外,您也可以使用下表中的格式來進行指定:
注意:
在建立主要分割區時,你可以先建立編號 2 的主要硬碟分割,再建立編號 1 的主要硬碟分割。而在邏輯分割區中,第一個建立的邏輯分割區編號一定是 5 ,但如果在建立了編號 5 和編號 6 號兩個邏輯分割區后,接著刪除編號 5 的邏輯分割區,則原先編號 6 的分割區會變成編號 5.
◆ 在新增 Linux 分割區后很重要的一點是,必須指定分割區的類型,以 ext2 或 ext3 而言,分割區的類型值為「83」。欲指定分割區的類型,您可以在「Command (m for help) :」處按「 t 」鈕,則 fdisk 程式會出現類似以下的訊息:
Command (m for help): t
Partition number (1-4) : 4
Hex code (type L to list codes) : 83
Changed system type of partition 3 to 83 (Linux)
在上述出現的訊息中,首先指定欲變更類型的分割區編號,本書的范例為「4」然后在「Hex code(type L to list codes)」選項中輸入「83」以表示 Linux 分割區。
如果刪除了錯誤的分割區,或是分割的規劃並不滿意,按「q」鈕就可以離開fdisk程式,並且不儲存任何的變更。若是決定儲存新的分割區內容,您應按「w」鈕以離開fdisk程式同時儲存變更,但這些變更的內容需在下次開機時才可生效。
Command (m for help)
The partition table has been altered!
Calling ioct1 () to re-read partition table.
syncing disks.
1-3-2 以mkfs格式化ext3檔案系統
在利用fdisk完成磁碟分割區的建立后,接下來必須將此分割區格式化為ext3檔案系統,此處可使用的指令為「mkfs」,它的語法如下:
mkfs -t ext3 /dev/hdxy
上述語法中的/dev/hdxy表示以分割的磁區,例如本書上例中新增的為第一顆IDE Master上的第4個分割區,則需寫成/dev/hda4。注意一鲇,利用mkfs指令進行格式化時,會刪除此分割區上的所有資料,所以需留意備份的工作。以下是本書執行的范例:
為了存取此分割區的內容,我們必須進行掛載的工作,本書在此假設將此分割區掛載於/test目錄下,以下是一個簡單的范例:
[root@nsl root]# mkdir/test
#新增欲掛載的目錄
[root@nsl root]# vi /etc/fstab
/dev/fda4 /test ext3 defaults 1 2
注意:
有關掛載的詳細說明,請參考稍后「系統掛載- mount」小節內容。
1-4 檔案系統基本指令操作
現在我們對於Linux上的檔案系統已有整體性的了解,接下來就可開始使用系統中的各個檔案功能,但因為Linux的檔案系統包含許多不同的階層目錄,所以必須先學習如何在不同的目錄及檔案問游刀有余,然后才可正確的找出所需的資料。在本小節中,我們將介紹一些基本的檔案系統指令操作,這也是每位使用者都必須具備的基本
知識。
▓ 顯示目前工作目錄 - pwd (Print Working Directory)
這個一個非常常用的指令,它唯一的功能是顯示出目前的工作目錄,因為您常會在目錄中切換的次數太多,而忘了目前目錄的位置。它的用法很簡單,只要直接輸入指令名稱即可:
[jack@nsl jack]$ pwd
/home/jack
▓ 列出目錄內容 – ls (List)
「1s」指令也是管理員天天都會使用的指令,它的功能是顯示出目錄的內容,就好像在
Windows上利用滑鼠雙擊任何資料夾的動作一樣,也等於是DOS中的「dir」指令功能。在目前的工作目錄下直接輸入「ls」可得到以下的結果:
從以上的結果我們可以清楚的了解,目前這個目錄中包含許多檔案,但是先前我們曾提過目錄也是屬於檔案的一種,因此我們無法由以上的資訊來得知何者為目錄。若是要得到類似的詳細資料,您可以使用「-l」參數,它是表示以「Long Format」的格式顯示,同時也可以配
合「-a」(A11)參數以顯示隱藏檔:
在顯示的內容中共包含7個欄位,這些欄位的說明如下:
◆ 使用權限
此欄位是由 10個字母所組成,第一個字母若是「d」(Directory),則表示該記錄為一目錄,「-」表示為檔案,而「l」(Link)表示為連結檔,其余的9 個字母分別代表擁有者(Owner)、群組(Group)和其他人(Other)對該檔案的使用權限,有關權限的說明我們將在下一小節介紹。
◆ 檔案數目
若是檔案的話,則此數字通常為1,如果是目錄,則此數字表示該目錄中包含的子目錄數目(包括隱藏的子目錄)。
◆ 擁有者
通常指的是該檔案的建立者。
◆ 使用群組
指擁有者所屬的群組,在Linux中的群組可以包含許多使用者,而每個使用者也可以隸屬多個群組,這必須依照管理上的
需求而定。
◆ 檔案大小
這個欄位通常是指用位元組(Bytes)為單位的檔案或目錄大小,而目錄大多以4096來表示。
◆ 建立日期
以「月份日期時間」的格式來表示該檔案建立的日期。
◆ 檔名
該檔案的檔名,若是以「.」為開頭的檔案或目錄都具有隱藏的屬性,其中檔名為「.」代表該該目錄本身,而「..」叫代表上一層的目錄。
雖然可以使用ls指令來檢視目錄中的內容,但若是該目錄中包含的檔案或子目錄數目眾多時,您可能會因此而眼花撩亂,此時您可以配合「-F」的參數使用,以利用顏色及符號來顯示不同的檔名。
▓ 目錄切換 – cd (Change Directory)
因為不同的檔案可能存放在檔案系統中的不同位置,所以在執行程式或系統管理工作時,管理員都必須在不同的目錄問切換,此時您就可以使用「cd」指令?!竎d」指令的使用很簡單,以下是幾個常用的方法:
▓ Linux檔案路徑
在此我們要介紹Linux的檔案路徑表示法,因為它沒有微軟產品的「磁碟機」觀念,也就是說在Linux的世界里沒有所謂的磁碟機C,磁碟機D…等等的表示法,它完全是利用目錄與子目錄的階層式(Hierarchical)觀念來表示檔案的儲存位置,因此您需先建立這個新觀念,否則可能會因為先前的觀念而造成您學習Linux的障礙。一般來說,Linux的檔案路徑分為二類:絕對路徑和相對路徑。
所謂「絕對路徑」,就是指由根目錄( / )為起始鲇來表示,例如/etc/ppp/peers/isdn/avm就是絕對路徑,也就是說,若是一個路徑表示法是以根目錄( / )開頭者,都是屬於絕對路徑,若非以根目錄開頭者就稱為相對路徑。
而「相對路徑」是指由目前的目錄開始算起,我們以剛才的絕對路徑為例,若您現在的工作目錄為/etc/ppp,此時相對路徑的表示法為「/peers/isdn/avm」(也可省略為peers/isdn/avm)。因為系統會自動於此路徑前加上目前的工作目錄位置,所以適時的使用相對路徑可以節省您輸入的時間,並避免錯誤產生。
▓ 檔案的復制 / 移動 / 刪除 – cp/mv/rm
不論使用何種作業系統,檔案的復制、移動與刪除可說是檔案系統中最基本的操作技巧,因此您應該多多熟練這些操作,以加速管理時的效率。以下我們就利用幾個范例來說明這些操作:
◆ 檔案復制
如果要將/testl目錄下的filel復制到/test3目錄,並將檔案名
稱改為files2,您可輸入以下的cp (Copy) 指令:
[root@nsl root]# cp/test1/file1/test3/file2
若是要將/dirl目錄下的所有檔案,包括子目錄都復制到/dir2目錄 (變成/dir2/dirl),並變更檔案系統格式,則可以輸入以下的指令:
[root@nsl root]# cp -ax /dir1/dir2
上述指令的參數「-a」是指archive的意思,也就是指復制所有的目錄,並包含子目錄,而「-x」是用來指定復制后,此檔案的格式變為和目的地磁區的檔案系統相同,例如由ext3
變為Windows中的FAT32。
◆ 檔案移動 (更名)
檔案的移動和復制很相似,其差別只是在檔案移動后,原始位置上的檔案會被刪除,也就是等於復制加上刪除的功能。其實檔案移動的指令 -mv (Move),常用來當成檔案更名之用,因為Linux的指令中沒有更名的指令(在DOS中的更名指令為「ren」),所以我們可以利用mv來變更檔案名稱。
如果要將/testl目錄下的filel移動至/test3目錄,並將檔案名稱改為files2,您可輸入以下的指令:
[root@nsl root]# mv /test1/file1 /test3/file2
◆ 檔案刪除
若是某些檔案已不再需要,您可以使用「rm」(Remove)指令來刪除它,如果要將/testl目錄下的filel檔案刪除,您可輸入以下的指令:
[root@nsl root]# rm /test1/file1
在刪除檔案時需注意權限的問題,如果使用者的權限不足以刪除該檔案,則系統會出現以下的錯誤訊息:
[jack@nsl jack]$ rm/test/file1
rm : 是否移除有防寫保護的普通檔案 ˋfile1ˋ ? y
rm :cannot remove ˋfile1ˋ :拒絕不符權限的操作
▓ 目錄的新增/刪除 – mkdir/rmdir
◆ 新增目錄
有時為了集合某些特定的資訊,例如傳真檔案,我們可以新增一個專用的目錄(Directory),它就像是Windows中的「資料夾」(Folder),以下是利用mkdir(Make Directory)指令來新增一個名為「/fax」目錄的方法:
[root@nsl root] # mkdir/fax
◆ 刪除目錄
若要刪除某一目錄,可以使用「rmdir」(Remove Directory)的指令,但是執行之前,必須確保此目錄中沒有任何檔案,否則系統會出現錯誤訊息。如果您要強制刪除目錄及其中的檔案,您可以使用」「rm -rf」指令:
[root@nsl root ]# rmdir/fax
rmdir : [root@nsl root ]# rmdir/fax
rmdir : ˋ/faxˋ:目錄不是空的 →目錄中尚有檔案
[root@nsl root]# rm -rf fax →強制刪除目錄及其中的檔案
在上例中的「-r」參數是指遞回說它會使刪除的動作持續的進行,而「-f」參數是指強制(Force)刪除所有的檔案。
但在執行「rm -rf」指令時需特別注意一鲇,因為它會強制刪除指定目錄及其下的所有檔案及子目錄,而且目錄一經刪除就無法回復,所以若是您在輸入目錄名稱時發生錯誤,例如
將「/testl 」目錄輸入為「/」目錄,則對系統產生的危害實在很大,所以在使用此指令前希望能格外的小心。
▓ 建立連結檔案 - ln
相信大家都知道,執行原始檔案和Windows中的「捷徑」都可以得到相同的結果,因為「捷徑」會將指令引導到原始的檔案,而使用它最大的好處就是節省硬碟空間。例如我們若將一個l MB的檔案利用cp指令復制到另一個目錄中,則對整個硬碟空問來說便減少了1MB,但是若建立此檔案的連結檔案,可以只要花費幾個Bytes的空間,這對大型伺服器
而讠可減少硬碟的消耗量,並且可提升執行的效能,而Linux中的「連結檔案」與Windows中的「捷徑」在觀念上很類似。
其次是,若對連結檔案進行修改,則這些變更也會自動更新原始檔案的內容,但如果使用復制的方式,則需對所有副本及原始檔案進行修改,這會花費許多的時間,而且有時也會產生檔案內容不同步的問題。
如果要在 /test3目錄中建立 /testl/filel檔案的連結,假設它的名稱為filel .1n,則可使用以下的1n (Link)指令:
[root@nsl root]# ln -s /test1/file1 /test3/file1.ln
[root@nsl root]# ls -l /test3
總計 4
lrwxrwxrwx 1 root root 12 11月 3 10:55 file1 .ln -> /test1/file1
.........
上例中的參數「-s 」表示欲建立的是Symbolic Link(也稱為Soft Link),同時您也可以看到此符號連結只佔12 Bytes,而在最后的檔名部份會看到「->」的符號,表示這是一個指向原始檔案的連結檔案,而且系統會以淺藍色來顯。
若在使用ln指令時沒有輸入參數「-s 」,則這種連結就稱為「HardLink」,同時每增加一個Hard Link,則檔案系統就會新增一個i-node,並且利用指標來指向原始檔案的位置,所以Hard Link愈多則產生的指標也愈多,同時佔用硬碟的空間也會呈現倍數增加。
在這種情形下,如果要從硬碟上移除這個檔案,則必須要將它關聯到的所有的Hard Link都刪除。若是在上例中我們使用Hard Link,則其最后的檔名部份並不會出現「->」的符號而且系統會以一般檔案使用的白色來顯示。
[root@nsl root]# ln /test1/file1 /test3/file1.ln
[root@nsl root]# ls -l /test3
總計 8
-rw-r--r-- 2 root root 0 11月 3 10:53 file1.ln
.........
注意:
Hard Link必須建立在同一個磁區中,而且不能使用在目錄上,但Soft Link則可以跨越磁區,同時也可運用在檔案和目錄。
▓ 檢視檔案內容 - cat
熟悉DOS與Windows指令的使用者應該都了解「type」指令的用法,它是用來顯示檔案的內容,而Linux中的「cat 」(Concatenate)指令除了具備「type」指令的基本功能外,還包括由鍵盤讀取資料、將多個檔案合併,以及其他的功能。假設要檢視 /etc/passwd檔案的內容,
則可輸入以下的指令:
[root@nsl root]# cat/etc/passwd
root: x : 0 :0 : root : /root: /bin/bash
bin : x : 1 : bin : /bin : /sbin/nologin
daemon : x : 2 : 2 : daemon : /sbin : /sbin/nologin
adm : x : 3 : 4 : adm : /var/adm : /sbin/nologin
...........
您可以利用cat指令直接在鍵盤中輸入內容,並且將內容儲存為檔案。假設要在鍵盤中輸入一些資料,並將這些資料存放在 /test1 目錄中,同時使用file2.txt的檔名,則可輸入以下的指令:
[root@nsl root]# cat> test1/file2.txt
I Love Linux!
It is a very good O.S. → 在此必須按一次 Enter鈕
→ 按Ctrl+C 以結束輸入工作
上例中的「->」表示Linux中的「導向」,這是很重要的一項功能,我們將在稍后的小節中介紹。在輸入完畢之后按Ctrl+C以結束輸入工作,但須注意一鲇,在輸入最后一行后必須按一次Enter鈕,否則最后一行的內容不會顯示出來。
若是顯示的內容很冗長,此時您可以加入「-b」參數,則系統會在每一行(空白行除外)前加入編號以利辨識。
[root@nsl root]# cat -b /test1/file2.txt
1 I Love Linux!
2 It is very good O.S.
您也可以同時將多個檔案內容合併顯示出來,只要將每個檔案的檔名都輸入指令中,以下的范例是將 /testl/filel.txt、/test1/file2.txt和 /testl/file3.txt三個檔案內容同時顯示出來:
[root@nsl root]# cat /test1/file1.txt/test1/file2.txt/test1/file2.txt
若要將多個檔案內容合併為一個新的檔案,例如希望將 /testl/filel.txt和 /testl/file2.txt的檔案內容合併為new.txt,則可輸入以下的指令:
[root@nsl root]# cat /test1/file1.txt/test1/file2.txt> /test1/new.txt
▓ 一頁一頁顯示檔案內容 - more
相信各位在使用cat指令檢祝文字檔案內容時,一定會經常遇到一個問題,那就時檔案內容太長,往往只能看到最后一頁的內容,這實在是非常的不便,要解決這個問題,可以使用「more 」指令,它可以將檔案內容以一次一頁(或一行)的方式來顯示,例如我們要逐頁檢視
/etc目錄中的imrc檔案內容,則可輸入以下的指令:
[root@nsl root]# more /etc/imrc
#####################################
# Config file for lmlib #
#####################################
在輸入上述的指令后,系統會開啟該檔案的第一頁內容,並且在視窗下方出現類似「--More-- (19%)」的訊息,它表示目前顯示的內容為整個檔案的19% (這個數字依檔案的大小不同會有不同)。若您此時按一下空白鍵(Space),則整個畫面會顯示下一頁的內容,如果按的是Enter鍵,則只會向下多顯示一行的內容。
若是檔案內容包含許多行,而您已知需要的訊息在第幾行的位置,此時可以使用「+行數」的參數來快速到達該行,例如要顯示檔案中由第9頁起的內容,則可輸入以下的指令:
[root@nsl root}# more +9 /etc/imrc
more另一個很有用的參數是「+/字串」,它的功能是幫助您在檔案中尋找出某個字串,然后由該頁開始顯示,例如我們要顯示檔案中第一個do字串出現的頁次及之后的內容,您可以輸入以下的指令:
[root@nsl root]# more +/do/etc/imrc
▓ 互動式操作顯示檔案內容 - less
less指令的功能與more很相似,但是less具有更高的互動能力,您可以使用方向鍵來控制瀏覽的上下左右畫面,並且可以使用熱鍵(HotKey)來執行特定的功能,例如按「H」鍵會出現線上使用說明,而「Q」鍵可以離開瀏覽模式。
以下是以less指令檢視 /etc目錄中imrc檔案內容的方法:
[root@nsl root]# less/etc/imrc
▓ 辨識檔案類型 - file
file 指令可以幫助我們在Linux檔案系統中,辨識許多種類的檔案類型,若為文字檔,它會區分不同的文字檔,例如ASCII、English和 International等,如果是執行檔,則可再細分為ELF、Bourne-Again Shell Script、Bourne Shell Script等類型,以及其他的類型如:符號連結檔、圖形檔、備份檔和壓縮檔等。
以下是利用file指令檢視 /etc目錄下所有檔案類型的部份內容,在訊息結果的左側表示檔案名稱,而右側則為對應的檔案類型:
▓ 輸出檔案內容前面與后面的部份 - head和tail
有時開啟一份數十頁的檔案時,您可能只需要瀏覽最前面的部份,此時使用cat指令就不是很適合,因為一下子出現太多的內容反而會令人無從找起。為了避免這個問題,可以使用head指令,如果沒有加上任何參數,head指令只會顯示檔案的前10行,但也可以用「-行數」
的參數來指定顯示的行數,以下是顯示 /usr/share/magic檔案前3行內容的范例:
和head指令相反的指令是「tail」指令,它可以指定顯示檔案內容的最后行數,例如要顯示/usr/share/magic檔案的最后3行內容,則可輸入以下的指令:
和head指令不同的是,您可以在tail指令中使用「+行數」的參數來指定由第幾行顯示至檔案結尾的內容,以下的范例表示顯示由 /etc/passwd檔案的第5 1行到結尾內容的指令用法:
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|