第1回:コマンドラインでFTP


Windowsを使っている人で何人がコマンドラインのFTPクライアントがある事を知っているでしょう。起動方法は簡単、DOSプロンプトから「FTP」と打つだけです。
これはWindows98以降なら標準でインストールされているので、誰でも使用できるFTPクライアントですが、欠点はコマンドライン形式と言うことですねい。「俺はあくまでDOS派」という硬派な人におすすめ。
リモートとはサーバ側、ローカルとはこちら側の事をさします。
このコマンドには全部で42個のコマンドが含まれていますが、この中でも特に使用頻度の高いと思われる物だけ以下に説明しておきます。

! 引数を付けるとローカルコマンド実行。単体実行でコマンドラインシェルを呼び出す。
引数つきの際には間にスペースを入れない。
? 引数としてコマンドを付けるとそのコマンドのヘルプを表示。
単体実行でコマンドの一覧表示。helpでも代用可。
ascii 転送モードをASCIIに指定(デフォルト)。
binary 転送モードをバイナリに指定。
cd リモートでのカレントディレクトリを変更。
close 現在のFTPセッションを閉じる。disconnectでも代用可。
delete リモートの指定ファイルを削除。
dir リモートのカレントディレクトリのファイル情報を詳細に一覧表示。
get 指定したファイルをリモートに転送。recvでも代用可。
lcd ローカルのカレントディレクトリを変更。
ls リモートのカレントディレクトリのファイル名のみを一覧表示。
mdelete ワイルドカードを用いて指定したリモートの複数のファイルを削除。
mget ワイルドカードを用いて指定した複数のファイルをリモートからローカルへ取得。
mkdir リモートのカレントディレクトリ内に指定した名前でディレクトリを作成。
mput ワイルドカードを用いて指定した複数のファイルをローカルからリモートへ転送。
open リモートとの接続を確立。
put ファイルをローカルからリモートへ転送。sendで代用可。
pwd リモートのカレントディレクトリを表示。
quit FTPクライアントを終了。
rename リモートの指定したファイル、ディレクトリの名前を変更。
rmdir リモートのディレクトリを削除。
status 現在の設定を確認。
type ファイルの転送モードを指定。単体実行で現在の転送モードを表示。
user ユーザログオンをしなおす。


では具体的な使い方に入りましょう。
まずはDOSプロンプトを起動して、コマンドラインから「ftp」と入力するか、スタートメニューの「ファイル名を指定して実行」から「ftp」を指定して、立ち上げます。
すると以下のようなプロンプトが出て来るでしょう。
ftp>

まずリモートとの接続を確立しなければなりません。
そこでopen [server]と入力。(以下は私の場合。太字はユーザー入力部。あなたのサーバで必ずこの通りになるという保証はありません。)
ftp> open www18.tok2.com
Connected to www18.tok2.com.
220 Welcome to TOK2!!
User (www18.tok2.com:(none)): clef
331 Password required for clef.
Password:
230 User clef logged in.
(パスワードは表示されません。)

これでログイン完了です。このときにログインが失敗した時はuserコマンドを使います。
ftp> user
Username clef
331 Password required for clef.
Password:
230 User clef logged in.
"230 User clef logged in."という表示が出ればログイン完了です。

それではまずホスト開始フォルダの中身を確認しましょう。dirコマンドを使います。
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for directory listing.
total 32
drwx-----x 4 12287  10000  4096 Feb 4 00:22 cgi-bin
drwxr-xr-x 2 12287  10000  4096 Feb 14 01:58 img
-rw-r--r-- 1 12287  10000   264 Feb 14 12:16 index.html
drwxr-xr-x 3 12287  10000  4096 Feb 14 02:01 logog
226 Transfer complete.
ftp: 263 bytes received in 0.05Seconds 5.26Kbytes/sec.
表示しているのは、左から「属性」、「(不明)」、「所有者」、「所属グループ」、「容量」、「タイムスタンプ」、「ファイル名」となっています。左から2番目の表示は謎です。
属性は左からディレクトリ、オーナーの読み込み、書き込み、実行、グループの読み込み、書き込み、実行、その他のユーザの読み込み、書き込み、実行、を示し、文字が出ていれば有効であることを示しています。

次はファイルのアップロードでしょうか。
このときに不便なのはディレクトリ単位のアップロードができぬと言う事ですね。だからその際にはディレクトリ作成→中のファイルをアップ→ディレクトリに移動→サブディレクトリを作成→繰り返し、という手順でやるしかないですねい。
アップするときにはputコマンドを使います。ここでは例として画像ファイルをアップしてみませう。
ftp> cd img
250 CWD command successful.
ftp> binary
200 Type set to I.
ftp> put *.*
200 PORT command successful.
150 Opening BINARY mode data connection for arcldr.exe.
226 Transfer complete.
ftp: 148992 bytes sent in 24.62Seconds 6.05Kbytes/sec.
これでよいのですがここで一つ重要なことがあります。それは3行目で転送モードをbinaryに変更していることです。この転送モードと言うのはASCIIの場合だと改行の文字コードをサーバの処理形式の違いによって、勝手に変換されてしまうのです。なのでASCIIモードでアップするのはテキスト形式の物の時のみで、実行ファイルや画像などをアップする際にはbinaryモードでないといけません。この場合は画像をアップしているので勝手に「たまたま改行コードと同じデータを持つ部分」を変換されてしまっては困るため、binaryモードにしているのです。このことはサーバからダウンロードしてくるときにも同じことがいえます。

最後にFTPについて
ご存知かもしれませんがFTPとはFile Transfer Protocolの略です。クライアントソフトとは内部でこれを用いてサーバと通信し、それをインターフェースを通じて見やすい形式で表示しているに過ぎません。
このProtocolの詳細についてはIETF(Internet Engineering Task Force インターネット技術調査委員会 ; いかっつぃ名前だのう、Forceだなんて。軍事機関? ^^;;)が公式に配布するインターネットに関する技術使用を示すドキュメントRFC(Request For Comments)の959に記されています。ドキュメント本体はこちらにあります。英語です。暇があれば、そして自分の英語力に自身が持てれば、全訳するかもしれません。その時には、実験室に載せておきます。英文A4にして67ページもありますが…。

初の実験室はどうだったでしょうか。次のテーマは…決めてません。どうかお楽しみに…しててくれますか?
では。



clefの連絡先はこちら↓
clef@mutt.freemail.ne.jp
Copyright(C) clef since 2001/2/10