台大計算機中心網路推廣協會
              網路課程講義

課程名稱:使用網路工具(II)
上課日期:82年11月17日
講師:陳建志/黃振佑
───────────────────────────
<<<版權聲明>>>
本著作物版權屬於國立台灣大學電子計算機中心。為了推廣網路的使用,除了下列的限
制之外,任何人均可以任何型式複製或修改這份講義。
一、不得有任何的商業行為
二、複製或修改這份講義時,必須將本版權聲明列入,並註明之
三、國立台灣大學電子計算機中心不對修改過後的內容負任何的責任
───────────────────────────
<<<目錄>>>
□ftp ── 檔案傳送程式
  一、什麼是ftp
  二、使用ftp的基本概念與名詞解釋
  二、使用ftp的基本概念與名詞解釋
    1. 進入ftp
    2. local & remote file system
    3. 傳送模式
    4. anonymous ftp的涵義
    5. 國內最大的ftp站 ── NCTUCCCA.edu.tw
  三、ftp中的幾個常用指令
  四、特殊格式的檔案之意義及其處理
  五、將檔案download到磁片或從磁片upload到你的帳號
    1. 在計中316工作站室
    2. 從計中116 PC室
   3. 從家裡
  六、其他
□archie ── 檔案資料庫
  一、什麼是archie?
  二、archie的用法(實例)
□其他傳檔案的方法
  一、利用E-mail來傳檔案
  二、從News上抓檔案

□附錄    國內一些大學及單位提供的anonymous ftp


□ftp ── 檔案傳送程式

一、什麼是ftp

        ftp ,是file trasfer protocol的縮寫。顧名思義,這是一個用來傳送檔案的
    指令。ftp 不限於特定的作業系統(如UNIX)上才有,只要遵守一個特殊的協定,
    (TCP/IP protocol) ,甚至連不同的作業系統間,如UNIX與MS-DOS,也可以互傳資
    料呢!所以可以想見這個指令的強大功能了。因此,使用網路,不可不知ftp 之用
    法。ftp 能夠發揮網路的強大功能,真正達到資訊流通的目的。
        而且,網路上有相當多的豐富的軟體,小至一些簡單好用的小工具程式,大至
    完整的作業系統,還有很多的學術論文、技術文件、各種程式的原始碼、圖形檔、
    聲音檔、動畫檔... 等等,數也數不清。這些軟體,就是所謂的shareware ,不僅
    完全免費,而且可以任意拷貝而不須擔心觸犯法律。至於要如何弄到這些東西呢?
    請學FTP!


二、使用ftp的基本概念與名詞解釋

    1. 進入ftp
        ftp的用法格式是這樣子的:

            ftp abc.nxu.edu.tw  (domain name)   或是
             ftp 140.xxx.yy.zz   (IP address)

        如上例,你打了ftp abc.nxu.edu.tw,就表示你要和那台機器進行檔案傳送。
        這時候,和telnet指令一樣,你必須有對方的帳號和密碼。例:

            $ ftp abc.nxu.edu.tw
            Connected to 140.54.16.3.
            220 network FTP server (SunOS 4.1) ready.
            Name (140.54.16.3:joechen): b1234567            <-- 輸入帳號
            331 password required for b1234567
            Password: xxxxx                                 <-- 輸入密碼
            230 User b1234567 logged in.
            ftp> _

        這樣就進了ftp 了。ftp 基本上是一個交談式的環境。接下來,你就可以打一
        連串的指令,在兩台電腦間,做檔案傳送的工作了。

    2. local & remote file system
        在此有一個很重要的觀念,那就是local 與remote的觀念。簡單的講,假如你
        在台大的工作站,從你的帳號上ftp 到交大,那台大的電腦就稱為
        local machine ,而交大的電腦就稱為remote machine。請注意,在ftp 中,
        絕大部分的指令,是針對remote端的電腦。在下指令的時候,要搞清楚你所下
        的指令是下給哪一邊的,不要搞迷糊了。另外,我們一般所說的:

            抓(get) 檔案,指的是從"remote那端"抓過來。而
            放(put) 檔案,指的是把東西放到"remote那端"去。

        可能各位還聽過download, upload這兩個詞。

            Download也就是把東西抓"下來",
            Upload就是把東西放"上去"。

        總之,這些字眼都是針對remote file system的,請特別注意。

    3. 傳送模式
        在ftp中,有兩種傳送模式(transfer mode),一為binary模式,一為ascii 模
        式。當你要傳送二進位檔時(如圖形,可執行檔,壓縮檔等),請務必設成
        binary模式,否則傳下來的檔案必然是殘缺不全。而在傳送文件檔時,則須設
        成ascii 模式或binary模式均可。不過,不同的作業系統間,文字檔用binary
        模式來傳的話可能會有點小問題(格式不大一樣),所以最好還是設成ascii
        模式。至於哪些檔案是二進位檔,稍後會提。不過假如你還是無法分辨的話,
        那就乾脆通通設成二進位模式吧。預設值為ascii mode。

     4. anonymous ftp的涵義
        前面提過,執行ftp ,必須要有帳號和密碼。可是有時候,基於服務的理念,
        有些sites 提供了很多豐富的資源,希望任何人都可以來抓取。此時,就會提
        供一個叫做anonymous 的帳號,不須密碼,讓任何人都可以來取用他們所提供
        的檔案。這個anonymous 的帳號,只能用來ftp ,不能用來telnet。在前言中
        所提到的那些好東西,就是在anonymous ftp 中提供的!Anonymous ftp 的用
        法沒什麼不同。只要在login 時,以ftp 或anonymous為username,詢問
        password時,多半可以亂打或直接按ENTER ,不過最好還是打入你的
        E-mail address,提供給管理者作參考。例:

            $ ftp abc.nxu.edu.tw
            Connected to 140.54.16.3.
            220 network FTP server (SunOS 4.1) ready.
            Name (140.54.16.3:joechen): ftp       <-- 或anonymous
            331 Guest login ok, send ident as password.
            Password: xxxxx                       <-- 輸入你的E-mail address
            230 Guest login ok, access restrictions apply.
            ftp> _

    5. 國內最大的ftp站 ── NCTUCCCA.edu.tw
        國內有一個非常大的anonymous ftp site,其domain name 為
        NCTUCCCA.edu.tw ,或是稱為ftp.edu.tw。這是交大放在教育部的機器,由交
        大的一個學生社團 ── 校園網路策進會(CCCA)來負責管理。它的硬碟有14GB
        ,到現在已經裝了有12GB之多的東西。它不但是全臺灣最大的ftp 站,也是世
        界上的幾個有名的大站之一。所以,提到anonymous ftp ,你就不能不知道
        NCTUCCCA。通常你要甚麼東西,來這裡就有了。IP address是140.111.1.10或
        192.83.166.10。


三、ftp中的幾個常用指令

        介紹幾個在ftp 命令列模式下常用的指令。在此假設各位對樹狀的目錄結構已
    有認識,並對UNIX檔案系統稍有概念。

    1. ?
        問號。列出所有ftp下的指令,或詢問某一指令之簡單說明。

    2. open host
        連接到host去,做ftp的動作。相當於直接打ftp host。例:

            ftp abc.nxu.edu.tw
            相當於
            $ ftp
            ftp> open abc.nxu.edu.tw

    3. user user-name [password]
        以user-name為帳號來進入這個remote系統。平常一連上ftp server ,就會自
        動執行這個動作。

    4. dir [remote-directory] [local-file]
       ls [remote-directory] [local-file]
        列出remote端的目錄下的檔案。假使不加任何參數,就列出現行工作目錄下的
        所有檔案。UNIX或DOS 下也有相同的指令。假如另外還指定了local-file的話
        ,可以把列出結果存到local的一個檔案上。

    5. cd remote-directory
        改變現行的工作目錄。UNIX和DOS 下都有相同的指令。你可用ls或dir 來看,
        假如每一行的第一個字母是"d" 的話,表示是一個目錄(directory)。假如是
        "-" 的話,表示是一般檔案。例:

            -rw-r--r--  1 1244     500        4665 May 29 03:40 00MOTD
            -rw-r--r--  1 1244     500        2268 Oct 29  1991 00README
            drwxr-xr-x 11 1244     500         512 Dec 31  1991 anime.stuff

        前兩個是檔案,第三個是目錄。

    6. pwd
         顯示目前的remote的工作目錄為何。

    7. binary
        設定傳送模式為binary mode。

    8. ascii
        設定傳送模式為ascii mode。

    9. get remote-file [local-file]
        從remote抓檔案到local 上。假如沒指定local-file的話,就用原來的名字。
        一次只能抓一個檔。

    10. put local-file [remote-file]
        把local 的檔案放到remote上。假如沒指定remote-file 的話,就用原來的名
        字。一次只能放一個檔。

    11. mget remote-files
        一次get 多個檔案,按CTRL-C中斷。可用萬用字元"?", "*"。

    12. mput local-files
        一次put 多個檔案,按CTRL-C中斷。可用萬用字元"?", "*"。

    13. prompt
        打開或關閉mget、mput時的交談式詢問。在prompt的值為on(預設值)時,
        mget或mput會一個個檔案問你yes or no 。例:

            ftp> mget file*
            mget file.a (y/n)? n
            mget file.b (y/n)? n
            mget file.c (y/n)? y

        打prompt可把這項功能關掉,對經常使用mget或mput的人很有用。

    14. hash
        每傳送一定數目的資料(1024 bytes),便印出一個井字號。讓你大致知道,已
        經傳送完成多少資料。

    15. ! [command [args]]
        驚嘆號。執行local 的程式。例:

            !ls        列出local 的目錄。
            !man ftp   線上查看ftp的說明
            !cat aaa   看local的一個檔案aaa。

        請注意:"!cd"並不能改變local 的目錄,必須用lcd 指令。

    16. |[command [argument]]
        一直線。將輸出結果管線(pipeline)給local的程式。例:

            dir |more  列出remote的目錄, 並在每一次換頁時暫停。

    17. bye
        結束ftp。

    18. chmod、delete、mkdir、rename、rmdir
        用法與UNIX或DOS 指令相近。請各位實際上機或看講師操作,以加深印象。


四、特殊格式的檔案的意義及其處理

        因為網路資源是珍貴的,因此為了能減輕網路負擔,以便讓更多人使用,所以
    在網路上的檔案大部分是以壓縮形式存放,壓縮檔案常見的通常有下列幾種格式:

        .gz : gunzip foo.gz
        .Z  : 這是由unix的指令compress壓的,所以用uncompress foo.Z就可以解開
         .z  : 由pack所壓,用unpack foo.z來解,gunzip也可以解。
        .tar: tar xvf foo.tar
            嚴格說來,這並不算是壓縮檔,因為並它沒有壓縮效果,但是它能夠將整
            個目錄結構保存起來,在做備份時可以利用,再利用其他壓縮程式來壓縮
            。所以就有.tar.Z或.tar.gz的組合,只要分別解開就可以.或是利用
            "zcat foo.tar.Z |tar xvf -"或"gzcat foo.tar.gz |tar xvf -"就可以
            一次解開。
        .zip .arj .lzh .zoo
            這些格式在BBS 上常見,不多介紹,用法如下
            .zip : pkunzip foo.zip (DOS) or unzip foo.zip (UNIX)
            .arj : arj x foo.zip (DOS) or unarj foo.arj (UNIX)
            .lzh : lha x foo.lzh (DOS & UNIX)
            .zoo : zoo x foo.zoo
        .gif : xloadimage foo.gif             <----- 圖形檔
        .jpg : xv foo.jpg                     <----- 圖形檔
        .gl .mpg .fli    動畫檔
        .wav .voc .au    聲音檔


五、將檔案download到磁片&從磁片upload到你的帳號

    1. 在計中316工作站室
        請準備三又二分之一吋的磁片。在每一台工作站的右邊,有一個磁碟機,請把
        磁片插入。我們的工作站裝了mtools,使得UNIX也能讀寫DOS 格式的磁片。其
        大部分的指令和DOS 的一樣,只是要在前面加個"m"。例:

            mdir a:                       看磁片的目錄
            mcopy a:/data/cshow.zip .     把磁片上的檔拷到你的帳號
            mcopy cshow.zip a:            把你帳號下的檔拷到磁片上
            mcopy -t mbox a:              拷貝文字檔時須加 -t
            mdelete aaa.tmp               殺掉磁片上的檔案
            mcd /data

        注意:此磁片必須在MSDOS下format過。

    2. 從計中116 PC室
        開機之後,請打"net" 進入網路。然後,再打"ftp cc",username用你的帳號
        ,password用你的密碼,之後的用法,完全一樣,只不過這時的remote是工作
        站,而local 是你正在使用的PC。此時就可以從PC來download或upload檔案到
        你的帳號。也可以直接ftp到任何地方抓檔案,不一定要經由你的帳號。

        註:PC室的ftp的mget指令有點問題,請小心使用。

    3. 從家裡 ── 利用電話,modem,以及如kermit、telix等通訊程式
        如果你有數據機,也可以利用來傳檔,只是速度比較慢而已,所需只是一個通
        訊軟體。通訊軟體種類很多,使用方法各異,在這裡無法一一介紹,請大家自
        行參考軟體使用說明。以下是常見的通訊軟體:

            Telix 3.21
            Telemate 4.x
            PC Anywhere
            MS-Kermit 3.12
            Procomm
            VTerm
            Windows的terminal

        其中MS-Kermit 是Freeware,而Telix,Telemate 是Shareware ,皆可在各大
        ftp 站拷到。

        以下簡單介紹UNIX與DOS傳檔的方法:

        當你成功地連上學校的主機後,如果你是使用telix,則使用sz/rz 來接/傳檔
        案。rz/sz支援的通信協定是Zmodem,是目前傳檔速度數一數二的協定。如:

            (從UNIX主機接收檔案到PC)
            ccths1% sz earth.gif noriko.gif  <---- 此時你要啟動telix接檔的功
                                            能(按PgDn),選Zmodem就可以了一會
                                            兒earth.gif就在PC的硬碟上。
            (從PC主機傳送檔案到unix主機)
            ccths1% rz                       <---- 此時你要啟動telix送檔的功
                                            能(按PgUp),選Zmodem,與想要上傳
                                            的檔就可以了 。

        有時候通訊狀況惡劣,Zmodem就無法勝任傳檔的工作。在這種情況下就要使用
        Kermit傳輸協定了。Kermit協定是設計成抵抗任何惡劣環境下用的,不過速度
        較慢,沒有深入研究Kermit的使用永遠傳不快。如:

            ccths1% kermit
            Kermit 5A (189) Ready ...
            C-kermit> set file type binary
            C-kermit> set parity even
            C-kermit> send earth.gif

        此時Kermit就會印出一段訊息,要你退回Local 下接收命令,此步驟隨使用的
        軟體的不同而有所不同。在Telix下也是按PgDn,選Kermit Protocal接收。如
        果用的是MS-Kermit的話就要按alt-X ,然後下receive接收。如果要上傳的話
        步驟顛倒就可以了。


六、其他

    1. ftp的設定檔 ── .netrc
        各位如果常常利用ftp 傳檔,一定會覺得每次要打名字和密碼會很麻煩,一個
        小方法就可以解決。在自己的根目錄下放.netrc就可以免去麻煩。.netrc的內
        容格式:

            machines xxxx     login  xxxxx      password xxxxxxxx

        例如:

            machine hp850s.ntu.edu.tw    login joechen   password a123456
            machine cctwin.ee.ntu.edu.tw login b80056    password b654321
            machine NCTUCCCA.edu.tw      login anonymous password XXXXXXXX
            .......

        請注意,因為.netrc中有password存在,所以檔案屬性要是-rwx------,也就
        是只有owner才可以讀寫,以免password外洩。最好只存anonymous的password
        就好了。

    2. NCFTP ── 更好用的ftp
        我們的工作站上裝了ncftp ,它是一個較好的ftp 介面,多了些方便的功能。
        它在連上ftp server後,自動鍵入ftp ,和你的E-mail address。對常用
        anonymous ftp 的人很方便。還有,它可以記錄你上一次的工作目錄,下次你
        再進入同一個位址時,便會自動cd到上次離開時的目錄去。還有一些指令:

        A. predir
            重複先前dir 的結果,這在網路傳輸速率慢時能節省時間,而且有more的
            功能。

        B. page
            顯示文字檔的內容,例如目錄下有INDEX.000 或README.TXT,則用
            page INDEX.000或page README.TXT 可以將內容顯示,省去將INDEX.000
            傳回後再看的時間


□archie ── 檔案資料庫


一、什麼是archie?

        假設我想找一個檔案,例如壓縮工具gzip,在網路上有數以千計的檔案和節點
    ,我怎麼知道gzip放在那個節點的那個目錄下,這時就需要archie的幫忙,它可以
    幫我找出我要的程式位於哪裡,而不用辛辛苦苦的去每一個節點找,像大海撈針一
    樣。


二、archie的用法(實例)

        在中央大學有一個archie節點archie.ncu.edu.tw ,利用telnet就可以進入
    archie。例如:

        ccths18 > telnet archie.ncu.edu.tw

        SunOS UNIX (sparc4)
        login: twarchie   or     <-只搜尋台灣地區的節點
        login: archie            <-搜尋全世界的節點
        SunOS Release 4.1.1 (sparc15) #1: Tue Nov 12 05:15:31 CST 1991
        Welcome to the NCU Archie Server !          [ May, 8, 1992 ]
        Taiwan/R.O.C : archie.ncu.edu.tw (140.115.19.24)
         login "archie" to search whole world FTP servers
               "twarchie" to search Taiwan FTP servers
    ************************************************************************
    *  <省略> .....................                *
    ************************************************************************
    ========================================================================
    ==== 可以使用以下的指令,使系統顯示中文                             ====
    ====            archie> set term chinese                            ====
    ====    or, login with terminal type be set as                      ====
    ====            chinese, cxterm, vt102-ch, vt100-ch                 ====
        archie> prog gzip*                  <---尋找含 gzip 的字串
        # matches / % database searched:    5
          62 / 61%^C                <---按Ctrl-C 可以中斷搜尋
        Sorting...

        Host softu1.ncu.edu.tw   (140.115.19.11)            <---搜尋結果
        Last updated 01:31 30 Sep 1993
                                    .
                                    .   <省略>
                                    .
        Location: /pub2/ref.tfs.com/packages/gzip
          FILE      rw-r--r--    235975  Feb  1  1993   gzip-0.7.tar.Z
        Location: /pub/386BSD/386bsd-0.1/unofficial/from-ref/public/gzip....
          FILE      r--r--r--    235975  Jan 20  1993   gzip-0.7.tar.Z
                                    .
                                    .
                                    .   <省略>

    你可以利用Email來把結果寄給自己,待會就可以慢慢地欣賞

        archie>mail jyhuang@cc.ntu.edu.tw     <- 寄給 jyhuang

    如果你在中文下,則你可以利用"set term chinese"或"set term cxterm" 來看中
    文求助訊息

            archie>set term chinese
            archie> help

    Help這個指令可以給你各種不同標題的資訊,包括有那些可用的指令及如何去使用
    這些指令。告訴archie server 你的終端機型式和大小(經由"term"這個變數),
    以及使用pager (經由"pager" 這個變數)可使你有較好的使用者介面。

    可用的 help 標題有下列幾種:

        about      - 對 archie server 的一些介紹
        bugs       - 已知的 archie server 缺點及不良好的特徵
        bye        - 與 "quit" 指令功能相同
        email      - 如何使用 archie server 的電子郵件
        exit       - 與 "quit" 指令功能相同
        help       - 本篇文章
        list       - 列出在 archie server 資料庫中的節點名稱
        mail       - 將輸出結果寄給使用者
        nopagger   - *** 請使用 'unset pager' 指令
        pager      - *** 請使用 'set pager' 指令
        prog       - 在資料庫中搜尋某一個檔案
        quit       - 離開 archie
        set        - 設定變數
        show       - 顯示各變數的值
        site       - 顯示某一個 archive site 中所有的檔案
        term       - *** 請使用 'set term ...' 指令


□其他傳檔案的方法


一、利用E-mail來傳檔案

        當你想傳一些檔案給別人,但是不知道對方的密碼,又不想把自己的密碼給人
    ,那你便可以利用E-mail來傳檔案。假如是文字檔比較簡單,如下:

        mail joechen@cc.ntu.edu.tw < homework.c

    而二進位檔需要多作編碼及解碼的動作,如下:

        uuencode earth.gif earth.gif | mail u800001@y8.nthu.edu.tw

    對方收到之後,必須把這封信存成一個檔(在讀信程式裡選save),
    例如:檔名為tmp1,

        uudecode tmp1

    就可以解碼,自動產生earth.gif。


二、從News上抓檔案

        你知道在News上也可以抓檔案嗎?有時你會看到類似這樣子的標題:

            neopaint.arj (1/3)
            neopaint.arj (2/3)
            neopaint.arj (3/3)

    這是一個檔被分成三部分,分別為part 1,part 2,part 3。在tin 中提供了很方
    便的功能來抓檔案:
    1. "依序"把這些檔tag起來(按t)
    2. 選save(按s)
    3. 選 t)agged
    4. save filename > 隨便打,如temp
    5. 選 u)udecode
    6. 開始解碼、合併檔案。處理完會問你要不要把一些暫時檔砍掉,答y。
    成功!產生了neopaint.arj這個檔案,不過是在你的目錄下的News子目錄裡。


□附錄    國內一些單位提供的anonymous ftp

140.111.1.10        NCTUCCCA.edu.tw、ftp.edu.tw、archive.edu.tw
192.83.166.10
140.92.1.45         iiidns.iii.org.tw
140.111.2.22        moers2.edu.tw
140.111.3.11        ibmserv.edu.tw
140.111.3.14        hpserv.edu.tw
140.112.28.163      earth.csie.ntu.edu.tw
140.113.4.11        ccsun1.cc.nctu.edu.tw
140.113.17.166      ccsun42.csie.nctu.edu.tw
140.113.250.246     jenny.nctu.edu.tw
140.115.19.11       softu1.ncu.edu.tw
140.115.83.90       imaux.mgt.ncu.edu.tw
140.116.2.10        mail.ncku.edu.tw
140.116.2.11        snoopy.ncku.edu.tw
140.117.11.33       irc.nsysu.edu.tw
140.117.72.1        mis.nsysu.edu.tw
140.120.1.21        pds.nchu.edu.tw
140.122.77.13       master.ice.ntnu.edu.tw
140.123.3.5         ccunix.ccu.edu.tw
140.126.4.221       cs.chpi.edu.tw

註:這些位址隨時都有可能更動、改名、取消、或新增,所以本附錄僅供參考。