次のページ 前のページ 目次へ

3. FTP を使用する上での初心者へのガイド

FTP を使用するための簡単なガイド。

標準の FTP プログラムはオリジナル ftp クライアントです。ほとんどの Linux ディストリビューションに標準で付属しています。ftp は最初にカ リフォルニア大学バークレー分校によって開発された 4.2BSD で現れました。

3.1 ftp プログラムを起動する

ftp を使うのは簡単です。たとえば、最新の Linux カーネルソースをダウンロード するために metalab.unc.edu という名前の匿名 FTP サイトに接続したいとします。

コマンドラインから以下のようにタイプします:

$ ftp metalab.unc.edu

これで ftp プログラムは metalab.unc.edu に接続しようとします。他のやり方で同 じことをするには ftp をパラメータなしで起動し、サイト名を引数として open コ マンドを 使用します。

$ ftp
ftp> open metalab.unc.edu

3.2 FTP サーバにログインする

FTP サイトに接続するとログインを要求されます(Enter を押すとローカルのユーザ 名で ログインします。この場合は foo)。ここでは anonymous ないし ftp としてログインし、 パブリックアーカイブへ行くことにします。

220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12
EST 1999) ready.
Name (metalab.unc.edu:foo):

次に、完全な E-Mail アドレスをパスワードとして記入します(ほとんどのパブリッ ク FTP サイトはこれを要求します)。

331 Guest login ok, send your complete e-mail address as password.
Password:

ログインに成功すると、以下の情報が与えられます。

Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

3.3 ファイル転送タイプ

FTP サイトにログインしたあとに、ftp はファイル転送タイプを表示しま す。 上記の場合はバイナリ(binary)です。バイナリモードではファイルを1ビットずつ、 FTP サーバ にあるとおりに転送します。しかしながらアスキー(Ascii)モードではテキストを直 接ダウンロードします。 asciibinary とタイプすることでタイプを変更できます。

今回はカーネルソースをダウンロードしたいので、ファイル転送タイプはバイナリの ままに しておきます。バイナリタイプはテキストではない全てのファイルをダウンロードす るさいに 使用します(たとえば、画像イメージ、zip/gzip アーカイブ、実行ファイルなど)。 分からなかったらバイナリモードを使用しましょう。

3.4 ディレクトリの操作と一覧

ファイルを一覧するには ls を使います。FTP サーバの ls はリ モートサーバ上で 実行されますので、使えるコマンドラインオプションはサーバによって異なります。 一般的なオプションは 普通は利用可能ですので、詳しいことは ls の man ページを調べてくださ い。

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 33590
-r--r--r--   1 root     other    34348506 Dec 03 03:53 IAFA-LISTINGS
lrwxrwxrwx   1 root     other           7 Jul 15  1997 README -> WELCOME
-rw-r--r--   1 root     other         890 Nov 15 13:11 WELCOME
dr-xr-xr-x   2 root     other         512 Jul 15  1997 bin
dr-xr-xr-x   2 root     other         512 Jul 15  1997 dev
dr-xr-xr-x   2 root     other         512 Jul 18  1997 etc
drwxrwxrwx  11 ftp      20           4608 Nov 28 16:00 incoming
lrwxrwxrwx   1 root     other          13 Jun 04  1998 ls-lR ->
IAFA-LISTINGS
dr-xr-xr-x  17 root     root          512 Jun 08 11:43 pub
dr-xr-xr-x   3 root     other         512 Jul 15  1997 unc
dr-xr-xr-x   5 root     other         512 Jul 15  1997 usr
226 Transfer complete.

もし ls コマンドで列挙したファイルが多すぎて画面から上にはみ出てし まった場合は、 Shift-PageUp を使うことで上にスクロールできます。これは Linux のコンソール上 での他、xterm や rxvt 上でも使えます。

パブリック FTP アーカイブ上では、ダウンロードできるリソースは普通 /pub ディレクトリ に格納されています。この例では、カーネルソースが /pub/Linux/kernel にあることが分かって いることとして、次のようにタイプしてそのディレクトリまで移動します。

ftp> cd pub/Linux/kernel
250-README for kernel
250-
250-What you'll find here: kernel sources and patches
250-
250-
250 CWD command successful.

「250」で始まるメッセージはサーバから送られてきた情報メッセージです。 上記の場合、あなたがディレクトリに cd すると FTP サーバが自動的に README ファイル を送るように設定されています。

3.5 ファイルのダウンロードとアップロード

さて、再度 ls すると、v2.2 ディレクトリがあるのでそこに cd します。 その後、また ls をすると、ダウンロードしたいファイル linux-2.2.13.tar.gz が見つかります。 そこで今度は次のようにタイプします。

ftp> get linux-2.2.13.tar.gz
local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

ftp プログラムがリモートファイル linux-2.2.13.tar.gz をローカ ルファイル linux-2.2.13.tar.gz として保存し始めました。

もしこれを foo.tar.gz という名前でローカルファイルに保存した ければ、次のように指定できます。

ftp> get linux-2.2.13.tar.gz foo.tar.gz
local: foo.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

一度に複数のファイルをダウンロードしたい場合は、mget (multiple get) コマンドを使う必要があります。mget は スペースで区切られたダウンロードしたいファイル名のリストをコマンド の引数として使うか、mget コマンドをワイルドカードと合わせて使用す ることもできます。たとえば、

ftp> mget linux*

上記のコマンドによって、「linux」で始まる全てのファイルを取得します。 普通 mget は各ファイルをダウンロードするまえに本当にダウンロー ドするかプロンプトを出します。prompt コマンドを使うことで これを切替えられます。

たとえばあなたが何かのソフトウェアを書いたとして、これを Linux ソフトウェ アアーカイブに含めてもらうために MetaLab にアップロードしたいとします。 それでは最初に、/incoming ディレクトリ(ほとんどのパブリック FTP サーバにはファイルがアップロードできる incoming や uploads といった名前のディレクトリがあります)に移動し、put コマンドを 使用します。

ftp> cd /incoming
ftp> put foo.tar.gz
local: foo.tar.gz remote: foo.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for foo.tar.gz.
226 Transfer complete.
10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

put コマンドは get と同じように、mput で複 数のファイルを同時にアップロードできます。リモートファイル名やパスを引 数として指定すれば、ローカルファイルを別のファイル名でサーバ上にアップロードできます。

もしファイル foo.tar.gz が、アップロードしようとしたときに ローカルのカレントディレクトリにない場合はどうすればよいのでしょう? これは、lcd (local change directory)コマンドを使用することによって ロー カルのディレクトリを変更できます。

ftp> lcd /home/foo/
Local directory now /home/foo

3.6 シェルコマンドを起動する

FTP クライアントは感嘆符(!)を使うことによってローカルコマンドを起動す ることをサポートしています。たとえば、ローカルのカレントディレクトリのファイ ルを列挙するには次のようにします。

ftp> !ls

これがどうやって働くのかというと、ftp はシェル($SHELL 環境変数 で指定された)を呼び出し、シェルが ls を起動します。つまりは、 シェルで動くコマンドラインなら、前に「!」をつけてやりさえすれば何でも 実行できます(ほとんどの Linux ディストリビューションでは bash (Bourne Again SHell)がデフォルトのシェルになっています)。しかし、!cd はあなたの思ったとおりには動いてくれないことに注意してください。 だからこそ lcd コマンドが存在するのです。

3.7 ハッシュ記号とティック

もし ftp でダウンロードをしているファイルの進行状況が見られたら便利だと思い ません か? hash コマンドを使用することによって、ダウンロード時にハッシュ記号を出力 します。

ftp> hash
Hash mark printing on (1024 bytes/hash mark).

見ても分かるように、ftp は 1024 バイト分データをダウンロードするたびに ハッシュ記号を出力します。

その他にも tick オプションがあります。

ftp> tick
Tick counter printing on (10240 bytes/tick increment).

<!--
This will print something to this effect as you download a file:
-->
これはダウンロードの進行状況を下のように出力します。

Bytes transferred: 11680

3.8 その他の ftp コマンド

ftp コマンドは他にもたくさんあります。もしあなたがパーミッションを与え られていれば(個人のプライベートシェルアカウントに接続している場合は そのはず) mkdir コマンドによってリモートサーバ上にディレ クトリを作成できます。delete コマンドでファイルをリ モートサーバ上から削除でき、rmdir ではディレクトリを削除しま す。chmod コマンドを使うことによって、ファイルのパーミッショ ンを変更することもできます。

ftp を使う上でのさらに詳しい情報は、ftp プログラム内のオンラインヘルプ を参照してください(コマンドを列挙するには引数なしで help とタイプ、特 定のコマンドのヘルプを見る場合は help <commandname>)。コマンドプ ロンプトから man ftp とタイプすることで、ftp の Unix man ペー ジを読むこともできます。


次のページ 前のページ 目次へ