UNIX環境でFTPを利用するには,ftpコマンドを実行する.ここでは,ftpコマンドの利用方法について説明する.
ftpコマンドを実行すると,FTPプロンプト(ftp>)が表示される.
% ftp<RET>
ftp>
ftp> open [ホスト名]<RET>
%ftp<RET> ftp> open picasso.guide.ac.jp<RET>
ftp> open hostname<RET>
hostname: unknown host
ftp> _
リモートホストに接続されるとメッセージが表示されるので,リモートホストでのログイン名を入力する.ここでは,リモートホストpicasso.guide.ac.jpでのログイン名を入力している.
Connected to picasso.guide.ac.jp. 220 picasso.guide.ac.jp FTP server (UNIX(r) System V Release 4.0) ready. Name (picasso.guide.ac.jp:t00000tf): _
Name (picasso.guide.ac.jp:t00000tf): tarou<RET>
ログイン名を入力したら,次にそのログイン名に対応するパスワードを入力する.次のように`Password: 'の後にパスワードを入力して<RET>を押す.なお,入力中の文字はセキュリティ保持のため画面に表示されない.
入力したログイン名やパスワードが間違っているとログインが拒否される.その場合はuserコマンドを利用して,再びログイン名とパスワードを入力する必要がある.
ftp> user<RET> (username) tarou<RET> 331 Password required for tarou. Password: _
230 User tarou logged in. ftp> _
通常,openコマンドを実行すると,リモートホストのホームディレクトリにログインする.リモートホストのディレクトリの操作を行うには, lsコマンドやcdコマンドを実行する.ローカルホストの作業ディレクトリの操作方法については第1部 4.2.7を参照すること.
lsコマンドを実行すると,リモートホストのカレントディレクトリに存在するファイルの一覧が表示される.
ftp> ls<RET>
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
bin
.cshrc
Mail
report.tex
226 Transfer complete.
101 bytes received in 0.0032 seconds (31 Kbytes/s)
ftp> _
dirコマンドもlsと同様にファイル一覧を表示するが,ファイルサイズや保護モードなども同時に表示される.次に実行例を示す.なお,lsに-lオプションを指定すると,同じ出力結果が得られる.
ftp> dir<RET>
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 44
-rw-rw-rw- 1 tarou st 254 Oct 20 01:55 .cshrc
drwxr-xr-x 2 tarou st 4096 Feb 12 12:25 bin
drwxr----- 2 tarou st 4096 Nov 14 04:12 Mail
-rwxr-xr-x 2 tarou st 4096 Feb 12 12:25 report.tex
226 Transfer complete.
705 bytes received in 0.047 seconds (15 Kbytes/s)
ftp> _
cdコマンドを利用するとリモートホストのディレクトリを移動できる.転送を開始する前にこのコマンドを用いてリモートホストの目的のディレクトリに移動する.次に実行例を示す.
ftp> cd report<RET> 250 CWD command successful. ftp> ls<RET> 200 PORT command successful. 150 Opening ASCII mode data connection for file list. kadai.tex kadai.dvi 226 Transfer complete. 44 bytes received in 0.00073 seconds (59 Kbytes/s) ftp> _
ファイル転送モードの確認,変更を行うには,typeコマンドや binaryコマンド,asciiコマンドを実行する.ログインしたときはアスキーモードに設定されているので,バイナリファイルを転送する場合はバイナリモードに変更する必要がある.
ftp> type<RET>
Using ascii mode to transfer files.
ftp> _
ftp> binary<RET>
200 Type set to I.
ftp> _
ftp> ascii<RET>
200 Type set to A.
ftp> _
リモートホストに置いてあるファイルをローカルホストに転送するには, getコマンドやmgetコマンドを利用する.
getコマンドを利用すると,リモートホストのカレントディレクトリに置いてあるファイルをローカルホストの作業ディレクトリに転送できる.この例では,kadai.texというファイルを転送している.転送が終了するとメッセージが表示され,FTPプロンプトが表示される.
ftp> get kadai.tex<RET>
200 PORT command successful.
150 Binary data connection for work.tex (xxx.xxx.xxx.xxx,1496) (973 bytes).
226 Binary Transfer complete.
3973 bytes received in 0.011 seconds (3.7e+02 Kbytes/s)
ftp> _
ftp> get kadai.html<RET>
200 PORT command successful.
550 kadai.html: No such file or directory.
ftp> _
getコマンドではファイルを1個ずつしか転送できないが, mgetコマンドを利用すると,*.texやkadai?.texなどのようにメタキャラクタを利用して,複数個のファイルを同時に転送できる.
次に,リモートホストのカレントディレクトリのファイルをすべてローカルホストに転送する例を示す.なお,転送ファイル内にバイナリファイルが含まれる場合はbinaryコマンドを実行して,転送モードをバイナリに設定しておくこと.
ftp> mget*<RET>
ftp> mget *<RET> mget kadai.tex? n<RET> mget kadai.dvi? y<RET> 200 PORT command successful. 150 Binary data connection for kadai.dvi (xxx.xxx.xxx.xxx,41525) (0 bytes). 226 Binary Transfer complete. ftp> _
ローカルホストにあるファイルをリモートホストに転送するには,putコマンドやmputコマンドを実行する.
putコマンドを利用するとローカルホストの作業ディレクトリにあるファイルをリモートホストのカレントディレクトリに転送できる.次に実行例を示す.
ftp> put draft.tex<RET>
200 PORT command successful.
150 Opening BINARY mode data connection for draft.tex.
226 Transfer complete.
local: draft.tex remote: draft.tex
6089 bytes sent in 0.055 seconds (1.1e+02 Kbytes/s)
ftp> _
ローカルホストに指定されたファイルが存在しなかった場合には,次のようなエラーメッセージが表示されるので,ファイル名を確認する.
ftp> put drink.tex<RET>
drink.tex: No such file or directory
ftp> _
複数個のファイルをリモートホストに転送するには,mputコマンドを利用する.次の例では,ローカルホストの作業ディレクトリにあるファイル名が example.ではじまるファイルをすべてリモートホストのカレントディレクトリに転送している.
% mput example.*<RET>
mputコマンドを実行すると,指定された条件に合致するファイルが1つ見つかる度にそのファイルを転送するか確認を求められるので, yあるいはnを入力する.yを入力するとファイルは転送され,nと入力すると転送されない.
ftp> mput exmple.}{<RET> mput exmple.aux? n<RET> mput exmple.dvi? y<RET> 200 PORT command successful. 150 Opening BINARY mode data connection for exmple.dvi. 226 Transfer complete. local: exmple.dvi remote: exmple.dvi 348 bytes sent in 0.0051 seconds (67 Kbytes/s) ftp> _
ファイルの転送を終了するには,次のようにcloseコマンドを実行してリモートホストとの接続を切断する.closeコマンドを実行するとFTPプロンプトが表示される.再び別のホストに接続する場合は openコマンドを実行する.FTPを終了する場合は,次のように quitコマンドを実行する.
ftp> close<RET> 221 Goodbye. ftp> quit<RET> % _
ローカルホストの作業ディレクトリは,ftpコマンドを実行したときのカレントディレクトリになるが,lcdコマンドを利用するとリモートホストの接続中にローカルホストの作業ディレクトリを変更できる.例えば次のコマンドを実行すると,ローカルホストの作業ディレクトリは englishというディレクトリに変更される.
ftp> lcd english<RET>
Local directory now /a/fs0001a/t00000tf/english
ftp> _