我的RHCE課堂實驗《檔案和目錄操作》(轉)

BSDLite發表於2007-08-11
我的RHCE課堂實驗《檔案和目錄操作》(轉)[@more@]單元三實驗
檔案和目錄操作

估計用時:1小時30分
目標:熟悉檔案、目錄操作命令的數、語法和幾個檔案的使用。實驗將這些命令組合成一個一般的使用者任務。

實驗前準備:準備一個安裝好的Red Hat Linux 系統,並準備一個叫student 的非特權帳號,其密碼為student。檢查一下指南以確認這個帳號是否已經存在在系統中。如果你的student 帳號還未建立,則按如下次序操作:

1、以root 使用者登入
2、輸入 # useradd student
3、輸入 # passwd student
Changing password for user student
New UNIX password: {在這裡輸入student}
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password {重新輸入student}
passwd: all authentication tokens updated successfully

實驗1:目錄和檔案管理
假設:
你在你的home 目錄中收集了一大堆檔案,而你覺得現在該是將他們整理一下的時候了。你打算建立幾個新的子目錄,並將複製或者移動它們以適合你的安排。除此之外,還有一些檔案你根本用不著,你想刪除它們。

任務:
1、在tty1 上以student登入。密碼為student。

2、剛剛登入後你應該在你的home 目錄中。用"print working directory"命令校驗一下。
$ pwd
/home /student

3、用一下命令檢查一下你在home 目錄中有否檔案:
$ ls
$ ls -a
$ ls -al
為什麼第一個命令和第二個命令返回不同的檔案個數?
從第三個命令的輸出中你看出哪個檔案在你當前的home 目錄中最大?
在home 目錄中有子目錄嗎?

4、你將使用touch 命令來建立一些這個實驗所需要的檔案。關於這個命令的具體問題將在今後的章節中講述。現在,你只需簡單的將下面的命令全盤打出(包括花括號{},還有幾個下劃線 _)。
$ touch {report,memo,graph}_{sep,oct,nov,dec}_{a,b,c}{1,2,3}

5、使用ls 命令檢驗上一個命令的效果。你應該發現在你的home 目錄中有108個(哇……)新建立的空檔案。這些檔案便是你後面實驗所需的資料檔案。如果沒有這些檔案,後面的實驗將無法繼續。

6、為了管理你的檔案你必須建立一些新子目錄。使用mkdir 命令建立你的home目錄的直接子目錄:
$ mkdir "A Reports"
$ mkdir september october november december
再次使用ls 命令檢驗你的工作。

7、在你新建的子目錄中再建立一些其他的目錄,使用如下命令:
輸入下面任一一行:
$ cd A Reports/
或者
$ cd "A Reports"/
改變了當前目錄。然後:
$ mkdir 1 2 3
使用ls 命令校驗你已經在"A Reports"目錄中有了3個子目錄,分別叫做1, 2, 3。

8、將所有含"B"的檔案移出你的home 目錄並以月份分組。做類似這種複雜的通配字元的操作時,通常先將其“預覽”一遍會是個不錯的主意,它可以讓你確認是在正確的檔案上進行了操作。其中一種方法是將你的命令替換成一種“無害”的命令。
$ cd
$ ls -l *dec?b?
你應該看到有9個"december", "b"檔案被列出。現在移動它們:
$ mv *dec?b? december/
列出december 子目錄以確認移動操作順利完成了。
$ ls -l december/
total 0
-rw-rw-r-- 1 student student 0 Oct 16 22:16 graph_dec_b1
-rw-rw-r-- 1 student student 0 Oct 16 22:16 graph_dec_b2
-rw-rw-r-- 1 student student 0 Oct 16 22:16 graph_dec_b3
-rw-rw-r-- 1 student student 0 Oct 16 22:16 memo_dec_b1
-rw-rw-r-- 1 student student 0 Oct 16 22:16 memo_dec_b2
-rw-rw-r-- 1 student student 0 Oct 16 22:16 memo_dec_b3
-rw-rw-r-- 1 student student 0 Oct 16 22:16 report_dec_b1
-rw-rw-r-- 1 student student 0 Oct 16 22:16 report_dec_b2
-rw-rw-r-- 1 student student 0 Oct 16 22:16 report_dec_b3

9、將所有剩下的"B"檔案分別移入相應的目錄:
$ mv *nov?b? november
$ mv *oct?b? october
$ mv *sep?b? september

10、現在你將"A"檔案移動到它們相應對數字的目錄中去:
$ cd "A Reports"/
$ mv ~/*_a1 1/
"a1","september"檔案不需要了。刪除它們並確認剩下的檔案已正確的移動了。
$ cd 1
$ rm *sep*
$ ls
graph_dec_a1 graph_oct_a1 memo_nov_a1 report_dec_a1 report_oct_a1
graph_nov_a1 memo_dec_a1 memo_oct_a1 report_nov_a1

11、將最後的"a2"和"a3"檔案移入相應的數字目錄中去:
$ pwd
/home/student/A Reports/1
使用相對路徑移動"a2"檔案:
$ mv ../../*a2* ../2/
使用絕對路徑移動"a3"檔案
$ mv /home/student/*a3* /home/student/A Reports/3/

12、回到你的home目錄下,並用ls 確認在該目錄下只剩下"c"檔案。

13、每個月的"c1"和"c2"檔案很重要,你想將它們備份到另外一個目錄中去:
$ mkdir /tmp/archive
$ cp report*[1-2] /tmp/archive/
除此之外所有December月份的檔案應備份到/tmp/archive 目錄中。注意使用 -i 選項以使cp 命令在覆蓋檔案時提示。
$ cp -i report_dec* /tmp/archive/
cp: overwrite '/tmp/archive/report_dec_c1'? n
cp: overwrite '/tmp/archive/report_dec_c2'? n

14、現在你已經備份了一些對你來說重要的"C"檔案,你想刪除所有還留在你home 目錄裡的檔案。用萬用字元*c*檢驗所剩餘的檔案。為什麼你不能用rm *c*刪除?
(提示:試試ls *c* 看看)

15、刪除所剩餘的"c"檔案:
$ rm *c[1-3]
$ ls
A Reports december november october september

完成:
一個良好組織的home 目錄,檔案都放在合適的子目錄中。一些檔案備份在/tmp/archive 目錄中。

實驗2:檢測磁碟使用程度

假設:
你想檢測系統上每個檔案系統所剩餘的空間。除此之外,你需要有個包含最佔磁碟空間的目錄的列表。

任務:
1、使用df 檢測檔案系統上剩餘的空間。輸出將類似於如下所示(這當然取決於你的機器安裝和配置)。
$ df
Filesystem 1k-blocks Used Available User% Mounted on
/dev/hda5 12880648 1634344 10591988 14% /
/dev/hda1 36566 2476 32202 8% /boot

2、注意預設的df 命令是以塊(block)為單位輸出的。試著使用-h 和-H 選項產生更人性化的輸出:
$ df -h
Filesystem 1k-blocks Used Available User% Mounted on
/dev/hda5 12G 1.6G 10G 14% /
/dev/hda1 36M 2.5M 31M 8% /boot

$ df -H
Filesystem 1k-blocks Used Available User% Mounted on
/dev/hda5 13G 1.7G 10G 14% /
/dev/hda1 37M 2.6M 32M 8% /boot
兩種選項有何區別?(用man df 查詢答案)

3、在home 目錄下使用du (disk usage)命令檢測你的home 目錄使用了多少空間。務必使用-h 選項產生人性化輸出。

實驗3:檢測文字檔案

任務:

1、首先,我們需要一個文字檔案:
$ cd
$ cp /usr/share/dict/words .

2、使用cat 命令顯示檔案
$ cat words
Aarhus
Aaron
Ababa
......輸出省略......
Zulu
Zulus
Zurich

3、cat 在這種情況下是一個糟糕的選擇,因為輸出翻屏得很快。試著使用less:
$ less words
Aarhus
Aaron
Ababa
......輸出省略......
abducts
Abe
abed
......輸出省略......
用less 你可以往回翻(用b)和往前翻(用空格鍵),一次一個螢幕。

4、若你只需要快速瀏覽一下一個檔案的頭部或者尾部,你可以使用head 或者tail:
$ head words
Aarhus
Aaron
Ababa
aback
abaft
abandon
abandoned
abndoning
abandonment
abandons

$ tail words
zoologically
zoom
zooms
zoos
Zorn
Zoroaster
Zoroasterian
Zulu
Zulus
Zurich
使用man 搜尋head 和tail,找到可以修改顯示行數、和顯示的相對位置的選項。

哪個命令可以顯示某檔案的前50行?
哪個命令可以顯示某個檔案從25000行開始,到其結束?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-945750/,如需轉載,請註明出處,否則將追究法律責任。

相關文章