Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
Ncftp - インターネット ファイル 転送プログラム
書式
ncftp [プログラム オプション] [[オープン オプション] ホスト名[:パス]]
オプション
プログラム オプション: -D : デバッグモード、トレースモードを有効にする。 -L : ビジュアルモードを使用しない(ラインモード)。 -V : ビジュアルモードを使用する。 -H : バージョン情報。 コマンドラインのオープンオプション: -a : 匿名(anonymous)で接続。 -u : ユーザ名とパスワードプロンプトで接続。 -p X : 接続時に ポート番号Xで接続。 -r : 接続するまでリダイアルする。 -d X : リダイアルまで、X秒の間隔を開けてリダイアルする。 -g X : X回リダイアルして接続できなければ、あきらめる。 コマンドラインの取得オプション: -C : 強制接続(再取得)。 -f : 強制的に上書きする。 -G : ワイルドカードを使用しない。 -R : 再帰。ディレクトリ全体を取得するときに役立つ。 -n X : X日前より新しいファイルのみを選択して取得。
説明
NcFTP はインターネット標準の File Transfer Protocol に対するユーザーインターフェイスであ る。 リモートネットワークホストとのファイルの送受信を行い、 標準の ftp にはない付加的な機 能を提供する。 以下の3つモードがある: ビジュアルモード、ラインモード、コロンモードである。 使用しているシステムが最近のものなら、デフォルトのモードは ビジュアルモードにすべきであ る。 これは curses ライブラリを用いたフルスクリーン インターフェイスである。 ビジュアル モードでは、不可解なコマンドを打つ必要はなく、 洒落たスクリーン インターフェイスで NcFTPの 設定を編集することができる。 ビジュアルモードでなければ、 対話的なシェル(interactive shell)である ラインモード を使うこ とになるだろう。 このモードはデフォルトの ftp プログラムのコマンドシェルのような簡易なイン ターフェイスである。 3番目のモードである コロンモード は、NcFTP自身のシェルに入ること無しに、シェルコマンドライ ンから 直接ファイルをすばやく取得する機能を提供する。 このモードはシェルスクリプトで便利で ある。
ビジュアルモードの概論
ビジュアルモードになると、スクリーンはクリアされ、派手なスクリーンで書き換 えられる。 スク リーンの下から2番目に黒色のステータスバーが現れる。 ステイタスバーの下は入力行で、プログラ ムのシェルへコマンドを打ち 込む場所である。 NcFTPは何か命令されるまで待機している。 たいていはリモートのファイルシステムをオープンし て、 ローカルマシーンのファイルシステムと ファイルのやり取りをすることになるだろう。 その ためにはリモートシステムの名前か、もしくはその インターネットプロトコル (IP)のアドレスを 知っている必要がある。 例えば、名前が ``typhoon.unl.edu'' で そのIPアドレスが ``129.93.33.24''ならば、 そのシステムに接続するためには、NcFTPの open コマンド: open typhoon.unl.edu open 129.93.33.24 を使用する。 これらは、 Nebraska 大学 の typhoonと呼ばれるマシンに接続しようとする。 IPアドレス予告無く 変更されることがあるが、名前はたいてい同じままであるので、 名前を使用した方が好ましいだろ う。 リモートファイルシステムに接続するときは、接続するための 権限を持っていなければならない。 FTP Protocol の認証システムは、(UNIX等の)アカウントにログインすることにとてもよく似てい る。 しかし、あなたが興味を持つようなリモートシステムの多くでは使用にあたって アカウント名 を求められることはないだろう。 多くの場合はリモートファイルシステムへ匿名アクセスすれば、 公共的にアクセスできるファイルを交換できる。 NcFTPはデフォルトでは、リモートシステムに匿名 アクセスを行う。 これは実際には、``anonymous''というアカウント名を用い、 パスワードのプロ ンプトに管理者への礼儀として E-mailアドレスを記入する。 もちろん特定のアカウントを使用する こともできる。 これについては後述する。 接続が成功すると、ステータスバーの片側にリモートシステムの名が表示される。 現在のリモート ディレクトリの内容を見るには、 lsと dir コマンドを使用すれば良い。前者は少ないスクリーンス ペースで多く のリモートファイルを選べるように簡潔である。また後者はディレクトリの各項 目に ついて詳しい情報を与えるように、冗長である。 cd コマンドを使えば、リモートシステムの他のディレクトリへ移動できる。 cd コマンドは Bourneシェルと Kornシェル の同名のコマンドと、ほぼ似た動作をする。 NcFTPの目的は他のシステムとデータの交換をすることである。 get コマンドはリモートシステムか らローカルシステムへファイルをコピー する: get README.txt NcFTPはスクリーンに転送の進行状況を表示するので、 転送が終了するまでにどれくらいかかるかわ かる。 転送が終了すると、NcFTPのコマンドシェルにコマンドを打つことがで きるようになる。 put コマンドはローカルのシステムからリモートシステムへファイルをコピーするた めに使用でき る: put something.tar リモートシステムでの作業が終わったら、他のシステムをオープ ンすることができる。また quit コマンドは NcFTPを終了させる。
ブックマーク ファイル
NcFTPの目標の一つは最小限のタイピングで最大限の便宜を得ること である。 NcFTPは ホームディ レクトリの .ncftp サブディレクトリにある bookmarks という特別なファイルに、呼び出したサイ トについての情報を 自動的に保存する。 各ブックマークには、ホスト名、 入ったリモートディレ クトリ、アカウント情報などの設定が保存される。 これにより、後で再びそのサイトを呼び出すの を簡単になる。 また前回ログオフしたときの全て情報を保存されている。 この情報を保持すると、サイトの正式なホスト名を使う代りに、 より短く意味のある名前で呼び出 すことができるようになる。 例えばサイト名 ``typhoon.unl.edu'' を頻繁に呼び出す と、ブック マーク名は ``typhoon'' になるだろう。すると、 open typnoon.unl.edu の代りに open typhoon とすることができる。 問い合わせたサイトを NcFTPが特定できる限りにおいて、ブックマークの 名前を短縮することがで きる。 ブックマークの名前に``ty''から始まるものが他になければ、以下のようにできる: open ty ブックマークの機能を用いれば、実際の名前が覚えにくいような ホストに対して、より記憶しやす い名前を割り当てることができる。 Nethack というポピュラーなゲームが linc.cis.upenn.edu の /pub/NH3.1 ディレ クトリに置かれているが、 このサイトのブックマークとして ``nethack'' を指 定できる。 すると、 open linc.cis.upenn.edu の代りに open nethack とすることもできる。
ブックマーク エディタの使用
ブックマークファイルに蓄えられているブックマークを操作するため には、NcFTPに付属するブック マーク エディタを使用する。 NcFTPの中から bookmarks と打てば、ブックマークエディタが起動 し、 新しい画面が立ち上がる。 右側に NcFTPが保存してあるリモートシステムのリストが 置かれる。 リモートシステムに接続する ごとに、NcFTPは自動的に ブックマークファイルのエントリを保存する。 もしサイトの接続にまだ 成功していない場合には、このリストは空に なる。 左側にリストに対して行うことのできる命令が表示されている。 ブックマークエディタは、コマン ド(編集したい設定のブックマークを 選択するなど) 待ち状態になる。 ブックマークエディタには ``ホットキー'' という、単一のキーのみで動作する コマンドがある。 ホットキーコマンドの後には enter を打つ必要はない。 例えばブックマークエディタを終了するた めには、``x'' キーを打てばよい。 マルチキーコマンドは最初に / を打ち、最後に enter キーを 打つ必要 がある。 例えば選択したサイトを消去するには、``/'' キーを打った後に ``del'' ``enter'' と打てばよい。 リストの(反転している)選択行を下げるには ``d'' キーを打ち、上げる には ``u'' キーを打つ。 ブックマークリストに多くのエントリがある場合には、全てを一画面で見 せる ことはできなくなるだろうが、ブックマークリストを適当にスクロールさせて 他のサイトも見 ることができる。 ページを移動するには、``p'' ``n'' キーを使用する。 ブックマークリストでサイトを選択するには、大文字を使う 方法もある。ブックマークリストに多 くのエントリがあるときに、ブック マーク名 ``nethack'' のサイトを選択するには ``N'' と打 つ。すると ``n'' か ら始まるブックマークのサイトの先頭にリストの選択行が移動する。 編集したいブックマークを反転させた後、 /ed を使えば、 そのブックマークの設定を示した画面が 立ちあがる。 Bookmark Options のスクリーンでは、編集したい設定はホットキーで指定する。 例えばブックマー クの名前を編集するためには、``a'' と打つ。 このブックマークの編集を終えて、ブックマークエ ディタ画面に戻るには ``x'' キーを打てばよい。
ブックマークオプション
サイトをオープンする時に使用する名前を変更するには Bookmark name フィールドの編集をす る。ブックマーク名を変更した後には、このブッ クマークの参照はこの名前で行わなければならな くなる。例えば ``foobar'' という名前に変更したら、``open foobar''を用いなければならない。 これは、一つのリモートホストに対して、 複数のエントリを持つことができるようにするためであ る。 例えば wuarchive.wustl.edu に対して2つのブック マーク ``wumac''と ``wuwindows''を 作った場合に、 ``open wuarchive.wuustl.edu''としたのでは、NcFTPはどち らのエントリを使用し たら良いのかわからないからである。 サイトのログイン情報は User, Password, Account フィールドによって変更する。 匿 名(anonymous)ログインを用いる場合は、通常そのままにしておく。 リモートシステムによっては特 定のアカウントを用いたいことがあるかもし れない、 このような場合には匿名(anonymous)ログイ ン以外の方法を用いる。 Directory フィールドには、リモートホストへの接続が成功したときに移 動するディレクトリを指 定する。 サイトへの接続を終了した時に、このフィールドは自動的に終了時のディレ クトリに更新 される。 Transfer Type フィールドは、ファイルを転送に標準以外の転送モードを使用する場合に 変更す る。 NcFTPはたいてい UNIX システム上で使用されるし、リモートシステムの多くも UNIX 系でなの で、デフォルトの転送モードは 何も変換されない binary, となっている。 しかし、プレーンテキストを種類の異なる 非UNIX システム間で転送する必要があるときは、 ASCII モードに変更すると良い。 これはテキストのみのファイルを正しく転送することを保証する。 多く の場合は、 binary 転送モードを使用する必要があるだろう。 Port フィールドは標準的でないポート番号を使用するときに変更する。 私はこれまで異なるポート 番号を必要としたことがないが、必要な場合は変える ことができる。 Has SIZE Command フィールドはおそらく編集する必要はないだろう。 このフィールドは通常、情報 の提供にだけ用いられる。 SIZE コマンドは、 FTP Protocol のコマンドで、 リモートサーバでサ ポートされていると NcFTPにとって都合が良い。 このコマンドがサポートされていれば、(クライ アント側の) プログラムは転送前にリモートファイルの正確なバイト数を 知ることができ、転送処 理の進捗状況がわかるようになる。 Has MDTM Command フィールドも編集する必要はないだろう。 リモートサーバがこれをサポートして いれば、NcFTPはリモー トファイルの更新日時を正確に知ることができ、同じ日付をローカルファイ ルに設定 する。 Can Use Passive FTP フィールドは、リモートのサーバが FTP Protocol の"PASV コマンドを使用で きるかどうかを指定する。 FTPコネクションを設定する方法は2通りある。 デフォルトの方法は Port FTP と呼ばれるものである。 残念なことに、 Port FTP は、ローカルホストが ファイヤー ウォール の内側にある場合は使用できない。一方 Passive FTP はファイヤーウォールの内側からで も使用できるので、 可能な場合はこちらを用いると良いだろう。 これは多くの場合自動的に検出さ れるので、このフィールドを編集する必 要はないでだろう。 Operating System フィールドは特定のオペレーティングシステムに依存する情報を伝え るために使 用される。 もしOSがUNIX系ならば、NcFTPはリモートサーバのレスポンスについてあ る仮定をでき る。 例えば、OSが UNIX なら、 ls コマンドは UNIX 上での `` /bin/ls -CF''のように動作しよう とする。 OSが UNIX でなけれは、 ``-CF'' はリモートサーバで使えないかも知れないし、 サーバ が文句をいうかもしれない。 これらは多くの場合自動的に検出できるので、おそらくこのフィー ル ドを編集する必要はないだろう。 コメントフィールドはサイトについての短い説明を記録するのに使用できる。 例えば、私の ``nethack'' エントリでは、このフィールドに 「Nethackの最新バージョンをおいてあるサイト」 という情報を書いてある。 ブックマークエディタウインドウにいるとき、コメントを持つサイトを 反転させると、スクリーンの一番下にこのコメントが表示される。 したがって、コメントを見るた めにエディットモードに入る必要はない。
好みの設定
リモートホストごとに指定するオプションに加えて、NcFTPはユーザが設定可能な グローバルオプ ションを持っている。 NcFTPの設定を変えるためには、NcFTP起動中に prefs コマンドを実行する。 Default open mode フィールドはNcFTPがどのように接続を試みるかを指定する。 もし匿 名(anonymous)FTPを多く利用するならば、 anonymous に設定する。 FTPするホストの多くが匿名 (anonymous)ログインを許可していない なら、 usr と password フィールドを設定するとよいだ ろう。 例えば、あなたの会社のネットワーク上で異なるマシンからのコピーをす るのに NcFTPを使 うなら、 anonymous FTPモードを使いたくはないだろう。 Anonymous password フィールドは匿名(anonymous)ログインする時にリモートのホストへ 与える値 を変える場合に用いる。 匿名(anonymous)FTPのためにパスワードとして利用者の e-mailアドレ ス が習慣的に用いられる(たいていは要求される)。これにより リモートホストの管理者は、だれが サービスを利用しているかを知ることができる。 もしNcFTPがあなたのe-mailアドレスを正しく得る ことができなかったり、 あなたが異なったものを使いたいのならば、このフィールドを変えるこ と。 NcFTPは目の疲れを減らすために以前よりも空白を多く使用してい る。これが嫌なら、 Blank lines between cmds フィールドを変更すればこの機能を無効にできる。 NcFTPは転送したファイルのログをとることができるので、 何を取得したのか忘れてしまった場合に はログを参照すること ができる。 ログが ~/.ncftp/log に保存されるようにするには User log size フィールドに0よりも大きい数をセットする。 おそらくこのファイルを無限に大きくはしたく ないだろうから、ファイルの 最大のサイズをセットしておくとよい。 NcFTPは以前にオープンした各サイトを全てブックマークファイルに保存するが、 保存するサイトの 数の上限を設定したくなるかもしれない。 NcFTPをロードしたりブックマークを保存するのが遅いマ シンを使っているとか、ディスクスペースが貴重な場合には、 Max bookmarks to save フィールド を設定してブックマークの保存数を制限することができる。 制限に達したら、NcFTPは最後の接続が 最も古いサイトの情報を捨てる。 言い換えれば、だいぶ前に一度だけ訪れ、忘れさられているサイ トが 最初に捨てられる。 NcFTPの機能によっては 大容量のテキストが表示されるので、 pager プログラムを使う必要があ る。 例えば page コマンドはリモートファイルを取得し、その閲覧のためにページャを使用する。 pager フィールド(もしくはコマンドラインフラグ)によって、 NcFTPで使用するページャを指定でき る。 リモートホストとローカルホストの間でファイルを転送するとき、NcFTP は 転送の状態を示す progress meter を表示する。 何種類かあるので、 Progress meter フィールドを変えれば、他のも のを試すことができる。 Remote messages フィールドを変えると、リモートサーバのおしゃべりをどれくらい表示す るかを 制御できる。 NcFTPは全てのエラーメッセージを表示するが、リモートサーバのメッセージの 多く はあまり役に立たない。 表示するに値するメッセージは2つくらいである。 一つめは startup message である。 典型的には、サーバーに接続したときサーバについて幾つかの重要な情報 を表示 する。 サーバによっては 特定のディレクトリに入ったときに chdir messages を表示する。 Remote messages フィールドをトグルすることによりこれらのメッセージを表示するか指定でき る。 デフォルトでは、NcFTPを実行している間、ローカルマシンのディレクトリは NcFTPを実行した時点 のディレクトリになる。 よってダウンロードはそのディレクトリに行われる。 私は自分がダウン ロードするものは指定したディレクトリ ``download directory'' を使用するのが好みである。 こ れは quotaの容量を超えたり、他のファイルを上書きすることを妨げる からである。 NcFTPの起動 時にローカルディレクトリを変更するには Startup in Local Dir フィールドを設定すればよい。 これにより、ダウンロードしたファイルのありかがわかるようになる。 NcFTPの自身にも、表示したくなくなるような退屈なメッセージが いくつか存在している。 プログ ラムが ``splash screen'' やプログラムの tip (ちょっと気のきいた利用法) 情報を表示するか は、 Startup messages で変えることができる。 リモートファイルを取得するとき、デフォルトではNcFTPはリモー トファイルと同じ更新時刻をロー カルファイルにも設定しようとする。 File timestamps フィールドを変更することによりこれを無 効にすることができる。 フルスクリーンの使用を好まないのなら、 Screen graphics フィールドを変更することにより行指 向のモードを使用することができる。 一度 プレファレンス スクリーンから ビジュアル モードを オフにすると、 ライン モードを使用しているときに再度 プレファレンススクリーンに戻ることは で きない。 ビジュアルモードに戻るためには、 ``-V'' フラグをつけてNcFTPを起 動する。例えば 以下のようにする。 ncftp -V
コマンドリファレンス
NcFTPのコマンドシェルがサポートしているコマンドについて説明する。 まず最初に知っておくべき コマンドは help である。 help とコマンドシェルから打てば NcFTPはサポートしているコマンドの名前をすべて表示する。 さらに helpの後に指定したコマンド を指定すれば、 そのコマンドのヘルプが 得られる。例えば: open コマンドについての情報を表示 するためには help open とする。 シェルエスケープコマンドは簡単で、エクスクラメーションマーク ! である。 サブシェルを起動 するには、単に ! と打てばよい。 1つのコマンドだけを実行させることもできる。以下のようにする: !date +%H:%M:%S cd コマンドはリモートホスト上でのワーキングディレクトリを変更する。 リモートサーバの異なる エリアへ移動するためにはこのコマンドを使う。 新しいサイトをオープンしたばかりの時に は、ルートディレクトリにいるであろ う。このサイトに、例えば ``/pub/news/comp.sources.d''と いう ディレクトリがある、という情報を聞いたとしよう。ここに移動するには、 ルートディレクト リから: cd pub cd news cd comp.sources.d もしくはより簡潔に cd /pub/news/comp.sources.d とすればよい。 移動がすんだら、 get, put, ls のようなコマンドを使用すれば、そのディレクト リにあるアイテムを参照できる。 UNIX 環境の幾つかのシェルでは直前にいたディレクトリにスイッ チするような 機能を持っている (私の好む機能である)。 それらのシェルのように cd - とすれば、直前にいたディレクトリに移動できる。 close コマンドはリモートサーバとの接続を切断する。 NcFTPは必要なときに自動的にこれを実行す るので、 他のサイトをオープンしたり、プログラムを終了したりするときに、 わざわざ手動で切断 する必要はない。 create コマンドは、たまに使用する必要があるかもしれない。 これはリモートホスト上に空のファ イルを作成する。 リモートサーバの管理者に接触できないが、 関係者の誰かが、あなたのファイル を目にしてくれるかもしれない 場合に役に立つかもしれない。 例えば create readline2.0.tar_is_corrupt とすることによって、 そのファイルを再投稿することをだれかに促すことができるかもしれない。 debug コマンドは、基本的には作者自身とテスターのためのものである。 デバッグモードをオンに するためには、 debug 1 とする。 こうすると、NcFTPとリモートサーバとの間のすべてのメッセージを 見ることができ る。この中にはデバッグモードのみで 表示されるいくつかのメッセージが存在する。 バグ報告をす る場合には、 trace ファイルを送ってほしい。 このファイルを作成するには、NcFTPを走らせてか ら debug trace 1 とする。 このときには、プログラムがどのようにコンパイルされたかがわかるように、 まず version と打って欲しい。 NcFTPを終了した後、 ~/.ncftp/trace ファイルの中身を emailに添付して私宛に送ってもらえれ ば、 私はその内容からバージョン情報も知ることができる。 dir コマンドは詳細なディレクトリのリストを表示する。 これは UNIXの ``/bin/ls -l'' コマンド のような振る舞いをする。 リモートサーバが UNIX ホストなら、 ls と同じフラグも使うことがで きる、例えば dir -rt は UNIX 上の /bin/ls -lrt と同じように動作する。 echo コマンドはあまり便利には思えないかもしれないが、NcFTPのマクロで 使用すると有益なこと がある。これは UNIX シェルの echo コマンドのように動作するが、いくつかの拡張 フラグを使用 できる。 ``%'' フラグはすべて ``%'' フラグはすべて strftime(4) を通して表示される。 した がって echo It is now %H:%M on %B %d. と打てば、スクリーン上に以下のような表示を得ることができる。 It is now 19:00 on January 22. ``@'' フラグも存在し、NcFTPは以下のように展開する: @H : 接続されたホストの名前。 @D : リモートホストの現在の作業ディレクトリのフルパス。 @J : リモートの現在の作業ディレクトリの短いパス名。 @N : 改行。 @n : 接続されたホストのブックマーク名。 例えば echo "Connected to @H at %H:%M." >> junk と打った後で ``junk'' の内容を見れば、以下のようになっている: Connected to sphygmomanometer.unl.edu at 20:37. get コマンドはファイルをリモートホスト上の現在の作業ディレクトリから あなたのマシンの現在 の作業ディレクトリにコピーする。 あなたのローカルディレクトリに ``README'' のコピーを置く ためには、 以下のようにすればよい: get README get コマンドは以下の ``ダウンロードの特殊機能'' で説明するようないくつかの 強力な特徴を 持っている。 bookmarks コマンドは ブックマーク エディタ を実行する。 これまでの内容を読んでいれば、これ が何をするものかを知っているはずである。 lcd コマンドはローカルホストに作用する ``l'' コマ ンドの最初のものである。 もし異なるローカルディレクトリにファイルをダウンロードしたけれ ば、 ディレクトリを変えるために lcd を使ってディレクトリを変更してからダウンロードすればよ い。 その他の手頃なローカルコマンドとしては、 lls コマンドがある。これはローカルホスト上の ``/bin/ls''を実行し NcFTPのウインドウに結果を表示する。 コマンドシェルの ls と同じフラグを lls にも用いることができる。例えば: lcd ~/doc lls -lrt p*.txt NcFTPには、ネームサービスへのインターフェースも組み込まれている。 これには lookup コマンド を用いる。 つまり以下のようにすれば、リモートホストのエントリを検索できるのである: lookup cse.unl.edu ftp.cs.unl.edu sphygmomanometer.unl.edu 以下のように表示される: cse.unl.edu 129.93.33.1 typhoon.unl.edu 129.93.33.24 sphygmomanometer.unl.edu 129.93.33.126 より詳細に表示することもできる。``-v''を用いればよい。例えば: lookup -v cse.unl.edu ftp.cs.unl.edu 以下のように表示される: cse.unl.edu Name: cse.unl.edu Address: 129.93.33.1 ftp.cs.unl.edu: Name: typhoon.unl.edu Alias: ftp.cs.unl.edu Address: 129.93.33.24 IP アドレスを与えることもできる。つまり次のような指定も可能である: lookup 129.93.33.24 以下のように表示される: typhoon.unl.edu 129.93.33.24 lpage コマンドを用いると、ローカルファイルを一度に一つだけ見ることができる。 デフォルトで は、NcFTPはファイルを表示に設定されているページャプロ グラムを使用する。 ``-b''フラグを指 定すれば、組み込みのページャを使うこともできる。 例えば: lpage -b ~/.ncftp/bookmarks lpwd コマンドは現在のローカルディレクトリを表示する。 ローカルマシン上でどこのディレクトリ にいるのかを忘れたときに このコマンドを使うと良い。 ls コマンドはディレクトリのリストを簡 潔に表示する。 UNIXの ``/bin/ls -CF '' コマンドのように振る舞おうとする。 もしリモートの サーバーが UNIX ホストなら、 ls と同じフラグを使うことができる。 例えば: ls -rt は UNIX 上での /bin/ls -CFrt のように振る舞おうとする。 mkdir コマンドはリモートホスト上で新しいディレクトリを作ろうとする。 多くの公的なサイトで は、利用者はそのような権限を持っていないであろう。 サーバによっては、特殊な転送モードを使用しなければならないこともある。 多くのサーバではデ フォルトのモードである stream モードのみをサポートしている。NcFTPはstreamモードと同様に block モードもサポートする。このモードを用いる最大の利点は、 全ての転送に同じデータコネク ションを用いることである。 stream モードで、NcFTPとサーバは各ファイル毎に新しいコネクショ ン を確立しなければならない。これは余計な時間と帯域を消費する。 blockモードにするには mode コマンドを使用する。 mode b とタイプすればよい。 ストリームモードを使用するためのコマンドは mode s である。 リモートサーバがblockモードをサポートしており、 その実装が正しいことが分かったな ら、NcFTPは 自動的にblockモードに切り替わるので、このコマンドは使うべきでない。 open コマンドはリモートホストに接続する。 フラグを使わずに単にホストに接続することが多いだ ろうが、 実は open コマンドには、各種の機能を有効にするためのフラグが幾つか存在する。 強制的に匿名(anonymous)でオープンするには、``-a''フラグを使用する。 NcFTP の公式アーカイブ サイトである ftp.ncftp.com マシン上で、私は匿名ログインとユーザログインの両方を使用する必 要がある。 ブックマーク エディタ は前回使用したログインのタイプを記憶してしまうので、 もし 前回ユーザログインであったならば、 ``-a''フラグを使用すれば ブックマーク エディタ を変更せ ずに匿名ログインに戻ることができるわけである。 同様に、強制的にユーザログインにするには ``-u''フラグを使用する。 そのときは、アクセスする ための自分のアカウント名とパスワードを入力する。 wuarchive.wustl.edu のような、巨大なアーカイブサイトの多くは混雑しているので、 それらに対 する接続が保証されない。 NcFTPは、接続が成功するまで定期的にサイトに ``リダイアル'' するよ うにできる。 自動的にリダイアルするには ``-r''フラグを使用する。 リダイアルには固有のパラメータが幾つか存在する。 リダイアルする間の遅延時間を秒単位で設定 できる。 また、NcFTPがリダイアルをあきらめる最大回数を設定できる。 以下に、リダイアルモー ドの全機能を用いている例を示す: open -r -d 75 -g 10 bowser.nintendo.co.jp ``-r''でリダイアルモードにし、``-d''はリダイアル間隔を75秒にして、 ``-g''フラグはリダイア ルの回数を10回に限定している。 デフォルトのリダイアル設定にまかせてかまわなければ、 ``-r''のみを指定しても良い。 open コマンドは オープンするホスト名を与えなければ、 ブックマーク エディタ を起動する。 ホ ストを選択するために ブックマーク エディタ からもホストを選択することができる。ホスト名を 反転させて リターン(return) キーを打てばよい。 page コマンドはリモートファイルを一度に一つだけ表示する。 これは、リモートホスト上の README などのファイルを ダウンロードせずに読むことができるので便利である。 このコマンドは ファイルを見るために Preferrences スクリーンの中の pager フィールドに設定したものを使用す る。 pdir と pls コマンドはそれぞれ dir と ls に等しい。ただし出力はページャへ送られる。 これら のコマンドは line モード での使用を念頭においている。ディレクトリのリストがオフスクリーン に スクロールしてしまうかも知れないからである。 もし、 ビジュアル モードでは、普通に ls す れば、オフスクリーンになる場合には組み込みのページャが自動的に起動する。 それゆえ、 ビジュ アル モードで pdir と pls を使用することは奨めない。 redir と predir コマンドは最後に取ったディレクトリのリストを再表示するものである。 NcFTPは 最後に行った dir もしくは ls コマンドからの出力を保存するので、それを再び見たいとき に、ネットワーク の帯域を浪費せずにすむ。 predir コマンドは出力をページャに渡すことを除い て redir と同じである。 predir コマンドは出力をページャに渡すことを除いて redir と同じである。 私の使い方では、 接続の多くはダウンロードのためで、 アップロードはほとんど必要としなかっ た。 しかし put コマンドもちゃんと存在していて、リモートホストへファイルを アップロードす ることができる。 例えば、いくつかのファイルをリモートホストに送りたいならば、 以下のように すればよい: lcd ~/docs/files put 02.txt 03.txt 05.txt 07.txt 11.txt put コマンドはあなたがリモートホスト上に正当な許可属性を持っていない場合には 動作しな い。また、このコマンドは ``-z''オプションを除いて get コマンドが持っているような特別な機能 を持っていない。 pwd コマンドは現在のリモートディレクトリを表示する。 ビジュアル モードでは、これはステータ スバーに表示される。 リモートファイルの名前は変更したいときには、 以下のように rename コマンドを使用すればよい: rename SPHYGMTR.TAR sphygmomanometer-2.3.1.tar NcFTPの使用を終了するには、もちろん quit と打てば良い。 ( bye、 exit, ^D などのコマンドも 利用できる。) quote コマンドを使えば リモートサーバへ直接 FTP プロトコル を送ることができる。 通常、これ は一般的なユーザにとっては使いやすいものではない。 rhelp コマンドは、リモートサーバにヘルプリクエストを送信する。 FTP プロトコル のコマンドリ ストが表示されることが多い。たまには、実際に有用な (サイト管理者への連絡方法など) が表示さ れることもある。 リモートサーバによっては、サーバへ以下のような パラメータを与えることも可能かもしれない: rhelp NLST そのようなサーバは以下のように返答する: Syntax: NLST [ <sp> path-name ] リモートファイルを削除したい場合には、 rm コマンドを試してみるとよい。 多くの場合、あなた は正しい許可属性を持っていないだろうから でうまく行かないであろう。 このコマンドはいかなる フラグも受け入れない。よって UNIX でのように ``-rf''を用いて、ディレクトリツリー全体を破壊 する ようなことはできない。 同様に、 rmdir コマンドはディレクトリを削除する。 リモートサーバによっては、空でないディレ クトリを消すことができる かもしれないので気をつけるように。 set コマンドはNcFTPの古いバージョンとの互換性のために用意されている。 現在では prefs コマ ンドによって置き換えられた。 基本的な文法は: set オプション 値 である。ここでオプションは、 Preferences スクリーンのフィールドに対応したショートネームで ある。 preferencesフィールドのショートネームは ~/.ncftp/prefs ファイルを眺めることによって 見つけられる。 このコマンドは主に line mode で使われるが、私はもうこのモードは公式にサポー トしないので、 このコマンドは使用しないで頂きたい。 site コマンドを使わなければならないようなこともあるかもしれない。 FTP プロトコル では ``サ イト固有の''コマンドが許可されている。 もちろんこれらの ``site''コマンドはサイトによって異 なるが、 いくつかのサイトでサポートされているコマンドに chmod がある。 例えば: site chmod 644 README リモートサーバが何をサポートしているかを知るためには、 以下のようにしてみると良い: rhelp SITE site help サーバとのセッションの途中で、転送タイプを変更する必要があるかもしれない。 これには type コマンドを使用することができる。以下のように試してみると良い: tpe ascii type binary type image NcFTPについて私に連絡する必要が生じた場合には、 version コマンドに慣れて欲しい。 このコマ ンドは、あなたが使用しているNcFTPのバージョンと それがどのようにシステムにインストールされ たかを私に伝えるために 多くの情報をダンプする。 このコマンドの出力をファイルに保存する方法 を以下に示す。 この結果を私に送ってほしい。 version > version.txt
ダウンロードの特殊機能
リモートホスト上のファイルをローカルホストにコピーするには get コマンドを使用すればよ い、と言うことはおそらく既に知っているだろう。 しかし get コマンドにはいくつか有益なトリッ クがある。 まず、 NcFTP は既に持っているファイルをスキップできる。 get file24 が指定されたときに 現在のローカルディレクトリに``file24''というファイルが存在する場合には、 NcFTPはそれを再び ダウンロードしてネットワークの帯域を 消費してもよいかを決定するために、いくつかの追加的な 情報を取得しようとする。 NcFTPはリモートファイル``file24''の日付とサイズを取得しようとする。 もしそのファイルがロー カルファイル``file24''と同じ日付で同じサイズなら、 NcFTPはそのファイルをスキップする。 NcFTPがリモートファイルの日付もしくはサイズを取得できなかったり、 それらが異なっていた ら、NcFTPはファイルを取り寄せる。 また、ローカルファイルの日付がリモートファイルの日付より新しければ、 NcFTPは既により新しい バージョン持っていると見なしてダウンロードを スキップする。 つまり、NcFTPを用いればアーカイブを mirror することができるわけである。 例え ば、``files''と呼ばれるリモートディレクトリのファイル全てを ミラーしていなければならい仕事 があるとする。 そのディレクトリには多数のファイルがあり、その中のいくつかが 時々更新されて いる。 ncftp を使用して適切なローカルとリモートディレクトリを設定すれば この作業を簡単に行 うことができる。 get * NcFTPは古いファイルをスキップし、持っていないファイルと 前回から更新されたファイルのみをダ ウンロードする。 NcFTPが必要ないと判断した場合でも、 NcFTPのアドバイスを無視してファイルを ダウンロードした いかもしれない。 強制的にダウンロードするには get に ``-f''フラグを用いれば良い。 get -f README 接続が切れたときにも強制的に継続してダウンロードを続けるためのフラグ ``-C''の使用すればよ い。 私は歴史的な理由から、これを ``forced reget(強制再取得)''と呼ぶことがある。 get に ``-G''フラグを使用すれば ワイルドカードマッチング の機能を無効にできる。 他の FTP プログラムは ダウンロードしているファイルのローカルパス名を指定するために get remote-file [local-file] という文法の使用を許している。 NcFTP はその点で異なっている、古いプログラムを使用していた 人は、 NcFTPの get は古いプログラムの mget コマンドのように振る舞うことに気付くだろう。 NcFTP での以下の指定: get file01 file01 は、``file01''と ``file02''というリモートファイルをダウンロードしよう としていることにな る。 ``-z''フラグを使用すれば、古い動作をさせることもできる。 get -z file01 ../junk/files/01.txt のようにすればよい。 get では、ある日付より新しいファイルを取得するために ``-n''フラグを使用することもできる。 アーカイブのうち、最新のファイルだけを取得したいなら、 全てをミラーする必要はない。 ``3日 より新しいファイル全てをダウンロードする''こともできる。 これには、目的のディレクトリへ 行ってから、 get -n 3 * とする。 NcFTPでは、 get コマンドに ``reget''モードも組み込まれている。 他のFTPプログラムは reget コマンドを別途に提供している。これはダウンロードしている間に接続が切れたとき 有用であ る。リモートホストにファイルを最初から再送させるのではなく、 切れたところから転送を続けさ せることができる。 NcFTP はこの機能を組み込んでいる。NcFTPは前回中断してしまったところ から継続すべきか決定す るためにリモートファイルとローカルファイルの日付 とサイズを検査する。 もし日付が同じ で、ローカルファイルのサイズが小さいなら、NcFTPは ``reget''を試みる。 最後に、 get のもっとも無駄な機能はリカーシブ(再帰)モードである、これは ``-R''フラグで有効 になる。 これの特徴は全てのディレクトリの中身をダウンロードできることである。 例えば: get -R /pub/info/help これは現在のローカルディレクトリに ``./help''と呼ばれるディレクトリを作成し、 その中に全て のファイルとサブディレクトリをコピーする。 この機能を用いるときには慎重に考えてから行うこと。 巨大なディレクトリを取得すると、リモー トホストを泥沼に 陥らせることになりかねない。 アーカイブ管理者は公共のサービスを提供してい るのであるから、 アーカイブを濫用してこのサービスを閉鎖させるようなことがあってはならな い。
マクロ
NcFTPは簡単な マクロ/エイリアス 機能を持っている。 ユーザ独自のコマンドの拡張や、 イベント が起きたときに何か行うためにマクロを利用できる。 マクロを使用するためには、ホームディレクトリの .ncftp サブディレクトリの中に macros ファイ ルを作成する必要がある。 ~/.ncftp ディレクトリはNcFTPを最初に実行したときに自動的に作成さ れるが、 多くのユーザは macros ファイルを必要としていないので、これは自分で作らなければな らない。 複数の マクロを定義することができる。 文法は以下の通りである: macro macro-name macro-body... end 以下は古い ftp プログラムのユーザが喜びそうなマクロの例である: macro binary type i end マクロは NcFTPを起動させた後、通常の ncftp コマンドのように実行できる。 マクロは、 Korn シェルの 関数や C シェル の エイリアスのようにパラメータを持つこともでき る。 これらのパラメータはマクロに送られ、マクロ内部に対応した ``$''が あれば、それらは実際 に指定された値に展開される。 例として、以下のマクロを示す: macro cdls cd $1 ls end このマクロを実行するには、ftp接続して以下のようにしてみれば良い: cdls /pub これは /pub へ cd し、そして ls . によって /pub の内容をリストアップする。 $ はある程度 Bourne シェルと Korn シェルに似ている。 文法の例は以下の通りである: $4 : 4番目の引数 $* : 全ての引数 $@ : 全ての引数、各々ダブルクォートされる。 $(2-5) : 2,3,4番目の引数。 $(2,5) : 2,5番目の引数。 $(3+) : 3,4,5, ..., N番目の引数。 ``cdls''マクロコードのより良い例を以下に示す: macro cdls cd $1 ls $(2+) end イベントマクロ と呼ばれる特別なマクロがいくつか存在する。 NcFTPはイベントが起きたときに特 定の名前を持つマクロを探し、 それが存在していたら実行する。 まず .start.ncftp というイベントマクロがある。 マクロファイルにそのような名前で定義されて いるマクロがあるなら、 NcFTPが起動される度にそのマクロが実行される。 同じように、 NcFTPを終了する度に実行される .quit.ncftp マクロというものもある。 その他のイベントマクロは各サイトに対応している。 例えば、もしサイトのブックマークとして ``typhoon'' というもがあるのなら、 ``typhoon'' に接続したり、接続を終了する度に実行される .open.typhoon と .close.typhoon とういうマクロを定義できる。 また、より一般的なイベントマ クロとして .open.any と .close.any というマクロもあり、これらはすべてのサイトの接続・切断 時に実行される。 これらのマクロを利用すれば、サイトへの接続終了時に、何らかの 処理をする シェルスクリプトをサイト別に実行できる。 このようなマクロは以下のように書く: macro .quit.ncftp echo "Started post-processing downloads at %H:%M:%S" !sh ~/scripts/download-decoder echo "Finished post-processing downloads at %H:%M:%S" end もうひとつ、 従来の ftp プログラムが .netrc ファイルで使用していた 古い macdef init ハック をコピーして使う利用法もある。 以下に例をあげる: macro .open.infomac echo "Getting recent files list" get -z /pub/info-mac/help/recent-files ~/docs/recent ls -lrt end
コロンモードの使用
コロンモード の特徴はシェルのコマンドラインから使用できることである。 大昔、ディスコが流行っていた時代には、インターネット標準の Trivial File Transfer Protocol を使った tftp と呼ばれるプログラムでファイルを取ってくることができた。 シェル上で: get wuarchive.wustl.edu:/graphics/gif/README のようにこのプログラムを使えば、 wuarchive を呼び出し、REAMEファイルを取得できた。 NcFTPは、これと同じようにシェルのコマンドラインから使用できる: csh> ncftp wuarchive.wustl.edu:/graphics/gif/README csh> head REAMDE これはシェルに、(この場合は C シェル から NcFTP を起動し、wuarchibe に接 続、/graphics/gif/README を取得、取得できたら 現在の作業ディレクトリに /README ファイルを 書き出すように指せている。 コロンモード の機能はリモートサイトを訪ね回りたくなく、欲しいものが明確であるとき に便利で ある。 またシェルスクリプトから実行するときに、 NcFTPのコマンドシェルに入りたくないとき や、 出力を吐き出させたくないときにも便利である。 現在の作業ディレクトリに コロンモード のファイルを書き出したりしたくないとか、どこか のリ モートファイルに出力をパイプしたいときがある。 コロンモード にはこのためのオプションが存在 する。 これは ftpcat という perl スクリプトを書いた人から示唆された。 ``-c''オプションは標 準出力ストリームに書き出す。 ``-m''オプションはページャ(例えば more) にファイルをパイプす る。 もちろんこれは コロンモード に渡したものがディレクトリの場合はうまく動かない! 以下の 例はリモートファイルのダンプを標準出力に渡す: csh> ncftp -c wuarc:/graphics/gif/REAME 以下の例はリモートファイルを異なる場所にリダイレクトする: csh> ncftp -c wu:/REAME > ~pdietz/thesis.tex これはどのようにパイプラインを使うかを示している: csh> ncftp -c wuarc:/REAME | tail | wc -l 10 csh > これはどのようにリモートファイルを表示(ページ)するかを示している。 csh> ncftp -m wuarc:/graphics/gif/README
ラインモードの使用
ラインモード を提供する唯一の理由は、 curses ライブラリを装備していなかったり、このライブ ラリの機能が 完全でないような原始的なシステムでも、何とかNcFTPを使えるように するためであ る。 多くのNcFTPの機能は ビジュアルモード が求められる機能を除いて、同じように機能する。 Preferencesスクリーンとブックマークエディタ のようなものは動作しない。 テキストエディタで ~/.ncftp/prefs と ~/.ncftp/bookmarks ファイルを編集しなければならないだろう。 次善の解決策としては、 GNU Readline のような強力な行編集ライブラリを、NcFTPをコンパイルす るときに 使用するとよい。
コマンドラインオプションのまとめ
シェルからNcFTPを呼び出したいとき、多くの UNIX プログラムと同じように ``ダッシュフラグ''を 用いることができる。 ここにコマンドラインから使用できるオプションのリストを示す: -D : デバッグモードとトレースを有効にする。 -V : このセッションに``ビジュアル''モードを使用する。 -L : このセッションに``ライン''モードを使用する。 -H : ``version''コマンドからの情報を表示し終了する。 トレースをオンにしているとき、NcFTPは ホームディレクトリの .ncftp サブディレクトリにある trace と呼ばれるファイルにデバッグ情報を書き出す。 バグリポートをする場合には、 作者がログ を追跡できるように trace ファイルをメールに添付してもらえるとありがたい。 コロンモード では、以上のフラグに加え open と get コマンドで用いるフラグをパスとともに指 定できる。 以下は非常に複雑な例である: csh> ncftp -r -d 120 -n 3 sphygmomanometer.unl.edu:/pub/stuff/* これは2秒ごとにホストに再接続し、``/pub/stuff''ディレクトリから、3日 前より新しい全ての ファイルを取得させようとするものである。
著者
NcFTP は Mike Gleason 、 (mgleason@NcFTP.com)によって書かれた。 NcFTP is copyrighted 1995 by Mike Gleason. All rights reserved. もっとも最新のバージョンは <ftp://ftp.ncftp.com/ncftp/> にアーカイブされている。
謝辞
アイディアとある部分のコードは私のパートナーである Phil Dietzによって寄付された。 何年にもわたってNcFTPをテストし、 フィードバックしてくれた全ての人に感謝します。 あなた方 のサポートは、NcFTPを改良する上での動機となりました。 様々なプラットホームでのテストを可能にし、余分なディスクスペースを 私に与えてくれ、UNL FTPサイトを管理してくれた 私のシステム管理者たちに、特に Charles Danielに感謝をしたい。 probe.net に ncftp の homeを与えてくれた Probe Techonology の Dale Botkin と Tim Russell に感謝します。 仕事の合間にテストに付き合ってくれた Phil dietz、kok Hon Yin (hkok@yoda.unl.deu)、Andrey A. Chernov (ache@astral.msk.su)に感謝します。 ファイル名の保管(機能)に関するコードを作ってくれた Tim Mackenzie(t.mackenzie@trl.oz.au) に 感謝します。 manページを手助けしてくれた DaviD W. Sanderson(dws@ssec.wisc.edu) に感謝します。
バグ
curses ライブラリの制限のため、ビジュアルモードでのスクロールは遅いかもしれない。 ビジュアルモード でのシェルエスケープ、サスペンド(^Z)とレジューム、割り込み(^C)は依然 では まだ不具合が残っているかもしれない。 bowser.nintendo.co.jp や sphoygmomanometer.unl.edu というサイトは存在していない。
関連項目
ftp(1), ftpd(8), nslookup(1), archie(1), rcp(1), tftp(1).