?? 臺大計中unix講義.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.linuxforum.net/books/jy/M.924786531.A -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><PRE>發信人: albin (阿樂斌), 信區: LINUX
標 題: 臺大計中UNIX講義:UNIX的文件處理(LINUX選修課參考)
發信站: 碧海青天 (Thu Apr 22 22:08:51 1999), 站內信件
臺大計算機中心網路推廣協會
網路課程講義
課程名稱:使用UNIX
上課日期:82年11月2日
講師:原孝忠
———————————————————————————
<<<版權聲明>>>
本著作物版權屬於國立臺灣大學電子計算機中心。為了推廣網路的使用,除了下列的限
制之外,任何人均可以任何型式復制或修改這份講義。
一、不得有任何的商業行為
二、復制或修改這份講義時,必須將本版權聲明列入,并注明之
三、國立臺灣大學電子計算機中心不對修改過後的內容負任何的責任
———————————————————————————
□前言
在你使用UNIX之前,你必須在workstation上有account(帳號),你才能進去使用。
在login:出現後,打入帳號名稱,然後輸入密碼,現在你已經完成login 的動作,進入
UNIX了。在進入之後,系統會啟動 "shell",這個程式會接受你打的指令,去執行它,
shell 有好幾種,有csh tcsh sh bash ksh ...,我主要指的是csh 。基本上,我們待
會談的指令都是在shell 下輸入的。
當你輸入set 指令,你會看到一些變數,來看幾個重要的:
home : 家。Home是你擁有的地方,你可以在這個目錄下放置任何東東。你一進
入系統,一定是先到這里的。
path : 路徑。通常執行檔是放在不同的地方,系統會順著path中的目錄一個個
去找執行檔。
term : 終端機。表示現在的終端機形態,常用vt100 、vt102 、ansi。
set <name>=xxxx 就可以設定變數的值,$<name> 代表這個變數。
<eg> %set term=vt100
%set path=($home/bin $path)
%echo $term
vt100
%
□檔案系統介紹
UNIX的檔案系統呈樹狀結構,包含了目錄(Directory)和檔案(file) 。如果說你以前有
接觸過DOS ,那應該不陌生;如果沒有,那你應該仔細瞧瞧。
一、目錄(Directory)
基本上,目錄是用來分類檔案的。一個目錄下面可以包含許多檔案,或是許多
目錄,而這些下層的目錄就叫″子目錄″ (subdirectory) ,它們也都具有相
同性質。由這些目錄所構成的一層層分枝,看起來就像一棵樹,所以才叫樹狀
結構,而最上面的目錄稱作″根目錄″。
一個目錄在建立的時候,具有兩個基本項目:″.”和″..”。”.”指的
是目錄本身,而″..”指的是上一層的目錄,這兩個是一直跟著目錄共存亡
的。
這是檔案系統簡圖,很像一棵樹吧!
┌ Joe .....
│ ┌ Mail ┬ joe
│ │ ├ Mary
┌— users ┼ Tom ┤ └ Eric
│ │ └ dead.letter
│ └ Mary ┬ Mail .....
│ └ ....
/ ┼— bin ┬ ls
│ ├ mail
│ ├ rm
│ └ cp
└— tmp
<eg> %cd /
%pwd
/
%cd bin
%pwd
/bin
%cd ..
%pwd
/
%
二、檔案 (file)
檔案是儲存資料的地方,這個資料可能是一份文字檔,也可能是一個可執行的
程式,不同功能的檔案,有著不同的屬性,現在來看看。
% ls -l
total 1059
drwx------ 4 jong 512 Sep 6 14:54 Mail
drwxr-xr-x 2 jong 512 Oct 22 19:02 News
lrwxrwxrwx 1 jong 5 Oct 29 16:05 bin -> games
drwxr-xr-x 2 jong 512 Oct 29 16:05 games
-rw------- 1 jong 9915 Sep 6 14:55 mbox
drwxr-xr-x 2 jong 512 Oct 1 10:06 ok
-rw-r--r-- 1 jong 107171 Apr 14 1993 soccer.zip
drwxr-xr-x 4 jong 1024 Oct 27 20:54 xtype
-r-xr-xr-x 3 jong 925696 Aug 28 14:48 xv
在每個檔案前有十個字,第一個字元是檔案形式,d 指目錄,- 指檔案,l 指
連結(link)檔案。從二到十是屬性,三字一組,一共三組。一組三字代表<讀、寫
、執行>,即 r w x , - 則表無此屬性。第一組是owner ,第二組是group ,
第三組是others。
<eg> rw------- 只有owner 可讀寫
r-xr-xr-x 可讀、執行,不可寫
rw-r--r-- owner 可讀寫,其他只可讀
檔案的名字除了"/" 之外,都可以用,隨便多少都可以。檔案開頭是"." 的檔
案是隱藏檔,平常看不到,要用ls -a 或 ls -al 來看。
□輸出入的重置(redirection)與管道(pipe)
輸出和輸入雖然是硬體設備,但UNIX卻把它們視為檔案,既然是檔案,就不需要知
道到底是什麼,可能是keyboard、monitor ,也可能是磁碟上的一個檔。一般說來,標
準輸出(standard input)是monitor,標準輸入(standard output)是keyboard,但我們
能夠把它們轉向到別的檔案,也就是從檔案輸入資料,或是輸出資料到某個檔。">" 用
來轉向output,"<" 用來轉向input ,">>"則是將結果附加在檔案後面。
<eg> %echo TEST > test.1
%echo test >> test.1
%cat test.1
TEST
test
%
另外還有一種是標準錯誤輸出(standard error),用來顯示錯誤訊息,如果output
被轉向,我們還是可以立刻在螢幕上看到錯誤訊息。">&"可以把它轉向,">>&" 則是附
加在檔案後面。
再介紹管道的觀念。"|" 是管道的符號,它的性質就像一根管子,用來連接左右兩
邊的輸出和輸入。左邊指令的output,會當作右邊指令的input ,如此一來,我們就可
以對output做篩選的工作,只留下想要的資料。
<eq> %ps -aux | grep <name>
就可以看到<name>所有正在執行的程式。
□行程(process)
一個正在執行中的程式,我們稱做process 。UNIX是多工的系統(multitasking),
可以同時執行多個程式,讓好幾個人同時使用系統,執行程式。執行程式可分為兩種:
前景執行(foreground)和背景執行(background)。一般我們在shell 下執行程式,一直
要等到程式結束才能繼續輸入指令,這就是前景執行。如果說我們不想等待程式結束,
或是執行時間太長,就可以將程式放到背景去執行,系統會自動執行它,而你就可以去
做別的事了。
怎樣才能把程式放入背景?只要在指令後面加上"&" 就可以了。一但你在背景執行
程式,系統會傳回"[n] xxxx",n 是job id,xxxx是process id。每一個process 都有
process id,而且不會有重覆。
要想停止前景執行的程式,可以按<Ctrl-C>中止,若是想暫停一下,可以按
<Ctrl-Z>暫時停止執行,要恢復執行可以用fg或bg來決定前景或背景執行。
<eq> %xtetris&
[1] 5678
%
□萬用字元(wildcard)
在UNIX中,萬用字元對輸入檔名非常有幫助。現在想看一下有哪些指令可用,你先打入
%cd /bin
%ls -al
你會發現好多執行檔,如果你只想找"m" 開頭的檔案,可以鍵入
%ls m*
就可以做到。萬用字元有三種:
* 代表任意長度的字串
? 代表任何的單一字元
[...] 代表區間內定義的任一字元
<eq>
c* 代表cat ,cp ,cal ...任意長度且開頭為c 。
ca? 代表cat,cal ...三個字且前二字為ca。
ca[a-z] 代表caa,cab,caz ... 三個字且頭二字為ca第三字為a到z。
附錄A 指令介紹
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -