diff --git a/ja/man/man1/cat.1 b/ja/man/man1/cat.1 index 66183b6678..bf471dba92 100644 --- a/ja/man/man1/cat.1 +++ b/ja/man/man1/cat.1 @@ -1,116 +1,118 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)cat.1 8.3 (Berkeley) 5/2/95 .\" jpman %Id: cat.1,v 1.3 1997/08/31 14:09:30 horikawa Stab % -.\" %Id: cat.1,v 1.3.2.1 1997/02/28 07:54:20 mpp Exp % +.\" %Id: cat.1,v 1.3.2.2 1998/06/30 06:42:19 charnier Exp % .\" .Dd May 2, 1995 .Dt CAT 1 .Os BSD 3 .Sh 名称 .Nm cat .Nd ファイルの連結、表示を行う .Sh 書式 .Nm cat .Op Fl benstuv .Op Fl .Op Ar .Sh 解説 .Nm cat はファイルを連続的に読み込み、標準出力に書き出します。 .Ar file はコマンドラインに記述された順番で処理されます。 ``-'' は標準入力を表します。 .Pp オプションは以下のとおりです。 -.Bl -tag -width Ds +.Bl -tag -width width .It Fl b -.Fl n -と同じですが、空行を行数として数えません。 +非空白行に、1 から開始する番号を付けます。 .It Fl e +表示できない文字を目に見える形で表示し ( .Fl v -と同じですが、各行の最後に +オプション参照)、各行の最後に .Pq Ql \&$ を表示します。 .It Fl n 行番号を付け加えます。行番号は 1 から始まります。 .It Fl s 連続した空行を圧縮します。連続した空行は 1 行の空行 として出力されます。 .It Fl t +表示できない文字を目に見える形で表示し ( .Fl v -と同じですが、タブを +オプション参照)、タブを .Ql ^I で表示します。 .It Fl u 出力のバッファリングを行いません。 .It Fl v 表示できない文字を目に見える形で表示します。 control-X は .Ql ^X 、削除文字 (8進数で 0177) は .Ql ^? と表示されます。 -ASCII 文字でないもの ( 最上位ビットが立っているもの ) +.Tn ASCII +文字でないもの ( 最上位ビットが立っているもの ) は、 .Ql M- (メタ) のあとに残りの7ビットで表されるキャラクタを 表示します。 .El .Pp .Nm cat は実行に成功すると 0 を返し、エラーが起こると 0 より 大きな値を返します。 .Sh バグ シェルの出力リダイレクトのメカニズムが原因で、 .Dq Li cat file1 file2 > file1 は file1 に最初に入っているデータを消去してしまいます! .Sh 関連項目 .Xr head 1 , .Xr more 1 , .Xr pr 1 , .Xr tail 1 , .Xr vis 1 .Rs .%A Rob Pike .%T "UNIX Style, or cat -v Considered Harmful" .%J "USENIX Summer Conference Proceedings" .%D 1983 .Re .Sh 歴史 .Nm は Version 1 AT&T UNIX から登場しました。 -Dennis Ritchie がマニュアルの初版をデザインし、執筆しました。 - +.An Dennis Ritchie +がマニュアルの初版をデザインし、執筆しました。 diff --git a/ja/man/man1/csh.1 b/ja/man/man1/csh.1 index 3cc1301443..d257858c72 100644 --- a/ja/man/man1/csh.1 +++ b/ja/man/man1/csh.1 @@ -1,2188 +1,2194 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)csh.1 8.2 (Berkeley) 1/21/94 .\" jpman %Id: csh.1,v 1.2 1997/04/08 00:35:51 h-nokubi Stab % -.\" %Id: csh.1,v 1.5.2.1 1997/02/28 07:54:29 mpp Exp % +.\" %Id: csh.1,v 1.5.2.2 1998/06/30 06:42:24 charnier Exp % .\" .\" Japanese translation for jpman-0.2 checked by jpman project 96.12.23 .\" .Dd January 21, 1994 .Dt CSH 1 .Os BSD 4 .Sh 名称 .Nm csh .Nd C 言語ライクな文法を持つシェル(コマンドインタプリタ) .Sh 書式 .Nm csh .Op Fl bcefimnstvVxX .Op arg ... .Nm csh .Op Fl l .Sh 解説 .Nm csh は、履歴(参照: -.Nm ヒストリ置換 +.Sx ヒストリ置換 の項)、ジョブ制御(参照: -.Nm ジョブ +.Sx ジョブ の項)、対話的なファイル名とユーザ名の補完(参照: .Nm ファイル名補完 の項)、C 言語ライクな文法を特徴とするコマンドインタプリタです。 対話的なログイン・シェル、また シェル・スクリプトのコマンド・プロセッサの両方の用途で使われます。 .Ss 引数リスト処理 シェルへの最初の引数(第 0 引数)が .Ql Fl \& で始まる場合、シェルはログイン・シェルとなります。 シェルを .Ql Fl l フラグを指定して起動することでもログイン・シェルにできます。 .Pp 残りのフラグは以下のように解釈されます: .Bl -tag -width 5n .It Fl b このフラグは、オプションの処理を強制的に中断させる場合に使用します。この フラグ以降の引数はすべて、オプションではない引数として処理されます。 これにより、シェル・スクリプトに混乱やごまかしを行わずにオプションを 渡すことが可能になります。 set-user ID スクリプトは本オプションなしでは実行できません。 .It Fl c コマンドを本フラグの次にくる 1 つの引数から読み込みます。 この引数は省略できません。残りの引数は .Ar argv に代入されます。 .It Fl e 起動したコマンドが異常終了したり、0 でない終了ステータスを返したときに、 ただちにシェルを終了します。 .It Fl f 起動したユーザのホーム・ディレクトリにある .Pa \&.cshrc を捜さず、また読み込まないため高速に起動します。 .It Fl i たとえ端末上で実行されていなくても、対話的に動作しプロンプトを表示します。 入力と出力が端末である場合、本オプションなしでもシェルは対話的に動作します。 .It Fl l ログイン・シェルとなります。( .Fl l が、指定された唯一のフラグの場合にのみ有効です。) .It Fl m シェルは、実効ユーザに属していなくても .Pa .cshrc をロードします。 .Xr su 1 は .Fl m をシェルに渡すことができます。 .It Fl n コマンドの解析は行いますが、実行しません。シェル・スクリプトの 文法検査に役立ちます。 .It Fl s 標準入力からコマンドを読み込みます。 .It Fl t 入力から1行だけ読み込み、それを実行します。改行の直前に .Ql \e を置くことで、次の行への継続を行うことができます。 .It Fl v .Ar verbose 変数を設定します。これにより、ヒストリ置換された状態のコマンド行を 表示するようになります。 .It Fl x .Ar echo 変数を設定します。これにより、実行直前に、実行するコマンドを 表示するようになります。 .It Fl V .Pa .cshrc を実行するより前に .Ar verbose 変数を設定します。 .It Fl X .Pa .cshrc を実行するより前に .Ar echo 変数を設定します。 .El .Pp .Fl X に対する .Fl x の関係は、ちょうど .Fl V に対する .Fl v の関係に相当します。 .Pp フラグ引数の処理のあと、もし引数が残っていて、かつ、 .Fl c , .Fl i , .Fl s , .Fl t のいずれのフラグも指定されていなければ、残っている最初の引数は コマンドファイル名であるとみなされます。シェルはこのファイルをオープンし、 `$0' による置換に備えてファイル名を保存します。多くのシステムは version 6 または version 7 の標準のシェルを使っており、また、それらの シェル・スクリプトは本シェルとは互換性がないので、 スクリプトの先頭の文字が `#' でない場合、 つまりスクリプトがコメントから始まらない場合、 本シェルはそれらの `標準' シェルを起動して実行します。 残りの引数は変数 .Ar argv に初期値として設定されます。 .Pp .Nm csh は、実行開始に際し、まず、ファイル .Pa /etc/csh.cshrc を読み込み実行します。ログイン・シェルであれば、さらに、ファイル .Pa \&/etc/csh.login を読み込み実行します。 次にシェルを起動したユーザの .Ar ホーム ・ディレクトリにあるファイル .Pa \&.cshrc を読み込み実行します。ログイン・シェルであるなら、 さらに、同じディレクトリのファイル .Pa \&.login を読み込み、実行します。 .Pa \&.login の通常の使い方としては、ユーザが CRT 画面の設定のために ``stty crt'' を実行したり、 .Xr tset 1 を実行したりするために用いられます。 .Pp 通常、シェルはプロンプト `% ' を表示し、端末からコマンドを読み込みます。 引数の処理やコマンド・スクリプトを含むファイルの処理については後述します。 .Pp シェルは以下の動作を繰り返します: 読み込んだ行を .Ar 単語 に分解します。この単語の列をコマンド履歴に格納し、解析します。 最後にその行の各コマンドを実行します。 .Pp ログイン・シェルが終了するとき、ユーザの .Ar ホーム ディレクトリのファイル .Pa .logout と .Pa /etc/csh.logout を読み込み実行します。 .Ss 字句構造 シェルは、読み込んだ行を空白とタブを区切りとして単語に分割します。ただし、 以下の例外があります。文字 `&' `\&|' `;' `<' `>' `(' `)' は独立した単語となります。`&&', `\&|\&|', `<<', `>>' のように 2つ繰り返されている場合はペアで1単語を形成します。 これらのメタキャラクタは、直前に `\e' を置くことによって、単語の一部としたり、 特別な意味を無視させることができます。改行の直前に `\e' を置くと、 単一の空白と等価になります。 .Pp 対応したクォート記号 `'\|', `\*(ga', `"' に狭まれた文字列は、単語の一部分となります。 このような文字列中のメタキャラクタやブランク、 タブによって単語が分割されることはありません。 これらのクォートの意味はあとで説明します。 `\'' または `"' の内側で改行文字の直前に `\e' を置くと、 改行文字そのものになります。 .Pp シェルの入力が端末からではない場合、 `#' 文字から改行まではコメントとして扱われます。 直前に `\e' を置くか `\`', `\'', `"" でクォートすることにより、 この意味を抑制することができます。 .Ss コマンド 単純コマンドは単語の列であり、最初の単語が実行すべきコマンドを示します。 `\&|' 記号で区切られた、単純コマンドあるいは単純コマンドの列は パイプラインを形成します。パイプラインの各コマンドの出力は、次のコマンドの 入力に接続されます。パイプラインの列を `;' によって区切ることで逐次実行が 行えます。パイプラインの列に続けて `&' を置くと、そのパイプラインの終了を 待つことなく、次のパイプラインが実行されます。 .Pp 上記のいずれかを `(' と `)' で囲むことにより、単純コマンドを形成することが できます (これはパイプライン等の構成要素として使えます)。 また、パイプラインを `\&|\&|' または `&&' で区切ることにより、C 言語のように、第 2 のパイプラインが第 1 のパイプラインが失敗あるいは 成功したときにのみ実行させることができます( .Em 式 の項参照)。 .Ss ジョブ シェルはパイプラインの各々に対し .Ar ジョブ を 1 つづつ関連付けます。シェルは、現在実行中のジョブの一覧表を保持しており、 これは、 .Ar jobs コマンドによって表示することができます。 ジョブには整数の番号が割り当てられます。ジョブが `&' を用いて非同期に 起動された場合、シェルは以下のような出力を行います: .Bd -filled -offset indent .Op 1 1234 .Ed .Pp これは、非同期に起動したジョブがジョブ番号 1 であり、プロセス ID が 1234 である (トップレベルの) プロセスを 1 つ持っていることを示します。 .Pp もし、あるジョブを実行中に他のことをしたくなった場合、 -.Nm ^Z +.Em ^Z キー (control-Z) を押すことにより実行中のジョブに STOP シグナルを 送信することができます。通常、シェルはそのジョブが停止した(Stopped)ことを 出力し、プロンプトを表示します。ここで、停止したジョブの状態を操作することが できます。つまり、 .Ar bg コマンドにより停止したプロセスを .Em バックグラウンド で走行させたり、他のコマンドを実行してから、停止していたジョブを .Ar fg コマンドにより .Em フォアグラウンド で再実行させることなどができます。 -.Nm ^Z +.Em ^Z は即座に効力を発揮し、インタラプトと同様に、それまで待たされていた 出力とまだ読み込まれていない入力は捨てられます。 ほかに特殊キーとして .Nm ^Y があり、これを押すと、プログラムが .Xr read 2 によって読み込もうとした時点で STOP シグナルが送信されます。 これは、実行中のジョブに対していくつかの入力を先に入力しておき、 先行入力を読み終えた時点でジョブを停止させたいときに便利です。 .Pp バックグラウンドで実行しているジョブが端末からの入力を試みた場合、その ジョブは停止します。通常、バックグラウンドジョブが端末に出力することは 可能ですが、これは、コマンド ``stty tostop'' により禁止することができます。 もし、この tty オプションを指定したなら、バックグラウンドで実行している ジョブは、端末から入力を試みたときと同様に、端末に出力を試みたときに 停止します。 .Pp シェルでジョブを参照するにはいくつかの方法があります。文字 `%' は ジョブ名を表すのに用いられます。番号 1 のジョブを参照する場合は `%1' とします。 単にジョブ名を入力した場合、そのジョブはフォアグラウンドに移動されます。 すなわち `%1' は `fg %1' と等価で、番号 1 のジョブをフォアグラウンドで 実行させます。同様に `%1 &' は番号 1 のジョブをバックグラウンドで 走行させます。ジョブはそのジョブを起動したときにタイプされた文字列の 先頭部分によって参照することもできます。ただし、この先頭部分は あいまいでない必要があります。すなわち、`%ex' は、`ex' という文字列で 始まる名前のサスペンドされたジョブが 1 つしかない場合に限り、サスペンドされた .Xr ex 1 のジョブを再開します。文字列 .Ar string を含むジョブが 1 つしかない場合、`%?string' と入力することで、 それを指定することもできます。 .Pp シェルは現在のジョブと直前のジョブを覚えています。jobs コマンドの 出力では、`+' 記号が付加されているのが現在のジョブ、`\-' 記号が 付加されているのが直前のジョブです。`%+' は現在のジョブ、`%\-' は 直前のジョブの省略形です。後述する .Ar ヒストリ の文法から類推される記法として、`%%' があります。 これもまた現在のジョブの省略形です。 .Pp ジョブ制御機構を用いるには、 .Xr stty 1 のオプション .Ic new を設定しておく必要があります。ジョブ制御機構は、 .Em 新型 の端末ドライバの実装の上に構築されているからです。 新型の端末ドライバにより、ジョブを停止させるためのシグナルを キーボードから入力できるわけです。 新型の端末ドライバのオプション設定については stty(1) を参照してください。 .Ss 状態通知 シェルは、プロセスが状態の変化を起こすと、すぐにそれを検知します。通常、 プロンプトが表示される直前にのみ、あるジョブが停止し、それ以上処理が 進まなくなったことを通知します。これは、ユーザの仕事を邪魔しないように するためです。 しかしながら、シェル変数 .Ar notify をセットすることにより、シェルにバックグラウンド・ジョブの状態が 変化したことをただちに通知させることができます。 また、シェルコマンド .Ar notify により、特定のジョブの状態の変化をただちに通知させる ようにマークすることもできます。引数なしの .Ar notify は現在のプロセスに対してマークをつけます。 バックグラウンド・ジョブの開始直後に単に `notify' と打つと そのジョブをマークします。 .Pp 停止したジョブがある状態でシェルを終了しようとすると、`You have stopped jobs.' という警告を受けます。このとき、 .Ar jobs コマンドによりどのジョブが停止中であるのかを確認することができます。 警告を受けた直後に .Ar jobs コマンドで確認した場合と、 警告を受けた直後に再度シェルを終了させようとした場合には、 シェルは 2 度目の警告を行わず、停止中のジョブは終了させてから シェルを終了します。 .Ss ファイル名補完 シェル変数 .Ar filec がセットされてファイル名補完機能が有効になっている場合、 ( .Ic set の項参照) .Nm csh はファイル名やユーザ名の補完を対話的に行います。文字列に続けて エスケープ文字 (エスケープキー、または control-[) キーを端末から 入力することにより補完が行われます。 たとえば、以下のファイルがカレント・ディレクトリにあったとします。 .Bd -literal -offset indent DSC.OLD bin cmd lib xmpl.c DSC.NEW chaosnet cmtest mail xmpl.o bench class dev mbox xmpl.out .Ed .Pp ここで、以下のように入力します。 .Pp .Dl % vi ch .Pp このとき、 .Nm csh は ``ch'' を補完し、それにマッチする唯一のファイル名 ``chaosnet'' にします。補完後の入力行は以下のようになります。 .Pp .Dl % vi chaosnet .Pp 以下のように入力した場合は、 .Pp .Dl % vi D .Pp .Nm csh は、次のように補完を行います。 .Pp .Dl % vi DSC. .Pp ここで、端末ベルを鳴らし、補完が完了しなかったことをユーザに伝えます。 なぜなら、``D'' で始まるファイル名が複数あったからです。 .Pp 不完全なファイル名に続いて end-of-file 文字(通常は control-D)を入力すると、 名前の補完を行うかわりに、その名前にマッチするファイル名の一覧を出力します。 たとえば、以下のように入力すると、 .Pp .Dl % vi D .Pp ``D'' で始まるファイル名の一覧が以下のように出力されます: .Pp .Dl DSC.NEW DSC.OLD .Pp このとき、入力行は変化しません。 .Pp エスケープ文字と、end-of-file 文字を用いる同様の機構は、 ユーザ名を補完する場合にも用いることができます。この場合、``~'' で 名前を開始します。たとえば、次のように入力すると、 .Pp .Dl cd ~ro .Pp 以下のように補完されます。 .Pp .Dl cd ~root .Pp シェル変数 .Ar nobeep をセットすることにより、複数の候補があったり、補完に 失敗した場合に端末ベルを鳴らすのを禁止することができます。 .Pp 通常、そのディレクトリにあるすべてのファイル名が補完の候補となります。 ある特定の拡張子を持つファイルを補完の候補から外すのに、変数 .Ar fignore を用いる ことができます。以下のコマンドで、変数 .Ar fignore を設定すると、 .Pp .Dl % set fignore = (.o .out) .Pp 以下のように入力した場合に、 .Pp .Dl % vi x .Pp 次のように補完が行われます。 .Pp .Dl % vi xmpl.c .Pp つまり、"xmpl.o" と "xmpl.out" が無視されて補完が行われました。もし、 .Ar fignore で無視するように指定されたファイル名しか補完の対象になり得なかった場合、 .Ar fignore の設定は無視されます。また、 .Ar fignore は end-of-file 文字によるファイル名の一覧には影響を与えません。 一覧ではすべてのファイル名が出力されます。 .Ss 置換 ここからは、シェルが入力に対して行うさまざまな置換を、 処理が行われる順に記述します。 .Ss ヒストリ置換 ヒストリ置換は、以前に入力されたコマンド中の単語を、 新たなコマンドの一部として置き換えることで、 コマンドの繰り返し実行を容易にしたり、直前のコマンドの引数を次のコマンドで 再び使用したり、直前に入力した行の綴り間違いを修正する際に、 タイプ入力の手間を減らし、自信をもって修正できるようにするための機能です。 ヒストリ置換は文字 `!' により始まり、入力ストリームの .Ar どの位置にでも 置くことができます(ただし、入れ子にすることは -.Nm できません +.Em できません )。`\e' を `!' の前に置くことにより、`!' の特殊な意味を打ち消すことが できます。また、利便のために、`!' の直後に空白、タブ、改行文字、 `=', `(' が続いた場合、ヒストリ置換は行われず、入力された文字がそのまま 用いられます(ヒストリ置換は、入力行が `\*(ua' で始まっている場合にも 起こります。これについては後述します)。入力行にヒストリ置換が含まれている 場合は、実行直前にヒストリ置換を行った結果が端末に出力されます。 .Pp 端末から入力された、1 つあるいはそれ以上の単語からなるコマンドは ヒストリ・リストに記録されます。ヒストリ置換は、この記録された 単語の列を入力ストリームに挿入することにより行われます。 ヒストリ・リストの大きさは、変数 .Ar history により制御されます。直前のコマンドは .Ar history の値に関わらず必ず 保存されます。記録されているコマンドは 1 から順にイベント番号が 割り当てられます。 .Pp .Ar history コマンドにより、以下の出力が得られたとします: .Bd -literal -offset indent \09 write michael 10 ex write.c 11 cat oldwrite.c 12 diff *write.c .Ed .Pp コマンドはイベント番号とともに出力されています。必ずしもイベント番号を 用いる必要はありませんが、プロンプト文字列に `!' を埋めることにより、 現在のイベント番号を .Ar プロンプト 中に表示させることができます。 .Pp 現在のイベント番号が 13 だとすると、以前のイベントを指定するには、 イベント番号を用いて `!11' としたり、 相対指定を用いて `!\-2' としたり(同じイベントを表します)する方法があります。 また、コマンドの単語の先頭部分を用いて指定することもできます。例えば、`!d' でイベント番号 12 を指定したり、 `!wri' でイベント番号 9 を指定できます。また、 ある文字列を含むコマンドを指定するのに `!?mic?' (これはイベント番号 9 の コマンドを示します)のような記法も使えます。これらの記法は、指定された イベントの各単語を単一の空白で区切った単語列に置換します。特殊な 場合として、`!!' は直前のコマンドを参照します。すなわち、`!!' だけを 入力することは直前のコマンドの .Ar 再実行 を意味します。 .Pp あるイベント中のいくつかの単語だけを指定するために、イベント指定に続けて `:' と単語指示子を書くことができます。イベントの単語は 0 から順に番号が 振られています。最初の単語(通常はコマンドです)が 0 で、2 番目の単語 (第1引数)が 1 ということになります。基本的な単語指示子は以下のとおりです: .Pp .Bl -tag -width Ds -compact -offset indent .It \&0 最初の(コマンド)単語 .It Ar n .Ar n 番目の単語 .It \*(ua 最初の引数(すなわち 1 と同じ) .It $ 最後の引数 .It % 直前の .No \&? Ns Ar s Ns \&? 検索でマッチした単語 .It Ar \&x\-y .Ar x 番目から .Ar y 番目までの単語 .It Ar \&\-y .Ar `\&0\-y\' の省略形 .It * `\*(ua\-$' の省略形。イベントが1語のみからなる場合は空になる .It Ar x* .Ar `x\-$\' の省略形 .It Ar x\- .Ar `x*\' から最後の単語を除いたもの。 .El .Pp イベント指定と単語指示子とを区切る `:' は、引数選択子が `\*(ua', `$', `*', `\-', `%' で始まっている場合には省略することができます。 単語指示子の直後に、 `:' に続けて 修飾子を複数個置くことができます。以下の修飾子が定義されています: .Pp .Bl -tag -width Ds -compact -offset indent .It h パス名の最後の要素を削除します(head) .It r 最後の `.xxx' 要素を削除します(root) .It e `.xxx' 以外の部分を削除します(extension) .It s Ns Ar /l/r/ Substitute .Ar l を .Ar r で置換します(substitution) .It t 最後の要素を残して、それより前のパス名の要素全てを削除します。 .It \&& 直前の修飾子の作用を繰り返します。 .It g 上記の修飾子の直前に置き、変更を、各単語に 1 回だけ及ぼすことを指定します。 例) `g&' .It a 上記の修飾子の直前に置き、1 つの単語に対して可能な限り繰り返して 変更を行います。変更が全単語に及ぶようにするには `g' と組み合わせて使います。 .It p 置換結果を表示しますが、実行はしません(print only) .It q さらに置換が行われないように、置換結果をクォートします(quote) .It x q と同様ですが、空白、タブ、改行によって単語を分割します .El .Pp `g' が指定されなかった場合、適用可能な最初の単語のみが修飾子の影響を受けます。 置換については、適用可能な単語がなかった場合にはエラーとなります。 .Pp 置換(s/l/r/) における左辺 ( .Ar l ) は、エディタなどで使うような正規表現ではなく単なる文字列です。`/' のかわりに自由な文字を区切りに指定することができます。`\e' によって、 .Ar l または .Ar r 中の区切り文字をクォートすることができます。右辺 ( .Ar r ) 中の文字 `&' は 左辺の文字列に置換されます。`&' もまた `\e' によって クォートすることができます。 空の左辺値 .Ar l (`//') の場合、直前の左辺値 .Ar l または、 .No \&`!? Ns Ar s Ns ?' 中のコンテキストスキャン文字列 .Ar s から左辺値が取られます。置換指定の直後に改行がくる場合には、 最後の区切り文字を省略することができます。 コンテキストスキャンの後ろ側の文字 `?' も、直後に改行がくる場合、 同様に省略できます。 .Pp ヒストリは、 `!$' のようにイベント指定なしで参照することができます。 同じ行においてそれ以前にヒストリ参照が行われた場合はそのイベントを、 さもなければ直前のコマンドが参照されます。`!?foo?\*(ua !$' は `?foo?' に マッチするイベントの最初と最後の単語に置換されます。 .Pp 入力行の最初の非空白文字が `\*(ua' の場合、特殊なヒストリ参照の省略形であると みなします。これは `!:s\*(ua' と等価で、直前に入力したコマンド行の 文字列置換を行うことができます。たとえば、`\*(ualb\*(ualib' は 直前のコマンドの `lib' の綴り間違いを修正します。 最後に、後ろに続く文字とヒストリ置換とを隔離するために、 ヒストリ置換を `{' と `}' によって囲むことができます。`ls -ld ~paul' なる コマンドを実行した直後に`!{l}a' と 入力することで、`ls -ld ~paula' に展開されます。一方、`{}' を 使わずに `!la' とした場合は `la' で始まるイベントを検索します。 .Pp .Ss \' と \&" によるクォート 文字列を `\'' または `"' によって クォートすることにより、残りの置換のすべてあるいは一部を 抑制することができます。`'' によってクォートされた文字列には 本マニュアルのこれ以降に説明する置換が適用されません。`"' によって クォートされた文字列は、後述するように一部の置換が適用されます。 .Pp どちらのクォートの結果も単一の単語 (の全体または一部) となります。 ただし、`"' クォートされたコマンド置換は複数の単語になる特殊な場合が 1 つだけあります(後述の -.Em コマンド置換 +.Sx コマンド置換 の項を参照)。 `\'' クォートの場合は、このようなことはありません。 .Ss エイリアス置換 シェルはエイリアス(別名定義)を管理しており、 .Ar alias コマンドと .Ar unalias コマンドに より設定、表示、修正等を行うことができます。コマンド行がスキャンされたあと、 個々のコマンドに解析され、各コマンドの最初の単語に対応するエイリアスが あるかどうかチェックします。もし存在すれば、入力されたコマンド行の内容を 直前のコマンドとみなして、エイリアスの内容をヒストリ展開します。 コマンド行全体は展開結果と置き換えられます。エイリアスの内容が ヒストリ参照を含まなかった場合、入力したコマンド行の引数は変更せずに 残されます。 .Pp `ls' に対するエイリアスが `ls -l' だった場合、`ls /usr' は `ls -l /usr' に展開されます。この場合、エイリアスにはヒストリ参照がなかったため、 引数の `/usr' は変更せずに残されました。`lookup' に対するエイリアスが `grep !\*(ua /etc/passwd' だった場合、`lookup bill' は `grep bill /etc/passwd' に展開されます。 .Pp エイリアスが展開された場合、展開結果に対して単語分割とエイリアス検索が 再度行われます。展開結果の最初の単語が展開前の最初の単語と同一になった場合、 再度エイリアス検索が行われることはありません。それ以外の、エイリアスによる ループは検出され、エラー扱いとなります。 .Pp このメカニズムによってエイリアスでパーサのメタ記法を利用できます。 よって `alias print \'pr \e!* \&| lpr\'' とエイリアスすることで .Ar pr の 引数をプリンタに出力させるというようなことができます。 .Ss 変数置換 シェルは変数を管理しており、それらは 0 個またはそれ以上の単語のリストを 値として持ちます。変数のうちいくつかはシェルがセットしたり参照したりします。 たとえば、変数 .Ar argv はシェルへの引数を保持しており、この変数の値である単語は、特殊な方法で 参照されます。 .\" #### jpman kuma 96.12.05 here checked ... TO BE CONTINUED .Pp 変数の値は .Ar set および .Ar unset コマンドにより参照、変更することができます。シェルが 参照する変数のうちいくつかは、それがセットされているかどうかだけが重要 であり、値が何であっても意味を持たないものがあります。たとえば、変数 .Ar verbose は入力行がエコーされるかどうかを制御する変数であり、この変数を セットすることは、 .Nm csh に .Fl v オプションを指定したのと同じ意味になります。 .Pp 変数を数値として扱う操作もあります。`@' コマンドによって変数に対して数値演算 を適用し、演算結果を変数に代入することができます。しかしながら、変数の 値はつねに文字列として表現されます。数値演算の場合、空文字列は 0 と みなし、変数の値が複数の単語からなる場合 2 番目以降の単語は無視されます。 .Pp 入力行にエイリアス置換を行い、構文解析を行ったあと、コマンドが実行される 前に文字 `$' をキーとして変数置換を行います。`$' の直前に `\e' を置くことにより、変数置換を抑制することができます。 ただし、`"' クォート中では変数置換は .Em 必ず 行われますが、`\'' クォート中では .Em 決して行われません。 `\*(ga' クォートのなかはさらにあとで解釈されるため(後述の -.Nm コマンド置換 +.Sx コマンド置換 の項を参照)、ここでは変数置換は行いません。`$' の直後に空白、タブ、 改行がくる場合、`$' はそのまま残されます。 .Pp 入出力リダイレクトは変数置換より前に解釈され、別々に変数置換が行われます。 それ以外のコマンド名と引数は同時に展開されます。このため、最初の 単語(コマンド)が展開の結果、複数の単語となったり、展開された結果の 最初の単語がコマンド名、それ以外が引数の一部になることもあります。 .Pp `"' でクォートされておらず、変数置換に `:q' 修飾子も指定されなかった 場合には、変数置換の結果にコマンドとファイル名置換が 行われます。`"' クォート内では複数の単語からなる値を持つ変数は、各単語を 1つの空白で区切った単一の単語 (の一部) に展開されます。`:q' 修飾子が 指定された場合は、各単語は 1 つの空白で区切られ、 この後のコマンドとファイル名置換を抑止するために、個々にクォートされた 単語の列に展開されます。 .Pp 変数置換には以下の形式があります。特に記述していない場合、 セットされていない変数の参照はエラーになります。 .Pp .Bl -tag -width Ds -compact -offset indent .It $name .It ${name} .\" #### modified by kuma 96.12.21 #### 変数 .Ar name の値の各単語を 1 つの空白文字で区切ったものに展開されます。中括弧は .Ar 変数名 と後続する文字を分離し、後続する文字が変数名の一部と解釈されないように するために用いられます。シェル変数は 20 文字までの名前を持ちます。 変数名の先頭はアルファベットで、それ以降はアルファベット、数字、 アンダースコアを使用することができます。 .Ar name という名前のシェル変数は存在しないが、同名のセットされた環境変数が 存在する場合には、その値に置換されます(ただし、環境変数に対しては .Nm : 修飾子と以降に説明する書式を 用いることはできません)。 .It $name Ns Op selector .It ${name Ns [ selector ] } 変数 .Ar name の値のうちいくつかの単語を選択して展開します。 .Ar selector は 1 つの数字、範囲を示す2つの数字を `\-' でつないだもの、あるいはそのような 結果になる変数置換のいずれかです。単語は 1 から順序づけられています。 範囲の最初の数字が省略された場合は 1 が用いられます。範囲の第2の数字が 省略された場合は `$#name' が用いられます。selector として `*' が用いられた 場合には、すべての単語に展開されます。範囲の第2の数字が省略されるか、 単語数より小さい場合には、範囲が空になってもエラーとはなりません。 .It $#name .It ${#name} 変数の値の単語数に展開されます。 この機能は後述する `$argv[selector]' で有用です。 .It $0 コマンドを読み込んでいるファイル名に展開されます。ファイル名が不明の場合は エラーとなります。 .It $number .It ${number} `$argv[number]' と等価です。 .It $* `$argv[*]' と等価です。 .El .Pp 修飾子 `:e', `:h', `:t', `:r', `:q', `:x' や `:gh', `:gt', `:gr' を適用することができます。中括弧 `{' `}' で 囲まれている場合は、中括弧内に修飾子が存在しなければなりません。 現在の csh の実装では、各 `$' 展開につき1つの修飾子のみ指定することができます。 .Pp 以下の置換を行なう場合は `:' 修飾子を指定することはできません。 .Bl -tag -width Ds -compact -offset indent .It $?name .It ${?name} 変数 name がセットされていれば `1' に、さもなければ `0' に展開されます。 .It $?0 現在の入力ファイル名がわかっていれば `1' に、不明ならば `0' に展開されます。 .It \&$\&$\& 親のシェルの (10進の) プロセス番号に展開されます。 .It $! そのシェルから起動された最後のバックグラウンド・プロセスの (10進の) プロセス番号に展開されます。 .It $< 標準入力から1行を読み込み、その内容に展開されます。読み込んだ内容の解釈は 行いません。スクリプト中でキーボードからの入力を受けるのに用いられます。 .El .Ss コマンドとファイル名置換 残りの置換であるコマンド置換とファイル名置換は、 組み込みコマンドの引数に対しては 適用されたり、されなかったりします。 .\" #### changed by kuma 96.12.21 #### すなわち、式の中で評価が行われない部分に関しては 以下の置換が行なわれません。組み込みコマンドではないコマンドにおいては、 コマンド名は引数とは別に置換が行なわれます。 .\" #### changed by kuma 96.12.21 #### コマンド名に対する置換が生じるのは一連の置換処理の最後の方で、 入出力リダイレクトの設定後、メインシェルの子供の中で行われます。 .Ss コマンド置換 コマンド置換は、コマンドを `\*(ga' で囲むことによって指示します。 コマンドからの 出力は空白、タブ、改行によって単語に分割され、空の単語を削除したあとに 元の文字列と置換されます。 `"' の内部では、改行のみが単語分割の区切りとして扱われ、空白とタブは そのまま残されます。 .Pp どちらの場合も、コマンドの出力の最後の改行は単語の区切りとはならず、単に 削除されます。 よってコマンド置換によって、コマンドの出力が完全な 1 行であっても、 単語の一部分のみを生成することが可能です。 .Ss ファイル名置換 単語が文字 `*', `?', `[', `{' を含んでいるか、単語の先頭文字が `~' の .\" #### modified by kuma 96.12.21 #### 場合、その単語はファイル名展開(あるいはグロブ(glob)と呼ばれます)の 候補となります。 .\" #### modified by kuma 96.12.21 #### 候補となった単語はパターンとみなされ、パターンにマッチするファイル名が アルファベット順にソートされた列に置換されます。 ファイル名置換を含む単語の列がどれもファイル名にマッチしなかった場合には エラーとなりますが、 すべての単語パターンがマッチする必要はありません。 メタキャラクタ`*', `?', `[' のみがパターンマッチ文字であり、`~' と `{' は省略形といったほうが近いで しょう。 .Pp ファイル名マッチにおいて、ファイル名先頭、または `/' の直後の `.' は、 `/' と同様に明示的にマッチさせなければなりません(`*' や `?' は これらにマッチしません)。 `*' は、空文字列を含むどのような文字列にもマッチします。`?' は、 どのような1文字にもマッチします。 .Sq Op ... は、括弧のなかで指定した文字のいずれかにマッチします。 .Sq Op ... 内では、文字の対を `\-' でつなぐことで、 文字の範囲を指定することができます(両側の文字も含まれます)。 .Pp ファイル名の先頭の `~' はホーム・ディレクトリを示すのに用いられます。 単独で用いられた場合には、シェルを起動したユーザのホーム・ディレクトリ .\" #### modified by kuma 96.12.21 #### (変数 .Ar home の値に反映されているとおり)に展開されます。`~' に続けてアルファベット、 数字、`-' からなる単語が続いた場合は、その単語をユーザ名とみなして、 そのユーザのホーム・ディレクトリに展開されます。たとえば、ユーザ ken の ホーム・ディレクトリが `/usr/ken' ならば、`~ken' は `/usr/ken' に、 `~ken/chmach' は `/usr/ken/chmach' に展開されます。 直後にアルファベットと `/' 以外が続く`~'と、ファイル名の先頭にない `~' は 変更されずにそのまま残されます。 .Pp メタ記法 `a{b,c,d}e' は `abe ace ade' の短縮形です。 .\" #### modified by kuma 96.12.21 #### この記法の左から右への出現順序は保存されます。 展開結果は下位のレベルで個別にソートされ、出現順序は保存されます。 この記法は入れ子にすることができます。 source のホーム・ディレクトリが `/usr/source' ならば、 `~source/s1/{oldls,ls}.c' は `/usr/source/s1/oldls.c /usr/source/s1/ls.c' に展開されます。このとき oldls.c や ls.c が 存在しなくともエラーにはなりません。同様に、`../{memo,*box}' は `../memo ../box ../mbox' 等に展開されます(`memo' と `*box' の 展開結果がいっしょに ソートされたりしていないことに注意してください)。特殊な場合として、 単独の`{' と `}', `{}' は変更されずにそのまま残されます。 .Ss 入出力 コマンドの標準入出力は、以下の方法によりリダイレクトすることができます: .Pp .Bl -tag -width Ds -compact -offset indent .It < name ファイル .Ar name (変数、コマンド、ファイル名展開を受けます)をオープンし、 コマンドの標準入力とします。 .It << word .Ar word と同一の行が出現するまで、シェルの入力を読み込みます。 .Ar word は変数、ファイル名、コマンド置換を受けません。シェル入力の行は 読み込まれるとすぐに .Ar word と比較されます(置換を行う前に)。その後、 .Ar word に `\e', `"', `\'', `\*(ga' クォートが出現しないなら、読み込まれた行には 変数置換と .\" #### ^^^^^^^ `\'' だと思う(1次チェック者のコメント?jpman kuma 961205) .\" #### kuma agree with you, changed as specified 96.12.22 コマンド置換が適用されます。この置換を抑制するために、`\e' によって `$', `\e', `\*(ga' をクォートすることができます。コマンド置換において、 すべての空白、タブ、改行は保存されますが、最後の改行は削除されます。 読み込んだ行はすべて中間的なファイルに保存され、コマンドの標準入力として 用いられます。 .It > name .It >! name .It >& name .It >&! name ファイル .Ar name を標準出力として用います。ファイルが存在しなければ作成され、 すでにファイルが存在すればその内容は切り捨てられ、以前の内容は失われます。 .Pp 変数 .Ar noclobber がセットされている場合、ファイルが存在しないか文字型特殊ファイル (端末や `/dev/null' のような) でなければエラーになります。これは、 すでに存在するファイルを思いがけず削除してしまうことを防止します。`!' を 用いた形式を使うと、この検査を抑制することができます。 .Pp `&' を用いた形式では、標準出力とともに標準エラー出力もファイルへ リダイレクトされます。 .Ar name .\" #### modified by kuma 96.12.21 #### は、 `<' の入力ファイル名の場合と同様の展開を受けます。 .It >> name .It >>& name .It >>! name .It >>&! name `>' と同様に、ファイル .Ar name を標準出力として用います。ただし、コマンドの出力はファイルへ追加されます。 変数 .Ar noclobber がセットされている場合、 ファイルが存在しなければエラーとなります(`!' を用いることで、 この検査を抑制することができます)。 他は `>' と同様です。 .El .Pp コマンドは、シェルが起動されたときの環境を、入出力リダイレクトと パイプラインによって変更したもののなかで実行されます。以前のいくつかの シェルとは異なり、 シェルコマンドファイルから起動されたコマンドは、デフォルトでは標準入力に よってシェルコマンドファイル自体にアクセスすることはできません。 かわりに、シェルが起動した環境の標準入力をそのまま受け継いでいます。 `<<' 機構はインラインデータのために用いるべきです。 このように制限することにより、 シェルコマンドスクリプトをパイプラインの一部として用いることができます。 バックグラウンドで実行されているコマンドの標準入力も .Pa /dev/null 等にリダイレクトされることは .Ar なく 、シェルの標準入力をそのまま受け継いでいます。もし標準入力が端末で、 コマンドが端末から読み込もうとした場合、そのプロセスはブロックされ、 シェルはユーザにそのことを通知します(参照: .Sx ジョブ の項)。 .Pp 標準エラー出力もパイプにリダイレクトすることができます。単純に `\&|' の かわりに `\&|&' を使います。 .Ss 式 .\" #### modified by kuma 96.12.21 #### いくつかの組み込みコマンド(後述します)は、引数として式を取ります。式は C 言語のものと類似しており、同じ優先順位を持ちます。式は -.Nm @ , -.Ar exit , -.Ar if , -.Ar while +.Em @ , +.Em exit , +.Em if , +.Em while コマンド中で用います。以下の演算子が使用可能です: .Bd -ragged -offset indent \&|\&| && \&| \*(ua & == != =~ !~ <= >= < > << >> + \- * / % ! ~ ( ) .Ed .Pp 上記の演算子は右にいくほど優先順位が高くなっています。 `==' `!=' `=~' `!~', `<=' `>=' `<' `>', `<<' `>>', `+' `\-', `*' `/' `%' の 5グループは各グループ内では同じ優先度です。 `==', `!=', `=~', `!~' は文字列の比較を行い、他の演算子は数値演算を 行います。`=~', `!~' は `!=', `==' と同様ですが、右辺を .Ar パターン (`*', `?', `[...]' を含んだ) とみなして、左辺とのパターンマッチが行われます。 これにより、シェル スクリプトにおいてパターンマッチのみが必要な局面では .Ar switch ステートメントを使わずに済ませることができます。 .Pp 先頭が `0' の文字列は 8 進数の数値とみなされます。空または省略された引数 は `0' とみなされます。すべての演算結果は 10 進数数値の文字列となります。 式の 2 つの要素が同一の単語中に出現してはいけません。つまり、 .\" #### modified by kuma 96.12.21 #### 要素の前後が、構文解析において特殊な意味を持つ `&', `\&|', `<', `>', `(', `)' でない場合は、 その要素は空白で囲まれていることが必要です。 .Pp 数式中では、`{' と `}' で囲んだコマンドと、 以下のファイル検査演算子を用いることができます。 ファイル検査演算子は .Fl l .Ar name の形式で、 .Ic l は以下のうちのいずれかです: .Bd -literal -offset indent r 読み込みアクセス w 書き込みアクセス x 実行アクセス e 存在 o 所有 z サイズがゼロ f 通常ファイル d ディレクトリ .Ed .Pp 指定された name は、コマンド、ファイル名置換を適用したのちに 実ユーザの権限において検査されます。ファイルが存在しないか、 アクセス不可なら演算結果は false すなわち `0' になります。 コマンド実行においては、コマンドが成功したなら演算結果は true `1' に、 コマンドが 0 以外の終了ステータスを返してきたら、すなわち、 失敗なら演算結果は false `0' になります。 終了ステータスの値自体を知りたい場合は、コマンドを式以外の文脈で実行し、変数 .Ar status の値を調べます。 .Ss 制御構造 シェルにはコマンドファイル(シェル・スクリプト)中で、 あるいは(制限されてはいるが、便利な方法で)端末から、 制御の流れを変更するためのいくつかのコマンドがあります。 これらのコマンドはシェルに入力を読み直させたり、 スキップさせたりすることができます。実装の制限上、 これらのコマンドを書くことのできる位置に制限があります。 .Pp .Ic foreach , .Ic switch , .Ic while , 文、および、 .Ic if\-then\-else の .Ic if ステートメントは、 後述するように入力行の単一の単純コマンドとして現れる必要があります。 .Pp シェルの入力がシーク不可能な場合、 シェルは繰り返しが必要なときには入力をバッファに保存し、 .\" #### modified by kuma 96.12.23 #### この内部バッファに対してシークを行います(このため、シーク不可能な入力の場合も、 後方への goto が可能です)。 .Ss 組み込みコマンド 組み込みコマンドは通常シェルのプロセス内部で実行されます。 ただし、組み込みコマンドがパイプラインの最後以外に用いられた場合は、 サブシェル上で実行されます。 .Pp .Bl -tag -width Ds -compact -offset indent .It Ic alias .It Ic alias Ar name .It Ic alias Ar name wordlist 1行目の形式はすべてのエイリアスを出力します。2 行目の形式は .Ar name に対応したエイリアスの値を出力します。最後の形式は .Ar wordlist を .Ar name のエイリアスとして登録します。 .Ar wordlist にはコマンド置換、ファイル名置換が適用されます。 .Ar name として .Ar alias または .Ar unalias を指定することはできません。 .Pp .It Ic alloc .Nm csh が獲得したメモリのうちの使用量と空き容量を表示します。 なんらかの引数をつけると、ブロックサイズごとの使用中/空ブロック数を表示します。 ブロックサイズは 8、16、32、.. となります。 本コマンドの出力はシステムによって異なります。 VAX 以外のシステムは、異なるメモリ管理を行っているかもしれないからです。 .Pp .It Ic bg .It Ic bg \&% Ns Ar job ... 現在のジョブあるいは指定されたジョブをバックグラウンドに移動します。 もしそれらのジョブが停止されていたなら、実行が再開されます。 .Pp .It Ic break 最も内側の .Ic foreach または .Ic while ループに対応する .Ic end の後へ脱出します。同じ行にある残りのコマンドは実行されます。複数の .Ic break を同一行に記述することで複数レベルの脱出が行えます。 .Pp .It Ic breaksw .Ic switch から脱出し、 .Ic endsw のあとで実行を再開します。 .Pp .It Ic case Ar label : .Ic switch ステートメントのラベルを指定します。 .Pp .It Ic cd .It Ic cd Ar name .It Ic chdir .It Ic chdir Ar name .\" #### modified by kuma 96.12.23 #### シェルの作業ディレクトリをディレクトリ .Ar name に変更します。引数が指定されなかった場合には、 ユーザのホーム・ディレクトリに変更します。 カレント・ディレクトリにディレクトリ .Ar name がない場合(かつ .Ar name が `/', `./', `../' で始まっていない場合)、変数 .Ic cdpath の各要素のサブディレクトリとして .Ar name がないかどうかを調べます。最後に、シェル変数 .Ar name に `/' で始まる値が設定されているなら、 その値のディレクトリが存在しないかを調べます。 .Pp .It Ic continue 最も内側の .Ic while または .Ic foreach ループの先頭に戻ります。戻る前に、同じ行に記述されたコマンドが実行されます。 .Pp .It Ic default : .Ic switch ステートメントのデフォルトを指定します。 .Ic default は、すべての .Ic case ラベルのあとに出現しなければなりません。 .Pp .It Ic dirs ディレクトリ・スタックを表示します。 スタックの先頭(カレント・ディレクトリ)を左端にして表示します。 .Pp .It Ic echo Ar wordlist .It Ic echo Fl n Ar wordlist 指定された単語を空白で区切った文字列をシェルの標準出力に書き出します。 .Fl n オプションが指定されなければ、最後に改行が出力されます。 .Pp .It Ic else .It Ic end .It Ic endif .It Ic endsw .Ic foreach , .Ic if , .Ic switch , .Ic while ステートメントの項を参照してください。 .Pp .It Ic eval Ar arg ... ( .Xr sh 1 と同様)引数をシェルへの入力であるとみなして読み込み、 現在のシェルのコンテキストで実行します。 コマンド置換や変数置換の結果として生成されたコマンド列を実行する場合に用いられます。 通常は、それらの置換に先立って文法解析が行われてしまうからです。 .Ic eval の使い方の例が .Xr tset 1 にあります。 .Pp .It Ic exec Ar command 指定された command を現在のシェルと置き換えて実行します。 .Pp .It Ic exit .It Ic exit Ar (expr ) 1行目の形式では変数 .Ic status の値、2 行目の形式では式 .Ic expr の値を返り値としてシェルを終了します。 .Pp .It Ic fg .It Ic fg % Ns Ar job ... 現在のジョブあるいは指定されたジョブをフォアグラウンドに移動します。 停止していたジョブは実行を再開します。 .Pp .It Ic foreach Ar name (wordlist) .It ... .It Ic end 変数 .Ic name に .Ic wordlist の各値を順次セットしながら対応する .Ic end までのコマンドを繰り返し実行します( .Ic foreach と .Ic end .\" #### modified by kuma 96.12.23 #### は単独で行に置かなければなりません)。組み込みコマンド .Ic continue を使って中途でループの次の繰り返しを実行させたり、 .Ic break コマンドによって中途でループを脱出させたりすることができます。 このコマンドが端末から読み込まれる場合、ループすべての内容が(プロンプト ? を表示しながら)読み込まれてから実行が開始されます。 端末からループ中でタイプ・ミスした場合は修正できます。 .Pp .It Ic glob Ar wordlist .Ic echo コマンドと似ていますが、`\e' によるエスケープは解釈されず、 .\" #### modified by kuma 96.12.23 #### 単語はヌル文字によって区切られます。プログラムから、 シェルをファイル名置換のために利用する場合に便利です。 .Pp .It Ic goto Ar word .Ic word にファイル名置換、およびコマンド置換が適用されたのち、それを `label' とみなします。シェルは可能なかぎり入力を遡って読み直し、`label:' のある行を検索し、そこから実行を開始します。 ラベルの前には空白またはタブを置くことが可能です。 .Pp .It Ic hashstat コマンドを検索するのに、 内部キャッシュがどの程度効率的に働いているか (そして .Ic exec をどの程度回避できているかを)を表示します。 .\" #### modified by kuma 96.12.23 #### .Em path の要素のうち、ハッシュ関数がヒットの可能性を示すものと、 `/' で始まらないものについて .Ic exec が試みられます。 .Pp .It Ic history .It Ic history Ar n .It Ic history Fl r Ar n .It Ic history Fl h Ar n ヒストリのリストを表示します。数字 .Ar n が指定された場合には、最近の .Ar n 個のイベントが表示されます。 .Fl r オプションは表示順序を逆にします。 .\" #### modified by kuma 96.12.23 #### すなわち、最も古いものを先に表示するのではなく、 最も新しいものを先に表示します。 .Fl h オプションを指定すればイベント番号が省略されます。これは .Ic source コマンドで \-h を使って読み込むためのファイルを生成する場合に用いることができます。 .Pp .It Ic if ( Ar expr ) No command .\" #### modified by kuma 96.12.23 #### 指定された式が true と評価されたなら、単一のコマンド .Ar command が実行されます。 .Ar command .\" #### modified by kuma 96.12.23 #### に対する変数置換は、実行に先だって .Ic if コマンドの残りの部分と同時に行なわれます。 .Ar command は単純コマンドのみが許され、パイプライン、コマンドリスト、括弧でくく られたコマンドであってはいけません。入出力リダイレクションは式 .Ar expr が false と評価され、それゆえ .Ar command が実行 .Sy されなかった 場合にも処理されます(これはバグです)。 .Pp .It Ic if ( Ar expr ) Ic then .It ... .It Ic else if ( Ar expr2 ) Ic then .It ... .It Ic else .It ... .It Ic endif 式 .Ar expr が true なら最初の .Ic else までのコマンドが実行されます。さもなければ、式 .Ar expr2 が true なら次の .Ic else までのコマンドが実行されます。 いくつでも .Ic else-if の対を繰り返すことができます。最後に 1 つの .Ic endif が必要です。 最後の .Ic else 部分はあってもなくてもかまいません。 (単語 .Ic else と .Ic endif は入力行の最初に置く必要があります。また、 .Ic if は行内に単独で、または .Ic else のあとに置く必要があります)。 .Pp .It Ic jobs .It Ic jobs Fl l アクティブなジョブの一覧を出力します。 .Fl l .\" #### modified by kuma 96.12.23 #### オプションを指定すると、通常の情報に加えてプロセス ID も出力します。 .Pp .It Ic kill % Ns Ar job .It Ic kill Ar pid .It Ic kill Fl sig Ar pid ... .It Ic kill Fl l TERM(terminate) シグナルあるいは指定したシグナルを、 指定されたジョブまたはプロセスに送ります。 シグナルは番号または名前で指定できます(名前は .Pa /usr/include/signal.h にある名前から `SIG' を取り除いたものです)。 シグナル名の一覧を ``kill \-l'' により表示できます。 kill にはデフォルト動作はなく、 単に `kill' を実行しても現在のジョブにシグナルが送られるようなことはありません。 送るシグナルが TERM(terminate) または HUP(hangup) の場合、 CONT(continue) シグナルも同時に送られます。 .Pp .It Ic limit .It Ic limit Ar resource .It Ic limit Ar resource maximum-use .It Ic limit Fl h .It Ic limit Fl h Ar resource .It Ic limit Fl h Ar resource maximum-use 現在のプロセスと、それが生成するプロセスのそれぞれについて、 .\" #### modified by kuma 96.12.23 #### 指定されたリソース .Ar resource を、指定された .Ar maximum-use を超えて使用しないように設定します。 .Ar maximum-use が指定されなかった場合、現在の制限値が表示されます。 .Ar resource が指定されなかった場合、すべての制限値が表示されます。 .Fl h オプションが指定された場合、 現在の制限値のかわりにハードリミットの表示/設定を行います。 .\" #### modified by kuma 96.12.23 #### ハードリミットは現在の制限値の上限の値です。 スーパーユーザのみがハードリミットを増加させることができます。 一般ユーザは現在の制限値を可能な範囲で増減することができます。 .Pp .\" #### modified by kuma 96.12.23 #### 現在のところ、制御可能なリソースは、 .Ar cputime (各プロセスが使うことのできる最大の CPU 秒数)、 .Ar filesize (1つのファイルの最大サイズ)、 .Ar datasize ( .Xr sbrk 2 .\" #### modified by kuma 96.12.23 #### を用いてプログラムのテキスト領域の末尾を超えて増加させることのできる data+stack 領域の最大サイズ)、 .Ar stacksize .\" #### modified by kuma 96.12.23 #### (自動的に拡張されるスタックの最大サイズ)、 .Ar coredumpsize (最大のコアファイルのサイズ)です。 .Pp 最大値 .Ar maximum-use は、(整数あるいは浮動小数の) 数値とそれに続くスケールファクタによって指定します。 .Ar cputime 以外の制限値のデフォルトのスケールファクタは `k' あるいは `kilobytes'(1024 バイト)です。 .\" #### modified by kuma 96.12.23 #### スケールファクタとして `m' あるいは `megabytes' を使用することもできます。 .Ar cputime のデフォルトのスケールファクタは `seconds'(秒)です。 `m'(分)、`h'(時間) をスケールファクタとして指定したり、 `mm:ss' 形式で分秒を指定したりすることができます。 .Pp .\" #### modified by kuma 96.12.23 #### リソース名 .Ar resource とスケールファクタを指定する際には、 .\" #### modified by kuma 96.12.23 #### 一意に決定できるなら、名前の先頭部分だけを指定することができます .\" #### jpman kuma: not found in freebsd-2.1.5-RELEASE manpage (st を stacksize のかわりに用いる等)。 .Pp .It Ic login ログイン・シェルを終了し、 .Pa /usr/bin/login と置き換えます。これは .Xr sh 1 との互換性のために用意されたログオフの手段です。 .Pp .It Ic logout ログイン・シェルを終了します。 .Ic ignoreeof がセットされている場合に便利です。 .Pp .It Ic nice .It Ic nice Ar +number .It Ic nice Ar command .It Ic nice Ar +number command 1 行目の形式は、シェルのスケジューリング・プライオリティを 4 に設定します。 2 行目の形式は、プライオリティを指定された値 .Ar number に設定します。残りの 2 つの形式は、コマンド command をプライオリティ 4 または指定した .Ar number で実行します。 .\" #### modified by kuma 96.12.23 #### 大きい数値を指定するとプロセスが利用できる CPU がその分少なくなります。 スーパーユーザのみがプライオリティとして負の値を `nice \-number ...' のように指定することができます。 .Ar command はつねにサブシェルで実行され、 単純な .Ic if .\" #### modified by kuma 96.12.23 #### 文のコマンドと同様の制限を受けます。 .Pp .It Ic nohup .It Ic nohup Ar command 1 行目の形式は、シェル・スクリプト内で使用し、 スクリプトのそれ以降で hangup シグナルを無視するように設定します。 2 行目の形式は、指定されたコマンドが、 hangup シグナルを無視するように設定して実行します。 `&' をつけて実行されたプログラムは、 .Ic nohup を指定して実行したのと同様に hangup シグナルを無視します。 .Pp .It Ic notify .It Ic notify % Ns Ar job ... 現在のジョブまたは指定されたジョブの状態が変化したときに、 .\" #### modified by kuma 96.12.23 #### コマンド待ちかどうかに関わりなく即座に通知するように指定します。 通常は、プロンプトが表示される直前に通知が行われます。 シェル変数 .Ic notify が指定されている場合は、すべてのジョブに対して同様の設定が行われます。 .Pp .It Ic onintr .It Ic onintr Fl .It Ic onintr Ar label 割り込みに対するシェルの動作を制御します。1行目の形式は、 シェルをデフォルトの動作、すなわち、スクリプトの実行が中断される、 またはコマンド入力状態に戻るように設定します。 2 行目の形式は、すべての割り込みを無視するように設定します。 3行目の形式は、シェルが割り込みを受けるか、 チャイルドプロセスが割り込みによって停止した場合に goto label が実行されるように設定します。 .Pp シェルがバックグラウンドで、かつ、 シグナルを無視するように設定して実行されている場合は、 .Ic onintr は効力を持たず、 割り込みはシェルとそこから起動されるすべてのコマンドで 引続き無視されます。 最後に .Ic onintr 文はシステムのスタートアップ・ファイル (/etc/csh.cshrc, /etc/csh.login) 中でも、 割り込みが禁止されているので無視されます。 .Pp .It Ic popd .It Ic popd Ar +n ディレクトリ・スタックをポップし、 新たにスタックの先頭になったディレクトリにカレント・ディレクトリを変更します。 引数 .Ns \`+ Ar n Ns \' が指定された場合、スタックの .Ar n 番目の要素が捨てられます。ディレクトリ・スタックの要素は、 スタックの先頭から 0 から順に番号がつけられます。 .Pp .It Ic pushd .It Ic pushd Ar name .It Ic pushd Ar n 引数を指定しなかった場合、 .Ic pushd はスタックの先頭の 2 つの要素を入れ替えます。引数 .Ar name が指定された場合、 .Ic cd と同様にカレント・ディレクトリを変更したあと、 古いカレント・ディレクトリ .\" cwd の typo だと思うが わからない .\" (as in .\" .Ic csw ) .\" #### kuma agree with you on 96.12.23 #### をディレクトリ・スタックにプッシュします。 数字引数が指定された場合、ディレクトリ・スタックの .Ar n 番目の要素が スタックの先頭にくるようにローテートし、 カレント・ディレクトリをその要素が指すディレクトリに変更します。 ディレクトリ・スタックの要素は、スタックの先頭から 0 から順に番号がつけられます。 .Pp .It Ic rehash 変数 .Ic path に指定されているディレクトリ内の、ファイルに関するハッシュ・テーブルを 再計算させます。ログイン中に、新しいコマンドが .Ic path に含まれるディレクトリに追加された場合、 .\" #### modified by kuma 96.12.23 #### rehash コマンドを実行する必要があります。 これは、あなたが個人的なディレクトリの 1 つにコマンドを追加したか、 システムの管理者がシステム・ディレクトリの内容を変更したような 場合にのみ必要です。 .Pp .It Ic repeat Ar count command 指定されたコマンド .Ar command を .Ar count 回繰り返し実行します。 .Ar command .\" #### modified by kuma 96.12.23 #### に指定するものは、先の 1 行 .Ic if 文で指定する .Ar command と同様の制限を受けます。 入出力リダイレクションは .Ar count が たとえ 0 であっても、必ず 1回だけ処理されます。 .Pp .It Ic set .It Ic set Ar name .It Ic set Ar name Ns =word .It Ic set Ar name[index] Ns =word .It Ic set Ar name Ns =(wordlist) 1 行目の形式はすべてのシェル変数の値を表示します。 複数の単語からなる値を持つ変数は括弧で囲まれた値のリストで表示します。 2 行目の形式は、 .Ar name に空文字列を設定します。3 行目の形式は .Ar name に単一の単語 .\" #### modified by kuma 96.12.23 .Ar word を設定します。4 行目の形式は .Ar name の .Ar index 番目の要素に .Ar word を設定します。 .Ar index 番目の要素はすでに存在していなければなりません。5 行目の形式は .Ar name に .Ar wordlist で指定した単語列を設定します。すべての形式で、 値にはコマンド置換とファイル名置換が適用されます。 .Pp 複数の変数を設定するために、set コマンドへの引数を繰り返すことができます。 ただし、引数に対する変数展開処理は、代入処理に先だって行われます。 .Pp .It Ic setenv .It Ic setenv Ar name .It Ic setenv Ar name value 1 行目の形式はすべての環境変数の一覧を出力します。 これは .Xr printenv 1 と等価です。 3 行目の形式は環境変数 .Ar name に値 .Ar value を設定します。2 行目の形式は環境変数 .Ar name .\" #### modified by kuma 96.12.23 #### に空文字列を設定します。最も一般的に用いられる環境変数である .Ev USER , .Ev TERM , .Ev PATH は .Nm csh の起動時にシェル変数 .Ar user , .Ar term , .Ar path にそれぞれ設定され、 .Nm csh から実行するプログラムの環境変数には、シェル変数 .Ic user , .Ic term , .Ic path の値が反映されます。そのため、これらの変数を明示的に .Ic setenv する必要はありません。 .Pp .It Ic shift .It Ic shift Ar variable (リスト)変数 .Ic argv .\" #### modified by kuma 96.12.23 #### の各要素を左にシフトし、 .Ic argv Ns Bq 1 の値を捨てます。 .Ic argv に値が設定されていないか、 1 つ以上の要素を持たない場合にはエラーになります。 2 行目の形式は、指定された変数 .Ar variable に対して同様の処理を行います。 .Pp .It Ic source Ar name .It Ic source Fl h Ar name シェルは、指定されたファイル .Ar name からコマンドを読み込みます。 .Ic source コマンドはネストすることができます。あまりに深くネストさせると、 .\" #### modified by kuma 96.12.23 #### ファイル識別子を使い切ってしまう場合があります。いずれかのレベルの .Ic source コマンド中でエラーが発生すると、ネストしているすべての .Ic source コマンドが中断されます。通常、 .Ic source の実行中に実行されたコマンドはヒストリに記録されませんが、 -\-h +.Fl h オプションを指定することにより、 ファイルに記述してあるコマンドを実行せずに、 ヒストリにのみ記録することができます。 .Pp .It Ic stop .It Ic stop % Ns Ar job ... バックグラウンドで走行中の現在のジョブ、あるいは指定されたジョブを停止します。 .Pp .It Ic suspend シェル自身を停止させます。 -.Ic ^Z +.Em ^Z でストップ・シグナルを送られたかのように振舞います。 -.Xr su 1 +.Xr su 1 によって起動したシェルを停止する場合によく用いられます。 .Pp .It Ic switch Ar (string) .It Ic case Ar str1 : .It \ \ \ \ \&... .It Ic \ \ \ \ breaksw .It \ \ \ \ \&... .It Ic default : .It \ \ \ \ \&... .It Ic \ \ \ \ breaksw .It Ic endsw .\" #### modified by kuma 96.12.23 #### 各 .Ic case ラベルを順に、指定された文字列 .Ar string でマッチングを行います。 .Ar string には、まず、コマンド置換とファイル名置換が行われます。 .Ic case ラベルには変数置換が行われ、ファイル名メタキャラクタの `*', `?', `[...]' を用いることができます。 .\" #### modified by kuma 96.12.23 #### .Ic default ラベルが出てくるまでにどの .Ic case ラベルともマッチしなかった場合は、 .Ic default ラベルの直後から実行が始まります。 .Ic case ラベルと .Ic default ラベルは行の最初に書かれなければなりません。 .Ic breaksw コマンドによって .Ic endsw 以降のコマンドから実行が再開されます。 .Ic breaksw を用いない場合は、 C 言語の場合と同様に、 .Ic case ラベル、 .Ic default ラベルを通過して実行が続けられます。 .Ic default がなく、どのラベルもマッチしなかった場合には、 .Ic endsw 以降から実行が再開されます。 .Pp .It Ic time .It Ic time Ar command 1 行目の形式では、 シェルとそのチャイルドプロセスが使用した時間が表示されます。 .\" #### modified by kuma 96.12.23 #### 2 行目の形式では、指定された単純コマンドの実行時間が計測され、 .\" #### modified by kuma 96.12.23 #### 変数 .Ic time の項で説明する形式で、使用時間情報の要約が表示されます。 必要ならば、コマンド終了時に時間を表示するための追加のシェルが生成されます。 .Pp .It Ic umask .It Ic umask Ar value ファイル作成マスクを表示(第 1 の形式)または設定(第 2 の形式)します。 マスクは 8 進数で与えます。一般的な値としては、 グループにすべての権限を与え、 そのほかには読み込みと実行のみを許可する 002 や、 所有者以外には読み込みと実行しか許可しない 022 があります。 .Pp .It Ic unalias Ar pattern .Ar pattern にマッチするすべてのエイリアスを削除します。 `unalias *' とすることですべてのエイリアスを削除することができます。 削除するものがなかった場合にもエラーにはなりません。 .Pp .It Ic unhash 実行プログラムの位置検索を高速化する内部ハッシュ・テーブルの使用を禁止します。 .Pp .It Ic unlimit .It Ic unlimit Ar resource .It Ic unlimit Fl h .It Ic unlimit Fl h Ar resource リソースの制限を解除します。 .Ar resource が指定されない場合、すべてのリソースに対する制限が解除されます。 .Fl h が指定された場合、対応するハードリミットが解除されます。 これはスーパーユーザのみが行うことができます。 .Pp .It Ic unset Ar pattern 指定された .Ar pattern にマッチするすべての変数を削除します。 `unset *' と指定するとすべての変数が削除され、 悲惨な結果を生じることがあります。 .Ic unset するものがない場合もエラーになりません。 .Pp .It Ic unsetenv Ar pattern 指定された .Ar pattern にマッチするすべての環境変数を削除します。前述の .Ic setenv の項と .Xr printenv 1 を参照してください。 .Pp .It Ic wait すべてのバックグラウンドジョブの終了を待ちます。 対話的にシェルが実行されている場合、 インタラプトにより wait を停止することができます。 このとき、シェルはいまだに終了していないジョブの名前とジョブ番号を表示します。 .It Ic which Ar command .\" #### modified by kuma 96.12.23 #### .Ar command を指定したとき、シェルが実行するコマンドの位置を表示します。 .Pp .It Ic while Ar (expr) .It \&... .It Ic end 指定された式の評価結果がゼロでないかぎり、 .Ic while と対応する .Ic end の間のコマンドを繰り返し実行します。 .Ic break や .Ic continue によりループを終了したり、途中から繰り返しを再開させたりすることができます。 ( .Ic while と .Ic end は、その行に単独で書かれなければなりません。)入力が端末の場合、 .Ic foreach ステートメントの場合と同様に、 ループのすべてを入力するまでプロンプトが表示され、 すべての入力を終えた時点でループが実行されます。 .Pp .It Ic % Ns Ar job 指定されたジョブをフォアグラウンドに移動します。 .Pp .It Ic % Ns Ar job Ic & 指定されたジョブをバックグラウンドで再開実行させます。 .Pp .It Ic @ .It Ic @ Ar name Ns = Ns expr .It Ic @ Ar name[index] Ns = Ns expr 1 行目の形式は、すべてのシェル変数の値を表示します。2 行目の形式は、 指定された名前 .Ar name の変数に式 .Ar expr の値を代入します。式のなかに `<', `>', `&', `|'を含んでいる場合、 少なくともそのような部分は `(' と `)' で囲まれている必要があります。 3 行目の形式は、変数の .Ar index 番目の要素に式 .Ar expr の値を代入します。 .Ar name と、その .Ar index 番目の要素はすでに存在していなければいけません。 .El .Pp C 言語と同様に、演算子 `*=', `+=' 等が利用可能です。 変数名と演算子の間の空白はあってもなくてもかまいません。 しかしながら、式の各要素の間には空白が必須です。 さもなければ、単一の単語とみなされてしまいます。 .Pp 特別な後置演算子 `+\|+' と `\-\|\-' により変数の値を 1 だけ増加させたり、 減少させたりすることができます。たとえば、`@ i++' のように使います。 .Ss 定義済み変数と環境変数 以下の変数は、シェルにとって特別な意味があります。これらのうち、 .Ar argv , .Ar cwd , .Ar home , .Ar path , .Ar prompt , .Ar shell , .Ar status はシェルが設定します。そのうち、 .Ar cwd と .Ar status 以外の変数の設定はシェルの起動時にのみ行われます。 そのような変数は、ユーザが明示的に変更しないかぎり、 値が変化することはありません。 .Pp シェルは、環境変数 .Ev USER をシェル変数 .Ar user に、 .Ev TERM を .Ar term に、 .Ev HOME を .Ar home にそれぞれコピーします。また、 これらのシェル変数が再度セットされた場合は環境変数にコピーしなおします。 環境変数 .Ev PATH も同様に扱われます。サブシェルは環境変数によって .Ar path の値を得て、もしそれが変更されれば環境変数にコピーしなおすので .Ar \&.cshrc 以外での .Ar path 変数の設定について気をつける必要はありません。 .Bl -tag -width histchars .It Ic argv シェルへの引数が設定されます。位置パラメータは argv の値に展開されます。 すなわち、 `$1' は `$argv[1]' の値に置換されます。 .It Ic cdpath .Ar chdir .\" #### modified by kuma 96.12.23 #### コマンドにおいてサブディレクトリを検索するためのディレクトリのリストです。 .It Ic cwd .\" #### modified by kuma 96.12.23 #### カレント・ディレクトリのフルパス名です。 .It Ic echo .Fl x オプションが指定された場合にセットされます。セットすることにより、 コマンドが実行される前にコマンド名とその引数が表示されるようになります。 .\" #### modified by kuma 96.12.23 #### 組み込みコマンド以外では、表示の前にすべての展開が行われます。 組み込みコマンドではコマンド置換とファイル名置換が行われる前に表示されます。 なぜなら、これらの置換は選択的に行われるからです。 .It Ic filec ファイル名補完を有効にします。 .It Ic histchars ヒストリ置換に用いる文字を文字列で指定します。 指定した文字列の最初の文字はヒストリ置換文字(デフォルトは `!')、 2 文字目は簡易置換文字(デフォルトは `\*(ua') を指定します。 .It Ic histfile ヒストリをセーブ/リストアするパス名を指定できます。 .It Ic history ヒストリ・リストのサイズを指定します。 このサイズを超えたコマンド履歴は削除されます。 あまりに大きな値を設定すると、シェルがメモリを使いつくすかもしれません。 最後に実行したコマンドは .Ar history の値にかかわらず、つねにヒストリ・リストに保存されます。 .It Ic home .\" #### modified by kuma 96.12.23 #### シェルを起動したユーザのホーム・ディレクトリです。 起動時に環境変数から設定されます。 ファイル名置換において .Sq Pa ~ は本変数を参照して展開されます。 .It Ic ignoreeof セットされると、端末のファイル終端(EOF)を無視するようになります。 間違って control-D を押してシェルを終了させてしまうのを防ぐことができます。 .It Ic mail シェルがメールの到着をチェックするためのメールファイルを指定します。 コマンド実行が完了しプロンプトが表示されるときに、 .\" #### modified by kuma 96.12.23 #### 指定された時間が経過していればメイル到着のチェックが行われます。 最終修正時刻が最終アクセス時刻以降の場合、 シェルは `You have new mail' と出力します。 .Pp .Ar mail の値の最初の単語が数値の場合には、 その数値でメール検査の間隔を秒単位で指定します。 指定がなかった場合のデフォルト値は 10分です。 .Pp 複数のメールファイルが指定された場合、 メールが到着していた場合のメッセージは `New mail in .Ar name Ns ' となります。ここで、 .Ar name は到着したメールが あるファイル名です。 .It Ic noclobber .Sx 入出力 の項で説明したように、 出力リダイレクトによって意図せずにファイルを削除しないように制限したり、 `>>' リダイレクトがすでに存在するファイルにしか適用できないようにします。 .It Ic noglob セットされると、ファイル名展開が禁止されます。 ファイル名を扱わないシェルスクリプト内や、すでにファイル名展開を行ったあとで、 それ以上の展開を望まない場合に設定します。 .It Ic nonomatch .\" #### modified by kuma 96.12.23 #### セットされると、ファイル名展開の結果が空になってもエラーとせず、 展開前のパターンをそのまま残します。 .\" #### modified by kuma 96.12.23 #### ただし、`echo [' のような、 展開前のパターンが文法的に正しくない場合はエラーになります。 .It Ic notify セットされると、シェルがジョブの終了を随時報告するようになります。 通常はプロンプトの表示直前にのみ報告が行われます。 .It Ic path .\" #### modified by kuma 96.12.23 #### path 変数の各単語は、コマンドファイルを検索すべきディレクトリ名を表します。 空の単語はカレント・ディレクトリを示します。 .Ar path 変数が設定されて いない場合、フルパス指定によるコマンド実行のみが可能になります。 通常の検索パスは `.', `/bin', `/usr/bin' です。しかし、これらの値はシステムによって異なります。 スーパーユーザのデフォルトの検索パスは `/etc', `/bin', `/usr/bin' です。 .Fl c オプションも .Fl t オプションも指定されなかった場合、 シェルは .Ar path 変数で指定されたディレクトリの内容をハッシュ・テーブルに保存します。 ハッシュ・テーブルは、起動時に .Ar \&.cshrc を読み込んだ後と .Ar path 変数を再設定した時に再構築されます。 シェルの実行中に、 新しいコマンドがハッシュされているディレクトリに追加された場合は、 .Ic rehash コマンドによりハッシュを再構築しなければなりません。 .\" #### modified by kuma 96.12.23 #### さもなければ、コマンドが見付からない可能性があります。 .It Ic prompt 端末上で対話的に実行されているシェルにおいて、 .\" #### modified by kuma 96.12.23 #### コマンド読み込み時に表示される文字列を指定します。 `!' が含まれる場合、現在のイベント番号に置換されます。 `\e' を指定することにより、この解釈を抑制することができます。 デフォルトの値は `% 'です。スーパーユーザの場合は `# ' となります。 .It Ic savehist ログアウト時にファイル ~/.history に保存されるコマンド履歴の数を指定 します。 .\" #### modified by kuma 96.12.23 #### この値で指定される数のイベントが保存されます。 起動時に、シェルは ~/.history の内容を読み込みます。あまりに 大きな値を指定すると、シェルの起動が遅くなる場合があります。 .Ar savehist がセットされているだけの場合は .Ar history に指定された値を使用します。 .It Ic shell シェルのフルパス名を示します。実行属性が立っているが、 .\" #### modified by kuma 96.12.23 #### システムが起動できないファイルを 実行する際に起動するシェルとして用いられます(後述の .Sx 非組み込みコマンドの実行 の項を参照)。システム依存の値で初期化されます。 .It Ic status 最後に実行したコマンドの終了ステータス値を保持します。 異常終了した場合は、値に 0200 が加算されます。 組み込みコマンドが失敗した場合は `1' に、成功した場合は `0' になります。 .It Ic time .\" #### modified by kuma 96.12.23 #### コマンドの自動計時を制御します。値が設定されている場合、 コマンドがその値よりも長く CPU 秒数を消費した場合には、 コマンド終了時にユーザ時間、システム時間、実時間と、 利用率すなわちユーザ+システム時間と実時間のパーセンテージが出力されます。 .It Ic verbose .Fl v コマンドラインオプションが指定されていた場合にセットされます。 ヒストリ置換が行われたあと、コマンドの内容が出力されます。 .El .Ss 非組み込みコマンドの実行 実行すべきコマンドが組み込みコマンドでなかった場合、シェルはコマンドを .Xr execve 2 システムコールによって起動しようとします。シェル変数 .Ar path .\" #### modified by kuma 96.12.23 #### の各単語は、シェルがコマンドを実行しようとするディレクトリ名を表します。 .Fl c オプションも .Fl t オプションも指定されなかった場合、 .\" #### modified by kuma 96.12.23 #### シェルはそれらのディレクトリ内にあるファイル名のハッシュ値を計算し、 シェル内部のテーブルに格納します。これは、 コマンドが存在する可能性のあるディレクトリだけで .Ic exec を試みるようにするためです。 この近道によって、サーチ・パスにたくさんのディレクトリが指定されている時、 コマンドの位置決定が著しく高速化されます。 この機能が( .Ic unhash .\" #### modified by kuma 96.12.23 #### コマンドによって)停止されている場合、または .Fl c または .Fl t オプションが起動時に指定された場合、または .Ar path .\" #### modified by kuma 96.12.23 #### 中の単語で `/' から始まらないものについては、ハッシュが用いられることはありません。 この場合は、 .Ar path の要素にコマンドラインで指定されたコマンドを連結した名前を持つ ファイルを実行しようと試みます。 .Pp 括弧で囲まれたコマンドは、つねにサブシェルによって実行されます。ですから、 .Pp .Dl (cd ; pwd) ; pwd .Pp はホーム・ディレクトリの値を表示しますが、カレント・ディレクトリ(ホーム・ .\" #### modified by kuma 96.12.23 #### ディレクトリの後に表示されます)は移動しません。 一方、 .Pp .Dl cd ; pwd .Pp を実行すると、カレント・ディレクトリがホーム・ディレクトリに移動します。 括弧で囲まれたコマンドは、現在のシェルのカレント・ディレクトリに 影響を与えずにコマンドを実行する場合にしばしば用いられます。 .Pp 実行属性が立っているにもかかわらず、 システムによって実行可能ではないファイルは シェルコマンドファイルであるとみなし、 サブシェルを起動してそのファイルを読み込ませます。 .Pp .Ic shell という名前のエイリアスが存在する場合、 エイリアスの値はシェルコマンドファイルを実行する場合の 引数リストの前に挿入されます。エイリアスの値の最初の単語は シェルのフルパス名でなければいけません(たとえば `$shell')。 .\" #### modified by kuma 96.12.23 #### これはエイリアス展開としては特別のもので、かなり後の時点に行われ、 引数リストを修正せずに、その前に単語を挿入するための手段を提供します。 .Ss シグナル処理 シェルは、通常 .Ar quit シグナルを無視します。バックグラウンドのジョブ( .Ic \&& または .Ic bg または .Ic %... & .\" #### modified by kuma 96.12.23 #### によるコマンド)はキーボードから入力されたシグナルに影響されません (hangup も含みます)。他のシグナルに対する挙動は親の環境を引き継ぎます。 シェル・スクリプトでの interrupt と terminate シグナルに対する処理は .Ic onintr によって制御することができます。ログイン・シェルは .Ar terminate シグナルを捕捉します。それ以外のシェルでは、 .Ar terminate シグナルはシェルの親の状態に従ってチャイルドプロセスに渡されます。 ログイン・シェルが .Pa \&.logout ファイルを読み込んでいる間は interrupt は無視されます。 .Sh 作者 -William Joy。 +.An William Joy +。 ジョブ制御とディレクトリ・スタックは -J.E. Kulp of IIASA, Laxenburg, Austria によって、 +.An J.E. Kulp , +IIASA, Laxenburg, Austria によって、 .\" #### modified by kuma 96.12.23 #### 現在とは異なる文法のものが実装されました。 -ファイル名補完は Ken Greer, HP Labs が、 +ファイル名補完は +.An Ken Greer , +HP Labs が、 .\" #### modified by kuma 96.12.23 #### -8 bit クリーンな実装は Christos S. Zoulas, Cornell University +8 bit クリーンな実装は +.An Christos S. Zoulas , +Cornell University によって行われました。 .Sh 関連ファイル .Bl -tag -width /etc/passwd -compact .It Pa ~/.cshrc シェルが起動されるときに読み込まれる。 .It Pa ~/.login ログイン・シェルの場合、ログイン時に `.cshrc' の後に読み込まれる。 .It Pa ~/.logout ログイン・シェルにおいてログアウト時に読み込まれる。 .It Pa /bin/sh 標準シェル。`#' で始まらないシェル・スクリプトの実行に用いる。 .It Pa /tmp/sh* `<<' の処理に用いられる一時ファイル。 .It Pa /etc/passwd `~name' 展開時に用いられるホーム・ディレクトリに関する情報を得る。 .El .Sh 制限事項 .\" #### modified by kuma 96.12.23 #### 単語の長さは 1024 文字に制限されます。引数リストは、システムによって 10240 文字に制限されています。ファイル名展開を含む引数の数は、 引数リストの文字数の 6 分の 1 に制限されています。 コマンド置換の結果は、引数リストと同数の制限があります。 ループ検出のため、1 行に対するエイリアス展開は 20 回までに制限されています。 .Sh 関連項目 .Xr sh 1 , .Xr su 1 , .Xr access 2 , .Xr execve 2 , .Xr fork 2 , .Xr killpg 2 , .Xr pipe 2 , .Xr setrlimit 2 , .Xr sigvec 2 , .Xr umask 2 , .Xr wait 2 , .Xr tty 4 , .Xr a.out 5 , .Xr environ 7 .br .Em An introduction to the C shell .Sh 歴史 .Nm csh は .Bx 3 で追加されました。 .\" #### modified by kuma 96.12.23 #### コマンドインタプリタとしては、履歴(参照: .Sx ヒストリ置換 )、ジョブ制御 (参照: .Sx ジョブ .\" #### modified by kuma 96.12.23 #### 参照)、対話的なファイル名補完とユーザ名補完(参照: .Sx ファイル名補完 .\" #### modified by kuma 96.12.23 #### )、C言語ライクな文法を採用して実装した最初のものです。 これらの機構にいくつかの追加機能(といくらかのバグの可能性)を 持つシェルは、現在ではたくさんあります。 これらは usenet から入手することができます。 .Sh バグ コマンドが停止状態から復帰したとき、もしそのコマンドが起動したときの ディレクトリとカレント・ディレクトリが異なるなら、 シェルはコマンドを起動したときのカレント・ディレクトリの値を表示します。 .\" #### modified by kuma 96.12.23 #### これは、そのジョブが内部的にディレクトリを変更した場合は誤解(間違った情報) を与える可能性があります。 .Pp シェルの組み込みコマンドは中断(suspend)も再開もできません。 `a ; b ; c' のようなコマンド列も適切には中断することができません。 たとえば、 `b' の実行を中断した場合には、 すぐに `c' の実行が開始されてしまいます。これは .Ar alias としてコマンド列を指定している場合に特に目立ちます。 このようなコマンド列は `()' で囲んでサブシェルで実行されるようにすることによって、 適切に停止させることが可能になります(`( a ; b ; c )'のように)。 .Pp プロセスを起動したあとの端末出力の制御が貧弱です。おそらく、 このために、 .\" #### modified by kuma 96.12.23 #### もっと良い仮想端末インタフェースを開発したいと考える人がいても何ら不思議はないです。 仮想端末インタフェース上なら、 もっと おもしろい端末出力の制御が可能になるでしょう。 .Pp .\" #### modified by kuma 96.12.23 #### シェル関数をシミュレートするために、エイリアスを不格好に用いてしまうことが よくあります。シェル関数がサポートされるべきです。 .Pp ループ中のコマンド入力において、 `?' プロンプトに続けて入力された内容はヒストリに残りません。 制御構造は組み込みコマンドとして解釈されるのではなく、 文法的に解釈するようにするべきです。これにより制御コマンドをどこにでも 置けるようになり、`\&|', `&', `;' との組み合わせが 自由にできるようになります。 .Pp コマンド置換の出力にも `:' 修飾子が適用できるべきです。 .Pp .\" #### modified by kuma 96.12.23 #### ファイル名補完機構の実装は不細工かつ非効率的です。 diff --git a/ja/man/man1/domainname.1 b/ja/man/man1/domainname.1 index c40f762f7a..4864359096 100644 --- a/ja/man/man1/domainname.1 +++ b/ja/man/man1/domainname.1 @@ -1,67 +1,68 @@ .\" Copyright (c) 1983, 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hostname.1 8.1 (Berkeley) 5/31/93 +.\" %Id: domainname.1,v 1.2.6.2 1998/06/30 06:42:59 charnier Exp % .\" %Id: domainname.1,v 1.2.6.1 1997/08/24 21:48:26 jkh Exp % .\" jpman %Id: domainname.1,v 1.3 1997/08/07 12:10:39 horikawa Stab % .\" .Dd September 18, 1994 .Dt DOMAINNAME 1 .Os "FreeBSD 2.0" .Sh 名称 .Nm domainname .Nd 現在の YP/NIS ドメイン名の設定、表示 .Sh 書式 .Nm domainname .Op Ar ypdomain .Sh 解説 .Nm domainname は現在の YP/NIS ドメイン名の表示をします。 スーパユーザは、引数にドメイン名を指定することでドメイン名の設定を することもできます。 通常このコマンドは、起動時のネットワークの初期化スクリプト .Pa /etc/rc.network で実行されます。 .Sh 注意事項 YP/NIS (昔は ``Yellow Pages'' でしたが、法律上の問題で改名しました) のドメイン名は、 必ずしもドメインネームシステム(DNS)のドメイン名とは関係有りません。 しかし、しばしば管理上の便利さから同じに設定される 場合があるようです。 .Sh 関連項目 .Xr getdomainname 3 .Sh 歴史 .Nm domainname コマンドは .Tn SunOS の同様のコマンドをベースに、 .Tn FreeBSD 1.1 で登場しました。 diff --git a/ja/man/man1/fdwrite.1 b/ja/man/man1/fdwrite.1 index a33db83318..b068e1a634 100644 --- a/ja/man/man1/fdwrite.1 +++ b/ja/man/man1/fdwrite.1 @@ -1,123 +1,123 @@ .\" .\" ---------------------------------------------------------------------------- .\" "THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\" can do whatever you want with this stuff. If we meet some day, and you think .\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\" ---------------------------------------------------------------------------- .\" -.\" %Id: fdwrite.1,v 1.2.2.2 1997/09/19 06:21:39 charnier Exp % +.\" %Id: fdwrite.1,v 1.2.2.4 1998/06/27 21:30:44 steve Exp % .\" jpman %Id: fdwrite.1,v 1.4 1997/07/26 21:35:54 horikawa Stab % .\" .\" .Dd September 16, 1993 .Os FreeBSD .Dt FDWRITE 1 .Sh 名称 .Nm fdwrite .Nd フロッピディスクのフォーマットと書き込み .Sh 書式 .Nm fdwrite .Op Fl v .Op Fl y .Op Fl f Ar inputfile .Op Fl d Ar device .Sh 解説 .Nm fdwrite は、複数のフロッピディスクをフォーマットし書き込みます。 フォーマットできるフロッピディスクデバイスを使うことができます。 .Nm fdwrite は、 .Pq /dev/tty のユーザに新しいフロッピをいれてリターンキーを押すように指示します。 デバイスがその後にオープンされ、パラメータが尋ねられ、 その後トラックがフォーマットされ、 .Ar inputfile で指定されたデータが書き込まれ、ベリファイされます。 フロッピディスクがいっぱいになった時は、この仮定が次のディスクに対して 繰り返されます。これは、プログラムが中断されるか .Ar inputfile の終り (EOF) に達するまで続けられます。 以下のようなオプションがあります。 .Bl -tag -width 10n -offset indent .It Fl v 標準出力への出力情報の状態をトグルで変更します。 デフォルトのモードは ``on'' です。 はじめてデバイスがオープンされた後で、フォーマットが出力されます。 操作の間には、現在のフロッピディスクの残りのトラック数と 文字 I, Z, F, W, R, C,の文字が出力されます。各文字は、現在のトラックに 対して、入力 (I) 、ゼロで埋める (Z) 、フォーマット (F) 、書き込み (W) 、 読み込み (R) 、比較 (C) のそれぞれを行っていることをあらわします。 .It Fl y ドライブにフロッピディスクがあるかどうか問いあわせません。 この非対話オプションはシェルスクリプトで使用するのに便利です。 .It Fl f Ar inputfile 読み込むための入力ファイルです。もし、与えられていない場合は標準入力が 仮定されます。 .It Fl d Ar device 書き込むためのフロッピデバイスの名前です。 デフォルトは、 ``/dev/rfd0'' です。 .El .Nm fdwrite は、ユーザがリターンを押すのを待っている間は .Ar device をクローズしています。したがって、この時には完全にドライブを別の目的で 使うことができ、あとで次のフロッピの書き込みを再開できます。 .Ar device からかえって来たパラメータは、フォーマットのために使われます。 もし、特別なフォーマットが必要な時には、 .Xr fdformat 1 を代わりに使ってください。 .Sh 使用例 .Nm fdwrite は、複数枚数のフロッピへの書き込みを 簡単に行えるようにと考えらえて作成されたツールです。 そのような使用例は、以下の tar アーカイブの書き込みがあります。 .ce 1 tar cf - . | gzip -9 | fdwrite -d /dev/rfd0.1720 -v .Xr tar 1 のマルチボリューム機能との主要な違いは、 もちろんフロッピのフォーマットです。フォーマットは実行中に行われるので、 フロッピに対する仕事の量を減らすことができます。 .Sh 関連項目 -.Xr fdformat 1 . +.Xr fdformat 1 .Sh 歴史 .Nm fdwrite は、 ``make world'' が終了するのを待つ間に書かれました。 コードのうちいくつかは、 .Xr fdformat 1 から持って来ました。 .Sh 作者 このプログラムは、 .An Poul-Henning Kamp Aq phk@login.dknet.dk によるコントリビューションです。 .Sh バグ 診断機能は現在は完全ではありません。 フロッピがおかしい時に .Ar inputfile がシーク可能であれば、ユーザにディスクを無げ捨て、 別のフロッピを入れて、正しい場所まで戻って操作を続けるように指示すべきです。 この方法は、シークできない入力に対しても同様に一時ファイルを 使用することで、拡張可能です。 オプション ( デフォルトは 0) で、ユーザに失敗した時の再試行回数を 尋ねるべきでしょう。 現在は、フロッピのマルチボリュームを読み戻すための適当なツールが ありません。 データが圧縮されていない時には、代わりに .Xr tar 1 の様なプログラムで、そのような仕事を行うことができます。 このような状態の時にはもちろん、いつも .Xr dd 1 を信用することもできます。 diff --git a/ja/man/man1/hostname.1 b/ja/man/man1/hostname.1 index c1eeefe81a..d989f32b14 100644 --- a/ja/man/man1/hostname.1 +++ b/ja/man/man1/hostname.1 @@ -1,65 +1,65 @@ .\" Copyright (c) 1983, 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hostname.1 8.2 (Berkeley) 4/28/95 .\" jpman %Id: hostname.1,v 1.2 1997/04/10 07:27:59 mutoh Stab % -.\" %Id: hostname.1,v 1.3.2.2 1997/08/24 21:51:25 jkh Exp % +.\" %Id: hostname.1,v 1.3.2.3 1998/06/30 06:43:13 charnier Exp % .\" .Dd April 28, 1995 .Dt HOSTNAME 1 .Os BSD 4.2 .Sh 名称 .Nm hostname .Nd 現在のホスト名の表示、設定 .Sh 書式 .Nm hostname .Op Fl s .Op Ar name-of-host .Sh 解説 .Nm は、現在のホストの名前を表示します。 スーパーユーザは、引数を与えることでホスト名の設定をすることもできます。 これは通常、ブート時にネットワークの初期化スクリプトである .Pa /etc/rc.network の中で行なわれます。 .Pp オプションとしては、以下のものがあります。 .Bl -tag -width flag .It Fl s 名前からドメイン情報を取り除いて表示します。 .El .Sh 関連項目 .Xr gethostname 3 .Sh 歴史 .Nm hostname ユーティリティは .Bx 4.2 から登場しています。 diff --git a/ja/man/man1/mkdir.1 b/ja/man/man1/mkdir.1 index 6e06f2ae08..c8e6ef0b94 100644 --- a/ja/man/man1/mkdir.1 +++ b/ja/man/man1/mkdir.1 @@ -1,103 +1,103 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 -.\" %Id: mkdir.1,v 1.3.2.1 1997/02/28 07:54:38 mpp Exp % +.\" %Id: mkdir.1,v 1.3.2.2 1998/06/30 06:42:30 charnier Exp % .\" jpman %Id: mkdir.1,v 1.2 1997/03/29 06:22:04 horikawa Stab % .\" .Dd January 25, 1994 .Dt MKDIR 1 .Os .Sh 名称 .Nm mkdir .Nd ディレクトリの作成 .Sh 書式 .Nm mkdir .Op Fl p .Op Fl m Ar mode .Ar directory_name ... .Sh 解説 .Nm は、 オペランドで指定されたディレクトリを作成します。 作成する順番は指定された順番です。 作成されるディレクトリのパーミッションは、 .Li rwxrwxrwx (\&0777) に .Xr umask 2 の修正を加えたものです。 .Pp オプションとしては以下のものがあります: .Pp .Bl -tag -width indent .It Fl m Ar mode 作成されるディレクトリのパーミッションを指定します。 .Ar mode の書式は .Xr chmod 1 コマンドと同じです。シンボリック形式で指定する場合、 .Dq + および .Dq - は、最初のパーミッションが .Dq a=rwx であるものとして解釈されます。 .It Fl p 必要に応じて途中のディレクトリを作成します。 このオプションが指定されていない場合には、 .Ar directory_name で指定するパスの途中のディレクトリは既に存在している必要があります。 途中に作成されるディレクトリのパーミッションは、 .Li rwxrwxrwx (\&0777) に現在の umask の修正を加えたものに、 所有者に対する書き込みと検索パーミッションが加わった値となります。 .El .Pp ユーザは親ディレクトリに対する 書き込みパーミッションを持っている必要があります。 .Pp .Nm は成功した場合は 0 を、エラーが起きた場合は 1 以上の値を返します。 .Sh 関連項目 .Xr rmdir 1 .Sh 規格 .Nm mkdir ユーティリティは .St -p1003.2 互換です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja/man/man1/pax.1 b/ja/man/man1/pax.1 index ebaeb29b71..1e2b0a57d0 100644 --- a/ja/man/man1/pax.1 +++ b/ja/man/man1/pax.1 @@ -1,1174 +1,1175 @@ .\" Copyright (c) 1992 Keith Muller. .\" Copyright (c) 1992, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Keith Muller of the University of California, San Diego. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pax.1 8.4 (Berkeley) 4/18/94 +.\" %Id: pax.1,v 1.3.2.2 1998/06/30 06:42:49 charnier Exp % .\" jpman %Id: pax.1,v 1.4 1997/08/25 03:45:37 horikawa Stab % -.\" %Id: pax.1,v 1.3.2.1 1998/05/31 22:44:52 steve Exp % .\" .Dd April 18, 1994 .Dt PAX 1 .Os BSD 4.4 .Sh 名称 .Nm pax .Nd ファイルアーカイブの読み書きやディレクトリ階層のコピーを行う .Sh 書式 .Nm pax .Op Fl cdnv .Bk -words .Op Fl f Ar archive .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Oc .Ar ... .Ek .Op Ar pattern ... .Nm pax .Fl r .Op Fl cdiknuvDYZ .Bk -words .Op Fl f Ar archive .Ek .Bk -words .Op Fl o Ar options .Ar ... .Ek .Bk -words .Op Fl p Ar string .Ar ... .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Op Fl E Ar limit .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Oc .Ar ... .Ek .Op Ar pattern ... .Nm pax .Fl w .Op Fl dituvHLPX .Bk -words .Op Fl b Ar blocksize .Ek .Oo .Op Fl a .Op Fl f Ar archive .Oc .Bk -words .Op Fl x Ar format .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Bk -words .Op Fl o Ar options .Ar ... .Ek .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Op Fl B Ar bytes .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Op Ar /[c][m] .Oc .Ar ... .Ek .Op Ar file ... .Nm pax .Fl r .Fl w .Op Fl diklntuvDHLPXYZ .Bk -words .Op Fl p Ar string .Ar ... .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Op Ar /[c][m] .Oc .Ar ... .Ek .Op Ar file ... .Ar directory .Sh 解説 .Nm pax は、アーカイブファイルの読み込み、書きだし、アーカイブファイルに 格納されているファイルの一覧読みだし、そしてディレクトリ階層のコピーを 行います。 .Nm pax の操作は指定したアーカイブフォーマットとは独立しており、また .Nm pax は広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。 .Nm pax のサポートするアーカイブフォーマット一覧は、 .Fl x オプションの説明時に示します。 .Pp .Fl r および .Fl w は、以下の .Nm pax の機能モードのいずれかを指定するのに用いられます。その機能モードとは、 .Em 一覧表示モード、読み込みモード、書き込みモード、コピーモード の 4 つです。 .Bl -tag -width 6n .It .Em 一覧表示モードです。 .Nm pax は、 .Dv 標準入力 から読み込まれたアーカイブ内の格納ファイルのリストを .Dv 標準出力 へ書き出します。標準入力から読み込まれるファイルのパス名は、指定した .Ar pattern に一致するものが採用されます。 ファイル一覧は 1 行に 1 つのファイル名を含み、1 行バッファリングを行って 書き出されます。 .It Fl r .Em 読み込みモードです。 .Nm pax は、 .Dv 標準入力 からアーカイブ読み込み、その内に格納されたファイルのうち指定した .Ar pattern に一致するファイル名を持つファイルを展開します。 アーカイブフォーマット及びブロック化係数は、自動的に入力から決定されます。 展開されるファイルがディレクトリの場合、そのディレクトリ配下に連なる ファイル階層は完全な形で展開されます。 展開される全てのファイルは、現在のファイル階層からの相対ディレクトリに 生成されます。展開されるファイルの所有権、アクセス時刻、更新時刻、 そしてファイルモードの設定についての詳細は、 .Fl p オプションのところで述べます。 .It Fl w .Em 書き込みモードです。 .Nm pax は、 .Ar file オペランドで指定したファイル群のアーカイブを 指定したフォーマットで標準出力に書き出します。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下の 全ファイルが作成されるアーカイブに含まれます。 .It Fl r Fl w .Em コピーモードです。 .Nm pax は、ファイルオペランドで指定したファイル群を、指定した .Ar ディレクトリ にコピーします。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下のファイルがすべて、 コピー先として指定したディレクトリ配下に作成されます。 .Em コピーモード は、ファイルがアーカイブファイルに対して書き込まれ、 そして一方でそのアーカイブファイルが展開されるかのように見ます。 ただし、これはオリジナルファイルとコピーファイルの間に ハードリンクが張られるかも知れない事を除きます .Ns ( Fl l オプションを参照して下さい)。 .Pp .Em 注意 コピー先の .Ar ディレクトリ には、コピー元にあるものと同じファイル名の .Ar file オペランドや .Ar file オペランドで指定されるディレクトリ階層の配下にあるファイル名などを 指定してはいけません。 そのような場合、 .Em コピー の結果は予測できないものになります。 .El .Pp .Em 読み込み 操作や .Em 一覧表示 動作において壊れたアーカイブを処理する場合、 .Nm pax は媒体破損を可能な限り復旧し、 アーカイブの中から可能な限りのファイルを処理しようと試みます (エラー時の 処理の詳細は .Fl E オプションを参照して下さい)。 .Sh オペランド .Pp .Ar directory オペランドは、コピー先ディレクトリの指定を行います。 .Ar directory オペランドが存在しない場合、もしくはユーザが書き込みを出来ない、 もしくは指定したオペランドがディレクトリでない場合には、 .Nm pax は、0 以外のステータスでプログラムを終了します。 .Pp .Ar pattern オペランドは、アーカイブに格納されているファイルの名前を選択するために 用いられます。 アーカイブメンバは、 .Xr fnmatch 3 に記述のある表記に一致するパターンを用いて選択されます。 .Ar pattern オペランドが指定されない場合には、アーカイブ内に格納されている 全てのメンバが選択されます。 .Ar pattern がディレクトリ名と一致する場合には、そのディレクトリ配下の階層に 位置する全てのファイルが選択されます。 もしアーカイブ内に .Ar pattern オペランドの指定と一致する名前のファイルがない場合には、 .Nm pax は .Ar 標準エラー出力 に出力される診断メッセージにこの .Ar pattern オペランドを書き出し、0 以外のステータスでプログラムを終了します。 .Pp .Ar file オペランドは、コピーもしくはアーカイブされるファイルのパス名を指定します。 .Ar file オペランドが 1 つもアーカイブメンバを選択しない場合には、 .Nm pax は .Dv 標準エラー出力 に出力される診断メッセージにこの .Ar file オペランドの内容を書き出し、0 以外のステータスでプログラムを終了します。 .Sh オプション .Pp .Nm pax では、以下のオプションが使用可能です。 .Bl -tag -width 4n .It Fl r アーカイブファイルを .Dv 標準入力 から読み込み、 .Ar files で指定したファイルを展開します。 アーカイブされているファイルの展開に中間ディレクトリの作成が必要な場合、 これらのディレクトリは、 .Xr mkdir 2 の mode 引数のところに .Dv S_IRWXU , S_IRWXG , S_IRWXO の .Dv 論理和 を指定して呼び出された場合と同様に作成されます。 選択されたアーカイブ形式がリンクファイルの指定をサポートし、 かつアーカイブ展開時にリンク不可能である場合には、 .Nm pax は、処理が終了する時に、診断メッセージを .Dv 標準エラー出力 に書き出し、0 以外のステータスで終了します。 .It Fl w 指定したアーカイブフォーマットで、 .Dv 標準出力 にアーカイブを書き出します。 .Ar file オペランドが指定されない場合には、1 行につき展開するファイルのパス名 1 つを 記述したリストを .Dv 標準入力 から読み込みます。 このリストの各行の先頭や末尾には .Aq 空白 を入れてはいけません。 .It Fl a すでに存在するアーカイブファイルの後ろに、ファイル .Ar files を追加書き込みします。 .Fl x オプションによるアーカイブフォーマット指定がされない場合、 アーカイブフォーマットは追加書き込み対象となるアーカイブファイルの フォーマットと同一になります。 アーカイブファイルに対して、そのアーカイブファイルのフォーマットと 異なるフォーマットを用いてファイルを追加書き込みをしようとした場合、 .Nm pax は即時に 0 以外の終了ステータスでプログラム終了します。 アーカイブボリュームに最初に書き込んだブロックサイズを引き継いで、 残りのアーカイブボリュームのブロックサイズとします。 .Pp .Em 注意 : 多くの記憶装置は追加書き込み処理に必要な操作をサポートできません。 そのようなサポートしていないデバイスに対するアーカイブの追加書き込みは、 アーカイブの破損もしくは他の予期せぬ結果を招くことになります。 特に、テープドライブに対する追加書き込み処理は、最もサポートしそうにない ものです。 普通のファイルシステムのファイルとして、もしくはディスクデバイス上に 保存されているアーカイブについては、通常は追加書き込み処理をサポートします。 .It Fl b Ar blocksize アーカイブを .Em 書き出す 際、アーカイブへと書き出す内容を blocksize (正の整数) で指定したバイト数 でブロック化します。 .Ar blocksize で指定出来る値は、512 の倍数でなくてはならず、最大は 32256 です。 .Ar blocksize で指定する数は、その最後に .Li k もしくは .Li b を付加することで、1024(1K) もしくは 512 の倍数として指定できます。 .Ar blocksizes に指定する数字を .Li x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 アーカイブの書き込みのために指定するデバイスによっては、 ブロックサイズに対してさらに制限がかかることがあります。 ブロック化が指定されない場合には、デフォルトの .Ar blocksize は使用される特定のアーカイブフォーマットに依存します。 .Ns ( Fl x オプションを参照して下さい)。 .It Fl c .Ar pattern に指定されたパターンにマッチしたファイルおよび .Ar file オペランドで指定されたファイル .Em 以外 の、全てのファイルもしくはアーカイブ内メンバにマッチします。 .It Fl d コピーもしくはアーカイブされるディレクトリ、もしくはアーカイブに格納され ているディレクトリについて、指定パターンに一致した名前のディレクトリもし くはアーカイブ内に格納されているディレクトリのみ処理し、そのディレクトリ 配下にあるファイルについては処理しません。 .It Fl f Ar archive .Ar archive で指定したファイルを入力元のアーカイブもしくは出力先のアーカイブに指定し ます。この場合、デフォルトの .Dv 標準入力 .Ns ( Em 一覧表示モード および .Em 読み込みモード の場合) もしくは .Dv 標準出力 .Ns ( Em 書き込みモード ) については無視されます。 1 つのアーカイブが複数のファイルもしくは異なるアーカイブデバイスに渡って も構いません。必要があった場合、 .Nm pax は、アーカイブの格納されている次のボリュームのファイルもしくはデバイスの パス名の入力を促します。 .It Fl i 対話的にファイルもしくはアーカイブ内に格納されるファイルのリネームを行います。 .Ar pattern で指定した文字列パターンに一致するアーカイブ内の格納ファイルもしくは .Ar file オペランドの指定に一致するファイルについて、 .Nm pax は .Pa /dev/tty に対してファイルの名前やファイルモード、そしてファイルの更新時刻を表示して 入力を促します。 それから .Nm pax は .Pa /dev/tty からデータを 1 行読み込みます。 その行が空行だった場合には、その時のファイルもしくはアーカイブ内の 格納ファイルについては、処理を行いません。 その行がピリオド 1 つだけの行だった場合には、その時のファイルもしくは アーカイブ内の格納ファイルについては、ファイル名についての更新は行いません。 それ以外の場合には、ファイル名はその行の文字列で指定した名前に変更されます。 上記操作中に .Dv を .Pa /dev/tty から受けとった場合、もしくは何らかの理由で .Pa /dev/tty をオープン出来なかった場合、 .Nm pax は 0 以外の終了ステータスで即座に終了します。 .It Fl k すでに存在するファイルに対する上書きをしません。 .It Fl l (アルファベットの ``エル'' ) ファイルをリンクします。 .Em コピーモード .Ns ( Fl r .Fl w ) の場合には、コピー元コピー先間には可能な限りハードリンクが作成されます。 .It Fl n アーカイブに格納されるファイルのうち、各 .Ar pattern オペランドに指定した文字列パターンに一致するファイル名を持つ最初のものを 選択します。 アーカイブに格納されるファイルのうち .Ar pattern オペランドに指定した文字列パターン に一致するもので、2 つめ以降のものは選択されません。 文字列パターンで指定した条件に合致するものがディレクトリだった場合、 そのディレクトリ配下のファイルについても選択されたものとみなされます(ただし、 .Fl d オプションが指定された場合にはこの限りではありません)。 .It Fl o Ar options .Fl x で指定されるアーカイブフォーマットから特定される、 アーカイブファイル展開/書き出しアルゴリズムの更新情報を指定します。 一般的に、 .Ar options は .Cm name=value のように指定されます。 .It Fl p Ar string 1 つ以上のファイルの属性操作に関する動作をオプション指定します。 .Ar string オプション引数は、ファイル展開時に、展開ファイルの属性を保存するか破棄す るかを指定する文字列です。 string は、 .Cm a , e , m , o , p の 5 つの指定文字から成ります。 複数の属性を同じ文字列の中につなげて記述したり、複数の .Fl p オプションを指定したりすることもできます。 これらの文字は、以下のように動作の指定を行います: .Bl -tag -width 2n .It Cm a ファイルのアクセス時間を保存しません。 デフォルトでは、ファイルのアクセスタイムは可能な限り保存されます。 .It Cm e ファイルのユーザ ID, グループ ID, ファイルモードのビット、ファイルの アクセス時間、ファイルの更新時間、これらの .Sq 全ての属性を保存します。 本オプションは、 .Em スーパユーザ、 もしくは適正な権限を持ったユーザによって 使用されることを推奨します。 これは、アーカイブ内に格納されたすべてのファイルについて、 そのファイルの特性を保存するためです。 フラグを指定した場合は、 .Cm o および .Cm p フラグを指定したのと同様の効果を持ちます。 .It Cm m ファイルの更新時間を保存しません。 デフォルトでは、ファイルの更新時間は可能な限り保存されます。 .It Cm o ユーザ ID とグループ ID を保存します。 .It Cm p ファイルモードのビットを .Sq 保存します。 本オプションは、 ファイルについて、所有者情報以外の全ての情報の保存を希望するなど適正な 権限を持った .Em ユーザ に使用されることを推奨しています。 ファイルの時刻はデフォルトで保存されますが、 これを無効にしたり、展開時の時刻を用いるようにするために 別に 2 つのフラグが用意されています。 .El .Pp 先述のオプション一覧にて、 .Sq 属性の保存 とは、起動したプロセスの権限に応じて アーカイブ内に保存された属性が展開ファイルに反映されることを意味します。 これ以外の場合は、展開されるファイルの属性は、 通常のファイル生成と同様に決定されます。 .Cm e と .Cm o のどちらも指定されない場合、あるいは ユーザ ID とグループ ID がいかなる理由にせよ保存されない場合、 .Nm pax はファイル属性中の .Dv S_ISUID .Em ( setuid ) および .Dv S_ISGID .Em ( setgid ) のビットを設定しません。 これらの情報の引き継ぎが何らかの理由で失敗した場合、 .Nm pax は診断メッセージを .Dv 標準エラー出力 に書き出します。 これらの情報の保存失敗は、最終的な終了ステータスに影響しますが、 展開されたファイルが削除されるようなことはありません。 ファイル属性の操作に関するオプション文字が重複していたり、 他のオプション文字と処理上の競合を起こす場合には、 それらのオプションの中で一番最後に記述されたものの処理が採用されます。 例えば、 .Dl Fl p Ar eme が指定された場合には、ファイルの更新時間は保存されます。 .It Fl s Ar replstr アーカイブ内に格納されているファイルのうち、 .Ar pattern オペランドもしくは .Ar file オペランドで指定されたもののファイル名を、 .Ar replstr で指定された置換表現にしたがって更新します。この置換表現は、 .Xr ed 1 にて記述されている正規表現の書法に準じます。 これらの正規表現の書式は .Dl /old/new/[gp] です。 .Xr ed 1 に示されるように、 .Cm old は基本的な正規表現であり、 .Cm new はアンパサンド (&)、後方参照 \\n (nの部分は数字が入ります)、 補助表現を含むことができます。 文字列 .Cm old には、 .Dv 改行文字 を含んでも構いません。 ヌル文字以外のいかなる文字も、区切り文字として用いることが可能です (ここでは / を示しました)。 また、複数の .Fl s 表現を指定することが許されています。 これらの表現はコマンドラインで指定された順に適用され、 最初の置換が成功した時点でその置換を終了します。 置換処理の追加処理指定として、 .Cm g を指定した場合には、継続してファイル名の置換を行うことを指示します。 この場合、前回置換に成功した直後の文字から継続して置換を行います。 そして最初に置換を失敗したときに .Cm g オプションの処理を終了します。 置換処理の追加処理指定として .Cm p を指定した場合には、最初の置換成功結果を .Dv 標準エラー出力 に以下のフォーマットで書き出します: .Dl >> 空白文字に置換される通常ファイルもしくはアーカイブ内に格納されたファイルの ファイル名は、処理対象として選択されず、そのファイル名に対する 処理はスキップされます。 .It Fl t .Nm pax が読み込んだ、もしくはアクセスした全てのファイルやディレクトリの アクセス時間を、 .Nm pax がそれらのファイルやディレクトリを処理する前のものに再設定します。 .It Fl u 同じ名前ですでに存在するファイルやアーカイブ内に格納されているファイルより 古い (ファイル更新時刻が古い) ファイルを無視します。 .Em 読み込み処理 においては、アーカイブ内のファイルにファイルシステム上にすでに存在するものと 同じ名前のファイルがあり、アーカイブ内のファイルの方が新しい場合に、 アーカイブ内のファイルが展開されます。 .Em 書き込み処理 においては、ファイルシステム上のファイルとアーカイブ内のファイルの名前が 同じもので、かつファイルシステム上のファイルの方がアーカイブ内のものより も新しい場合に、ファイルシステム上のファイルのアーカイブへの格納が行われます。 .Em コピー処理 においては、コピー先にあるファイルとコピー元にあるファイルが同一のファイル名 を持ち、かつコピー元にあるファイルの方が新しい場合に、 コピーあるいはリンクが行われます。 .It Fl v .Em 一覧表示処理 において、 .Xr ls 1 コマンドの .Fl l オプションを用いた時の表示と同じ形式を用いて、アーカイブ内容の表示を行います。 アーカイブの他のメンバとの間にハードリンクを構成するファイルのパス名に ついては、以下のフォーマットで出力されます。 .Dl == アーカイブの他のメンバとの間にシンボリックリンクを構成するファイルの パス名については、以下のフォーマットで出力されます。 .Dl => ここで の箇所は、 .Xr ls 1 コマンドを .Fl l オプションを付けて実行した場合の出力形式になります。 他のオプショナルモード (読み込みモード、書き込みモード、そしてコピーモード) の場合には、当該ファイルもしくはアーカイブ内のファイルの処理が始まるとすぐに、 それらのパス名が末尾の .Dv 改行文字 なしで .Dv 標準エラー出力 に書き込まれ、フラッシュされます。 ファイル名に付随する .Dv 改行文字 はバッファリングされることなく、ファイルが読み込まれたもしくは書き込まれた 直後に書き出されます。 .It Fl x Ar format 出力されるアーカイブフォーマットを指定します。デフォルトフォーマットは、 .Ar ustar フォーマットです。 .Nm pax は、現在以下のアーカイブフォーマットをサポートします: .Bl -tag -width "sv4cpio" .It Ar cpio .St -p1003.2 標準にて規定される、拡張 cpio 交換形式です。 本フォーマットのデフォルトブロックサイズは、5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar bcpio 古い binary cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは、5120 バイトです。 本フォーマットはポータビリティがそれほどよくないので、別のフォーマットが 使えるならば、そちらを使用したほうがよいでしょう。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar sv4cpio Unix System V Release 4(SVR4) の cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar sv4crc SVR4 で使用される、ファイルの crc チェックサムつきの cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar tar BSD4.3 から用いられている古い BSD tar フォーマットです。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットでは、アーカイブ内に格納されるファイルのパス名は 100 文字以内 でなくてはなりません。 .Em 通常ファイル、ハードリンクファイル、 .Em シンボリックリンクファイル、ディレクトリ のみがアーカイブ内に格納されます (他のファイルシステムタイプについては、 サポートされません)。 さらに古い tar フォーマットとの過去の互換性は、 .Fl o オプションを用いて、アーカイブへのファイル保存時に ディレクトリを無視することで実現されます。 本オプションは、以下のように指定します: .Dl Fl o Cm write_opt=nodir .It Ar ustar .St -p1003.2 標準にて規定される、 拡張 tar 交換形式です。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットのアーカイブ内に保存されるファイルのパス名は、250 文字以下 の長さでなくてはなりません。 .El .Pp .Nm pax は、指定したアーカイブフォーマットの制限に起因して、ファイルの アーカイブへの格納もしくはアーカイブからのファイルの展開が出来ない場合には、 それを検出し、報告します。 各アーカイブフォーマットを使用した場合には、 使用時に更にそのアーカイブフォーマットの制限が課せられることがあります。 典型的なアーカイブフォーマットの制限は、ファイルのパス名の長さ、 ファイルサイズ、リンクファイルの指すファイルのパス名の長さ、 そしてファイルタイプなど。 (なお、制限要素はこれらに限られるわけではありません。) .It Fl B Ar bytes 単一のアーカイブボリュームに書き出される最大データ長を、 .Ar bytes で制限します。 .Ar bytes パラメータの末尾には .Li m , .Li k , .Li b のいずれかの文字を付加でき、それぞれ 1048576 (1M), 1024 (1K), 512 の倍数を 意味します。 また、 .Ar bytes に指定する数字を .Li x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 .Pp .Em 警告 : 最後の (もしくは最大の) 書き込み時のオフセットに基づいた EOF をサポートする デバイス (テープや通常ファイルなどのようなもの) にアーカイブを書き出す時 にのみ本オプションを使って下さい。 本オプションをフロッピーやハードディスクデバイスファイルに対して用いる ことは、推奨しません。 .It Fl D 本オプションは、 .Fl u オプションと同様の動作を行いますが、ファイルの更新時間の代わりに ファイルの inode 変更時間がチェックされるところが異なります。 ファイルの inode 変更時間は、inode 情報 (ユーザ ID、グループ ID、その他) が コピー先のディレクトリ .Ar directory にあるものよりも新しいファイルを選択するのに用いられます。 .It Fl E Ar limit 部分的に破損したアーカイブの読み込みをリトライする際、その読み込み失敗回数を .Ar limit までに制限します。 .Ar limit に正の数を指定した場合、 .Nm pax はアーカイブの読み込みエラーからの復帰を試行し、アーカイブに格納されて いる次のファイルから処理を継続します。 .Ar limit が 0 の場合、 .Nm pax は最初のリードエラーがアーカイブボリュームに発生したところで処理を停止します。 .Ar limit が .Li NONE の場合には、読み込み失敗からの復帰を永遠に試行します。 デフォルトの .Ar limit の値は、小さい正の整数(リトライ回数)です。 .Pp .Em 警告 : .Nm pax コマンドを、本オプションを .Li NONE 指定して起動する場合には十分に気をつけて下さい。 というのも、処理対象となるアーカイブがぼろぼろに破損していた場合には、 処理が無限ループに陥る可能性があるからです。 .It Fl G Ar group グループ名が .Ar group で指定したものであるファイルを選択します。 グループ名が .Cm # で始まる場合には、ファイルのグループ ID がそれに連なる数字のものを 選択します。'\\' を用いて .Cm # をエスケープすることができます。 .Fl G オプションは、複数指定することが可能です。 この場合、最初にグループ名もしくはグループIDが一致したらところで チェックは停止します。 .It Fl H 物理的にファイルシステムトラバースを行いながら、 コマンドラインで指定されたファイルについてのみ シンボリックリンクをたどります。 .It Fl L 全てのシンボリックリンクファイルをたどります。 すなわち、論理的にファイルシステムトラバースを行います。 .It Fl P シンボリックリンクをたどりません。 すなわち、物理的にファイルシステムトラバースを行います。 デフォルトはこのモードです。 .It Fl T Ar [from_date][,to_date][/[c][m]] ファイル更新時間もしくは inode 更新時間が .Ar from_date から .Ar to_date の間 (それぞれで指定した時間も含みます) にあるファイルを選択します。 .Ar from_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより新しいもののみ選択されます。 .Ar to_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより古いもののみ選択されます。 .Ar from_date と .Ar to_date が等しい場合には、ファイル更新時間もしくは inode 更新時間が その時間と等しいものが選択されます。 .Pp .Nm pax が .Em 書き込みモード もしくは .Em コピーモード の場合には、オプションフィールドとして .Ar [c][m] を指定することが可能です。このフィールドは、時間の比較に inode更新時間と ファイル更新時間のどちら(あるいは両方)を使うかを決定します。 どちらも指定されない場合(デフォルト時)には、ファイル更新時間のみが用いられます。 .Ar m は、ファイル更新時間 (ファイルへの書き込みが最後に行われた時間) を 比較対象として用います。 .Ar c は、inode 更新時間 (inode が最後に更新された時間。例えば所有者、 グループ、モードその他が更新された時間) を比較対象として用います。 .Ar c と .Ar m の両者が指定された場合、ファイル更新時間と inode 更新時間の両者が比較対象 になります。 inode 更新時間の比較は、最近属性が変更されたファイルや 最近作成されたファイル、そしてファイル更新時間が古いものに再設定された ファイル (ファイル更新時間を保存するオプションを用いてアーカイブから 展開されたファイルなどがこれにあたります) を選択するのに便利です。 ファイル時間も併用して時間比較をする機能は、 .Nm pax を用いて、 時間を基準にしたインクリメンタルアーカイブ (指定した期間内に更新された ファイルのみアーカイブすること) を行うのに便利です。 .Pp 時間の範囲は、6 つの異なるフィールドから成り、各フィールドは 2 ケタの数字を 含む必要があります。 その形式は以下の通りです: .Dl [yy[mm[dd[hh]]]]mm[.ss] .Cm yy は、年号 (西暦) の最後の 2 桁です。 最初の .Cm mm は、月 (01 から 12) です。 .Cm dd は、日付 (01 から 31 まで) です .Cm hh は、時 (00 から 23 まで) です。 2 番めの .Cm mm は、分 (00 から 59 まで)です。 そして、 .Cm ss は、秒 (00 から 59 まで)です。 分のフィールドの .Cm mm は、省略不可であり、他のフィールドはオプションであり、以下の順序で 付加されなければなりません: .Dl Cm hh , dd , mm , yy ただし、 .Cm ss フィールドだけは、他のフィールドとは独立して付加可能です。 時間の範囲は、現在時刻からの相対値で表され、 .Dl Fl T Ar 1234/cm は、本日の 12:34 PM から後のファイル更新時間、もしくは inode 更新時間を持つ ファイルを選択することを表します。 複数の .Fl T による時間範囲指定を行うことが許可されており、 指定した範囲のうちいずれかと一致したら、その後の範囲チェックは行いません。 .It Fl U Ar user ファイルの所有者名 .Ar user に基づいて、ファイル選択が行われます。所有者名が .Cm # で始まる場合には、ファイルの UID がそれに連なる数字のものを 選択します。'\\' を用いて .Cm # をエスケープすることができます。 複数の .Fl U オプションを指定することが許されており、その指定の中で最初にユーザが 一致した場合には、それ以降のユーザ名のチェックは行いません。 .It Fl X パス名で指定されたファイル階層をトラバースする場合に、異なるデバイス ID を 持つディレクトリへは下りていきません。 デバイス ID について詳細な情報を取得したい場合には、 .Xr stat 2 の .Li st_dev フィールドを参照して下さい。 .It Fl Y 本オプションは、 .Fl D オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて inode 更新時間をチェックするところが異なります。 .It Fl Z 本オプションは、 .Fl u オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて、ファイル更新時間をチェックするところが異なります。 .El .Pp ファイルもしくはアーカイブ内に格納されたファイルについての操作を制御する オプション ( .Fl c , .Fl i , .Fl n , .Fl s , .Fl u , .Fl v , .Fl D , .Fl G , .Fl T , .Fl U , .Fl Y , .Fl Z ) は、相互に以下のような影響を及ぼします。 .Pp .Em 読み込み 処理におけるファイル展開時には、 展開されるファイルは、まず、アーカイブ内に格納されるファイルのうち .Fl c , .Fl n , .Fl u , .Fl D , .Fl G , .Fl T , .Fl U のそれぞれのオプションを用いて指定されるユーザ指定のパターンオペランド に基づいて選択されます。 それらのファイルの中から .Fl s および .Fl i オプションがこの順に、選択されたファイル名を修正します。 それから、最終的なファイル名にて .Fl Y および .Fl Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 .Fl v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。 .Pp .Em 書き込み 操作や .Em コピー 操作のファイルアーカイブでは、以下のオプション .Fl n , .Fl u , .Fl D , .Fl G , .Fl T , .Fl U ( .Fl D オプションはコピー操作時のみ適用されます) によって アーカイブメンバのファイルを選択します。 続いて、それらのファイルの中から .Fl s および .Fl i オプションがこの順に、選択されたファイル名を修正します。 それから .Em コピー 処理においては、最終的なファイル名にて .Fl Y および .Fl Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 .Fl v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。 .Pp .Fl n といっしょに .Fl u オプションあるいは .Fl D オプションのどちらか、もしくは両方が指定された場合、そのファイルが 比較対象のファイルより新しくなければ、そのファイルは選択されたとは みなされません。 .Sh 使用例 コマンド: .Dl pax -w -f /dev/rst0 .\ は、カレントディレクトリの内容を .Pa /dev/rst0 にコピーします。 .Pp コマンド: .Dl pax -v -f filename は、 .Pa filename で指定したアーカイブに格納されているファイル内容の詳細な一覧を表示します。 .Pp 以下のコマンド: .Dl mkdir /tmp/foo .Dl cd /tmp/bar .Dl pax -rw .\ /tmp/foo を実行すると、 .Pa /tmp/bar 配下のディレクトリ階層全体を .Pa /tmp/foo にコピーします。 .Pp コマンド: .Dl pax -r -s ',^//*usr//*,,' -f a.pax は、アーカイブファイル .Pa a.pax からデータを読み込み、アーカイブ中の ``/usr'' 配下のファイルを全て、 カレントディレクトリからの相対ディレクトリに展開します。 .Pp コマンド: .Dl pax -rw -i .\ dest_dir は、カレントディレクトリから .Pa dest_dir ディレクトリにコピーしますが、ファイルをコピーするかどうかを 対話的に選択します。 .Pp コマンド: .Dl pax -r -pe -U root -G bin -f a.pax は、 .Pa a.pax 中に格納されているファイルのうち、所有者が .Em root でグループが .Em bin であるファイルを選択し、すべてのファイル属性を保存して展開します。 .Pp コマンド: .Dl pax -r -w -v -Y -Z home /backup は、コピー先ディレクトリ .Pa /backup にあるファイルのうち、コピー元ディレクトリ .Pa home に存在する同名のファイルより (inode 更新時刻もしくは ファイル更新時刻が) 古いものについて更新を行い、一覧表示します。 .Sh 規格 .Nm pax ユーティリティは、 .St -p1003.2 標準のスーパセットです。 オプション .Fl B , .Fl D , .Fl E , .Fl G , .Fl H , .Fl L , .Fl P , .Fl T , .Fl U , .Fl Y , .Fl Z 、アーカイブ形式 .Ar bcpio , .Ar sv4cpio , .Ar sv4crc , .Ar tar 、および .Ar 一覧表示 モードと .Ar 読み込み モードにおける破損したアーカイブの取り扱いは、 .Tn POSIX 標準に対する拡張です。 .Sh 作者 -Keith Muller at the University of California, San Diego +.An Keith Muller +at the University of California, San Diego .Sh エラー .Nm pax は、以下の値のいずれかで終了します: .Bl -tag -width 2n .It 0 すべてのファイルは正常に処理されました。 .It 1 エラーが発生しました。 .El .Pp アーカイブ読み込み中に .Nm pax がファイルを作成できない場合やリンクを張れない場合、 アーカイブに書き込み中にファイルが見つからない場合、 .Fl p オプション指定時にユーザ ID、グループ ID、ファイル属性を保存できない場合には、 診断メッセージが .Dv 標準エラー出力に 書き出され、0 以外の終了ステータスが返却されますが、 処理自体は継続して行われます。 ファイルへのリンクを作成できない場合には、 .Nm pax はファイルの二次コピーを作成しません。 .Pp アーカイブからのファイルの展開が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm pax はユーザが指定したファイルの一部分だけを展開して終了する可能性があります。 更に、展開したファイルやディレクトリの属性が不正であったり、 アクセス時間、更新時間も不正である可能性があります。 .Pp アーカイブの生成が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm pax は中途半端なアーカイブを生成している可能性があります。 このようなアーカイブは 特定のアーカイブフォーマット規定を満足していない可能性があります。 .Pp .Em コピー を行っている最中に、 .Nm pax が読み出したのと同じファイルへの書き込みを検出した場合、 そのファイルはコピーされず、診断メッセージが .Dv 標準エラー出力 へ書き出され、 .Nm pax は 0 以外の終了ステータスでプログラム終了します。 diff --git a/ja/man/man1/pwd.1 b/ja/man/man1/pwd.1 index d7ef88bc76..55ddd298bf 100644 --- a/ja/man/man1/pwd.1 +++ b/ja/man/man1/pwd.1 @@ -1,67 +1,67 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pwd.1 8.2 (Berkeley) 4/28/95 +.\" %Id: pwd.1,v 1.2.8.2 1998/06/30 06:43:02 charnier Exp % .\" jpman %Id: pwd.1,v 1.2 1997/04/21 08:09:42 mitchy Stab % -.\" %Id: pwd.1,v 1.2.8.1 1997/02/28 07:54:40 mpp Exp % .\" .Dd April 28, 1995 .Dt PWD 1 .Os BSD 4 .Sh 名称 .Nm pwd .Nd ワーキングディレクトリの表示 .Sh 書式 .Nm pwd .Sh 解説 .Nm pwd は、現在のワーキングディレクトリを絶対パスで標準出力に出力します。 .Pp .Nm pwd は、成功した場合は 0 を、エラーが起きた場合は 1 以上の値を返します。 .Sh 規格 .Nm pwd コマンドは .St -p1003.2 互換です。 .Sh 関連項目 .Xr cd 1 , .Xr csh 1 , .Xr getcwd 3 .Sh バグ .Xr csh 1 の内部コマンド .Ic dirs は pwd より高速ですが、実装が違うため、まれに サブディレクトリに移動したときの表示結果が異なることがあります。 diff --git a/ja/man/man1/rmdir.1 b/ja/man/man1/rmdir.1 index c303e059cb..b286858a06 100644 --- a/ja/man/man1/rmdir.1 +++ b/ja/man/man1/rmdir.1 @@ -1,98 +1,98 @@ .\" %NetBSD: rmdir.1,v 1.9 1995/03/21 09:08:29 cgd Exp % .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93 -.\" %Id: rmdir.1,v 1.3.2.1 1997/08/25 08:43:05 jkh Exp % +.\" %Id: rmdir.1,v 1.3.2.2 1998/06/30 06:42:35 charnier Exp % .\" jpman %Id: rmdir.1,v 1.2 1997/03/29 12:05:03 horikawa Stab % .\" .Dd May 31, 1993 .Dt RMDIR 1 .Os .Sh 名称 .Nm rmdir .Nd ディレクトリの削除 .Sh 書式 .Nm rmdir .Op Fl p .Ar directory ... .Sh 解説 -.Nm rmdir +.Nm は、 .Ar directory で指定したディレクトリが空の場合、削除を行います。 .Pp -.Nm rmdir +.Nm は、 .Ar directory で指定した順番にディレクトリの削除を試みます。 親ディレクトリとそのサブディレクトリを削除する場合は、先にサブディ レクトリが削除されるようにしなければなりません。 -.Nm rmdir +.Nm が親ディレクトリを削除する時に、 当該親ディレクトリが空となっている必要があるからです。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl p 各 .Ar directory 引数を構成する各ディレクトリに関しても、 そのディレクトリが空の場合、削除を行います。 削除は最後の要素から行います。( .Xr rm 1 の完全な無差別再帰削除を参照して下さい。) .El .Pp -.Nm rmdir +.Nm は以下のいずれかの値を返します: .Bl -tag -width Ds .It Li \&0 引数で指定されるディレクトリは空であり、削除に成功しました。 .It Li \&>\&0 エラーが発生しました。 .El .Sh 関連項目 .Xr rm 1 .Sh 規格 -.Nm rmdir +.Nm コマンドは .St -p1003.2 互換です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja/man/man1/sh.1 b/ja/man/man1/sh.1 index f84e99a603..246dcd1b35 100644 --- a/ja/man/man1/sh.1 +++ b/ja/man/man1/sh.1 @@ -1,1192 +1,1192 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" %Id: sh.1,v 1.9.2.8 1998/02/15 11:32:26 jkh Exp % +.\" %Id: sh.1,v 1.9.2.9 1998/06/30 06:42:53 charnier Exp % .\" jpman %Id: sh.1,v 1.2 1997/05/31 16:40:31 jsakai Stab % .\" Japanese Translation amended by Norihiro Kumagai, 3/29/96, .\" based on the version of NetBSD Japanese Man Project .\" This amended version is for the FreeBSD-jpman Project, convened .\" by Kazuo Horikawa. .\" .Dd May 5, 1995 .Dt SH 1 .Os BSD 4 .Sh 名称 .Nm sh .Nd コマンドインタプリタ(シェル) .Sh 書式 .Nm .Op Fl /+abCEefIimnpsuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Ar arg ... .Sh 解説 -.Nm sh +.Nm はシステムの標準コマンドインタープリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 Korn shell のクローンではありません(もし Korn shell クローンを望むなら、 Gnu の bash を使いましょう)。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです(ただし、ユーザは chsh(1) コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 実行させることもできます。 .Ss 起動 引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが ダッシュ `-' で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ユーザのホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 .sp .Dl ENV=$HOME/.shinit; export ENV .sp ここで、 .Pa .shinit のかわりに好きな名前を指定することができます。 オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 .Xr set 1 組み込みコマンド (後述) の引数として用いることができます。 これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 マイナス記号 .Dq - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Dq + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入された変数の全てをエクスポートします(未実装です)。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す(未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に -V オプションが指定 された場合、それを無効にします)。 .It Fl e Li errexit 非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq && や .Dq || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の EOF を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを( .Xr set 1 などによって)設定しても効果はありません。 .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi 組込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に `+' を付加して) 書き出します。デバッグのときに便利です。 .It Fl c Ar string 文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 数の単語からなる文字列は引用符で囲う必要があります。 .El .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるもので す) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: & && ( ) ; ;; | || .No \en .It No リダイレクト演算子: < > >| << >> <& >& <<- <> .El .Ss 引用(クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま(リテラ ル)として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字($)、バッククォート 文字(`)、バックスラッシュ文字(\\) を除き、すべてリテラルとして扱われま す。ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, 改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ ます。 .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bd -literal -offset indent ! { } case do done elif else esac fi for if then until while .Ed .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組込みコマンド .Xr alias 1 によって定義されます。 シェルは、予約語が現れる可能性がある場所(上記を参照)で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、``lf'' という名前で ``ls -F'' という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある ``name=value'' の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、「展開」の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した ``name=value'' の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複写 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .sp .Dl [n] redir-op file .sp ここで、redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890" -offset indent .It [n]> file 標準出力 (またはファイル記述子 n への出力) をファイル file に書き出します。 .It [n]>| file 上と同様。ただし、-C オプションの効果を打ち消します。 .It [n]>> file 標準出力 (またはファイル記述子 n への出力) をファイル file に追加します。 .It [n]< file 標準入力 (またはファイル記述子 n からの入力) をファイル file から取ります。 .It [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複写します。 .It [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It [n1]>&n2 ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に複写します。 .It [n]>&- 標準出力 (またはファイル記述子 n) をクローズします。 .It [n]<> file 標準入力 (あるいはファイル記述子 n) により、ファイル file を 読み書きするようにします。 .El .Pp 以下のリダイレクトは、しばしば``ヒア・ドキュメント(here-document)''と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォー ト) されていた場合、here-doc-text の内容をリテラルとして扱います。そ うでない場合、パラメータ展開、コマンド置換、数値演算 (「展開」の節で説 明します) を適用します。演算子が (``<<'' でなく) ``<<-'' の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に ``name=value'' を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で "#!" となる「マジックナンバ」でファイルが始まっておらず、 .Fn execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新た にシェルが起動されたかのような効果を得るために、子シェルは自分自身を再 初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、マジッ クナンバのないシェルスクリプトのことを「シェルプロシージャ」と呼んでい て、まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン(``:'')で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう な意味を持つかが記述されているはずです。組込みコマンドと(実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了(terminate)させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド(Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト(compound-list) .It 合成コマンド(compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 .Bd -literal -offset indent [!] command1 [ | command2 ...] .Ed .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属するリ ダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて下 さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Bd -literal -offset indent $ command1 2>&1 | command2 .Ed .Pp は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に 接続します。 .Pp \&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を 順次実行します。& は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは 起動したシェルの子プロセスとなります (シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されます --- ただし 環境に対して行った操作は取り消されます)。 .Ss バックグラウンドコマンド -- & コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト -- 一般的な話 リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいず れかで終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始しま す。その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開 始します。 .Ss 短絡リスト演算子(Short-Circuit List Operators) ``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 ``||'' も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 ``&&'' と ``||'' の優先順位は 同じです。 .Ss 制御構造 -- if, while, for, case if コマンドの文法は以下のとおりです。 .Bd -literal -offset indent if list then list [ elif list then list ] ... [ else list ] fi .Ed .Pp while コマンドの文法は以下のとおりです。 .Bd -literal -offset indent while list do list done .Ed .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。until コマンドも同様に実行しますが、 単語 while の代わりに単語 until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp for コマンドの文法は以下のとおりです。 .Bd -literal -offset indent for variable in word... do list done .Ed .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。do と done は ``{'' と ``}'' で置き換えることができます。 .Pp break と continue コマンドの文法は以下のとおりです。 .Bd -literal -offset indent break [ num ] continue [ num ] .Ed .Pp break は内側から num 個の for ループまたは while ループを終了します。 continue は、 num 個目のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組込みコマンドとして実装されています。 .Pp case コマンドの文法は以下のとおりです。 .Bd -literal -offset indent case word in pattern) list ;; ... esac .Ed .Pp pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 のこと) を ``|'' で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 (list) のなかの組込みコマンドは、現在のシェルには影響を与えません。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、``{'' と ``}'' で囲まれたリストです。 .Pp local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -literal -offset indent local [ variable | - ] ... .Ed .Pp local コマンドは、組込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名 前の変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から関 数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x ではなく、関数 f で宣言された変数 x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは ``-'' だけです。 ``-'' を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp return コマンドの文法は以下のとおりです。 .Bd -literal -offset indent return [ exitstatus ] .Ed .Pp return は現在実行中の関数を終了させます。return は組込みコマンドとして 実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組込みコマンド .Xr set 1 により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS が設定されていない場合は空白文字) で区切った単一の文字列になります。 .It @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が ``abc''、$2 が ``def ghi'' であっ た場合、"$@" は次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It # 位置パラメータの数に展開されます。 .It ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It - (ハイフン) 現在のオプションフラグ (1文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 (-f オプションが無効の場合) .It クォート削除 .El .Pp 文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合(たとえば ~/foobar)、チルダ文字は変数 HOME の値(現在のユーザ のホームディレクトリ)に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した `}' までのすべての文字です。対応する`}' を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧({})で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが @ の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の(文字列としての)長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン の項を参照) が用いられます。パラメータが` * 'または` @ 'の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp または(``バッククォート'' バージョン)、 .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 に出力したものから最後の改行文字を削除した結果で置換します (最後以外の 改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss 組込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、効率を上げるために組込みされているコマンド (例えば test(1) .Xr printf 1 , .Xr echo 1 , .Xr test 1 , 等) もあわせて列挙します。 .Bl -tag -width Ds .It : 終了ステータス 0 (真) を返すヌルコマンドです。 .It \&. file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Ql / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It alias [ name[=string] ... ] name=string が指定されている場合、シェルは名前 ``name'' を持つ値 ``value'' のエイリアスを定義します。単に ``name'' だけが指定された場合、 エイリアス ``name'' の値が表示されます。引数が指定されない場合、定義さ れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 .It bg [ job ] ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It command command arg ... 指定された組込みコマンドを実行します (組込みコマンドと同じ名前のシェル関数 がある場合に使います)。 .It cd [ directory ] 指定されたディレクトリに移動します (directory 無指定時は $HOME に移動します)。 cd コマンドの 環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ 指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 CDPATH に列挙されたディレクトリ以下に 指定されたディレクトリ directory がないか検索されます。 CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを 辿った場合に発生します。 .It eval string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It exec [ command arg ... ] コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに 置き換えられます (command は、シェル組込みコマンドや関数ではない、本物の プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 .It exit [ exitstatus ] シェルを終了します。指定された exitstatus は、シェルの終了ステータスに なります。exitstatus が省略された場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It export name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It fc [-e editor] [first [last]] .It fc -l [-nr] [first [last]] .It fc -s [old=new] [first] fc は、対話的シェルにそれ以前に入力されたコマンドの内容を 表示、編集、再実行します。 .Bl -tag -width Ds .It -e editor 編集に際し、指定されたエディタ editor を使用します。 editor は変数 PATH を通して検索できるコマンド名です。 -e が指定されなかった場合は、変数 FCEDIT の値が 用いられます。FCEDIT が設定されていないか空に設定されている場合は EDITOR の値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It -l (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は -r オプションの影響を受けます)出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It -n -l で一覧出力する際にコマンド番号を付加しません。 .It -r -l オプションでの一覧や、 編集時 (-l も -s も指定されなかった場合) の順序を反転します。 .It -s エディタを起動せずにコマンドを再実行します。 .It first .It last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 HISTSIZE の値で決まります。 first、last の値は以下のいずれかの形式で指定します。 .It [+]number 正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて 調べることができます。 .It -number 負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし -s オプションが指定されて ``old=new'' が指定されていなければ、 最初のオペランドにイコール記号(``='')を含めることはできません。 .El .\" 次の行の .Pp はもともとコメントアウトされていた .Pp fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Va FCEDIT 使用するエディタ名 .It Va HISTSIZE アクセス可能なコマンド数 .El .It fg [ job ] 指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 .It getopts optstring var POSIX に準拠した getopts コマンドです。 この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 有効でないオプションに出くわすと、変数 var には `?' がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It hash -rv command ... シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に cd コマンドが実行されてから参照されていない項目には アスタリスク文字 (``*'') が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 -v オプションを指定した場合、発見したコマンドの位置を表示します。-r オ プションを指定した場合、関数以外のすべてのエントリをハッシュテーブルから 削除します。 .It jobid [ job ] ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が 省略された場合、現在のジョブに対して処理を行います。 .It jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It pwd カレントディレクトリを表示します。組込みコマンドの pwd は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 組込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 .It Li "read [ -p prompt ] [ -e ] variable ... -p オプションが指定され、かつ標準入力が端末の場合、 prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の 単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp -t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 read コマンドは値を割当てずに戻ります。 タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 どれも指定しない場合には 's' であるものとします。 .Pp -e オプションを指定すると、入力中のバックスラッシュ文字を特別扱いします。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 .It readonly name ... 指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され ます。 .It Li "set [ { -options | +options | -- } ] arg ... set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 .It options が指定された場合、「引数リスト処理」の節で説明した方法で、 指定されたオプションフラグを設定あるいは解除します。 .It 第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの 設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 の引数として ``--'' を指定します。arg が指定されない場合、 すべての位置パラメータはクリアされます (``shift $#'' を実行することと 等価です)。 .El .Pp .It setvar variable value 変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。) .It shift [ n ] 位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It trap [ action ] signal ... シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する ように設定します。シグナルはシグナル番号で指定します。action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して trap コマンドを使用しても効果はありません。 .It type [name] ... 各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組込みコマンド、コマンド、痕跡つきエイリアス(tracked alias)、最後に not found (見つからず)があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマ ンドの完全なパス名が印刷されます。 .It ulimit [ -HSacdflmnust ] [ limit ] リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 ``limit'' が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp ``-H'' が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション ``-S'' を指定した場合はソフトリミットになります。 リミット値を表示する場合、``-S'' か ``-H'' のいずれか一方だけしか 指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション ``-a'' を指定すると全リソースの設定値が表示されます。 この場合、パラメータ ``limit'' は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It -c coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It -d datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It -f filesize ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 .It -l lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It -m memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It -n nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It -s stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It -t time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It -u userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It umask [ mask ] umask の値 ( .Xr umask 2 を参照) を、指定された 8 進数の値に設定します。引数が 省略された場合、現在の umask の値が表示されます。 .It unalias [-a] [name] ``name'' が指定された場合、指定された名前のエイリアスを削除します。 ``-a'' オプションが指定された場合、すべてのエイリアスを削除します。 .It unset name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It wait [ job ] 指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび コマンド履歴 (組込みコマンド fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja/man/man1/sleep.1 b/ja/man/man1/sleep.1 index 1fd80562ac..aef0fa44e4 100644 --- a/ja/man/man1/sleep.1 +++ b/ja/man/man1/sleep.1 @@ -1,120 +1,120 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sleep.1 8.3 (Berkeley) 4/18/94 -.\" %Id: sleep.1,v 1.2.8.2 1997/08/25 09:18:37 jkh Exp % +.\" %Id: sleep.1,v 1.2.8.3 1998/06/30 06:43:08 charnier Exp % .\" jpman %Id: sleep.1,v 1.2 1997/05/04 13:38:26 horikawa Stab % .\" .Dd April 18, 1994 .Dt SLEEP 1 .Os .Sh 名称 .Nm sleep .Nd 一定の時間実行を停止する .Sh 書式 .Nm .Ar seconds .Sh 解説 .Nm コマンドは、少なくとも .Ar seconds で指定した秒数だけ実行を停止します。 .Nm コマンドは 他のコマンドの実行のスケジューリングに用いられます(以下の .Sx 使用例 を参照)。 .Pp .Nm コマンドが SIGALRM シグナルを受信すると終了ステータス 0 にて終了します。 その他のシグナルでは標準の動作を行います。 .Pp .Nm コマンドは終了時に以下の値のいずれかを返します。 .Bl -tag -width flag .It Li \&0 正常終了した場合、もしくは .Dv SIGALRM シグナルを受信した場合。 .It Li \&>\&0 エラーが起きた場合。 .El .Sh 使用例 あるコマンドの実行を .Va x 秒後に設定したい場合: .Pp .Dl (sleep 1800; sh command_file >& errors)& .Pp 上記の例では、command_file で指定したスクリプトを実行する前に 30 分間待ちます( .Xr at 1 ユーティリティの項を参照)。 .Pp あるコマンドを( .Xr csh 1 を使って)繰り返し実行したい場合: .Pp .Bd -literal -offset indent -compact while (1) if (! -r zzz.rawdata) then sleep 300 else foreach i (`ls *.rawdata`) sleep 70 awk -f collapse_data $i >> results end break endif end .Ed .Pp このようなスクリプトが必要とされるのは以下のような場合でしょう: 現在実行中のプログラムが、一連のファイル群を処理するのに予想以上の 時間を必要としていて、このプログラムが処理結果をファイル (zzz.rawdata)に出力したらすぐに別のプログラムを起動して そのファイルを処理したほうがよい場合があります。 上記のスクリプトでは、zzz.rawdata が生成されたかどうかを 5 分おきに確認し、生成が確認されたら 70 秒待って awk ジョブを 実行する、という操作を繰り返します。 .Sh 関連項目 .Xr at 1 , .Xr setitimer 2 , .Xr alarm 3 , .Xr sleep 3 .Sh 規格 .Nm コマンドは、おそらく .St -p1003.2 互換です。 diff --git a/ja/man/man1/stty.1 b/ja/man/man1/stty.1 index 23407055bb..d8ad126433 100644 --- a/ja/man/man1/stty.1 +++ b/ja/man/man1/stty.1 @@ -1,530 +1,530 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stty.1 8.4 (Berkeley) 4/18/94 -.\" %Id: stty.1,v 1.4.2.3 1998/06/03 04:12:26 jkoshy Exp % +.\" %Id: stty.1,v 1.4.2.4 1998/06/30 06:43:23 charnier Exp % .\" jpman %Id: stty.1,v 1.2 1997/06/05 04:05:59 yugawa Stab % .\" .Dd April 18, 1994 .Dt STTY 1 .Os .Sh 名称 .Nm stty .Nd 端末の設定を行なう .Sh 書式 .Nm stty .Op Fl a | Fl e | Fl g .Op Fl f Ar file .Op operands .Sh 解説 -.Nm stty +.Nm は、標準入力になっているデバイスの端末属性を設定もしくは表示する プログラムです。オプションや引数を指定しなかった場合、 設定されている属性の一部や、デフォルト値と違う値が設定されている属性 を表示します。 指定した場合は、指定された引数に従って端末の状態を変更します。 ターミナルの種類によっては相互に排他的な引数の組み合わせもあります。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width Ds .It Fl a .St -p1003.2 に規定された形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl e .Tn BSD の伝統的な ``all'' や ``everything'' の形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl f 標準入力ではなく、 .Ar file で指定された端末を使います。 このファイルは .Fn open 関数に .Dv O_NONBLOCK フラグを付けてオープンされるので、端末の設定や表示をブロックされず に行なうことができます。 .It Fl g 端末変更後に端末の状態を復帰させられるように、 -.Nm stty +.Nm の引数として指定できる形式で、現在の端末属性を標準出力に 出力します。 この形式は .St -p1003.2 に規定されています。 .El .Pp 端末属性の設定には、以下の引数が使えます。 .Ss 制御モード: .Pp 制御モードのフラグは端末と関連するハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。 .Bl -tag -width Fl .It Cm parenb Pq Fl parenb パリティ生成および検出を有効 (無効) にします。 .It Cm parodd Pq Fl parodd 奇数パリティ (偶数パリティ) にします。 .It Cm cs5 cs6 cs7 cs8 可能なら 1 文字のビット幅を設定します。 .It Ar number 可能なら、端末のボーレートを .Ar number に設定します。0 を指定した場合は、モデムの制御を切ります。 .It Cm ispeed Ar number 可能なら、入力のボーレートを .Ar number に設定します。0 を設定した場合は、出力のボーレートと同じ値に設定されます。 .It Cm ospeed Ar number 可能なら、出力のボーレートを .Ar number に設定します。0 を設定した場合は、モデムの制御を切ります。 .It Cm speed Ar number .Cm ispeed と .Cm ospeed の両方を .Ar number に設定します。 .It Cm hupcl Pq Fl hupcl そのデバイスをオープンしているプロセスがクローズ処理を行ったとき、ほか にこのデバイスをオープンしているプロセスがなければ、モデムの制御機能に より切断処理を行います (行いません)。 .It Cm hup Pq Fl hup hupcl .Pq Fl hupcl と同じです。 .It Cm cstopb Pq Fl cstopb ストップビットを 2ビット (1ビット) にします。 .It Cm cread Pq Fl cread 受話器を有効 (無効) にします。 .It Cm clocal Pq Fl clocal 回線に対してモデム制御が不要である (必要である) とみなします。 .It Cm crtscts Pq Fl crtscts RTS/CTS フロー制御を有効 (無効) にします。 .El .Ss 入力モード: これは termios 構造体の c_iflag に相当します。 .Bl -tag -width Fl .It Cm ignbrk Pq Fl ignbrk 入力のブレーク信号を無視します (無視しません)。 .It Cm brkint Pq Fl brkint ブレークを受信したとき、シグナル .Dv INTR を出します (出しません)。 .It Cm ignpar Pq Fl ignpar パリティエラーを無視します (無視しません)。 .It Cm parmrk Pq Fl parmrk パリティエラーをマークします (マークしません)。 .It Cm inpck Pq Fl inpck 入力のパリティチェックを有効 (無効) にします。 .It Cm istrip Pq Fl istrip 入力した文字の 8 ビット目を捨てて 7 ビットにします (8 ビット目 を捨てません)。 .It Cm inlcr Pq Fl inlcr 入力の .Dv NL を .Dv CR に変換します (変換しません)。 .It Cm igncr Pq Fl igncr 入力の .Dv CR を無視します (無視しません)。 .It Cm icrnl Pq Fl icrnl 入力の .Dv CR を .Dv NL に変換します (変換しません)。 .It Cm ixon Pq Fl ixon 制御コードの .Dv START/STOP を使った出力フロー制御を有効 (無効) にします。 システムから端末への出力において、システムが .Dv STOP を受信したら出力を中断し、 .Dv START を受信するか、 .Cm ixany が設定されている場合は何らかの文字を受信すると、 出力を再開するようになります。 .It Cm ixoff Pq Fl ixoff システムの入力キューが 空/満杯に近づいたら、それぞれ .Dv START/STOP を出力するようにします (近づいても、出力しません)。 .It Cm ixany Pq Fl ixany どんな文字が来ても ( .Dv START が来た場合のみ) 出力を再開します。 .It Cm imaxbel Pq Fl imaxbel システムによって入力キューの .Dv MAX_INPUT (一般的には 255) の最大文字数が規定されており、 .Cm imaxbel がセットされていると、入力キューの制限を越えた入力に対して ASCII BEL キャラクタを出力キューに送ります (端末が鳴ります)。 .Cm imaxbel がセットされていなくて入力キューが一杯になった場合、次の文字入力で すべての入力、出力キューは捨てられます。 .El .Ss 出力モード: これは termios 構造体の c_oflag に相当します。 .Bl -tag -width Fl .It Cm opost Pq Fl opost プロセス後の処理を行った上で出力をします (プロセス後の処理を行わずに出力します。 この指定をすると、他のすべての出力モードが無視されます)。 .It Cm onlcr Pq Fl onlcr 出力の .Dv NL を .Dv CR-NL に変換します (変換しません)。 .It Cm oxtabs Pq Fl oxtabs 出力のタブをスペースに展開します (展開しません)。 .El .Ss ローカルモード: .Pp ローカルモードのフラグ (lflags) は端末処理のさまざまな属性に影響します。 歴史的には、"local"という名前のつけられた新しいジョブコントロール機能 は Jim Kulp によって .Tn IIASA の .Tn Pdp 11/70 に実装されました。 その後このドライバは、 Evans Hall, UC Berkeley の最初の .Tn VAX 上で走りました。その際ジョブコントロールの細部は大幅に変更されましたが、 構造体の定義と名前は根本的には変わりませんでした。 lflag の 'l' の二つ目の解釈は、 .Ar termios 構造体の .Ar c_lflag に相当する ``line discipline flag''(行制御規則フラグ) です。 .Bl -tag -width Fl .It Cm isig Pq Fl isig 特殊な制御文字 .Dv INTR , QUIT , .Dv SUSP に対する処理を有効 (無効) にします。 .It Cm icanon Pq Fl icanon .Dv ERASE と .Dv KILL 処理による入力制御を有効 (無効) にします。 .It Cm iexten Pq Fl iexten icanon, isig, ixon で制御に使われているもの以外の特殊な 制御文字の処理を有効 (無効) にします。 .It Cm echo Pq Fl echo タイプされた文字をエコーバックします (エコーバックしません)。 .It Cm echoe Pq Fl echoe .Dv ERASE 文字の入力があった場合、可能ならディスプレイ上に見える現在の出力行の 最後の文字を消します (消しません)。 .It Cm echok Pq Fl echok .Dv KILL 文字の入力があった場合、そのあとに .Dv NL を出力します (出力しません)。 .It Cm echoke Pq Fl echoke 可能なら、 .Dv KILL 文字でディスプレイ上の現在の行を消します (消しません)。 .It Cm echonl Pq Fl echonl echo が無効になっているときでも .Dv NL 文字だけはエコーバックさせます (エコーバックしません)。 .It Cm echoctl Pq Fl echoctl .Cm echoctl をセットすると、制御文字は ^X のように表示されます。 セットしなければ、その文字自身が表示されます。 .It Cm echoprt Pq Fl echoprt プリンタ端末に対するもので、設定された場合、削除された文字を ``\\'' と ``/'' で囲んで逆方向にエコーします。 設定されていなければ、この機能を無効にします。 .It Cm noflsh Pq Fl noflsh .Dv INTR , QUIT , SUSP のあとのフラッシュ処理を無効 (有効) にします。 .It Cm tostop Pq Fl tostop バックグラウンドジョブが出力を行おうとした時に .Dv SIGTTOU を送ります (送りません)。これによってバックグラウンドジョブは画面出力を 行おうとすると停止するようになります。 .It Cm altwerase Pq Fl altwerase .Dv WERASE 文字を処理するときに、別の単語消去アルゴリズムを用います (用いません)。 このアルゴリズムは英数字とアンダースコアの並びを単語とみなします。 また、分類上直前の文字をスキップします (便宜的に、直前の文字を .Dv ERASE 一文字で消すことができるようにするため)。 .It Cm mdmbuf Pq Fl mdmbuf セットされると、CD 信号の検出によるフロー制御の出力を行います。 セットされなければ、CD 信号の低下に対してエラーを出力します (キャリア信号は .Dv CLOCAL フラグによっても無視されません)。 .It Cm flusho Pq Fl flusho 出力を捨てます (捨てません)。 .It Cm pendin Pq Fl pendin 入力を非標準 (non-canonical) モードから標準 (canonical) モードへ切り換えた あと、入力を保留します (保留しません)。読み込みが保留されたとき、または更に入力があったときに 再入力されます。 .El .Ss 制御文字: .Bl -tag -width Fl .It Ar control-character Ar string .Ar string に .Ar control-character を割り当てます。もし string が 1 文字だけなら、その文字に .Ar control-character が割り当てられます。 string が二文字の "^-" もしくは "undef" の場合は .Ar control-character は無効にされます (つまり、 .Pf { Dv _POSIX_VDISABLE Ns } になります)。 .Pp 認識される制御文字: .Bd -ragged -offset indent .Bl -column character Subscript .It 制御文字 記号   説明 .It _________ _________ _______________ .It eof Ta Tn VEOF EOF No character .It eol Ta Tn VEOL EOL No character .It eol2 Ta Tn VEOL2 EOL2 No character .It erase Ta Tn VERASE ERASE No character .It werase Ta Tn VWERASE WERASE No character .It intr Ta Tn VINTR INTR No character .It kill Ta Tn VKILL KILL No character .It quit Ta Tn VQUIT QUIT No character .It susp Ta Tn VSUSP SUSP No character .It start Ta Tn VSTART START No character .It stop Ta Tn VSTOP STOP No character .It dsusp Ta Tn VDSUSP DSUSP No character .It lnext Ta Tn VLNEXT LNEXT No character .It reprint Ta Tn VREPRINT REPRINT No character .It status Ta Tn VSTATUS STATUS No character .El .Ed .It Cm min Ar number .It Cm time Ar number min あるいは time の値を .Ar number にします。 .Dv MIN と .Dv TIME は非標準的なモード (-icanon) での入力処理に使われます。 .El .Ss 複合モード: .Pp .Bl -tag -width Fl .It Ar saved settings 現在の端末属性を .Fl g オプションによって保存された属性にする。 .It Cm evenp No or Cm parity parenb と cs7 を有効にし、parodd を無効にします。 .It Cm oddp parenb, cs7, parodd を有効にします。 .It Fl parity , evenp , oddp parenb を無効にして、cs8 をセットします。 .It Cm \&nl Pq Fl \&nl icrnl を有効 (無効) にします。 それに加えて、-nl は inlcr と igncr を解除します。 .It Cm ek .Dv ERASE と .Dv KILL に割り当てられている文字をシステムのデフォルトのものに戻します。 .It Cm sane すべてのモードを対話的な端末利用に妥当な値にリセットします。 .It Cm tty 行制御規則を標準端末の規則 .Dv TTYDISC に設定します。 .It Cm crt Pq Fl crt CRT ディスプレイ用に適合するモードをすべて有効 (無効) にします。 .It Cm kerninfo Pq Fl kerninfo .Dv STATUS 文字 (通常 ^T に設定されています) に結びつけられた システムステータス行の生成を有効 (無効) にします。 このステータス行はシステムの負荷、現在のコマンドの名前、プロセス ID、 プロセスが待っているイベント (あるいはプロセスの状態)、 ユーザー時間とシステム時間、CPU利用率、現在のメモリ使用状況 からなっています。 .It Cm columns Ar number 端末の大きさを .Ar number 列とします。 .It Cm cols Ar number .Cm columns の別名定義です。 .It Cm rows Ar number 端末の大きさを .Ar number 行とします。 .It Cm dec Digital Equipment Corporation systems の端末設定にします。 ( .Dv ERASE , .Dv KILL , .Dv INTR をそれぞれ ^?, ^U, ^Cとし、 .Dv ixany を無効、 .Dv crt を有効にします) .It Cm extproc Pq Fl extproc 設定されると、一部の端末処理が端末機器ないし pty に接続されたリモート側 で行なわれるようになります。 .It Cm raw Pq Fl raw 端末モードを全く入出力処理を行なわないモードにします。 これを無効にすると、端末を入出力処理を行なう普通のモードに戻します。 注意すべきなのは、端末用のドライバは単一の .Dv RAW ビットを持つわけではないので、 .Cm raw モードに設定する前にどのようなフラグが設定してあったのかを知ることがで きないということです。つまり、 .Cm raw モードを解除するだけでは、 .Cm raw モード設定前の状態には戻りません。 端末を raw 状態にして、それを正確に元に戻すためには、以下のような シェルコマンドを使うことを薦めます。 .nf save_state=$(stty -g) stty raw \&... stty "$save_state" .fi .It Cm size 端末の大きさを行、列の順に並べた一行で表示します。 .El .Ss 互換モード: .Pp 以下のモードは旧バージョンの stty コマンドとの互換性保持のために残され ています。 .Bl -tag -width Fl .It Cm all 縦覧式でコントール文字を表示する以外は、 .Cm stty Fl a と同様に端末設定を表示します。 .It Cm everything .Cm all と同じです。 .It Cm cooked .Cm sane と同じです。 .It Cm cbreak .Cm brkint , ixon , imaxbel , opost , .Cm isig , iexten , .Cm Fl icanon を有効にします。 解除した場合は .Cm sane と同じです。 .It Cm new .Cm tty と同じです。 .It Cm old .Cm tty と同じです。 .It Cm newcrt Pq Fl newcrt .Cm crt と同じです。 .It Cm pass8 .Cm parity の反対です。 .It Cm tandem Pq Fl tandem .Cm ixoff と同じです。 .It Cm decctlq Pq Fl decctlq .Cm ixany の反対です。 .It Cm crterase Pq Fl crterase .Cm echoe と同じです。 .It Cm crtbs Pq Fl crtbs .Cm echoe と同じです。 .It Cm crtkill Pq Fl crtkill .Cm echoke と同じです。 .It Cm ctlecho Pq Fl ctlecho .Cm echoctl と同じです。 .It Cm prterase Pq Fl prterase .Cm echoprt と同じです。 .It Cm litout Pq Fl litout .Cm opost の反対です。 .It Cm tabs Pq Fl tabs .Cm oxtabs の反対です。 .It Cm brk Ar value 制御文字 .Cm eol と同じです。 .It Cm flush Ar value 制御文字 .Cm discard と同じです。 .It Cm rprnt Ar value 制御文字 .Cm reprint と同じです。 .El .Pp -.Nm stty +.Nm は成功した場合は 0 を、エラーが起きた場合は 0 より大きい値を返します。 .Sh 関連項目 .Xr termios 4 .Sh 規格 -.Nm stty +.Nm は .St -p1003.2 互換です。 .Fl e と .Fl f のフラグは規格を拡張しています。 diff --git a/ja/man/man8/chat.8 b/ja/man/man8/chat.8 index ce082be2a3..b37e4c67df 100644 --- a/ja/man/man8/chat.8 +++ b/ja/man/man8/chat.8 @@ -1,502 +1,521 @@ .\" -*- nroff -*- .\" manual page [] for chat 1.8 -.\" %Id: chat.8,v 1.4.2.3 1998/06/03 04:35:17 jkoshy Exp % +.\" %Id: chat.8,v 1.4.2.4 1998/06/23 22:12:41 peter Exp % .\" jpman %Id: chat.8,v 1.3 1997/08/31 14:02:42 horikawa Stab % .\" SH section heading .\" SS subsection heading .\" LP paragraph .\" IP indented paragraph .\" TP hanging label -.TH CHAT 8 "5 May 1995" "Chat Version 1.9" +.TH CHAT 8 "27 Sep 1997" "Chat Version 1.17" .SH 名称 chat \- モデム接続の確立を自動化するスクリプト言語 .SH 書式 .B chat [ .I options ] .I script .SH 解説 .LP \fIchat\fR プログラムはコンピュータとモデムの間のメッセージ交換を制御します。 このコマンドの主な目的は、Point-to-Point Protocol デーモン (\fIpppd\fR) と リモートの \fIpppd\fR プロセスの間の接続を確立することです。 .SH オプション .TP .B -f \fI チャットスクリプトを \fIchat file\fR から読み込みます。このオプションと script パラメータとは、互いに排他の関係にあります。 chat コマンドを実行するユーザは、このファイルのリードアクセス権を 持っていなければなりません。このファイルの中では、文字列の区切りとして スペースとタブを使うことができます。 .TP .B -t \fI 文字列の受信待ちのタイムアウトを指定します。もし、タイムリミットまでに 指定された文字列を受信できなかった場合には、応答文字列の送信をおこないません。 この時、かわりの応答文字列が指定されていれば それが送信され、 指定されていなければ スクリプトの実行が失敗します。 スクリプトの実行が失敗すると、\fIchat\fR プログラムは 0 以外のエラーコードを返して終了します。 .TP .B -r \fI レポート文字列を出力するファイルを指定します。 キーワード \fIREPORT\fR を用いると、結果の文字列がこのファイルに 出力されます。このオプションを指定せずに \fIREPORT\fR キーワードを 使用すると、レポート文字列は \fIstderr\fR に出力されます。 .TP .B -e エコーオプションを有効にして開始します。 \fIchat\fR スクリプトの特定の場所において \fIECHO\fR キーワードにて エコーの有効および無効を切り替えることができます。 エコーが有効にされると、モデムからの出力は全て \fIstderr\fR へエコーされます。 .TP .B -v \fIchat\fR スクリプトを冗長モードで実行します。 -これを指定すると、\fIchat\fR プログラムはモデムから受信したすべてのテキストと +これを指定すると、\fIchat\fR プログラムは、チャットスクリプトの実行状態、 +モデムから受信した全てのテキスト、 +モデムに送った全てのテキストのログをとります。 +デフォルトでは .IR syslogd (8) -に送られる出力のログをとります。 +を介して取得します。ログの方法は -S および -s のフラグで変更できます。 冗長トレースのログとりは \fIlocal2\fR ファシリティのレベル \fIinfo\fR でおこなわれ、エラーについてはレベル \fIerr\fR が使われます。 .TP .B -V -\fIchat\fR スクリプトを stderr 冗長モードにて実行するように要求します。 +\fIchat\fR スクリプトを標準エラー出力冗長モードにて実行するように要求します。 \fIchat\fR プログラムは、 -モデムから受信する全てのテキストおよび -stderr デバイスへ送出する出力文字列をログします。 +モデムから受信する全てのテキストおよびモデムへ送信する全てのテキストを +標準エラー出力デバイスへログします。 chat もしくは pppd プログラムを動作させている場所では、 このデバイスは通常ローカルのコンソールです。 -stderr が /dev/null にリダイレクトされている場合には、 -このオプションはうまく働きません。 -pppd が `デタッチ' モードで動作している時がその場合です。 -この場合、`-v' オプションを使用して、 -セッションを SYSLOG デバイスへ記録してください。 +.TP +.B -s +標準エラー出力を使用します。'-v' による全ログメッセージ +および全エラーメッセージを標準エラー出力へ送られます。 +.TP +.B -S +.IR syslog (3) +を使用しません。デフォルトではエラーメッセージは +.IR syslog (3) +へ送られます。-S を使用すると '-v' によるログおよびエラーメッセージは +.IR syslog (3) +へは送られなくなります。 +.TP +.B -T \fI +送信文字列において \\T 置換メタ文字を置き換える任意の文字列を渡します。 +通常は電話番号です。 +.TP +.B -U \fI +送信文字列において \\U 置換メタ文字を置き換える第 2 文字列を渡します。 +通常は電話番号です。 +2 つの番号を要する ISDN ターミナルアダプタでタイアルする場合に有用です。 .TP .B script \fI-f\fR オプションのファイルでスクリプトが指定されていなければ、 \fIchat\fR プログラムに対するパラメータ文字列が スクリプトとして読み込まれます。 .SH チャットスクリプト .LP \fIchat\fR スクリプトには通信の手順を定義します。 .LP スクリプトは一つまたはそれ以上の「受信待ち-送信」文字列の組からなり、 それぞれは空白で区切られています。 オプションとして「副受信待ち-副送信」文字列の組を追加することもでき、 その場合には以下の例のようにダッシュで区切ります: .IP ogin:-BREAK-ogin: ppp ssword: hello2u2 .LP これにより、\fIchat\fR プログラムは文字列 "ogin:" の受信待ちをおこないます。 もしもタイムアウトする前にログインプロンプトを受信できなければ、 リモートホストにブレーク信号を送信し、それから文字列 "ogin:" を受信待ちします。 もしも最初の "ogin:" が受信できていれば、ブレーク信号は送信されません。 .LP 一旦ログインプロンプトを受信すると、\fIchat\fR プログラムは文字列 ppp を 送信して、プロンプト "ssword:" の受信を待ちます。 パスワードプロンプトを 受信すると、chat プログラムはパスワード hello2u2 を送信します。 .LP 応答文字列に続いて、通常はキャリッジリターン文字が送られます。 「受信待ち」文字列中では、\\r 文字シーケンスで明示的に指定しないかぎり、 キャリッジリターンは文字列に含まれません。 .LP 目的の文字列を識別するのに必要な部分だけを受信待ち文字列に 指定するようにするべきです。 なぜなら、受信待ち文字列は通常ディスクファイルに記録されるため、 動的に変化する情報を含むことができないからです。 一般には、時刻を表す文字列やネットワーク ID 文字列その他の 変化するデータの塊を受信待ちさせることはできません。 .LP 通信の初期段階では、文字が化けて受信される場合があります。 この場合にも正しく認識ができるように、 文字列 "login:" ではなく "ogin:" を待つようにします。 仮に最初の "l" という文字が化けて受信されたとしますと、 リモートシステムが "login:" を送信したとしても、 その文字列は認識されないことになります。 このため、スクリプトでは "login:" ではなく "ogin:" を、 "password:" ではなく "ssword:" を待つようにします。 .LP 非常に単純なスクリプトは、以下のようになるでしょう: .IP ogin: ppp ssword: hello2u2 .LP 言いかえると、....ogin: を受信待ちして ppp を送信し、...ssword: を 受信待ちして hello2u2 を送信するということになります。 .LP 現実問題としては、単純なスクリプトが使われることはほとんどないでしょう。 少なくとも、最初の受信待ち文字列が受信できなかった場合に、 副受信待ち文字列を実行するようにするべきでしょう。 たとえば、以下のスクリプトを考えてみます: .IP ogin:--ogin: ppp ssword: hello2u2 .LP これは以前に使った単純なものよりも良いスクリプトでしょう。 以前のものと同様に login: プロンプトを待ちますが、もし受信できなかった場合には リターンを一つ送ってから再び login: が送られてくるのを待ちます。 最初のログインプロンプトがラインノイズによって化けたとしても、 空行が送られることで、通常はもう一度ログインプロンプトが送信されます。 .SH コメント コメントを chat スクリプト中に埋め込むことが可能です。 コメントは \fB#\fR (ハッシュ) 文字をカラム 1 から開始する行です。 このようなコメント行は chat プログラムは単に無視します。 「受信待ち」文字列の最初の文字が `#' 文字の場合、 「受信待ち」文字列をクォートする必要があります。 文字 # (ハッシュ)から始まるプロンプトを待ちたい場合には、 以下のように書かねばならないでしょう: .IP # Now wait for the prompt and send logout string .br \'# ' logout .LP .SH 中断文字列 多くのモデムはダイアルの結果を文字列としてレポートします。 これらの文字列は \fBCONNECTED\fR だったり、\fBNO CARRIER\fR や \fBBUSY\fR だったりするでしょう。 モデムが相手との接続に失敗した場合には、スクリプトを終了させたいと 思うことがよくあるでしょう。 問題は、どの文字列を次に受信するかということを、 スクリプトが正確に知ることはできないということです。 ある時には \fBBUSY\fR を受信するかもしれませんが、 次には \fBNO CARRIER\fR を受信するかもしれません。 .LP これらの「中断」文字列は、\fIABORT\fR シーケンスにより スクリプト中に指定することができます。 それは、以下の例のようにスクリプトに指定します: .IP ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT .LP このシーケンスは受信待ちをおこないません。それから文字列 ATZ を送信します。 受信待ち文字列は \fIOK\fR です。 \fIOK\fR を受信すると、電話をかけるために文字列 ATDT5551212 を送信します。 受信待ち文字列は \fICONNECT\fR です。 文字列 \fICONNECT\fR を受信すると、スクリプトの残りが実行されます。 一方、モデムが話中を検出すると、文字列 \fIBUSY\fR が送られて 中断文字列への一致が起こります。 この一致が起きたことにより、スクリプトは失敗します。 もしも文字列 \fINO CARRIER\fR を受信すると、それは同じ理由で中断されます。 どちらの文字列が受信されても、\fIchat\fR スクリプトは終了します。 .SH CLR_ABORT 文字列 このシーケンスは以前に設定した \fBABORT\fR 文字列をクリアします。 \fBABORT\fR 文字列は規定サイズ(コンパイル時に決定)の配列に保持されます; \fBCLR_ABORT\fR はクリアされたエントリの領域を再要求し、 新たな文字列をそこに格納できるようにします。 .SH SAY 文字列 \fBSAY\fR ディレクティブにて、 script が標準エラー出力を介してユーザ端末ヘ文字列を送ることができます。 \fBchat\fR が pppd から起動される場合、 pppd はデーモンとして実行され(制御端末から切離され)、 標準エラー出力は通常 /etc/ppp/connect-errors へとリダイレクトされます。 .LP \fBSAY\fR 文字列は、シングルクォートもしくはダブルクォートにて 括る必要があります。 出力中にキャリッジリターンおよびラインフィードが必要な場合、 明示的に文字列中に含める必要があります。 .LP SAY 文字列を使用して script の進捗状況メッセージを表示することで、'ECHO OFF' しつつもユーザになにが起っているのか示すことが可能です。 例を示します: .IP ABORT BUSY .br ECHO OFF .br SAY "Dialling your ISP...\\n" .br \'' ATDT5551212 .br TIMEOUT 120 .br SAY "Waiting up to 2 minutes for connection ... " .br CONNECT '' .br SAY "Connected, now logging in ...\n" .br ogin: account .br ssword: pass .br $ \c SAY "Logged in OK ...\n" \fIetc ...\fR .LP このシーケンスは SAY 文字列のみユーザに示し、script の詳細は隠します。 例えば、上記 script を実行した場合、ユーザが見るのは以下です: .IP Dialling your ISP... .br Waiting up to 2 minutes for connection ... Connected, now logging in ... .br Logged in OK ... .LP .SH レポート文字列 \fBレポート\fR 文字列は ABORT 文字列に似ています。 違うのは、その文字列自身とキャリッジリターン等の 次の制御文字までの -すべての文字がレポートファイルに書かれるということです。 +全ての文字がレポートファイルに書かれるということです。 .LP レポート文字列はモデムのコネクト文字列の転送レートと chat ユーザへのリターン値を切りわけるために使えます。 レポート文字列ロジックの分析は、受信待ち文字列の検索などの 他の文字列処理と同時におこなわれます。 レポート文字列と中断文字列に同じ文字列を使用することも可能ですが、 おそらくあまり使い道がないでしょう。 .LP レポート文字列はプログラムの終了コードに影響を及ぼしません。 .LP これらの「レポート」文字列は、\fIREPORT\fR シーケンスにより スクリプト中に指定することができます。 それは、以下の例のようにスクリプトに指定します: .IP REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin: account .LP このシーケンスは受信待ちをおこなわず、文字列 ATDT5551212 を送信して 電話をかけます。受信待ち文字列は \fICONNECT\fR です。 文字列 \fICONNECT\fR を受信すると、スクリプトの残りが実行されます。 さらに、文字列 "CONNECT" と、それに続く接続レートなどの 任意の文字がレポートファイルに記録されます。 .\" 原文では expect-file となっているが、report-file の間違いと思われる。 .\" send-pr する予定。 .\" 2.2.2R 対象(1997/06/04) Saeki Takashi .SH CLR_REPORT 文字列 このシーケンスを使用して、以前に設定した \fBREPORT\fR 文字列をクリア できます。 \fBREPORT\fR 文字列は規定サイズ(コンパイル時に決定)の配列に保持されます; \fBCLR_REPORT\fR はクリアされたエントリの領域を再要求し、 新たな文字列をそこに格納できるようにします。 .SH エコー エコーオプションはモデムからの出力を \fIstderr\fR へエコーするか否か を制御します。 このオプションを \fI-e\fR オプションにて設定することができますし、 \fIECHO\fR キーワードにて制御することもできます。 「受信待ち-送信」文字列の組 \fIECHO\fR \fION\fR はエコーを有効にし、 \fIECHO\fR \fIOFF\fR は無効にします。 このキーワードを使用してどの会話を見せるかを選択可能です。 例えば以下の script では: .IP ABORT 'BUSY' .br ABORT 'NO CARRIER' .br '' ATZ .br OK\\r\\n ATD1234567 .br \\r\\n \\c .br ECHO ON .br CONNECT \\c .br ogin: account .LP モデム設定結果およびダイヤル結果は見せませんが、 \fICONNECT\fR (もしくは \fIBUSY\fR) メッセージ語は全てをエコーします。 .SH 回線切断 HANGUP オプションはモデムの回線切断をエラーと扱うか否かを制御します。 このオプションは、 システムにダイヤル後に回線切断しコールバックする script 中で有効です。 HANGUP オプションは \fBON\fR もしくは \fBOFF\fR にできます。 .br HANGUP を OFF に設定しモデムを回線切断 (つまりコールバックシステムへの最初のログイン)すると、\fBchat\fR は script の実行を続けます (つまり呼び出しと二度目のログインプロンプトを待ちます)。 呼び出しにて接続後すぐに、\fBHANGUP ON\fR ディレクティブを使用して 通常の回線切断シグナルの動作を戻す必要があります。 (簡単な) script 例を示します: .IP ABORT 'BUSY' .br '' ATZ .br OK\\r\\n ATD1234567 .br \\r\\n \\c .br CONNECT \\c .br \'Callback login:' call_back_ID .br HANGUP OFF .br ABORT "Bad Login" .br \'Callback Password:' Call_back_password .br TIMEOUT 120 .br CONNECT \\c .br HANGUP ON .br ABORT "NO CARRIER" .br ogin:--BREAK--ogin: real_account .br \fIetc ...\fR .LP .SH タイムアウト タイムアウトの初期値は 45 秒です。これは \fB-t\fR パラメータにより 変更することができます。 .LP 次に受信待ちする文字列のタイムアウト値を変更するには、以下のようにします: .IP ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2 .LP これは login: プロンプトを受信待ちする際のタイムアウトを 10 秒に変更します。 さらに password プロンプトを受信待ちする際にはタイムアウトを 5 秒に変更します。 .LP 一旦タイムアウト値が変更されると、次に変更されるまでは そのままになります。 .SH EOT の送信 チャットプログラムは特殊な応答文字列 \fIEOT\fR により、 リモート側へ EOT 文字を送信します。 通常、これはファイル終了を表す文字です。 EOT に続けてリターン文字が送られることはありません。 .PR \fI^D\fR シーケンスを使って EOT を送信文字列に埋め込むことができます。 .SH ブレークの生成 特殊な応答文字列 \fIBREAK\fR により、ブレーク信号が送られます。 ブレークは送信側では特殊な信号として扱われます。 受信側では通常、転送レートの変更要求として処理されます。 これにより、正常に login プロンプトを受信できるまで ブレーク信号を送ることで、リモート側がサポートしている転送レートを 順次切替えさせることができます。 .PR \fI\\K\fR シーケンスを使ってブレーク信号を送信文字列に埋め込むことができます。 .SH エスケープシーケンス 受信待ち文字列と応答文字列には、エスケープシーケンスを指定することができます。 -応答文字列では、すべてのエスケープシーケンスが使えます。 +応答文字列では、全てのエスケープシーケンスが使えます。 受信待ち文字列では、ほとんどのエスケープシーケンスが使えます。 受信待ち文字列では使えないエスケープシーケンスについては、 説明文中にそのことが書かれています。 .TP .B '' 空文字列を受信待ちしたり、送信したりします。 もし、空文字列を送信しようとすると、それはリターン文字を送ることになります。 このシーケンスはアポストロフィ文字またはクォート文字のペアの どちらでもかまいません。 .TP .B \\\\b バックスペース文字を表します。 .TP .B \\\\c 応答文字列の末尾の改行を抑制します。 これは末尾に改行文字のつかない文字列を送る唯一の方法です。 これは送信文字列の最後に置かれなければいけません。 たとえば、文字列 hello\\c は単に h, e, l, l, o という文字だけを送ります。 .I (受信待ち文字列では使えません) .TP .B \\\\d 1 秒のディレイです。プログラムは 1 秒のディレイのために sleep(1) を使います。 .I (受信待ち文字列では使えません) .TP .B \\\\K ブレーク信号を挿入します。 .I (受信待ち文字列では使えません) .TP .B \\\\n 改行文字を送信します。 .TP .B \\\\N 空 (null) 文字を送信します。\\0 でも同じシーケンスを表すことができます。 .I (受信待ち文字列では使えません) .TP .B \\\\p 1 秒以下のポーズです。ディレイ時間は 1/10 秒です。 .I (受信待ち文字列では使えません) .TP .B \\\\q .IR syslogd (8) への文字列出力を抑止します。 かわりに文字列 ?????? がログに出力されます。 .I (受信待ち文字列では使えません) .TP .B \\\\r キャリッジリターン文字を送信または受信待ちします。 .TP .B \\\\s 文字列中のスペース文字を表します。 これはスペースを含む文字列をクォートしたくない場合に使います。 シーケンス 'HI TIM' と HI\\sTIM は等価です。 .TP .B \\\\t タブ文字を送信または受信待ちします。 .TP .B \\\\\\\\ バックスラッシュ文字を送信または受信待ちします。 .TP .B \\\\ddd 8 進数 (ddd) を一つの ASCII 文字に変換し、その文字を送信します。 .I (受信待ち文字列では使えない文字がいくつかあります) .TP .B \^^C C で表現される制御文字に置きかえられます。 例えば、文字 DC1 (17) は \^^Q で表されます。 .I (受信待ち文字列では使えない文字がいくつかあります) .SH 終了コード \fIchat\fR プログラムは以下の終了コードを返します。 .TP .B 0 プログラムは正常終了しました。これは、スクリプトがエラーを起こさずに 実行されて、正常に終了したことを示します。 .TP .B 1 一つまたはそれ以上のパラメータが不正であるか、受信待ち文字列が 内部バッファよりも大きすぎます。これはプログラムが正しく 実行されなかったことを示します。 .TP .B 2 プログラムの実行中にエラーが発生しました。これは、何らかの理由で リードまたはライトの操作が失敗したか、chat が SIGINT のような シグナルを受信したためでしょう。 .TP .B 3 「-副送信」文字列のない\fI受信待ち\fR文字列があり、タイムアウトイベントが 発生しました。これは、スクリプトが正しくプログラムされていないか、 予期しないイベントが発生して受信待ち文字列を見つけられなかったためでしょう。 .TP .B 4 \fIABORT\fR 条件としてマークされた 1 番目の文字列を検出しました。 .TP .B 5 \fIABORT\fR 条件としてマークされた 2 番目の文字列を検出しました。 .TP .B 6 \fIABORT\fR 条件としてマークされた 3 番目の文字列を検出しました。 .TP .B 7 \fIABORT\fR 条件としてマークされた 4 番目の文字列を検出しました。 .TP .B ... その他の終了コードも、\fIABORT\fR 条件としてマークされた文字列を 検出したことを示します。 .LP 終了コードを使うと、どのイベントによりスクリプトが終了したのかを 判断することができます。 つまり、"NO DIAL TONE" を受信したのか "BUSY" を受信したのかを 識別することができるということです。 最初のイベント (BUSY) ならばリトライする価値がありますが、 二つ目のイベント (NO DIAL TONE) だと、 おそらくリトライしてもそれがうまくいく可能性は低いでしょう。 .SH 関連項目 UUCP のドキュメントからも、\fIchat\fR スクリプトに関する 追加情報が得られるでしょう。 \fIchat\fR スクリプトは \fIuucico\fR プログラムで使われる スクリプトによって提示されたアイデアを基にしています。 .LP -uucico(1), uucp(1) +uucico(1), uucp(1), syslog(3), syslogd(8). .SH 著作権 \fIchat\fR プログラムは、パブリックドメインのソフトウェアです。 -これは GNU のパブリックライセンス(一般公有使用許諾)とは ことなります。 +これは GNU のパブリックライセンス (一般公有使用許諾) とは異なります。 このプログラムを分割する場合には、その両方を管理するようにしてください。 .\" 原文は The \fIchat\fR program is in public domain. This is not .\" the GNU public license. If it breaks then you get to keep both pieces. .\" 最後の文章にはあまり自信がありません。(^_^;; .\" 2.2.2R 対象(1997/06/26) Saeki Takashi diff --git a/ja/man/man8/pppd.8 b/ja/man/man8/pppd.8 index 4c0be54a5e..6042934a08 100644 --- a/ja/man/man8/pppd.8 +++ b/ja/man/man8/pppd.8 @@ -1,844 +1,1282 @@ -.\" manual page [] for pppd 2.0 -.\" %Id: pppd.8,v 1.7.2.2 1997/05/07 23:57:42 brian Exp % +.\" manual page [] for pppd 2.3 +.\" %Id: pppd.8,v 1.7.2.3 1998/06/23 21:41:46 peter Exp % .\" jpman %Id: pppd.8,v 1.2 1997/05/27 00:43:48 mutoh Stab % .\" SH section heading .\" SS subsection heading .\" LP paragraph .\" IP indented paragraph .\" TP hanging label .TH PPPD 8 .SH 名称 -pppd \- PPP(Point to Point Protocol) を処理するデーモン +pppd \- PPP (Point to Point Protocol) を処理するデーモン .SH 書式 .B pppd [ -.I options -] [ .I tty_name ] [ .I speed +] [ +.I options ] .SH 解説 .LP Point-to-Point プロトコル (PPP) は、シリアル回線上に確立された Point-to-Point リンクを介したデータグラムの送受方法を提供します。 PPP は、データグラムのカプセル化方式、拡張可能なリンク制御プロトコル (LCP)、 -そして異なるネットワーク層プロトコルの設定とコネクションの確立を行なう +そして異なるネットワーク層プロトコルの設定と接続の確立を行う 一群のネットワーク制御プロトコル (NCP) の 3 つの部分から構成されています。 .LP カプセル化体系は、カーネル内のドライバコードにより提供されています。 -.B pppd -は、基本的な LCP 機能、認証機能、そして IP コネクションの確立と設定を行なう -NCP(IP Control Protocol(IPCP) と呼ばれています)を提供します。 +pppd +は、基本的な LCP 機能、認証機能、そしてインターネットプロトコル (IP) +接続の確立と設定を行う +NCP (IP 制御プロトコル (IPCP) と呼ばれています) を提供します。 .SH よく使われるオプション .TP .I -使用するシリアルポートの特殊ファイル名を指定します。 -もし必要であれば、特殊ファイル名の前に"/dev/"文字列が追加されます。 -デバイス名が指定されていない場合や制御端末の名前が与えられた場合には、 -.I pppd -は自らの制御端末をコネクションの確立に使用し、 -バックグラウンド実行のための fork を行ないません。 +指定したデバイスを介して通信します。 +もし必要であれば、前に "/dev/" 文字列が追加されます。 +デバイス名が指定されていない場合や +標準入力に接続された端末の名前が与えられた場合には、 +pppd +はその端末を使用し、 +バックグラウンド実行のための fork を行いません。 +\fInoauth\fR オプションが使用された場合、 +このオプションは特権オプションとなります。 .TP .I -tty の速度を設定します。4.4BSD や NetBSD では任意の速度を指定することが -できます。その他のシステム (SunOS 等) では一定の組合せのみが指定可能です。 +ボーレートを に設定します (10 進数)。 +4.4BSD や NetBSD といったシステムでは、 +シリアルデバイスドライバがサポートする任意の速度を指定可能です。 +その他のシステム (SunOS, Linux 等) では一定の組合せのみが指定可能です。 +.TP +.B active-filter \fIfilter-expression +データパケットに適用されるパケットフィルタであり、 +どのパケットをリンクアクティビティとみなすかを決定するパケットフィルタを +指定します。 +リンクアクティビティとみなされると、アイドルタイマがリセットされるか、 +デマンドダイアルモード時にはリンクがアップされます。 +(例えば経路情報パケット等) 定常的にリンク上でパケット送受信が行われ、 +他の方法ではリンクがアイドルであるとはみなされない場合に、 +このオプションを \fBidle\fR オプションとともに使用すると便利です。 +\fIfilter-expression\fR の文法は tcpdump(1) と同じですが、 +限定子は PPP では不適当ですので、\fBether\fR や \fBarp\fR は使用できません。 +一般的には、フィルタ式をシングルクォートで括って、 +式中の空白がシェルに解釈されることを避けるべきです。 +カーネル及び pppd が PPP_FILTER を定義してコンパイルされた場合のみ、 +このオプションを利用可能です。 .TP .B asyncmap \fI -非同期キャラクタマップを に設定します。 -このマップは、シリアル回線を経由するとどのコントロールキャラクタの受信が +非同期文字マップを に設定します。 +このマップは、シリアル回線を経由するとどの制御文字の受信が うまくいかなくなるかを記述するものです。 -.I pppd -は、相手側にこれらのキャラクタを 2 バイトのエスケープシーケンスとして -送信するよう依頼します。 -引数は 32 ビットの 16 進数であり、各ビットがエスケープするべきキャラクタを +pppd +は、これらの文字を 2 バイトのエスケープシーケンスとして送信するよう、 +相手側に依頼します。 +引数は 32 ビットの 16 進数であり、各ビットがエスケープすべき文字を 表しています。 -ビット 0 (00000001) はキャラクタ 0x00 をあらわし、 -ビット 31 (80000000) は、キャラクタ 0x1f '^_' をあらわしています。 -複数の \fBasyncmap\fR オプションが与えられた場合、それらの値の論理和が +ビット 0 (00000001) は文字 0x00 を表し、 +ビット 31 (80000000) は、文字 0x1f つまり '^_' を表しています。 +複数の \fIasyncmap\fR オプションが与えられた場合、それらの値の論理和が 採用されます。 -\fBasyncmap\fR が与えられなかった場合には、このホストが受信側となる -非同期キャラクタマップは設定されません。 -相手側はすべてのコントロールキャラクタをエスケープして送信します。 +\fIasyncmap\fR オプションが与えられなかった場合には、このホストが受信側となる +非同期文字マップは設定されません。 +相手側は\fIすべての\fR制御文字をエスケープして送信します。 +送信文字をエスケープするには、\fIescape\fR オプションを使用します。 .TP .B auth -ネットワークパケットの送受信を許可する前に、相手側に自分自身の認証を -行なうよう要求します。 -.TP -.B connect \fI

-\fI

\fR で指定された実行可能コマンドまたはシェルコマンドを -シリアル回線のセットアップに用います。 -ほとんどの場合ここで指定されるスクリプトには、 -モデムにダイヤルコマンドを送ったり リモート ppp セッションを -開始したりするための "チャット(chat)" プログラムを使用します。 +ネットワークパケットの送受信を許可する前に、相手側に自分証明を +行うよう要求します。 +.TP +.B call \fIname +ファイル /etc/ppp/peers/\fIname\fR からオプションを読みます。 +pppd が root 以外によって起動された場合においても、 +このファイルに \fInoauth\fR のような特権オプションを含んでもかまいません。 +文字列 \fIname\fR は / で開始してはなりませんし、 +パス名の一部に .. を含んではなりません。 +オプションファイルのフォーマットは後述します。 +.TP +.B connect \fIscript +\fIscript\fR で指定された実行可能コマンドまたはシェルコマンドを使用して、 +シリアル回線のセットアップを行います。 +ほとんどの場合、ここで指定されるスクリプトには chat(8) プログラムを使用し、 +モデムにダイアルコマンドを送ったり、リモート ppp セッションを開始したりします。 +\fInoauth\fR オプションが使用された場合、 +このオプションは特権オプションとなります。 .TP .B connect-max-attempts \fI -指定した時間 (デフォルトでは 1)以上 リモートシステムとの -ダイアルコネクションを保持しません。コネクションができない場合は、 +指定した時間 (デフォルトでは 1) を越えてリモートシステムとの +ダイアル接続を保持しません。接続ができない場合は、 pppd は終了します。 \fBpersist\fR を指定することが要求されます。 .TP .B crtscts -シリアルポートのフロー制御にハードフロー制御 (RTS/CTS) を用います。 -.TP -.B -crtscts -シリアルポートのハードウエアフロー制御 (RTS/CTS) を使いません。 -\fBcrtscts\fR か \fB\-crtscts\fR の両方のオプションが与えられない時、 -シリアルポートのハードウエアフロー制御の設定は変更されずに +シリアルポートのフロー制御にハードウェアフロー制御 (RTS/CTS) を用います。 +\fIcrtscts\fR か \fInocrtscts\fR の両方のオプションが与えられない時、 +シリアルポートのハードウェアフロー制御の設定は変更されずに そのままになります。 .TP -.B xonxoff -シリアルポートのフロー制御に XON/XOFF キャラクタによるフロー制御を用います。 -現時点では、このオプションは Linux では実装されていません。 -.TP .B defaultroute -IPCP ネゴシエーションが成功すると、相手側をゲートウェイとする -デフォルトルートをシステムのルーティングテーブルに追加します。 -このオプションにより追加されたデフォルトルートエントリは、 -PPP コネクションが切断された際に削除されます。 -.TP -.B disconnect \fI

-pppd が接続を切った後に \fI

\fR で指定した実行可能コマンドまたは +IPCP 交渉が成功すると、相手側をゲートウェイとする +デフォルト経路をシステムの経路テーブルに追加します。 +このオプションにより追加されたデフォルト経路エントリは、 +PPP 接続が切断された際に削除されます。 +\fInodefaultroute\fR オプションが指定された場合には、 +このオプションは特権オプションとなります。 +.TP +.B disconnect \fIscript +pppd が接続を切った後に \fIscript\fR で指定した実行可能コマンドまたは シェルコマンドを実行します。 このスクリプトで、例えばハードウェアモデム制御信号 (DTR) が使えない場合に -モデムに回線切断のコマンドを発行することができます。 +モデムをハングアップすることができます。 +モデムが既にハングアップしている場合には、この切断スクリプトは実行されません。 +\fInoauth\fR オプションが使用された場合には、 +このオプションは特権オプションです。 .TP .B escape \fIxx,yy,... -転送時にエスケープを行なうべきキャラクタを指定します(相手側が -非同期キャラクタマップでエスケープを要求しているかどうかには影響されません)。 -エスケープされるキャラクタは、カンマで区切られた 16 進の数字で指定します。 -コントロールキャラクタしか指定できない非同期キャラクタマップ (asyncmap) -とは異なり、\fBescape\fR オプションではどんなキャラクタでも指定できる +転送時にエスケープを行うべき文字を指定します (相手側が +非同期文字マップでエスケープを要求しているかどうかには影響されません)。 +エスケープされる文字は、コンマで区切られた 16 進数で指定します。 +制御文字しか指定できない \fIasyncmap\fR オプション +とは異なり、\fIescape\fR オプションではどんな文字でも指定できる ことに注意してください。 -ただし 16 進表記で 0x20 から 0x3f までと 0x5e のキャラクタは -エスケープするべきではありません。 +ただし 16 進表記で 0x20 から 0x3f までと 0x5e の文字は +エスケープしてはなりません。 .TP -.B file \fI -オプションをファイル から読み込みます(フォーマットは後述します)。 +.B file \fIname +オプションをファイル \fIname\fR から読み込みます (フォーマットは後述します)。 +このファイルは、pppd を起動したユーザが読むことが可能である必要があります。 .TP .B lock -シリアルデバイスに対する排他アクセスを確実に行なうために、 -UUCP 形式のロックファイルを作成するよう \fIpppd\fR に指示します。 -.TP -.B mru \fI -ネゴシエーション時の MRU [Maximum Receive Unit] 値を に設定します。 -.I pppd -は、通信相手に バイトを超えるパケットを送信しないよう要求します。 +シリアルデバイスに対する排他アクセスを確実に行うために、 +UUCP 形式のロックファイルを作成するよう pppd に指示します。 +.TP +.B mru \fIn +交渉時の MRU [最大受信単位; Maximum Receive Unit] +値を \fIn\fR に設定します。 +pppd +は、通信相手に \fIn\fR バイトを超えるパケットを送信しないよう要求します。 最小の MRU 値は、128 です。 -デフォルトの MRU 値は 1500 です。低速のリンクでは 296 を推奨します。 -(TCP/IP ヘッダ 40 バイト + データ 256 バイト). -.TP -.B netmask \fI -インタフェースの netmask を に設定します。 -32 bit の netmask を、255.255.255.0 のように、 -10 進 + ピリオド表記 (符号付き 10 進表現) で指定します。 +デフォルトの MRU 値は 1500 です。低速のリンクでは 296 を推奨します +(TCP/IP ヘッダ 40 バイト + データ 256 バイト)。 .TP -.B dns1 \fI -接続先が プライマリ DNS サーバを聞いてきた場合、このアドレスを答えます。 -32 bit IP アドレスを 符号付き 10 進表現で指定します。 -.TP -.B dns2 \fI -接続先が セカンダリ DNS サーバを聞いてきた場合、このアドレスを答えます。 -32 bit IP アドレスを 符号付き 10 進表現で指定します。 +.B mtu \fIn +MTU [最大転送単位; Maximum Transmit Unit] 値を \fIn\fR に設定します。 +相手が MRU 交渉を通じてこれより小さい値を要求してこない限り、 +PPP ネットワークインタフェースを通して \fIn\fR バイトを +越えないデータパケットを送ることを、 +pppd はカーネルのネットワークコードに要求します。 .TP .B passive LCP で "passive" オプションを有効にします。このオプションを指定した場合には、 -コネクションを開始しようとしても相手からの返答がない場合、 -.I pppd -は相手から有効な LCP パケットが到着するのを待ち続けます。 -(このオプションを指定しなければ、相手からの返答がない場合に -.I pppd -は実行を中断します。) -.TP -.B silent -このオプションを指定した場合、 -.I pppd -は相手から有効な LCP パケットを受信するまで -接続を開始するための LCP パケットを送信せずに待ちます。 -(旧バージョンの \fIpppd\fR で 'passive' オプションを指定した場合と -同じ動作です。) +接続を開始しようとしても相手からの返答がない場合、 +pppd +は相手から有効な LCP パケットが到着するのを受動的に待ち続けます。 +このオプションを指定しなければ、相手からの返答がない場合に +pppd +は実行を中断します。 .SH オプション .TP .I \fB:\fI ローカルインタフェースとリモートインタフェースの IP アドレスを設定します。 -どちらか一方を省略することも可能です。IP アドレスは、ホスト名もしくは -符号付き 10 進表現 (例 :150.234.56.78) のどちらでも指定可能です。 -デフォルトのローカルアドレスは、そのシステムの ( 最初の )IP アドレスと -なります。( ただし -.B noipdefault +どちらか片方を省略することも可能です。IP アドレスは、ホスト名もしくは +10 進数ドット表現 (例: 150.234.56.78) のどちらでも指定可能です。 +デフォルトのローカルアドレスは、そのシステムの (最初の) IP アドレスと +なります。(ただし +\fInoipdefault\fR オプションが指定された場合を除きます。) リモートアドレスは、 オプションで指定されていない場合には相手側から取得されます。 ですから、もっとも単純な指定を行う場合には、このオプションは不必要です。 ローカルまたはリモートの IP アドレスがこのオプションで指定されている場合には、 -.I pppd -は IPCP ネゴシエーションで相手側がこの指定と異なるアドレスを送って来た場合 +pppd +は IPCP 交渉で相手側がこの指定と異なるアドレスを送って来た場合 これを拒否します。ただし、 -.B ipcp-accept-local +\fIipcp-accept-local\fR や -.B ipcp-accept-remote +\fIipcp-accept-remote\fR が指定されている場合にはこの限りではありません。 .TP -.B -all -LCP や IPCP でのオプションによるネゴシエーションは -要求も許可もされません。(デフォルト値を用います。) -.TP -.B -ac -Address/Control 圧縮ネゴシエーションを無効にします -( これがデフォルトで、address/control フィールドの圧縮は通常行なわれません)。 -.TP -.B -am -asyncmap ネゴシエーションを無効にします(デフォルトの asyncmap が用られ、 -全てのコントロールキャラクタがエスケープされます)。 -.TP -.B -as \fI -.B asyncmap \fI -と同じ意味です。 -.TP -.B -d -デバッグレベルを増やします。(\fBdebug\fR オプションと同じ意味です。) -.TP -.B -detach -バックグラウンドプロセスになるための fork を行ないません( -.I pppd -は、シリアルデバイスが指定されていて -このオプションが指定されていない場合もしくはシリアルデバイスが -制御端末ではない場合には fork します)。 -.TP -.B -ip -IP アドレスネゴシエーションを無効にします -(このオプションを指定した場合には、リモート IP アドレスを -コマンドラインもしくはオプションファイルで指定する必要があります)。 -.TP -.B -mn -magic number ネゴシエーションを無効にします。このオプションを指定した場合には、 -.I pppd -はループバック回線を検出することができません。 -.TP -.B -mru -MRU [Maximum Receive Unit] ネゴシエーションを無効にします -( デフォルトの MRU 値の 1500 を使用します)。 -.TP -.B -p -.B passive -オプションと同じ意味です。 -.TP -.B -pc -プロトコルフィールド圧縮ネゴシエーションを無効にします -(これがデフォルトで、プロトコルフィールドの圧縮は通常無効になっています)。 -.TP -.B +ua \fI

-相手側から PAP [Password Authentication Protocol] による認証を -要求された場合には、それに同意します。そしてファイル

に記述された -データを用いてユーザ名とパスワードを相手に送ります。 -このファイルには、リモートのユーザ名と改行が格納され、 -続いてリモートパスワードと改行が格納されています。 -このオプションは旧式です。 -.TP -.B +pap -PAP を用いて自分自身の認証を行なうよう相手に要求します。 -.TP -.B -pap -PAP による認証を拒否します。 -.TP -.B +chap -CHAP [Challenge Handshake Authentication Protocol] を用いて -自分自身の認証を行なうことを相手に要求します。 -.TP -.B -chap -CHAP による認証を拒否します。 -.TP -.B -vj -Van Jacobson 形式の IP ヘッダ圧縮のネゴシエーションを無効にします -(これがデフォルトで、ヘッダの圧縮は通常行なわれません)。 -.TP .B bsdcomp \fInr,nt -接続相手に、BSD圧縮方式を使った送出時のパケット圧縮を要求します。 +接続相手に、BSD-Compress 方式を使った送出時のパケット圧縮を要求します。 ここでの最大コードサイズは \fInr\fR ビットです。 相手側が送るパケットの最大の大きさは、 \fInt\fR ビットです。 -\fInt\fR が指定されない時は、デフォルトの値が使われます。 +\fInt\fR が指定されない時は、デフォルトの \fInr\fR が使われます。 9 から 15 の範囲の値が、 \fInr\fR と \fInt\fR で使われます。 より大きな値は、よりよい圧縮となりますが、圧縮辞書のためにより多くの カーネルメモリを消費します。\fInr\fR や \fInt\fR に対して、値 0 を -指定すると、圧縮を指定した方向には行いません。 +指定すると、指定した方向には圧縮を行いません。 +BSD-Compress 圧縮を完全に無効にするためには、 +\fInobsdcomp\fR か \fIbsdcomp 0\fR を指定してください。 +.TP +.B chap-interval \fIn +このオプションが指定された場合、 +pppd +は \fIn\fR 秒おきに再チャレンジします。 .TP -.B \-bsdcomp -圧縮を行いません。 \fBpppd\fR は、BSD 圧縮方式を使ったパケットの圧縮を -要求しませんし、許可もしません。 +.B chap-max-challenge \fIn +CHAP チャレンジの最大送信回数を \fIn\fR に設定します (デフォルト値は 10)。 +.TP +.B chap-restart \fIn +(チャレンジの再送のタイムアウトによる) +CHAP 再開の間隔を \fIn\fR 秒に設定します +(デフォルト値は 3)。 .TP .B debug -デバッグレベルを増加させます (\fB\-d\fR と同じ意味です)。 -このオプションを指定した場合、\fIpppd\fR は送受信した -すべての制御パケットの内容を可読形式でログをとります。 +接続のデバッグ機能を有効にします。 +このオプションを指定した場合、pppd は送受信した +すべての制御パケットの内容を可読形式でログします。 パケットは syslog を経由して、\fIdaemon\fR ファシリティの \fIdebug\fR レベルとして記録されます。 本情報は、/etc/syslog.conf を適切に記述することで -ファイルに記録することができます(syslog.conf(5) 参照)。 -(もし \fIpppd\fR が extra debugging オプションを有効にして -コンパイルされていれば、\fIdaemon\fR ファシリティの -かわりに \fIlocal2\fR ファシリティを使用してメッセージを記録します。) -.TP -.B \-defaultroute -\fBdefaultroute\fR オプションを無効にします。 -\fIpppd\fR を使っているユーザにデフォルトルートを作成させたくない -システム管理者は、このオプションを /etc/ppp/options ファイルに -記述することができます。 -.TP -.B domain \fI -認証のために使用するローカルホスト名にドメイン名 を付加します。 -例えば、FQDN が porsche.Quotron.COM であって、 +ファイルに記録することができます (syslog.conf(5) 参照)。 +.TP +.B default-asyncmap +asyncmap 交渉を無効にし、 +送受信両方向にて全制御文字をエスケープさせます。 +.TP +.B default-mru +MRU [最大受信単位; Maximum Receive Unit] 交渉を無効にします。 +このオプションを指定すると、送受信両方向において、 +pppd はデフォルトの MRU 値 1500 バイトを使用します。 +.TP +.B deflate \fInr,nt +接続相手に、Deflate 方式を使った送出時のパケット圧縮を要求します。 +ここで最大のウィンドウサイズは \fI2**nr\fR バイトです。 +また、相手に送るパケットを最大ウィンドウサイズ \fI2**nt\fR バイトにて圧縮 +することを合意します。 +\fInt\fR が指定されないと、デフォルトの \fInr\fR の値となります。 +\fInr\fR と \fInt\fR には 8 から 15 までの範囲の値が許されます。 +より大きな値は、よりよい圧縮となりますが、圧縮辞書のためにより多くの +カーネルメモリを消費します。 +\fInr\fR や \fInt\fR に対して、値 0 を +指定すると、指定した方向には圧縮を行いません。 +Deflate 圧縮を完全に無効にするためには、 +\fInodeflate\fR か \fIdeflate 0\fR を指定してください。 +(注: 相手が両方とも可能な場合には、 +pppd は BSD-Compress よりも Deflate 圧縮を好んで要求します。) +.TP +.B demand +リンクの開始を要求時のみ、つまりデータトラフィックが存在する時のみ行います。 +このオプションを指定する場合、リモート IP アドレスを、 +ユーザがコマンドラインで指定するか、オプションファイル中に含む必要があります。 +pppd は、相手に接続することなく、 +まずインタフェースを設定して IP トラフィックに備えます。 +トラフィックが現れると、pppd は相手へ接続し、 +交渉や認証などを行います。 +これが完了すると、pppd はリンクを介してデータパケット (すなわち IP パケット) +の授受を開始します。 + +\fIdemand\fR オプションは暗黙的に \fIpersist\fR オプションを指定します。 +この動作が望ましくない場合、\fIdemand\fR オプションの後に +\fInopersist\fR オプションを使用してください。 +\fIidle\fR および \fIholdoff\fR のオプションもまた、 +\fIdemand\fR オプションとともに使用すると便利です。 +.TP +.B domain \fId +認証のために使用するローカルホスト名にドメイン名 \fId\fR を付加します。 +例えば、完全な形でのドメイン名 (FQDN) が porsche.Quotron.COM であって、 gethostname() が porsche という名前を返す場合には、 -このオプションを用いてドメイン名を Quotron.COM と指定します。 +このオプションを用いてドメイン名を \fIQuotron.COM\fR と指定します。 +そうすると、pppd は \fIporsche.Quotron.COM\fR を +秘密情報ファイルの中の秘密情報を調べるために使用したり、 +相手に対して自己証明するために送るデフォルトの名前として使用します。 +このオプションは特権オプションです。 +.TP +.B holdoff \fIn +リンク切断から再初期化まで何秒待つかを指定します。 +\fIpersist\fR または \fIdemand\fR オプション使用時にのみ、 +このオプションは有効です。 +アイドルであったためにリンクが切断された場合は、 +この抑止期間は適用されません。 +.TP +.B idle \fIn +リンクが \fIn\fR 秒アイドルだった場合に接続を切るように pppd に指定します。 +データパケット (つまり IP パケット)が送受信されない時に、 +リンクはアイドルだとみなされます。 +注: \fIdemand\fR オプションを使用せずに +\fIpersist\fR オプションを使用する場合に、このオプションを使うことを勧めます。 +\fBactive-filter\fR オプションが与えられると、 +指定したアクティビティフィルタが受理しなかったデータパケットもまた、 +リンクがアイドルであるとみなす対象とします。 +.TP +.B ipcp-accept-local +このオプションが指定された場合には、 +別のオプションによってローカル IP アドレスの指定が行われている場合でも、 +pppd +は相手からのローカル IP アドレスの指定を受け入れます。 +.TP +.B ipcp-accept-remote +このオプションが指定された場合には、 +別のオプションによってリモート IP アドレスの指定が行われている場合でも、 +pppd +は相手からのリモート IP アドレスの指定を受け入れます。 +.TP +.B ipcp-max-configure \fIn +IPCP configure-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 10)。 +.TP +.B ipcp-max-failure \fIn +IPCP configure-Reject を送信開始するまでの IPCP configure-NAK の最大応答回数を +\fIn\fR 回に設定します (デフォルト値は 10)。 +.TP +.B ipcp-max-terminate \fIn +IPCP terminate-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 3)。 +.TP +.B ipcp-restart \fI +(再送のタイムアウトによる) IPCP 再開の間隔を \fIn\fR 秒に設定します。 +(デフォルト値は 3)。 .TP .B ipparam \fIstring ip-up と ip-down スクリプト用に余分のパラメータを指定します。 このオプションが与えられた場合、 \fIstring\fR が 6 番目のパラメータと して、これらのスクリプトに与えられます。 .TP -.B modem -モデム制御線を使用します。このオプションはデフォルトです。 -このオプションを使うことで、 -.B pppd -は、シリアルデバイスをオープンした時に -(接続スクリプトが指定されていなくても) -モデムから CD (Carrier Detect) 信号が送られるのを待ちます。 -そして、接続が中断された時や接続スクリプトが終了する時に、 -DTR (Data Terminal Ready) 信号を落します。 Ultrix では、 -このオプションは、 \fBcrtscts\fR オプションのように -ハードワイアフロー制御を実行します。 +.B ipx +IPXCP および IPX プロトコルを有効にします。 +このオプションは現在 Linux でのみ、 +IPX サポートを含めてカーネルを構成した場合のみサポートされています。 +.TP +.B ipx-network \fIn +IPXCP 設定要求フレーム中の IPX ネットワーク番号を \fIn\fR に設定します。 +16 進数 (先頭の 0x を除いて) を指定します。 +正当なデフォルト値はありません。 +このオプションが指定されないと、ネットワーク番号は相手から獲得します。 +相手がネットワーク番号を持っていない場合は、IPX プロトコルは開始されません。 +.TP +.B ipx-node \fIn\fB:\fIm +IPX ノード番号を設定します。 +2 つのノード番号をコロンで区切ります。 +最初の番号 \fIn\fR はローカルのノード番号です。 +次の番号 \fIm\fR は相手のノード番号です。 +どちらのノード番号も 16 進数であり、最大 10 桁です。 +ipx-network のノード番号は一意である必要があります。 +正当なデフォルト値はありません。 +このオプションが指定されないと、ノード番号は相手から獲得します。 +.TP +.B ipx-router-name \fI +ルータ名を設定します。 +これは文字列であり、情報データとして相手に送られます。 +.TP +.B ipx-routing \fIn +受信する経路プロトコルをこのオプションで指定します。 +複数の \fIipx-routing\fR インスタンスを指定可能です。'\fInone\fR' オプション +(0) のみ、ipx-routing インスタンスとして指定可能です。 +値は、\fI0\fR が \fINONE\fR に、\fI2\fR が \fIRIP/SAP\fR に、 +\fI4\fR が \fINLSP\fR に対応します。 +.TP +.B ipxcp-accept-local +ipx-node オプションで指定したノード番号に対する、相手の NAK を受け付けます。 +非ゼロのノード番号が指定された場合、 +この値の使用を主張することがデフォルトです。 +このオプションを指定すると、 +相手がノード番号のエントリを上書きすることを許します。 +.TP +.B ipxcp-accept-network +ipx-network オプションで指定したネットワーク番号に対する、 +相手の NAK を受け付けます。 +非ゼロのノード番号が指定された場合、 +この値の使用を主張することがデフォルトです。 +このオプションを指定すると、 +相手がノード番号のエントリを上書きすることを許します。 +.TP +.B ipxcp-accept-remote +設定要求フレーム中に指定される相手のネットワーク番号を使用します。 +相手のノード番号を指定し、 +かつこのオプションを指定しなかった場合は、 +相手はあなたが指定した値を使用することを強制されます。 +.TP +.B ipxcp-max-configure \fIn +システムが送信する IPXCP 設定要求フレーム数の最大値を \fIn\fR に設定します。 +デフォルト値は 10 です。 +.TP +.B ipxcp-max-failure \fIn +ローカルシステムがオプションを拒否する前に、 +ローカルシステムが送信する IPXCP NAK フレーム数の +最大値を設定します。デフォルト値は 3 です。 +.TP +.B ipxcp-max-terminate \fIn +相手が聞いていないという判断をローカルシステムが下す前に、 +ローカルシステムが送信する +IPCP 停止要求フレーム数の最大値を設定します。デフォルト値は 3 です。 .TP .B kdebug \fIn カーネルレベルの PPP ドライバのデバッグコードを有効にします。 引数 \fIn\fR として、以下の数値のうち必要なものの合計を指定します。 1 は一般的なデバッグメッセージ出力を有効にします。 2 は受信したパケットの内容の出力を要求します。 4 は送信したパケットの内容の出力を要求します。 +ほとんどのシステムでは、カーネルが表示したメッセージは、 +/etc/syslog.conf 設定ファイルに指示されるように、 +syslog(1) がファイルにログします。 .TP -.B local -モデム制御線を使用しません。 -.B pppd -は、モデムからの CD (Carrier Detect) 信号の状態を無視し、 -DTR (Data Terminal Ready) 信号の状態を変化しません。 +.B lcp-echo-failure \fIn +このオプションが指定された場合、 LCP echo-request を \fIn\fR 回送信しても +相手から有効な LCP echo-reply が帰ってこなければ、pppd は +相手がダウンしているものと推測します。このような場合、pppd は +接続を切断します。このオプションを使用する際には、 +\fIlcp-echo-interval\fR のパラメータとして 0 以外の数値を指定してください。 +このオプションは、ハードウェアモデム制御線 (DSR) が使用できない状況で、 +(モデムがハングアップするなど) 物理的な接続が切断された後に +pppd を終了するために用いられます。 .TP -.B mtu \fI -MTU [Maximum Transmit Unit] 値を \fI\fR に設定します。 -相手が MRU ネゴシエーションを通じてこれより小さい値を要求してこない限り、 -\fIpppd\ は、PPP ネットワークインタフェースを通して \fIn\fR バイトを -越えないデータパケットを送ることをカーネルのネットワークコードに要求します。 +.B lcp-echo-interval \fI +このオプションを指定すると、pppd は LCP echo-request フレームを +\fIn\fR 秒毎に相手側に送信します。 +通常、相手側は echo-request を受信すると echo-reply を送り返して返答します。 +このオプションは、相手側との接続が切れたことを検出するために +\fIlcp-echo-failure\fR オプションとともに使用されます。 .TP -.B name \fI -認証の目的で用いられるローカルシステムの名前を に設定します。 +.B lcp-max-configure \fIn +LCP configure-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 10)。 .TP -.B user \fI -PAP を用いてこのマシンの認証を行なう際に用いるユーザ名を に設定します。 +.B lcp-max-failure \fIn +LCP configure-Reject を送信開始するまでの LCP configure-NAK の最大応答回数を +\fIn\fR 回に設定します (デフォルト値は 10)。 .TP -.B usehostname -認証時にホスト名をローカルシステムの名前として使用することを強制します。 -( -このオプションは -.B name -オプションに優先します。 -) +.B lcp-max-terminate \fIn +LCP terminate-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 3)。 .TP -.B remotename \fI -リモートシステムの名前を とみなして認証を行ないます。 +.B lcp-restart \fIn +(再送のタイムアウトによる) LCP 再開の間隔を \fIn\fR 秒に設定します +(デフォルト値は 3)。 .TP -.B papcrypt -相手の同一性を調べるために使われる -/etc/ppp/pap-secrets ファイル内の全ての秘密を暗号化することを -指示します。そして、 pppd は、 (暗号化前の) /etc/ppp/pap-secrets -ファイルからの秘密と等かであってもパスワードを受け入れません。 +.B local +モデム制御線を使用しません。このオプションを指定すると、 +pppd +は、モデムからの CD (Carrier Detect) 信号の状態を無視し、 +DTR (Data Terminal Ready) 信号の状態を変化させません。 .TP -.B proxyarp -自システムの ARP [Address Resolution Protocol] テーブルに相手の IP アドレス -と自イーサネットアドレスを追加します。 +.B login +PAP を用いた相手の認証に、システムパスワードデータベースを用い、 +ユーザをシステムの wtmp ファイルに記録します。 +アクセスが許されるためには、 +/etc/ppp/pap-secrets ファイルとシステムパスワードデータベースの両方に、 +相手のエントリが存在する必要があります。 .TP -.B \-proxyarp -\fBproxyarp\fR オプションを使いません。\fIpppd\fR のユーザに -proxy ARP エントリを作成させたくないシステム管理者はこのオプションを -/etc/ppp/options ファイルに記述することでそのようにできます。 +.B maxconnect \fIn +ネットワークトラフィックの使用開始から \fIn\fR 秒後に接続を切断します +(これは、最初のネットワーク制御プロトコルが来てから \fIn\fR 秒になります)。 .TP -.B persist -接続が切断された後で終了しません。代わりに再接続しようとします。 +.B modem +モデム制御線を使用します。このオプションはデフォルトです。 +このオプションを指定すると、pppd は +(接続スクリプトが指定していなければ) +モデムからの CD (Carrier Detect) 信号のアサートを待ってから +シリアルデバイスをオープンし、接続終了時に +DTR (Data Terminal Ready) 信号を短い期間落としてから +接続スクリプトを実行します。 +Ultrix では、このオプションはハードウェアフロー制御、 +すなわち \fIcrtscts\fR オプションを暗黙的に指定します。 +.TP +.B ms-dns \fI +pppd が Microsoft Windows クライアントのサーバとして動作している場合、 +このオプションは pppd に 1 または 2 の DNS (Domain Name Server) アドレスを +クライアントに提供することを許します。 +このオプションの最初のインスタンスはプライマリ DNS アドレスを与えます。 +次のインスタンスは (もし与えられれば) セカンダリ DNS アドレスを与えます。 +(このオプションは、 +古いバージョンの pppd では \fBdns-addr\fR という名前でした。) +.TP +.B ms-wins \fI +pppd が Microsoft Windows クライアントまたは "Samba" クライアントの +サーバとして動作している場合、このオプションは pppd に 1 または 2 の +WINS (Windows Internet Name Services) サーバアドレスをクライアントに提供 +することを許します。 +このオプションの最初のインスタンスはプライマリ WINS アドレスを与えます。 +次のインスタンスは (もし与えられれば) セカンダリ WINS アドレスを与えます。 +.TP +.B name \fIname +認証の目的で用いられるローカルシステムの名前を \fIname\fR に設定します。 +このオプションは特権オプションです。 +このオプションを指定すると、pppd は秘密情報ファイルの第 2 フィールドが \fIname\fR +である行を使用して秘密情報を探し、相手を認証します。 +さらに、\fIuser\fR オプションで上書きしない場合は、 +相手に対してローカルシステムを自己証明する時に送る名前として +\fIname\fR を使用します。 +(pppd はドメイン名を \fIname\fR に付加しないことに注意してください。) +.TP +.B netmask \fIn +インタフェースのネットマスクを \fIn\fR に設定します。 +32 ビットのネットマスクを「10 進数ドット」表記で指定します (例: 255.255.255.0)。 +このオプションが与えられると、デフォルトのネットマスクと指定したネットマスク +との論理和が値となります。デフォルトのネットマスクは交渉される +リモートの IP アドレスに依存します。 +リモート IP アドレスのクラスに適切なネットマスクと、 +同一ネットワーク上システムの非 point-to-point ネットワークインターフェース +のネットマスクとの論理和となります。 +.TP +.B noaccomp +Address/Control 圧縮を双方向 (送受信) で無効にします。 +.TP +.B noauth +相手が自己証明することを要求しません。 +\fIauth\fR オプションが /etc/ppp/options に指定されている場合、 +このオプションは特権オプションです。 +.TP +.B nobsdcomp +BSD-Compress 圧縮を無効にします。 +BSD-Compress 方式を使用したパケット圧縮を \fBpppd\fR は要求も賛同もしません。 +.TP +.B noccp +CCP (圧縮制御プロトコル; Compression Control Protocol) 交渉を無効にします。 +相手にバグがあるために、 +CCP 交渉のための pppd からの要求に混乱してしまう場合にのみ、 +このオプションが必要です。 +.TP +.B nocrtscts +シリアルポートにハードウェアフロー制御 (つまり RTS/CTS) を使用しません。 +\fIcrtscts\fR か \fInocrtscts\fR の両方のオプションが与えられない時、 +シリアルポートのハードウェアフロー制御の設定は変更されずに +そのままになります。 .TP -.B login -PAP を用いた相手の認証に、システムパスワードデータベースを用います。 +.B nodefaultroute +\fIdefaultroute\fR オプションを無効にします。 +\fIpppd\fR を使っているユーザにデフォルト経路を作成させたくない +システム管理者は、このオプションを /etc/ppp/options ファイルに +記述することができます。 +.TP +.B nodeflate +Deflate 圧縮を無効にします。 +pppd は Deflate 方式を使用した圧縮パケットを要求しませんし、賛同もしません。 +.TP +.B nodetach +制御端末から切り離しません。このオプションを指定しないと、 +標準入力がある端末以外のシリアルデバイスが指定された場合は、 +pppd は fork してバックグラウンドプロセスになります。 +.TP +.B noip +IPCP 交渉と IP 通信を無効にします。 +相手にバグがあるために、 +IPCP 交渉のための pppd からの要求に混乱してしまう場合にのみ、 +このオプションが必要です。 .TP .B noipdefault -ローカル IP アドレスが指定されない場合にデフォルトで行なわれる、 -ホスト名から IP アドレスを ( 可能であれば ) 決定する動作を無効にします。 -このオプションを指定した場合には、IPCP ネゴシエーション時に +ローカル IP アドレスが指定されない場合にデフォルトで行われる、 +ホスト名から IP アドレスを (可能であれば) 決定する動作を無効にします。 +このオプションを指定した場合には、IPCP 交渉時に 相手側がローカルの IP アドレスを指定する必要があります (明示的にコマンドラインで指定されているか、 オプションファイルで指定されている場合を除きます)。 .TP -.B lcp-echo-interval \fI -このオプションを指定すると、\fIpppd\fR は LCP echo-request frame を -\fIn\fR 秒毎に相手側に送信します。Linux では、相手側からのパケットが -\fIn\fR 秒間途切れた場合に echo-request が相手側に送信されます。 -通常、相手側は echo-request を受信すると echo-reply を送り返して返答します。 -このオプションは、相手側との接続が切れたことを検出するために -\fIlcp-echo-failure\fR オプションとともに使用されます。 +.B noipx +IPXCP および IPX プロトコルを無効にします。 +相手にバグがあるために、 +IPXCP 交渉のための pppd からの要求に混乱してしまう場合にのみ、 +このオプションが必要です。 .TP -.B lcp-echo-failure \fI -このオプションが指定された場合、 LCP echo-request を \fIn\fR 回送信しても -相手から有効な LCP echo-reply が帰ってこなければ、\fIpppd\fR は -相手がダウンしているものと推測します。このような場合、\fIpppd\fR は -コネクションを切断します。このオプションを使用する際には、 -\fIlcp-echo-interval\fR のパラメータとして 0 以外の数値を指定して下さい。 -このオプションは、ハードウェアモデム制御線 (DSR) が使用できない状況で、 -( モデムが回線を切断するなどの ) 物理的なコネクションが切断された後に -\fIpppd\fR を終了するために用いられます。 +.B nomagic +magic number 交渉を無効にします。このオプションを指定した場合には、 +pppd +はループバック回線を検出することができません。 +相手にバグがある場合にのみ必要となります。 .TP -.B lcp-restart \fI -( 再送のタイムアウトによる ) LCP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B nopcomp +送受信方向とも、プロトコルフィールド圧縮交渉を無効にします。 .TP -.B lcp-max-terminate \fI -LCP terminate-request の最大送信回数を 回に設定します。 -デフォルト値は 3 です。 +.B nopersist +接続の確立と切断のたびに終了します。 +\fIpersist\fR または \fIdemand\fR のオプションが指定されない場合、 +このオプションはデフォルトです。 .TP -.B lcp-max-configure \fI -LCP configure-request の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B nopredictor1 +Predictor-1 圧縮を受け付けませんし、賛同もしません。 .TP -.B lcp-max-failure \fI -LCP configure-Rejects を送信開始するまでの LCP configure-NAKs 最大応答回数を - 回に設定します。デフォルト値は 10 です。 +.B noproxyarp +\fIproxyarp\fR オプションを無効にします。pppd のユーザに +proxy ARP エントリを作成させたくないシステム管理者は、このオプションを +/etc/ppp/options ファイルに記述することでそのようにできます。 .TP -.B ipcp-restart \fI -( 再送のタイムアウトによる ) IPCP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B novj +Van Jacobson 形式の TCP/IP ヘッダ圧縮を送受信方向において無効にします .TP -.B ipcp-max-terminate \fI -IPCP terminate-request の最大送信回数を 回に設定します。 -デフォルト値は 3 です。 +.B novjccomp +Van Jacobson 形式の TCP/IP ヘッダ圧縮において、 +connection-ID 圧縮を無効にします。 +このオプションを指定すると、 +pppd は Van Jacobson 圧縮された TCP/IP ヘッダから +connection-ID バイトを省略しなくなりますし、 +相手にも依頼しません。 .TP -.B ipcp-max-configure \fI -IPCP configure-request の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B papcrypt +相手の同一性を調べるために使われる +/etc/ppp/pap-secrets ファイル内の全ての秘密情報を暗号化することを +指示します。pppd は、暗号化前の /etc/ppp/pap-secrets +ファイルからの秘密情報と等しいパスワードを受け入れません。 +.TP +.B pap-max-authreq \fIn +PAP authenticate-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 10)。 +.TP +.B pap-restart \fIn +(再送のタイムアウトによる) PAP 再開の間隔を \fIn\fR 秒に設定します +(デフォルト値は 3)。 +.TP +.B pap-timeout \fIn +PAP において接続先が自己証明するまで +pppd +が待機する最大時間を、\fIn\fR 秒に +設定します (0 は制限を設けないことを意味します)。 +.TP +.B pass-filter \fIfilter-expression +送受信されるデータパケットに適用されるフィルタで、 +通過を許されるパケットを決定するフィルタを指定します。 +フィルタが拒否するパケットは黙って捨てられます。 +特定のネットワークデーモン (例えば routed) が +リンクバンド幅を使い切ることを防いだり、 +基本的なファイアウォール機能を提供するために、このオプションがあります。 +\fIfilter-expression\fR の文法は tcpdump(1) と同じですが、 +限定子は PPP リンクでは不適当ですので、 +\fBether\fR や \fBarp\fR は使用できません。 +一般的には、フィルタ式をシングルクォートで括って、 +式中の空白がシェルに解釈されることを避けるべきです。 +\fBinbound\fR と \fBoutbound\fR の限定子を付けることにより、 +入出力のパケットに異なった制約を適用可能です。 +このオプションは現在 NetBSD でのみ利用可能であり、 +カーネル及び pppd が PPP_FILTER を定義してコンパイルされた場合のみ、 +このオプションを利用可能です。 +.TP +.B persist +接続が切断された後で終了しません。代わりに再接続しようとします。 .TP -.B ipcp-max-failure \fI -IPCP configure-Rejects を送信開始するまでの IPCP configure-NAKs 最大応答回数を - 回に設定します。デフォルト値は 10 です。 +.B predictor1 +相手が送出するフレームを Predictor-1 圧縮を使用するよう要求し、 +要求された場合 Predictor-1 で送出フレームを圧縮することに賛同します。 +カーネルドライバが Predictor-1 圧縮をサポートしない場合には、 +このオプションは影響ありません。 .TP -.B pap-restart \fI -( 再送のタイムアウトによる ) PAP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B proxyarp +自システムの ARP [アドレス解決プロトコル; Address Resolution Protocol] +テーブルに相手の IP アドレス +と自システムのイーサネットアドレスを追加します。 +他のシステムに対して、 +相手がローカルイーサネット上にあるように見せることになります。 .TP -.B pap-max-authreq \fI -PAP authenticate-request の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B remotename \fIname +リモートシステムの名前を \fIname\fR とみなして認証を行います。 .TP -.B pap-timeout \fI -.I pppd -が PAP において接続先の認証のために待機する最大時間を 秒に -設定します(0 は制限を設けないことを意味します)。 +.B refuse-chap +このオプションを指定すると、 +pppd は相手に対して自己証明するにあたり CHAP の使用に賛同しません。 .TP -.B chap-restart \fI -( 再送のタイムアウトによる ) CHAP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B refuse-pap +このオプションを指定すると、 +pppd は相手に対して自己証明するにあたり PAP の使用に賛同しません。 .TP -.B chap-max-challenge \fI -CHAP challenge の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B require-chap +CHAP [チャレンジハンドシェーク認証プロトコル; +Challenge Handshake Authentication Protocol] を用いて +自己証明を行うことを相手に要求します。 .TP -.B chap-interval \fI -このオプションが指定された場合、 -.I pppd -は 秒おきに CHAP challenge を再送信します。 +.B require-pap +PAP [パスワード認証プロトコル; Password Authentication Protocol] を用いて +自己証明を行うことを相手に要求します。 .TP -.B ipcp-accept-local -このオプションが指定された場合には、 -別のオプションによってローカル IP アドレスの指定が行なわれている場合でも、 -.I pppd -は相手からのローカル IP アドレスの指定を受け入れます。 +.B silent +このオプションを指定した場合、 +pppd +は相手から有効な LCP パケットを受信するまで、 +接続を開始するための LCP パケットを送信せずに待ちます +(旧バージョンの pppd で 'passive' オプションを指定した場合と同じ動作です)。 .TP -.B ipcp-accept-remote -このオプションが指定された場合には、 -別のオプションによってリモート IP アドレスの指定が行なわれている場合でも、 -.I pppd -は相手からのリモート IP アドレスの指定を受け入れます。 +.B usehostname +認証時にホスト名をローカルシステムの名前として使用することを強制します +(ドメイン名が与えられれば付加されます)。 +(このオプションは \fIname\fR オプションに優先します。) +.TP +.B user \fIname +このマシンを相手に対して自己証明する際に用いるユーザ名を +\fIname\fR に設定します。 +.TP +.B vj-max-slots \fIn +Van Jacobson の TCP/IP ヘッダ圧縮/伸長に使用する接続スロット数を +\fIn\fR に設定します。 +2 から 16 (両端を含む) の範囲にある必要があります。 +.TP +.B welcome \fIscript +PPP 交渉開始前かつ、(もしあれば) 接続スクリプトの完了後に、 +\fIscript\fR で指定される実行コマンドもしくはシェルコマンドを実行します。 +\fInoauth\fR オプションが使用された場合には、 +このオプションは特権オプションとなります。 +.TP +.B xonxoff +ソフトウェアフロー制御 (つまり XON/XOFF) を使用してシリアルポート上の +データフローを制御します。 .SH オプションファイル オプションは、コマンドラインから与えられるのと同様に、 ファイルに記述されたものを用いることも可能です。 -.I pppd +pppd は、コマンドラインからのオプションを -読み込む前に /etc/ppp/options および ~/.ppprc から -オプションを読み込みます。オプションファイルの内容は、 +読み込む前に /etc/ppp/options, ~/.ppprc, /etc/ppp/options.\fIttyname\fR から +(この順に) オプションを読み込みます。 +(実際には、端末名を得るためにコマンドラインオプションがまずスキャンされてから、 +options.\fIttyname\fR ファイルが読まれます。) +options.\fIttyname\fR ファイル名構成にあたり、 +まず /dev/ が端末名から除かれ、残った / 文字がドットと置換されます。 +.PP +オプションファイルの内容は、 空白文字をデリミタとする単語の並びとして解釈されます。 空白文字を含む文字列はダブルクォート (") で囲うことで 1 つの文字列として解釈されるようになります。 -バックスラッシュ (\\) は、直後の 1 キャラクタをクォートします。 -シャープ文字 (#) はコメントの始まりとして解釈され、 +バックスラッシュ (\\) は、直後の 1 文字をクォートします。 +ハッシュ文字 (#) はコメントの始まりとして解釈され、 改行までをコメントとみなします。 -.SH 認証 +オプションファイル中での \fIfile\fR および \fIcall\fR のオプションの +使用制限はありません。 +.SH セキュリティ .I pppd は、正当なユーザに対するサーバマシンへの PPP アクセスを提供しつつ、 サーバ自身やそのサーバが存在するネットワークのセキュリティを危険に さらす心配のない、充分なアクセス制御をシステム管理者に提供します。 このアクセス制御の一部は、 /etc/ppp/options ファイルにより提供されます。 このファイルでシステム管理者は -.I pppd -が実行される時には常に認証を要求するように -オプションを設定することができます。 -また一部は、PAP や CHAP のシークレットファイルにより提供されます。 +pppd の使用制限を設定することができます。 +また一部は、PAP や CHAP の秘密情報ファイルにより提供されます。 このファイルで個々のユーザが使用する IP アドレスの組を 管理者が制限することができます。 +.PP +通常の pppd の用途においては、 +\fIauth\fR オプションを /etc/ppp/options ファイルに設定すべきです。 +(将来のリリースにおいてデフォルトになるかもしれません。) +ユーザが pppd を使用して相手にダイアルアウトしたい場合で、 +相手が自己証明することを拒否する場合 (インターネットサービスプロバイダなど)、 +システム管理者は /etc/ppp/peers 下にオプションファイルを作成し、 +ここに \fInoauth\fR オプションと、使用するシリアルポート名と、 +(必要なら) \fIconnect\fR オプションと、その他適切なオプションを格納します。 +このようにすることで、 +非特権ユーザが信頼関係のある相手との間で認証されない接続を結ぶことを可能 +とします。 +.PP +上述のように、セキュリティに影響するオプションは特権オプションであり、 +通常の非特権ユーザが setuid-root された pppd では使用できません。 +これは、コマンドラインでも、ユーザの ~/.ppprc ファイルでも、 +\fIfile\fR オプションを使用して読まれるオプションファイルでも言えることです。 +/etc/ppp/options ファイル中、 +もしくは \fIcall\fR オプションを使用して読まれるオプションファイル中では、 +特権オプションの使用は許されます。 +pppd が root ユーザにより起動された場合、特権オプションの使用は無制限です。 +.SH 認証 +認証とは、一方が他方に自己を認めさせる処理のことを言います。 +これは、一方が自己の名前を他方に送る際、 +その名前のオーソライズされた本物の使用者のみから生まれる +ある種の秘密情報を伴うことを必要とします。 +このような交換において、最初の一方を「クライアント」と呼び、 +他方を「サーバ」と呼びます。 +クライアントは自己をサーバに識別させるための名前を持ち、 +サーバもまた自己をクライアントに識別させるための名前を持ちます。 +一般的に本物のクライアントは秘密情報 (またはパスワード) をサーバと共有し、 +自己を証明するにあたりその秘密情報を知っていると伝えます。 +認証に使用される名前は相手のインターネットホスト名に対応することが多いですが、 +これは本質的なことではありません。 .LP -.I pppd +現在 pppd は 2 つの認証プロトコルをサポートします: +それぞれ、パスワード認証プロトコル (Password Authentication Protocol; PAP) と +チャレンジハンドシェーク認証プロトコル +(Challenge Handshake Authentication Protocol; CHAP) です。 +PAP の場合、クライアントは自己証明のために、 +自己の名前とクリアテキストパスワードをサーバに送る必要があります。 +これとは対称的に、CHAP 認証交換はサーバが開始し、 +チャレンジをクライアントに送ります +(チャレンジパケットにはサーバ名が含まれます)。 +クライアントはこれに返答する必要があり、 +返事の中に自己の名前に加えて共有秘密情報とチャレンジから得られるハッシュ値を +含め、自己が秘密情報を知っていると伝える必要があります。 +.LP +PPP プロトコルは対称的ですから、 +両者が他方に対して自己証明を行うように要求することを許します。 +この場合、2 つの別々かつ独立した認証交換が発生します。 +2 つの交換においては別の認証プロトコルを使用できますし、 +原則的には違う名前を使用可能です。 +.LP +pppd のデフォルトの挙動は、もし認証の要求があればそれを受け入れ、 相手側には認証を要求しないというものです。 ただし、 -.I pppd -がその認証を行なうのに必要なシークレットを持っていない +pppd +がその認証を行なうのに必要な秘密情報を持っていない 特定のプロトコルによる認証は拒否します。 .LP -認証はシークレットファイルから選ばれたシークレットをベースにしています。 -(PAP では /etc/ppp/pap-secrets が、CHAP では /etc/ppp/chap-secrets が -シークレットファイルです。) -どちらのシークレットファイルも同じフォーマットになっており、 -どちらもサーバ ( 認証する側 ) とクライアント ( 認証される側 ) の -それぞれの組合せを記録しておくことができます。 -.I pppd -はサーバにもクライアントにもなれることと、必要ならそれぞれの方向で -異なったプロトコルを使用した認証ができることに注意してください。 -.LP -シークレットファイルはオプションファイルと同じように単語の並びとして -解釈されます。一組のシークレットは最低でも 3 つの単語を含む 1 つの行として -指定され、3 つの単語はそれぞれクライアント名・サーバ名・シークレットとして -解釈されます。残りの単語があれば、それはクライアント側で -使用可能な IP アドレスのリストとして解釈されます。 -もしその行に 3 つの単語しかない場合は、どのような IP アドレスでも受け入れ -可能であると仮定されます。全ての IP アドレスを禁止するには "-" を使います。 -もしシークレットが一個の `@' で始まる場合には、続く文字列がシークレットを -読み込むファイルの名前であると仮定されます。 -クライアント名またはサーバ名が "*" であれば、それはどのような名前とも -マッチします。 -シークレットを選択する際、\fIpppd\fR は最も良くマッチするものを選びます。 -つまり、最もワイルドカードの少ないマッチが選ばれます。 -.LP -このように、シークレットファイルは他のホストを認証するための -シークレットに加えて、自分自身を他のホストに認証させるための -シークレットを含んでいます。 -どのシークレットを使うかは、自分の名前 ( ローカル名 ) と -相手側の名前 ( リモート名 ) をベースにして選ばれます。 -ローカル名は以下のようにしてセットされます。 -.TP 3 -\fBusehostname\fR オプションが指定されていれば、 -ローカル名はそのマシンのホスト名になります -( domain が指定されていれば追加されます)。 -.TP 3 -そうではなく、\fBname\fR が指定されていれば -最初の \fBname\fR オプションの引数が使われます。 -.TP 3 -そうではなく、ローカル IP アドレスがホスト名で指定されていれば -そのホスト名が使われます。 -.TP 3 -何も指定されていない場合は、このマシンのホスト名が使われます -( domain が指定されていれば追加されます)。 -.LP -PAP を使用して自分の認証を行なう場合、ユーザ名というものがありますが、 -デフォルトではローカル名が使われます。 -しかし、\fBuser\fR オプションまたは \fB+ua\fR オプションで -ユーザ名をセットすることができます。 -.LP -リモート名は以下のようにしてセットされます。 -.TP 3 -\fBremotename\fR オプションが指定されていれば、 -最後の \fBremotename\fR の引数が使われます。 -.TP 3 -そうではなく、リモート IP アドレスがホスト名で指定されていれば、 -そのホスト名が使用されます。 -.TP 3 -何も指定されていない場合、リモート名は空文字列 "" になります。 -.LP -PAP シークレットファイルからのシークレットの選択は -以下のように行なわれます。 -.TP 2 -* -相手側の認証を行なう場合には、PAP 認証要求で指定されたユーザ名が -クライアント名と一致し、サーバ名がローカル名と一致する -シークレットが選ばれます。 -.TP 2 -* -相手側に自分を認証してもらう場合には、クライアント名がユーザ名と -一致し、サーバ名がリモート名と一致するシークレットを探します。 -.LP -相手側を PAP で認証する際に、"" というシークレットは相手側から -送られてきた任意のパスワードとマッチします。 -もしパスワードがシークレットとマッチしなければ、 -パスワードは crypt() を使用して暗号化され、再びシークレットと -比較されます。このため相手側の認証に使用するシークレットは +pppd は認証に使用する秘密情報を秘密情報ファイル +(PAP の場合 /etc/ppp/pap-secrets、 +CHAP の場合 /etc/ppp/chap-secrets) に格納します。 +どちらの秘密情報ファイルも同じフォーマットです。 +秘密情報ファイルには、 +pppd が他のシステムに対して自己証明するための秘密情報を格納する +ことができますし、 +他のシステムの認証を行うための秘密情報を格納することも可能です。 +.LP +秘密情報ファイル中の各行は 1 つの秘密情報を格納します。 +特定の秘密情報はあるクライアントとサーバの組み合わせに対して特有です - +このクライアントがこのサーバに対して自己証明することにのみ使用されます。 +秘密情報ファイルの各行は、少くとも 3 つのフィールドからなります: +それぞれ、クライアント名、サーバ名、秘密情報です。 +指定したサーバに指定したクライアントが接続する時に使用する +IP アドレスリストを、これらのフィールドの後に続けることができます。 +.LP +秘密情報ファイルはオプションファイルと同じように単語の並びとして +解釈されますので、クライアント名、サーバ名、秘密情報の各フィールドは +1 語である必要があり、 +これに含まれる空白文字や特殊文字は +クォートもしくはエスケープする必要があります。 +同じ行の残りの語は、クライアントに許される IP アドレスのリストとされるか、 +(ワイルドカードでもなく空でもない) 特定のクライアント名を含む行の +場合は "local:remote" アドレス +(コマンドラインもしくはオプションファイルで共通フォーマット) +に優先します。 +行に 3 語しか無い場合もしくは最初の語が "-" である場合、 +全ての IP アドレスが不許可となります。 +全アドレスを許可するには "*" を使用します。 +また "!" から始まる語は、指定したアドレスを受け付け\fIない\fRことを示します。 +アドレスの後には "/" と数値 \fIn\fR を続けることが可能であり、 +全体のサブネットを示します。 +つまり、全てのアドレスの上位 \fIn\fR ビットが同じ値となります。 +クライアント名、サーバ名、秘密情報においては大文字小文字の区別は重要です。 +.LP +秘密情報が `@' から始まる場合、後続するものはファイル名であり、 +そこから秘密情報を読み込むものとされます。 +クライアント名もしくはクライアント名に単一の "*" を使用すると、 +いかなる名前にもマッチします。 +秘密情報を選択する時、pppd はベストマッチ、 +すなわちワイルドカードが最小となるマッチを採用します。 +.LP +秘密情報ファイルには、他のホストを認証するための秘密情報に加え、 +他のホストに対して自己証明するための秘密情報も格納します。 +pppd が相手を認証 (相手が相手であることを確認) する時、 +秘密情報の検索にあたり、 +相手の名前が最初のフィールドにありローカルシステムの名前が 2 番目のフィールド +にあるものを選びます。 +ローカルシステム名のデフォルトはホスト名であり、 +\fIdomain\fR オプション使用時にはドメイン名が付加されます。 +このデフォルトには \fIname\fR オプションが優先しますが、 +\fIusehostname\fR オプションが使用されている場合は例外です。 +.LP +pppd が相手に対する自己証明のための秘密情報を選ぶ時には、 +まずどの名前を使用して相手に対して自己識別するかを決めます。 +この名前はユーザが \fIuser\fR オプションで指定可能です。 +このオプションが使用されていない場合、 +名前はデフォルトのローカルシステム名となり、 +前の段落で示したように決定されます。 +こうして pppd は秘密情報の検索にあたり、 +この名前が最初のフィールドにあり相手の名前が 2 番目のフィールド +にあるものを選びます。 +CHAP 認証が使用される場合、 +相手はチャレンジパケット中に相手の名前を含めますから、 +pppd は相手の名前を知ることになります。 +しかし、PAP が使用される場合、 +ユーザが指定したオプションを元に pppd は相手の名前を決定します。 +ユーザは相手の名前を直接 \fIremotename\fR で指定可能です。 +そうではない場合で、リモート IP アドレスが (数値形式でなく) +名前で指定された場合、その名前を相手の名前として使用します。 +これに失敗すると、pppd は相手の名前に空文字列を使用します。 +.LP +相手側を PAP で認証する際に、提供されるパスワードはまず秘密情報ファイルの +秘密情報と比較されます。 +もしパスワードが秘密情報とマッチしなければ、 +パスワードは crypt() を使用して暗号化され、再び秘密情報と比較されます。 +このため相手側の認証に使用する秘密情報は 暗号化された形式で記録することができます。 -\fBpapcrypt\fR オプションが与えられた場合、よりよいセキュリティのため +\fIpapcrypt\fR オプションが与えられた場合、よりよいセキュリティのため 最初の (暗号化されていない) 比較対象は除外されます。 .LP -もし \fBlogin\fR オプションが指定されていれば、ユーザ名とパスワードも +更にもし \fIlogin\fR オプションが指定されていれば、ユーザ名とパスワードも システムパスワードデータベースでチェックされます。 このためシステム管理者は特定のユーザだけに PPP アクセスを 許可し、個々のユーザが使用できる IP アドレスの組を -制限するよう pap-secrets ファイルをセットアップすることができます。 -典型的には、\fBlogin\fR オプションを使う時に、 /etc/ppp/pap-secrets -中の シークレット部分を "" とすることで、同じシークレットが二つの -場所で必要とされることを避けることができます。 +制限するよう pap-secrets ファイルを設定することができます。 +典型的には、\fIlogin\fR オプションを使う時に、 +/etc/ppp/pap-secrets 中の秘密情報を "" とすることで、 +相手が提供するいかなるパスワードにもマッチするようになります。 +これにより、同じ秘密情報を 2 個所で必要とされることを避けることができます。 .LP \fBlogin\fR オプションが使われている時には、更なる確認が行われます。 /etc/ppp/ppp.deny が存在して、ユーザがそこに記述されている場合、 -認証は失敗します。 /etc/ppp/ppp.shells が存在して、ユーザの普通の +認証は失敗します。 /etc/ppp/ppp.shells が存在して、ユーザの通常の ログインシェルが記述されていない場合、認証は失敗します。 .LP -CHAP シークレットファイルからのシークレットの選択は -以下のように行なわれます。 -.TP 2 -* -相手側の認証を行なう場合には、CHAP-Response メッセージで指定された -名前がクライアント名と一致し、サーバ名がローカル名と一致する -シークレットを探します。 -.TP 2 -* -相手側に自分を認証してもらう場合には、クライアント名がローカル名と -一致し、CHAP-Challenge メッセージで指定された名前がサーバ名と一致する -シークレットを探します。 -.LP -認証は IPCP (またはその他の NCP) が開始される前に納得のいくように -完了している必要があります。 -もしも認証に失敗すると、\fIpppd\fR は (LCP をクローズすることで) -リンクを切断します。 +認証は IPCP (またはその他のネットワーク制御プロトコル) +が開始される前に納得のいくように完了している必要があります。 +相手が自己証明することを求められている時に、認証に失敗すると、 +\fIpppd\fR は (LCP をクローズすることで) リンクを切断します。 もし IPCP で得られたリモートホストの IP アドレスが受け入れられない ものであった場合、IPCP はクローズされます。 IP パケットは IPCP が オープンしている時だけ送受信可能です。 .LP ローカルホストが一般的に認証を必要とする時でも、 -接続を行い限定された IP アドレスの組の一つを使うために -自分自身の認証を行うことができないようないくつかのホストに対して、 +接続を行い限定された IP アドレスの組の 1 つを使うために +自己証明ができないホストに対して、 接続を認める必要がある場合もあります。 -もし相手側がこちらの認証要求を拒否した場合、\fIpppd\fR はそれを +もし相手側がこちらの認証要求を拒否した場合、pppd はそれを ユーザ名とパスワードが空文字列である PAP 認証として扱います。 そこで、クライアント名とパスワードに空文字列を指定した 1 行を -pap-secrets ファイルに追加することで、自分自身の認証を拒否する +pap-secrets ファイルに追加することで、自己証明を拒否する ホストにも制限つきのアクセスを許可することができます。 .SH 経路制御 .LP -IPCP negotiation が成功した場合、 -.I pppd +IPCP 交渉が成功した場合、 +pppd はカーネルに、PPP インタフェースで用いるローカル IP アドレスおよび -リモート IP アドレスを通知します。これは、相手側と IP パケットを交換する +リモート IP アドレスを通知します。 +これは、相手側と IP パケットを交換する リンクのリモート終端への経路を作成するのに充分な情報です。 -サーバ以外のマシンとの通信には、一般的にはルーティング -テーブルや ARP テーブルのさらなる更新が必要となります。 -いくつかのケースでは、これらのテーブルの -更新は \fIrouted\fR や \fIgated\fR などのデーモンプロセスが -自動的に行なってくれます。 -しかし、大半のケースでは、さらに何らかの介入が必要となります。 -.LP -インターネットへの接続を PPP インタフェース経由のみで行なうマシンの -場合には、リモートホストを通る default route の追加が -しばしば必要となる場合があります。 -\fBdefaultroute\fR オプションは、IPCP が完了した際に \fIpppd\fR に -そのような default route を作成させ、リンクが切断されたときには -その default route を削除させます。 +サーバ以外のマシンとの通信には、一般的には経路 +テーブルや ARP (アドレス解決プロトコル; Address Resolution Protocol) +テーブルのさらなる更新が必要となります。 +ほとんどの場合 \fIdefaultroute\fR や \fIproxyarp\fR オプションで十分ですが、 +更なる解析が必要な場合もあります。 +/etc/ppp/ip-up スクリプトが使用可能な場合があります。 +.LP +インターネットへの接続を PPP インタフェース経由のみで行うマシンの +場合には、リモートホストを通るデフォルト経路の追加が +望ましい場合があります。 +\fIdefaultroute\fR オプションは、IPCP が完了した際に pppd に +そのようなデフォルト経路を作成させ、リンクが切断されたときには +そのデフォルト経路を削除させます。 .LP 例えばサーバマシンが LAN に接続されている場合、LAN 上の他のホストが リモートホストと通信できるようにするために proxy ARP の使用が -必要な場合もあります。 -\fBproxyarp\fR オプションを指定すると、\fIpppd\fR はリモートホストと -同一サブネット上にある ( ブロードキャストと ARP をサポートし、動作中 -かつ point-to-point やループバックでない ) ネットワークインタフェースを -探します。そのようなインタフェースが見つかった場合、\fIpppd\fR は +望ましい場合もあります。 +\fIproxyarp\fR オプションを指定すると、pppd はリモートホストと +同一サブネット上にある (ブロードキャストと ARP をサポートし、動作中 +かつ point-to-point やループバックでない) ネットワークインタフェースを +探します。 +そのようなインタフェースが見つかった場合、pppd は 恒久的に公開された ARP エントリとしてリモートホストの IP アドレスと その見つかったネットワークインタフェースのイーサネット (MAC) アドレスを 登録します。 +.LP +\fIdemand\fR オプション使用時は、IPCP 起動時に +インタフェースの IP アドレスは設定済みです。 +pppd がインタフェース設定に使用したものと同じアドレスを +交渉できなかった場合には +(例えば ISP が動的に IP アドレスを割り当てる場合)、 +pppd はインタフェースの IP アドレスを交渉されたものに +変更する必要があります。 +この場合既存の接続を破壊するかもしれませんので、 +動的 IP 割り当てを行う相手と要求時ダイアルを行うことは勧められません。 .SH 使用例 .LP -もっとも単純な場合では、2 つのマシンのシリアルポートをつなぎ、 -それぞれのマシンで以下のようなコマンドを実行します。 +(ppp の配布のデフォルトの /etc/ppp/options ファイルと同じく) +以下の例では /etc/ppp/options ファイルは +\fIauth\fR オプションを含むものとします +.LP +おそらく最も一般的な pppd の使用方法は ISP へダイアルアウトすることでしょう。 +この場合次のコマンドを使用します。 .IP -pppd /dev/ttya 9600 passive +pppd call isp .LP -ただしそれぞれのマシンにおいて、シリアルポートで \fIgetty\fR が -走っていないものと仮定しています。 -もし片方のマシンで \fIgetty\fR が走っている場合、 -\fIkermit\fR や \fItip\fR などの通信プログラムを用いて \fIgetty\fR が -走っているマシンにログインし、次のようなコマンドを実行します。 +ここで /etc/ppp/peers/isp ファイルはシステム管理者が次のように設定します: .IP -pppd passive +ttyS0 19200 crtscts +.br +connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp' +.br +noauth +.LP +この例では、chat を使用して ISP のモデムにダイアルし、 +必要なログオンシーケンスを通過します。 +/etc/ppp/chat-isp ファイルは chat が使用するスクリプトを含みます。 +例えば次のようになっています: +.IP +ABORT "NO CARRIER" +.br +ABORT "NO DIALTONE" +.br +ABORT "ERROR" +.br +ABORT "NO ANSWER" +.br +ABORT "BUSY" +.br +ABORT "Username/Password Incorrect" +.br +"" "at" +.br +OK "at&d0&c1" +.br +OK "atdt2468135" +.br +"name:" "^Umyuserid" +.br +"word:" "\\qmypassword" +.br +"ispts" "\\q^Uppp" +.br +"~-^Uppp-~" +.LP +chat スクリプトの詳細については、 +chat(8) のマニュアルページを参照してください。 .LP -それから通信プログラムを終了し、( コネクションが切断されていないことを確 -認して ) 次のようなコマンドを実行します。 +pppd はまたダイアルイン ppp サービスをユーザに提供するために使用可能です。 +ユーザが既にログインアカウントを持っている場合には、 +ppp サービスの最も簡単な設定方法は、 +ユーザにそのアカウントでログインしてもらってから、 +(setuid-root された) pppd を次のように実行することです。 .IP -pppd /dev/ttya 9600 +pppd proxyarp .LP -もう一方のマシンへのログインおよび \fIpppd\fR の開始処理は、 -\fBconnect\fR オプションを使用して \fIchat\fR スクリプトを起動することで -自動化できます。 -例 : +ユーザが PPP 機能を使用することを許すためには、 +そのユーザのマシンのための IP アドレスを割り当て、 +/etc/ppp/pap-secrets または /etc/ppp/chap-secrets (ユーザのマシンの PPP 実装が +どちらの認証方法をサポートするかに依存します) +にエントリを作成して、ユーザのマシンを認証可能とします。 +例えば、Joe が "joespc" というマシンを持っていて、"server" というマシンへの +ダイアルインおよび joespc.my.net という IP アドレスの使用が許されている場合、 +次のようなエントリを /etc/ppp/pap-secrets または /etc/ppp/chap-secrets に +加えます: .IP -pppd /dev/ttya 38400 connect 'chat "" "" "login:" "username" -"Password:" "password" "% " "exec pppd passive"' +joespc server "joe's secret" joespc.my.net .LP -(ただし、このように chat プログラムを起動すると、パスワードの文字列が -pppd や chat のパラメータリスト (ps 等の出力で得られます ) で -見えてしまうことに注意して下さい。) +別の方法として、(例えば) "ppp" といったユーザ名を作成し、 +そのログインシェルを pppd とし、 +ホームディレクトリを /etc/ppp とする方法があります。 +この方法で pppd を実行する場合に使用するオプションは +/etc/ppp/.ppprc に置くことができます。 .LP -もしあなたのシリアルコネクションがケーブル一本でなく、もっと複雑な場合には、 -いくつかのコントロールキャラクタがエスケープされるように +もしあなたのシリアル接続がケーブル 1 本でなく、もっと複雑な場合には、 +いくつかの制御文字がエスケープされるように 準備しておく必要があります。とりわけ、XON (^Q) および XOFF (^S) を、 -\fBasyncmap a0000\fR を用いてエスケープすることはしばしば有効です。 -パスが telnet を含む場合には、 ^] キャラクタも同様にエスケープ -(\fBasyncmap 200a0000\fR を指定 ) する必要があるでしょう。 +\fIasyncmap a0000\fR を用いてエスケープすることはしばしば有効です。 +パスが telnet を含む場合には、 ^] 文字も同様にエスケープ +(\fIasyncmap 200a0000\fR を指定) する必要があるでしょう。 パスが rlogin を含む場合には、rlogin クライアントの動作している側の -ホストで \fBescape ff\fR を指定する必要があるでしょう。これは、多くの +ホストで \fIescape ff\fR を指定する必要があるでしょう。これは、多くの rlogin の実装がネットワーク透過でないためです。 それらの rlogin では、 0xff, 0xff, 0x73, 0x73 とそれに続く 8 バイトの シーケンスをストリームから取り除きます。 .SH 診断 .LP メッセージは LOG_DAEMON ファシリティを用いて syslog デーモンに 送られます (これは希望するファシリティを LOG_PPP マクロとして定義し、 -\fIpppd\fR を再コンパイルすることで変更することができます)。 +pppd を再コンパイルすることで変更することができます)。 エラーメッセージやデバッグメッセージを見るためには、 /etc/syslogd.conf ファイルを編集して pppd からのメッセージが 希望する出力デバイスやファイルに書き出されるようにしておく必要があります。 .LP -\fBdebug\fR オプションは送受信されるすべての制御パケットの内容が +\fIdebug\fR オプションは送受信されるすべての制御パケットの内容が ログに記録されるようにします。対象となる制御パケットは、 すべての LCP, PAP, CHAP, IPCP パケットです。 -この機能は、PPP ネゴシエーションがうまくいかない場合の原因究明に -効果的でしょう。 +この機能は、PPP 交渉がうまくいかない場合や +認証が失敗する場合の原因究明に効果的でしょう。 コンパイル時にデバッギングオプションを有効にしていた場合には、 -\fBdebug\fR もまた他のデバッグメッセージを記録するために使われます。 +\fIdebug\fR もまた他のデバッグメッセージを記録するために使われます。 .LP .I pppd プロセスに SIGUSR1 シグナルを送ってデバッギングを有効にすることが できます。これはトグル動作します。 -.SH 関連ファイル -.TP -.B /var/run/ppp\fIn\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(others) -ppp インタフェースユニット \fIn\fR に対応する \fIpppd\fR プロセスの -プロセス ID が記録されます。 +.SH スクリプト +pppd は処理の様々な段階においてスクリプトを起動し、 +サイト固有の追加処理を行います。 +これらのスクリプトは通常シェルスクリプトですが、 +実行可能コードファイルであってもかまいません。 +pppd はスクリプトが終了するまで待ちません。 +スクリプトは root にて (実ユーザ ID および実効ユーザ ID とも 0 に設定して) +実行されますので、経路テーブルの更新や特権デーモンの実行が可能です。 +これらのスクリプトの内容によってシステムセキュリティが危うくならないよう +注意してください。 +pppd は標準入力・標準出力・標準エラー出力を /dev/null にリダイレクトし、 +リンクの情報を与えるいくつかの環境変数を除いて環境変数を空にして、 +スクリプトを実行します。 +pppd が設定する環境変数を以下に示します: +.TP +.B DEVICE +使用しているシリアル tty デバイス名。 +.TP +.B IFNAME +使用しているネットワークインタフェース名。 +.TP +.B IPLOCAL +リンクのローカル側の IP アドレス。 +IPCP が立ち上がった時のみ設定されます。 +.TP +.B IPREMOTE +リンクのリモート側の IP アドレス。 +IPCP が立ち上がった時のみ設定されます。 +.TP +.B PEERNAME +相手の認証された名前。 +相手が自己証明した場合のみ設定されます。 +.TP +.B SPEED +tty デバイスのボーレート。 +.TP +.B UID +pppd を起動したユーザの実ユーザ ID。 +.P +pppd は、以下のスクリプトが存在すれば起動します。 +存在しなくてもエラーではありません。 +.TP +.B /etc/ppp/auth-up +リモートシステムが成功裏に自己証明した後で実行される +プログラムまたはスクリプトです。 +次のものをパラメータとして実行されます。 +.IP +\fIinterface-name peer-name user-name tty-device speed\fR +.IP +相手が自己証明しない場合には、 +このスクリプトは実行されないことに注意してください。 +例えば \fInoauth\fR オプションが使用される時がこれにあたります。 .TP -.B /var/run/tty\fIXn\fB.if \fR(BSD or Linux), \fB/etc/ppp/tty\fIXn\fB.if \fR(others) -シリアルデバイス /dev/tty\fIXn\fR 上の \fIpppd\fR プロセスのための -インタフェースです。 +.B /etc/ppp/auth-down +/etc/ppp/auth-up が以前実行された後でリンクが落ちた時に実行される +プログラムまたはスクリプトです。 +これは /etc/ppp/auth-up と同じパラメータを与えて、同じ方法で実行されます。 .TP .B /etc/ppp/ip-up -そのリンクで IP パケットの送受信が行なえるようになった時 -(IPCP が完了した時 ) に実行されるプログラムまたはスクリプトです。 -これは +そのリンクで IP パケットの送受信が行えるようになった時 +(IPCP が完了した時) に実行されるプログラムまたはスクリプトです。 +次のものをパラメータとして実行されます。 .IP \fIinterface-name tty-device speed local-IP-address -remote-IP-address\fR -.IP -をパラメータに与えて標準入力をつかって実行されます。 -出力とエラー出力は、 \fB/dev/null\fR にリダイレクトされます。 -.IP -このプログラムまたはスクリプトは、pppd と同一の実ユーザ ID および実効 -ユーザ ID で実行されます。 -つまり、少なくとも実効ユーザ ID は \fBroot\fR であり、 -できれば実ユーザ ID も \fBroot\fR であることが望まれます。 -これは、経路情報を変更したり、( 例えば sendmail のような ) 特権デーモン等を -動作させたりするのに必要だからです。 -/etc/ppp/ip-up や /etc/ppp/ip-down スクリプトの内容については、 -システムのセキュリティを危うくしないよう注意して下さい。 +remote-IP-address ipparam\fR .TP .B /etc/ppp/ip-down そのリンクで IP パケットの送受信ができなくなった場合に実行される プログラムまたはスクリプトです。 -このスクリプトは /etc/ppp/ip-up スクリプトで行なった変更を +このスクリプトは /etc/ppp/ip-up スクリプトで行った変更を 元にもどすために用いられます。 -これは ip-up と同じパラメータを与えて実行されます。 -なお、\fIpppd\fR と同じ実効ユーザ ID および実ユーザ ID で実行されるため、 -ip-up スクリプトと同様にセキュリティ上の考慮が必要になります。 +これは ip-up と同じパラメータを与えて、同じ方法で実行されます。 +.TP +.B /etc/ppp/ipx-up +そのリンクで IPX パケットの送受信が行えるようになった時 +(IPXCP が完了した時) に実行されるプログラムまたはスクリプトです。 +次のものをパラメータとして実行されます。 +.IP +\fIinterface-name tty-device speed network-number local-IPX-node-address +remote-IPX-node-address local-IPX-routing-protocol remote-IPX-routing-protocol +local-IPX-router-name remote-IPX-router-name ipparam pppd-pid\fR +.IP +local-IPX-routing-protocol および remote-IPX-routing-protocol のフィールドは +以下のいずれかです: +.IP +NONE 経路プロトコルが無いことを示します +.br +RIP RIP/SAP を使うべきであることを示します +.br +NLSP Novell NLSP を使うべきであることを示します +.br +RIP NLSP RIP/SAP と NLSP の両方を使うべきであることを示します +.TP +.B /etc/ppp/ipx-down +そのリンクで IPX パケットの送受信ができなくなった場合に実行される +プログラムまたはスクリプトです。 +このスクリプトは /etc/ppp/ipx-up スクリプトで行った変更を +元にもどすために用いられます。 +これは ipx-up と同じパラメータを与えて、同じ方法で実行されます。 +.SH 関連ファイル +.TP +.B /var/run/ppp\fIn\fB.pid \fR(BSD または Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(その他) +ppp インタフェースユニット \fIn\fR に対応する pppd プロセスの +プロセス ID が記録されます。 .TP .B /etc/ppp/pap-secrets PAP 認証で使用するユーザ名、パスワード、IP アドレスを格納します。 +このファイルは root が所有し、他のユーザは読み書きできてはなりません。 +そうでない場合 pppd は警告ログを行います。 .TP .B /etc/ppp/chap-secrets -CHAP 認証で使用する名前、シークレット、IP アドレスを格納します。 +CHAP 認証で使用する名前、秘密情報、IP アドレスを格納します。 +このファイルは root が所有し、他のユーザは読み書きできてはなりません。 +そうでない場合 pppd は警告ログを行います。 .TP .B /etc/ppp/options -.I pppd -のシステムデフォルトオプションを記述します。このファイルは、コマンド -ラインのオプションが解釈される前に読み込まれます。 +pppd +のシステムデフォルトオプションを記述します。 +ユーザデフォルトオプションおよびコマンド +ラインオプションが読まれる前に読み込まれます。 .TP .B ~/.ppprc -ユーザごとのデフォルトオプションを記述します。このファイルは、コマンド -ラインのオプションが解釈される前に読み込まれます。 +ユーザ毎のデフォルトオプションを記述します。 +/etc/ppp/options.\fIttyname が読まれる前に読み込まれます。 .TP .B /etc/ppp/options.\fIttyname 各シリアルポートのシステムデフォルトオプションを指定します。 -このファイルは、コマンドラインのオプションが解釈された後で読み込まれます。 +~/.ppprc の後で読まれます。 +このファイル名の \fIttyname\fR 部分の構成にあたり、 +まず /dev/ が (存在すれば) ポート名から除かれ、 +残ったスラッシュがドットに置換されます。 +.TP +.B /etc/ppp/peers +pppd が非 root ユーザによって起動されたとしても +特権オプションを含んでかまわないオプションファイルを含むディレクトリです。 +システム管理者はオプションファイルをこのディレクトリ中に作成することにより、 +非特権ユーザが相手の認証を要さずにダイアルアウト可能とします。 +しかし、信頼関係のある相手のみ可能です。 .TP .B /etc/ppp/ppp.deny システムのパスワードによる PAP 認証を使わせないユーザを記述します。 .TP .B /etc/ppp/ppp.shells システムのパスワードによる PAP 認証ログインのために適切なシェルを 記述します。 .SH 関連項目 .IR chat(8), .IR ppp(8) .TP .B RFC1144 Jacobson, V. -.I Compressing TCP/IP headers for low-speed serial links. -1990 February. +\fICompressing TCP/IP headers for low-speed serial links.\fR +February 1990. .TP .B RFC1321 Rivest, R. .I The MD5 Message-Digest Algorithm. -1992 April. +April 1992. .TP .B RFC1332 McGregor, G. .I PPP Internet Protocol Control Protocol (IPCP). -1992 May. +May 1992. .TP .B RFC1334 Lloyd, B.; Simpson, W.A. .I PPP authentication protocols. -1992 October. +October 1992. .TP -.B RFC1548 +.B RFC1661 Simpson, W.A. .I The Point\-to\-Point Protocol (PPP). -1993 December. +July 1994. .TP -.B RFC1549 +.B RFC1662 Simpson, W.A. -.I PPP in HDLC Framing. -1993 December +.I PPP in HDLC-like Framing. +July 1994. .SH 注意 以下のシグナルが -.I pppd -プロセスに送られた場合、ここで説明する効果が得られます。 +pppd +に送られた場合、ここで説明する効果が得られます。 .TP .B SIGINT, SIGTERM -これらのシグナルを受信した場合、\fIpppd\fR は (LCP をクローズすることで ) +これらのシグナルを受信した場合、pppd は (LCP をクローズすることで) リンクを切断し、シリアルデバイスの設定を復元して、プログラムを終了します。 .TP .B SIGHUP -物理層のリンク切断を指示します。\fIpppd\fR はシリアルデバイスの設定を復元し、 -プログラムを終了します。 -\fBpersist\fR オプションが指定されている場合、 \fBpppd\fR は -シリアルデバイスを再オープンし、新しい接続を始めようとします。 -そうでない場合は、 \fBpppd\fR は終了します。 +物理層のリンク切断を指示します。pppd はシリアルデバイスの設定を復元し、 +シリアルデバイスを閉じます。 +\fIpersist\fR または \fIdemand\fR のオプションが指定されている場合、pppd は +シリアルデバイスを再オープンし、(抑止期間を置いてから) +新しい接続を始めようとします。 +そうでない場合は、pppd は終了します。 +このシグナルを抑止期間に受けると、pppd は抑止期間をすぐに終了します。 +.TP +.B SIGUSR1 +このシグナルは、\fIdebug\fR オプションの状態を反転します。 +.TP .B SIGUSR2 このシグナルは、 -.B pppd -に圧縮に付いて再交渉させます。これは、致命的な伸長エラーの結果として +pppd +に圧縮に付いて再び交渉させます。 +これは、致命的な伸長エラーの結果として 圧縮を止めた後で、再び圧縮を有効にするために便利です。 -BSD 圧縮方式では、致命的な伸長エラーは一般にどちらかの実装上の -バグである可能性を示します。 -.\".SH バグ -.\"モデム制御線の使用と \fBmodem\fR オプション、\fBlocal\fR オプションの -.\"動作については、はっきりとは定義されていません。 -.\"(訳中)前記原文には確認できないので、コメントアウトした。 -.\" 2.2.1R 対象(1997/05/26) Takeshi MUTOH +(致命的な伸長エラーは一般にどちらかの実装上の +バグを示します。) .SH 作者 +Paul Mackerras (Paul.Mackerras@cs.anu.edu.au) が、 Drew Perkins, Brad Clements, Karl Fox, Greg Christy, -Brad Parker , -Paul Mackerras (paulus@cs.anu.edu.au) +Brad Parker +の作業を元に作成しました。 diff --git a/ja/man/man8/rmail.8 b/ja/man/man8/rmail.8 index 8c70040fcb..9515eaf152 100644 --- a/ja/man/man8/rmail.8 +++ b/ja/man/man8/rmail.8 @@ -1,75 +1,75 @@ .\" Copyright (c) 1983, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rmail.8 6.10 (Berkeley) 4/29/93 .\" jpman %Id: rmail.8,v 1.2 1997/05/16 07:57:46 yugawa Stab % -.\" %Id: rmail.8,v 1.2.8.1 1997/02/28 07:54:43 mpp Exp % +.\" %Id: rmail.8,v 1.2.8.2 1998/06/30 06:43:18 charnier Exp % .\" .Dd April 29, 1993 .Dt RMAIL 8 .Os BSD 4.2 .Sh 名称 .Nm rmail .Nd uucpで送られてきたメールを処理する .Sh 書式 .Nm rmail .Ar user ... .Sh 解説 -.Nm rmail +.Nm は .Xr uucp 1 経由で受けとったメールを解釈し、 .Xr mail.local 8 によって生成される``From''行を、``return-path!sender'' という一行に変換して .Xr sendmail 8 に渡します。 .Pp -.Nm rmail +.Nm は、明らかに -.Xr uucp +.Xr uucp 1 と -.Xr sendmail +.Xr sendmail 8 で使われるように設計されています。 .Sh 関連項目 .Xr uucp 1 , .Xr mail.local 8 , .Xr sendmail 8 .Sh 歴史 -.Nm rmail +.Nm プログラムは .Bx 4.2 から登場しました。 .Sh バグ .Nm rmail は .Pa /bin に置くべきではありません。 diff --git a/ja/man/man8/sync.8 b/ja/man/man8/sync.8 index 225eef8c79..413f81edf4 100644 --- a/ja/man/man8/sync.8 +++ b/ja/man/man8/sync.8 @@ -1,76 +1,76 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sync.8 8.1 (Berkeley) 5/31/93 .\" jpman %Id: sync.8,v 1.2 1997/04/10 05:32:43 mutoh Stab % -.\" %Id: sync.8,v 1.3.2.1 1997/08/25 09:25:24 jkh Exp % +.\" %Id: sync.8,v 1.3.2.2 1998/06/30 06:42:40 charnier Exp % .\" .Dd May 31, 1993 .Dt SYNC 8 .Os BSD 4 .Sh 名称 .Nm sync .Nd 未実行のディスク書き込みを強制実行する ( キャッシュのフラッシュ ) .Sh 書式 .Nm sync .Sh 解説 .Xr reboot 8 または .Xr halt 8 を使わずにプロセッサを停止する場合、全てのディスク書き込みが 適切に完了することを保証するため、停止に先だって .Nm sync を呼ぶことができます。 一般的には、システムをシャットダウンするには -.Xr reboot +.Xr reboot 8 もしくは -.Xr halt +.Xr halt 8 を使うことが好ましいでしょう。 なぜならこれらのプログラムは、最終的な .Nm sync を実行する前に、内蔵時計の再同期や内部キャッシュの フラッシュなどの追加動作を実行する場合があるからです。 .Pp .Nm sync は、 .Xr sync 2 ファンクションコールを利用します。 .Sh 関連項目 .Xr fsync 2 , .Xr sync 2 , .Xr update 4 , .Xr halt 8 , .Xr reboot 8 .Sh 歴史 .Nm sync コマンドは .At v6 から実装されました。 diff --git a/ja_JP.eucJP/man/man1/cat.1 b/ja_JP.eucJP/man/man1/cat.1 index 66183b6678..bf471dba92 100644 --- a/ja_JP.eucJP/man/man1/cat.1 +++ b/ja_JP.eucJP/man/man1/cat.1 @@ -1,116 +1,118 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)cat.1 8.3 (Berkeley) 5/2/95 .\" jpman %Id: cat.1,v 1.3 1997/08/31 14:09:30 horikawa Stab % -.\" %Id: cat.1,v 1.3.2.1 1997/02/28 07:54:20 mpp Exp % +.\" %Id: cat.1,v 1.3.2.2 1998/06/30 06:42:19 charnier Exp % .\" .Dd May 2, 1995 .Dt CAT 1 .Os BSD 3 .Sh 名称 .Nm cat .Nd ファイルの連結、表示を行う .Sh 書式 .Nm cat .Op Fl benstuv .Op Fl .Op Ar .Sh 解説 .Nm cat はファイルを連続的に読み込み、標準出力に書き出します。 .Ar file はコマンドラインに記述された順番で処理されます。 ``-'' は標準入力を表します。 .Pp オプションは以下のとおりです。 -.Bl -tag -width Ds +.Bl -tag -width width .It Fl b -.Fl n -と同じですが、空行を行数として数えません。 +非空白行に、1 から開始する番号を付けます。 .It Fl e +表示できない文字を目に見える形で表示し ( .Fl v -と同じですが、各行の最後に +オプション参照)、各行の最後に .Pq Ql \&$ を表示します。 .It Fl n 行番号を付け加えます。行番号は 1 から始まります。 .It Fl s 連続した空行を圧縮します。連続した空行は 1 行の空行 として出力されます。 .It Fl t +表示できない文字を目に見える形で表示し ( .Fl v -と同じですが、タブを +オプション参照)、タブを .Ql ^I で表示します。 .It Fl u 出力のバッファリングを行いません。 .It Fl v 表示できない文字を目に見える形で表示します。 control-X は .Ql ^X 、削除文字 (8進数で 0177) は .Ql ^? と表示されます。 -ASCII 文字でないもの ( 最上位ビットが立っているもの ) +.Tn ASCII +文字でないもの ( 最上位ビットが立っているもの ) は、 .Ql M- (メタ) のあとに残りの7ビットで表されるキャラクタを 表示します。 .El .Pp .Nm cat は実行に成功すると 0 を返し、エラーが起こると 0 より 大きな値を返します。 .Sh バグ シェルの出力リダイレクトのメカニズムが原因で、 .Dq Li cat file1 file2 > file1 は file1 に最初に入っているデータを消去してしまいます! .Sh 関連項目 .Xr head 1 , .Xr more 1 , .Xr pr 1 , .Xr tail 1 , .Xr vis 1 .Rs .%A Rob Pike .%T "UNIX Style, or cat -v Considered Harmful" .%J "USENIX Summer Conference Proceedings" .%D 1983 .Re .Sh 歴史 .Nm は Version 1 AT&T UNIX から登場しました。 -Dennis Ritchie がマニュアルの初版をデザインし、執筆しました。 - +.An Dennis Ritchie +がマニュアルの初版をデザインし、執筆しました。 diff --git a/ja_JP.eucJP/man/man1/csh.1 b/ja_JP.eucJP/man/man1/csh.1 index 3cc1301443..d257858c72 100644 --- a/ja_JP.eucJP/man/man1/csh.1 +++ b/ja_JP.eucJP/man/man1/csh.1 @@ -1,2188 +1,2194 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)csh.1 8.2 (Berkeley) 1/21/94 .\" jpman %Id: csh.1,v 1.2 1997/04/08 00:35:51 h-nokubi Stab % -.\" %Id: csh.1,v 1.5.2.1 1997/02/28 07:54:29 mpp Exp % +.\" %Id: csh.1,v 1.5.2.2 1998/06/30 06:42:24 charnier Exp % .\" .\" Japanese translation for jpman-0.2 checked by jpman project 96.12.23 .\" .Dd January 21, 1994 .Dt CSH 1 .Os BSD 4 .Sh 名称 .Nm csh .Nd C 言語ライクな文法を持つシェル(コマンドインタプリタ) .Sh 書式 .Nm csh .Op Fl bcefimnstvVxX .Op arg ... .Nm csh .Op Fl l .Sh 解説 .Nm csh は、履歴(参照: -.Nm ヒストリ置換 +.Sx ヒストリ置換 の項)、ジョブ制御(参照: -.Nm ジョブ +.Sx ジョブ の項)、対話的なファイル名とユーザ名の補完(参照: .Nm ファイル名補完 の項)、C 言語ライクな文法を特徴とするコマンドインタプリタです。 対話的なログイン・シェル、また シェル・スクリプトのコマンド・プロセッサの両方の用途で使われます。 .Ss 引数リスト処理 シェルへの最初の引数(第 0 引数)が .Ql Fl \& で始まる場合、シェルはログイン・シェルとなります。 シェルを .Ql Fl l フラグを指定して起動することでもログイン・シェルにできます。 .Pp 残りのフラグは以下のように解釈されます: .Bl -tag -width 5n .It Fl b このフラグは、オプションの処理を強制的に中断させる場合に使用します。この フラグ以降の引数はすべて、オプションではない引数として処理されます。 これにより、シェル・スクリプトに混乱やごまかしを行わずにオプションを 渡すことが可能になります。 set-user ID スクリプトは本オプションなしでは実行できません。 .It Fl c コマンドを本フラグの次にくる 1 つの引数から読み込みます。 この引数は省略できません。残りの引数は .Ar argv に代入されます。 .It Fl e 起動したコマンドが異常終了したり、0 でない終了ステータスを返したときに、 ただちにシェルを終了します。 .It Fl f 起動したユーザのホーム・ディレクトリにある .Pa \&.cshrc を捜さず、また読み込まないため高速に起動します。 .It Fl i たとえ端末上で実行されていなくても、対話的に動作しプロンプトを表示します。 入力と出力が端末である場合、本オプションなしでもシェルは対話的に動作します。 .It Fl l ログイン・シェルとなります。( .Fl l が、指定された唯一のフラグの場合にのみ有効です。) .It Fl m シェルは、実効ユーザに属していなくても .Pa .cshrc をロードします。 .Xr su 1 は .Fl m をシェルに渡すことができます。 .It Fl n コマンドの解析は行いますが、実行しません。シェル・スクリプトの 文法検査に役立ちます。 .It Fl s 標準入力からコマンドを読み込みます。 .It Fl t 入力から1行だけ読み込み、それを実行します。改行の直前に .Ql \e を置くことで、次の行への継続を行うことができます。 .It Fl v .Ar verbose 変数を設定します。これにより、ヒストリ置換された状態のコマンド行を 表示するようになります。 .It Fl x .Ar echo 変数を設定します。これにより、実行直前に、実行するコマンドを 表示するようになります。 .It Fl V .Pa .cshrc を実行するより前に .Ar verbose 変数を設定します。 .It Fl X .Pa .cshrc を実行するより前に .Ar echo 変数を設定します。 .El .Pp .Fl X に対する .Fl x の関係は、ちょうど .Fl V に対する .Fl v の関係に相当します。 .Pp フラグ引数の処理のあと、もし引数が残っていて、かつ、 .Fl c , .Fl i , .Fl s , .Fl t のいずれのフラグも指定されていなければ、残っている最初の引数は コマンドファイル名であるとみなされます。シェルはこのファイルをオープンし、 `$0' による置換に備えてファイル名を保存します。多くのシステムは version 6 または version 7 の標準のシェルを使っており、また、それらの シェル・スクリプトは本シェルとは互換性がないので、 スクリプトの先頭の文字が `#' でない場合、 つまりスクリプトがコメントから始まらない場合、 本シェルはそれらの `標準' シェルを起動して実行します。 残りの引数は変数 .Ar argv に初期値として設定されます。 .Pp .Nm csh は、実行開始に際し、まず、ファイル .Pa /etc/csh.cshrc を読み込み実行します。ログイン・シェルであれば、さらに、ファイル .Pa \&/etc/csh.login を読み込み実行します。 次にシェルを起動したユーザの .Ar ホーム ・ディレクトリにあるファイル .Pa \&.cshrc を読み込み実行します。ログイン・シェルであるなら、 さらに、同じディレクトリのファイル .Pa \&.login を読み込み、実行します。 .Pa \&.login の通常の使い方としては、ユーザが CRT 画面の設定のために ``stty crt'' を実行したり、 .Xr tset 1 を実行したりするために用いられます。 .Pp 通常、シェルはプロンプト `% ' を表示し、端末からコマンドを読み込みます。 引数の処理やコマンド・スクリプトを含むファイルの処理については後述します。 .Pp シェルは以下の動作を繰り返します: 読み込んだ行を .Ar 単語 に分解します。この単語の列をコマンド履歴に格納し、解析します。 最後にその行の各コマンドを実行します。 .Pp ログイン・シェルが終了するとき、ユーザの .Ar ホーム ディレクトリのファイル .Pa .logout と .Pa /etc/csh.logout を読み込み実行します。 .Ss 字句構造 シェルは、読み込んだ行を空白とタブを区切りとして単語に分割します。ただし、 以下の例外があります。文字 `&' `\&|' `;' `<' `>' `(' `)' は独立した単語となります。`&&', `\&|\&|', `<<', `>>' のように 2つ繰り返されている場合はペアで1単語を形成します。 これらのメタキャラクタは、直前に `\e' を置くことによって、単語の一部としたり、 特別な意味を無視させることができます。改行の直前に `\e' を置くと、 単一の空白と等価になります。 .Pp 対応したクォート記号 `'\|', `\*(ga', `"' に狭まれた文字列は、単語の一部分となります。 このような文字列中のメタキャラクタやブランク、 タブによって単語が分割されることはありません。 これらのクォートの意味はあとで説明します。 `\'' または `"' の内側で改行文字の直前に `\e' を置くと、 改行文字そのものになります。 .Pp シェルの入力が端末からではない場合、 `#' 文字から改行まではコメントとして扱われます。 直前に `\e' を置くか `\`', `\'', `"" でクォートすることにより、 この意味を抑制することができます。 .Ss コマンド 単純コマンドは単語の列であり、最初の単語が実行すべきコマンドを示します。 `\&|' 記号で区切られた、単純コマンドあるいは単純コマンドの列は パイプラインを形成します。パイプラインの各コマンドの出力は、次のコマンドの 入力に接続されます。パイプラインの列を `;' によって区切ることで逐次実行が 行えます。パイプラインの列に続けて `&' を置くと、そのパイプラインの終了を 待つことなく、次のパイプラインが実行されます。 .Pp 上記のいずれかを `(' と `)' で囲むことにより、単純コマンドを形成することが できます (これはパイプライン等の構成要素として使えます)。 また、パイプラインを `\&|\&|' または `&&' で区切ることにより、C 言語のように、第 2 のパイプラインが第 1 のパイプラインが失敗あるいは 成功したときにのみ実行させることができます( .Em 式 の項参照)。 .Ss ジョブ シェルはパイプラインの各々に対し .Ar ジョブ を 1 つづつ関連付けます。シェルは、現在実行中のジョブの一覧表を保持しており、 これは、 .Ar jobs コマンドによって表示することができます。 ジョブには整数の番号が割り当てられます。ジョブが `&' を用いて非同期に 起動された場合、シェルは以下のような出力を行います: .Bd -filled -offset indent .Op 1 1234 .Ed .Pp これは、非同期に起動したジョブがジョブ番号 1 であり、プロセス ID が 1234 である (トップレベルの) プロセスを 1 つ持っていることを示します。 .Pp もし、あるジョブを実行中に他のことをしたくなった場合、 -.Nm ^Z +.Em ^Z キー (control-Z) を押すことにより実行中のジョブに STOP シグナルを 送信することができます。通常、シェルはそのジョブが停止した(Stopped)ことを 出力し、プロンプトを表示します。ここで、停止したジョブの状態を操作することが できます。つまり、 .Ar bg コマンドにより停止したプロセスを .Em バックグラウンド で走行させたり、他のコマンドを実行してから、停止していたジョブを .Ar fg コマンドにより .Em フォアグラウンド で再実行させることなどができます。 -.Nm ^Z +.Em ^Z は即座に効力を発揮し、インタラプトと同様に、それまで待たされていた 出力とまだ読み込まれていない入力は捨てられます。 ほかに特殊キーとして .Nm ^Y があり、これを押すと、プログラムが .Xr read 2 によって読み込もうとした時点で STOP シグナルが送信されます。 これは、実行中のジョブに対していくつかの入力を先に入力しておき、 先行入力を読み終えた時点でジョブを停止させたいときに便利です。 .Pp バックグラウンドで実行しているジョブが端末からの入力を試みた場合、その ジョブは停止します。通常、バックグラウンドジョブが端末に出力することは 可能ですが、これは、コマンド ``stty tostop'' により禁止することができます。 もし、この tty オプションを指定したなら、バックグラウンドで実行している ジョブは、端末から入力を試みたときと同様に、端末に出力を試みたときに 停止します。 .Pp シェルでジョブを参照するにはいくつかの方法があります。文字 `%' は ジョブ名を表すのに用いられます。番号 1 のジョブを参照する場合は `%1' とします。 単にジョブ名を入力した場合、そのジョブはフォアグラウンドに移動されます。 すなわち `%1' は `fg %1' と等価で、番号 1 のジョブをフォアグラウンドで 実行させます。同様に `%1 &' は番号 1 のジョブをバックグラウンドで 走行させます。ジョブはそのジョブを起動したときにタイプされた文字列の 先頭部分によって参照することもできます。ただし、この先頭部分は あいまいでない必要があります。すなわち、`%ex' は、`ex' という文字列で 始まる名前のサスペンドされたジョブが 1 つしかない場合に限り、サスペンドされた .Xr ex 1 のジョブを再開します。文字列 .Ar string を含むジョブが 1 つしかない場合、`%?string' と入力することで、 それを指定することもできます。 .Pp シェルは現在のジョブと直前のジョブを覚えています。jobs コマンドの 出力では、`+' 記号が付加されているのが現在のジョブ、`\-' 記号が 付加されているのが直前のジョブです。`%+' は現在のジョブ、`%\-' は 直前のジョブの省略形です。後述する .Ar ヒストリ の文法から類推される記法として、`%%' があります。 これもまた現在のジョブの省略形です。 .Pp ジョブ制御機構を用いるには、 .Xr stty 1 のオプション .Ic new を設定しておく必要があります。ジョブ制御機構は、 .Em 新型 の端末ドライバの実装の上に構築されているからです。 新型の端末ドライバにより、ジョブを停止させるためのシグナルを キーボードから入力できるわけです。 新型の端末ドライバのオプション設定については stty(1) を参照してください。 .Ss 状態通知 シェルは、プロセスが状態の変化を起こすと、すぐにそれを検知します。通常、 プロンプトが表示される直前にのみ、あるジョブが停止し、それ以上処理が 進まなくなったことを通知します。これは、ユーザの仕事を邪魔しないように するためです。 しかしながら、シェル変数 .Ar notify をセットすることにより、シェルにバックグラウンド・ジョブの状態が 変化したことをただちに通知させることができます。 また、シェルコマンド .Ar notify により、特定のジョブの状態の変化をただちに通知させる ようにマークすることもできます。引数なしの .Ar notify は現在のプロセスに対してマークをつけます。 バックグラウンド・ジョブの開始直後に単に `notify' と打つと そのジョブをマークします。 .Pp 停止したジョブがある状態でシェルを終了しようとすると、`You have stopped jobs.' という警告を受けます。このとき、 .Ar jobs コマンドによりどのジョブが停止中であるのかを確認することができます。 警告を受けた直後に .Ar jobs コマンドで確認した場合と、 警告を受けた直後に再度シェルを終了させようとした場合には、 シェルは 2 度目の警告を行わず、停止中のジョブは終了させてから シェルを終了します。 .Ss ファイル名補完 シェル変数 .Ar filec がセットされてファイル名補完機能が有効になっている場合、 ( .Ic set の項参照) .Nm csh はファイル名やユーザ名の補完を対話的に行います。文字列に続けて エスケープ文字 (エスケープキー、または control-[) キーを端末から 入力することにより補完が行われます。 たとえば、以下のファイルがカレント・ディレクトリにあったとします。 .Bd -literal -offset indent DSC.OLD bin cmd lib xmpl.c DSC.NEW chaosnet cmtest mail xmpl.o bench class dev mbox xmpl.out .Ed .Pp ここで、以下のように入力します。 .Pp .Dl % vi ch .Pp このとき、 .Nm csh は ``ch'' を補完し、それにマッチする唯一のファイル名 ``chaosnet'' にします。補完後の入力行は以下のようになります。 .Pp .Dl % vi chaosnet .Pp 以下のように入力した場合は、 .Pp .Dl % vi D .Pp .Nm csh は、次のように補完を行います。 .Pp .Dl % vi DSC. .Pp ここで、端末ベルを鳴らし、補完が完了しなかったことをユーザに伝えます。 なぜなら、``D'' で始まるファイル名が複数あったからです。 .Pp 不完全なファイル名に続いて end-of-file 文字(通常は control-D)を入力すると、 名前の補完を行うかわりに、その名前にマッチするファイル名の一覧を出力します。 たとえば、以下のように入力すると、 .Pp .Dl % vi D .Pp ``D'' で始まるファイル名の一覧が以下のように出力されます: .Pp .Dl DSC.NEW DSC.OLD .Pp このとき、入力行は変化しません。 .Pp エスケープ文字と、end-of-file 文字を用いる同様の機構は、 ユーザ名を補完する場合にも用いることができます。この場合、``~'' で 名前を開始します。たとえば、次のように入力すると、 .Pp .Dl cd ~ro .Pp 以下のように補完されます。 .Pp .Dl cd ~root .Pp シェル変数 .Ar nobeep をセットすることにより、複数の候補があったり、補完に 失敗した場合に端末ベルを鳴らすのを禁止することができます。 .Pp 通常、そのディレクトリにあるすべてのファイル名が補完の候補となります。 ある特定の拡張子を持つファイルを補完の候補から外すのに、変数 .Ar fignore を用いる ことができます。以下のコマンドで、変数 .Ar fignore を設定すると、 .Pp .Dl % set fignore = (.o .out) .Pp 以下のように入力した場合に、 .Pp .Dl % vi x .Pp 次のように補完が行われます。 .Pp .Dl % vi xmpl.c .Pp つまり、"xmpl.o" と "xmpl.out" が無視されて補完が行われました。もし、 .Ar fignore で無視するように指定されたファイル名しか補完の対象になり得なかった場合、 .Ar fignore の設定は無視されます。また、 .Ar fignore は end-of-file 文字によるファイル名の一覧には影響を与えません。 一覧ではすべてのファイル名が出力されます。 .Ss 置換 ここからは、シェルが入力に対して行うさまざまな置換を、 処理が行われる順に記述します。 .Ss ヒストリ置換 ヒストリ置換は、以前に入力されたコマンド中の単語を、 新たなコマンドの一部として置き換えることで、 コマンドの繰り返し実行を容易にしたり、直前のコマンドの引数を次のコマンドで 再び使用したり、直前に入力した行の綴り間違いを修正する際に、 タイプ入力の手間を減らし、自信をもって修正できるようにするための機能です。 ヒストリ置換は文字 `!' により始まり、入力ストリームの .Ar どの位置にでも 置くことができます(ただし、入れ子にすることは -.Nm できません +.Em できません )。`\e' を `!' の前に置くことにより、`!' の特殊な意味を打ち消すことが できます。また、利便のために、`!' の直後に空白、タブ、改行文字、 `=', `(' が続いた場合、ヒストリ置換は行われず、入力された文字がそのまま 用いられます(ヒストリ置換は、入力行が `\*(ua' で始まっている場合にも 起こります。これについては後述します)。入力行にヒストリ置換が含まれている 場合は、実行直前にヒストリ置換を行った結果が端末に出力されます。 .Pp 端末から入力された、1 つあるいはそれ以上の単語からなるコマンドは ヒストリ・リストに記録されます。ヒストリ置換は、この記録された 単語の列を入力ストリームに挿入することにより行われます。 ヒストリ・リストの大きさは、変数 .Ar history により制御されます。直前のコマンドは .Ar history の値に関わらず必ず 保存されます。記録されているコマンドは 1 から順にイベント番号が 割り当てられます。 .Pp .Ar history コマンドにより、以下の出力が得られたとします: .Bd -literal -offset indent \09 write michael 10 ex write.c 11 cat oldwrite.c 12 diff *write.c .Ed .Pp コマンドはイベント番号とともに出力されています。必ずしもイベント番号を 用いる必要はありませんが、プロンプト文字列に `!' を埋めることにより、 現在のイベント番号を .Ar プロンプト 中に表示させることができます。 .Pp 現在のイベント番号が 13 だとすると、以前のイベントを指定するには、 イベント番号を用いて `!11' としたり、 相対指定を用いて `!\-2' としたり(同じイベントを表します)する方法があります。 また、コマンドの単語の先頭部分を用いて指定することもできます。例えば、`!d' でイベント番号 12 を指定したり、 `!wri' でイベント番号 9 を指定できます。また、 ある文字列を含むコマンドを指定するのに `!?mic?' (これはイベント番号 9 の コマンドを示します)のような記法も使えます。これらの記法は、指定された イベントの各単語を単一の空白で区切った単語列に置換します。特殊な 場合として、`!!' は直前のコマンドを参照します。すなわち、`!!' だけを 入力することは直前のコマンドの .Ar 再実行 を意味します。 .Pp あるイベント中のいくつかの単語だけを指定するために、イベント指定に続けて `:' と単語指示子を書くことができます。イベントの単語は 0 から順に番号が 振られています。最初の単語(通常はコマンドです)が 0 で、2 番目の単語 (第1引数)が 1 ということになります。基本的な単語指示子は以下のとおりです: .Pp .Bl -tag -width Ds -compact -offset indent .It \&0 最初の(コマンド)単語 .It Ar n .Ar n 番目の単語 .It \*(ua 最初の引数(すなわち 1 と同じ) .It $ 最後の引数 .It % 直前の .No \&? Ns Ar s Ns \&? 検索でマッチした単語 .It Ar \&x\-y .Ar x 番目から .Ar y 番目までの単語 .It Ar \&\-y .Ar `\&0\-y\' の省略形 .It * `\*(ua\-$' の省略形。イベントが1語のみからなる場合は空になる .It Ar x* .Ar `x\-$\' の省略形 .It Ar x\- .Ar `x*\' から最後の単語を除いたもの。 .El .Pp イベント指定と単語指示子とを区切る `:' は、引数選択子が `\*(ua', `$', `*', `\-', `%' で始まっている場合には省略することができます。 単語指示子の直後に、 `:' に続けて 修飾子を複数個置くことができます。以下の修飾子が定義されています: .Pp .Bl -tag -width Ds -compact -offset indent .It h パス名の最後の要素を削除します(head) .It r 最後の `.xxx' 要素を削除します(root) .It e `.xxx' 以外の部分を削除します(extension) .It s Ns Ar /l/r/ Substitute .Ar l を .Ar r で置換します(substitution) .It t 最後の要素を残して、それより前のパス名の要素全てを削除します。 .It \&& 直前の修飾子の作用を繰り返します。 .It g 上記の修飾子の直前に置き、変更を、各単語に 1 回だけ及ぼすことを指定します。 例) `g&' .It a 上記の修飾子の直前に置き、1 つの単語に対して可能な限り繰り返して 変更を行います。変更が全単語に及ぶようにするには `g' と組み合わせて使います。 .It p 置換結果を表示しますが、実行はしません(print only) .It q さらに置換が行われないように、置換結果をクォートします(quote) .It x q と同様ですが、空白、タブ、改行によって単語を分割します .El .Pp `g' が指定されなかった場合、適用可能な最初の単語のみが修飾子の影響を受けます。 置換については、適用可能な単語がなかった場合にはエラーとなります。 .Pp 置換(s/l/r/) における左辺 ( .Ar l ) は、エディタなどで使うような正規表現ではなく単なる文字列です。`/' のかわりに自由な文字を区切りに指定することができます。`\e' によって、 .Ar l または .Ar r 中の区切り文字をクォートすることができます。右辺 ( .Ar r ) 中の文字 `&' は 左辺の文字列に置換されます。`&' もまた `\e' によって クォートすることができます。 空の左辺値 .Ar l (`//') の場合、直前の左辺値 .Ar l または、 .No \&`!? Ns Ar s Ns ?' 中のコンテキストスキャン文字列 .Ar s から左辺値が取られます。置換指定の直後に改行がくる場合には、 最後の区切り文字を省略することができます。 コンテキストスキャンの後ろ側の文字 `?' も、直後に改行がくる場合、 同様に省略できます。 .Pp ヒストリは、 `!$' のようにイベント指定なしで参照することができます。 同じ行においてそれ以前にヒストリ参照が行われた場合はそのイベントを、 さもなければ直前のコマンドが参照されます。`!?foo?\*(ua !$' は `?foo?' に マッチするイベントの最初と最後の単語に置換されます。 .Pp 入力行の最初の非空白文字が `\*(ua' の場合、特殊なヒストリ参照の省略形であると みなします。これは `!:s\*(ua' と等価で、直前に入力したコマンド行の 文字列置換を行うことができます。たとえば、`\*(ualb\*(ualib' は 直前のコマンドの `lib' の綴り間違いを修正します。 最後に、後ろに続く文字とヒストリ置換とを隔離するために、 ヒストリ置換を `{' と `}' によって囲むことができます。`ls -ld ~paul' なる コマンドを実行した直後に`!{l}a' と 入力することで、`ls -ld ~paula' に展開されます。一方、`{}' を 使わずに `!la' とした場合は `la' で始まるイベントを検索します。 .Pp .Ss \' と \&" によるクォート 文字列を `\'' または `"' によって クォートすることにより、残りの置換のすべてあるいは一部を 抑制することができます。`'' によってクォートされた文字列には 本マニュアルのこれ以降に説明する置換が適用されません。`"' によって クォートされた文字列は、後述するように一部の置換が適用されます。 .Pp どちらのクォートの結果も単一の単語 (の全体または一部) となります。 ただし、`"' クォートされたコマンド置換は複数の単語になる特殊な場合が 1 つだけあります(後述の -.Em コマンド置換 +.Sx コマンド置換 の項を参照)。 `\'' クォートの場合は、このようなことはありません。 .Ss エイリアス置換 シェルはエイリアス(別名定義)を管理しており、 .Ar alias コマンドと .Ar unalias コマンドに より設定、表示、修正等を行うことができます。コマンド行がスキャンされたあと、 個々のコマンドに解析され、各コマンドの最初の単語に対応するエイリアスが あるかどうかチェックします。もし存在すれば、入力されたコマンド行の内容を 直前のコマンドとみなして、エイリアスの内容をヒストリ展開します。 コマンド行全体は展開結果と置き換えられます。エイリアスの内容が ヒストリ参照を含まなかった場合、入力したコマンド行の引数は変更せずに 残されます。 .Pp `ls' に対するエイリアスが `ls -l' だった場合、`ls /usr' は `ls -l /usr' に展開されます。この場合、エイリアスにはヒストリ参照がなかったため、 引数の `/usr' は変更せずに残されました。`lookup' に対するエイリアスが `grep !\*(ua /etc/passwd' だった場合、`lookup bill' は `grep bill /etc/passwd' に展開されます。 .Pp エイリアスが展開された場合、展開結果に対して単語分割とエイリアス検索が 再度行われます。展開結果の最初の単語が展開前の最初の単語と同一になった場合、 再度エイリアス検索が行われることはありません。それ以外の、エイリアスによる ループは検出され、エラー扱いとなります。 .Pp このメカニズムによってエイリアスでパーサのメタ記法を利用できます。 よって `alias print \'pr \e!* \&| lpr\'' とエイリアスすることで .Ar pr の 引数をプリンタに出力させるというようなことができます。 .Ss 変数置換 シェルは変数を管理しており、それらは 0 個またはそれ以上の単語のリストを 値として持ちます。変数のうちいくつかはシェルがセットしたり参照したりします。 たとえば、変数 .Ar argv はシェルへの引数を保持しており、この変数の値である単語は、特殊な方法で 参照されます。 .\" #### jpman kuma 96.12.05 here checked ... TO BE CONTINUED .Pp 変数の値は .Ar set および .Ar unset コマンドにより参照、変更することができます。シェルが 参照する変数のうちいくつかは、それがセットされているかどうかだけが重要 であり、値が何であっても意味を持たないものがあります。たとえば、変数 .Ar verbose は入力行がエコーされるかどうかを制御する変数であり、この変数を セットすることは、 .Nm csh に .Fl v オプションを指定したのと同じ意味になります。 .Pp 変数を数値として扱う操作もあります。`@' コマンドによって変数に対して数値演算 を適用し、演算結果を変数に代入することができます。しかしながら、変数の 値はつねに文字列として表現されます。数値演算の場合、空文字列は 0 と みなし、変数の値が複数の単語からなる場合 2 番目以降の単語は無視されます。 .Pp 入力行にエイリアス置換を行い、構文解析を行ったあと、コマンドが実行される 前に文字 `$' をキーとして変数置換を行います。`$' の直前に `\e' を置くことにより、変数置換を抑制することができます。 ただし、`"' クォート中では変数置換は .Em 必ず 行われますが、`\'' クォート中では .Em 決して行われません。 `\*(ga' クォートのなかはさらにあとで解釈されるため(後述の -.Nm コマンド置換 +.Sx コマンド置換 の項を参照)、ここでは変数置換は行いません。`$' の直後に空白、タブ、 改行がくる場合、`$' はそのまま残されます。 .Pp 入出力リダイレクトは変数置換より前に解釈され、別々に変数置換が行われます。 それ以外のコマンド名と引数は同時に展開されます。このため、最初の 単語(コマンド)が展開の結果、複数の単語となったり、展開された結果の 最初の単語がコマンド名、それ以外が引数の一部になることもあります。 .Pp `"' でクォートされておらず、変数置換に `:q' 修飾子も指定されなかった 場合には、変数置換の結果にコマンドとファイル名置換が 行われます。`"' クォート内では複数の単語からなる値を持つ変数は、各単語を 1つの空白で区切った単一の単語 (の一部) に展開されます。`:q' 修飾子が 指定された場合は、各単語は 1 つの空白で区切られ、 この後のコマンドとファイル名置換を抑止するために、個々にクォートされた 単語の列に展開されます。 .Pp 変数置換には以下の形式があります。特に記述していない場合、 セットされていない変数の参照はエラーになります。 .Pp .Bl -tag -width Ds -compact -offset indent .It $name .It ${name} .\" #### modified by kuma 96.12.21 #### 変数 .Ar name の値の各単語を 1 つの空白文字で区切ったものに展開されます。中括弧は .Ar 変数名 と後続する文字を分離し、後続する文字が変数名の一部と解釈されないように するために用いられます。シェル変数は 20 文字までの名前を持ちます。 変数名の先頭はアルファベットで、それ以降はアルファベット、数字、 アンダースコアを使用することができます。 .Ar name という名前のシェル変数は存在しないが、同名のセットされた環境変数が 存在する場合には、その値に置換されます(ただし、環境変数に対しては .Nm : 修飾子と以降に説明する書式を 用いることはできません)。 .It $name Ns Op selector .It ${name Ns [ selector ] } 変数 .Ar name の値のうちいくつかの単語を選択して展開します。 .Ar selector は 1 つの数字、範囲を示す2つの数字を `\-' でつないだもの、あるいはそのような 結果になる変数置換のいずれかです。単語は 1 から順序づけられています。 範囲の最初の数字が省略された場合は 1 が用いられます。範囲の第2の数字が 省略された場合は `$#name' が用いられます。selector として `*' が用いられた 場合には、すべての単語に展開されます。範囲の第2の数字が省略されるか、 単語数より小さい場合には、範囲が空になってもエラーとはなりません。 .It $#name .It ${#name} 変数の値の単語数に展開されます。 この機能は後述する `$argv[selector]' で有用です。 .It $0 コマンドを読み込んでいるファイル名に展開されます。ファイル名が不明の場合は エラーとなります。 .It $number .It ${number} `$argv[number]' と等価です。 .It $* `$argv[*]' と等価です。 .El .Pp 修飾子 `:e', `:h', `:t', `:r', `:q', `:x' や `:gh', `:gt', `:gr' を適用することができます。中括弧 `{' `}' で 囲まれている場合は、中括弧内に修飾子が存在しなければなりません。 現在の csh の実装では、各 `$' 展開につき1つの修飾子のみ指定することができます。 .Pp 以下の置換を行なう場合は `:' 修飾子を指定することはできません。 .Bl -tag -width Ds -compact -offset indent .It $?name .It ${?name} 変数 name がセットされていれば `1' に、さもなければ `0' に展開されます。 .It $?0 現在の入力ファイル名がわかっていれば `1' に、不明ならば `0' に展開されます。 .It \&$\&$\& 親のシェルの (10進の) プロセス番号に展開されます。 .It $! そのシェルから起動された最後のバックグラウンド・プロセスの (10進の) プロセス番号に展開されます。 .It $< 標準入力から1行を読み込み、その内容に展開されます。読み込んだ内容の解釈は 行いません。スクリプト中でキーボードからの入力を受けるのに用いられます。 .El .Ss コマンドとファイル名置換 残りの置換であるコマンド置換とファイル名置換は、 組み込みコマンドの引数に対しては 適用されたり、されなかったりします。 .\" #### changed by kuma 96.12.21 #### すなわち、式の中で評価が行われない部分に関しては 以下の置換が行なわれません。組み込みコマンドではないコマンドにおいては、 コマンド名は引数とは別に置換が行なわれます。 .\" #### changed by kuma 96.12.21 #### コマンド名に対する置換が生じるのは一連の置換処理の最後の方で、 入出力リダイレクトの設定後、メインシェルの子供の中で行われます。 .Ss コマンド置換 コマンド置換は、コマンドを `\*(ga' で囲むことによって指示します。 コマンドからの 出力は空白、タブ、改行によって単語に分割され、空の単語を削除したあとに 元の文字列と置換されます。 `"' の内部では、改行のみが単語分割の区切りとして扱われ、空白とタブは そのまま残されます。 .Pp どちらの場合も、コマンドの出力の最後の改行は単語の区切りとはならず、単に 削除されます。 よってコマンド置換によって、コマンドの出力が完全な 1 行であっても、 単語の一部分のみを生成することが可能です。 .Ss ファイル名置換 単語が文字 `*', `?', `[', `{' を含んでいるか、単語の先頭文字が `~' の .\" #### modified by kuma 96.12.21 #### 場合、その単語はファイル名展開(あるいはグロブ(glob)と呼ばれます)の 候補となります。 .\" #### modified by kuma 96.12.21 #### 候補となった単語はパターンとみなされ、パターンにマッチするファイル名が アルファベット順にソートされた列に置換されます。 ファイル名置換を含む単語の列がどれもファイル名にマッチしなかった場合には エラーとなりますが、 すべての単語パターンがマッチする必要はありません。 メタキャラクタ`*', `?', `[' のみがパターンマッチ文字であり、`~' と `{' は省略形といったほうが近いで しょう。 .Pp ファイル名マッチにおいて、ファイル名先頭、または `/' の直後の `.' は、 `/' と同様に明示的にマッチさせなければなりません(`*' や `?' は これらにマッチしません)。 `*' は、空文字列を含むどのような文字列にもマッチします。`?' は、 どのような1文字にもマッチします。 .Sq Op ... は、括弧のなかで指定した文字のいずれかにマッチします。 .Sq Op ... 内では、文字の対を `\-' でつなぐことで、 文字の範囲を指定することができます(両側の文字も含まれます)。 .Pp ファイル名の先頭の `~' はホーム・ディレクトリを示すのに用いられます。 単独で用いられた場合には、シェルを起動したユーザのホーム・ディレクトリ .\" #### modified by kuma 96.12.21 #### (変数 .Ar home の値に反映されているとおり)に展開されます。`~' に続けてアルファベット、 数字、`-' からなる単語が続いた場合は、その単語をユーザ名とみなして、 そのユーザのホーム・ディレクトリに展開されます。たとえば、ユーザ ken の ホーム・ディレクトリが `/usr/ken' ならば、`~ken' は `/usr/ken' に、 `~ken/chmach' は `/usr/ken/chmach' に展開されます。 直後にアルファベットと `/' 以外が続く`~'と、ファイル名の先頭にない `~' は 変更されずにそのまま残されます。 .Pp メタ記法 `a{b,c,d}e' は `abe ace ade' の短縮形です。 .\" #### modified by kuma 96.12.21 #### この記法の左から右への出現順序は保存されます。 展開結果は下位のレベルで個別にソートされ、出現順序は保存されます。 この記法は入れ子にすることができます。 source のホーム・ディレクトリが `/usr/source' ならば、 `~source/s1/{oldls,ls}.c' は `/usr/source/s1/oldls.c /usr/source/s1/ls.c' に展開されます。このとき oldls.c や ls.c が 存在しなくともエラーにはなりません。同様に、`../{memo,*box}' は `../memo ../box ../mbox' 等に展開されます(`memo' と `*box' の 展開結果がいっしょに ソートされたりしていないことに注意してください)。特殊な場合として、 単独の`{' と `}', `{}' は変更されずにそのまま残されます。 .Ss 入出力 コマンドの標準入出力は、以下の方法によりリダイレクトすることができます: .Pp .Bl -tag -width Ds -compact -offset indent .It < name ファイル .Ar name (変数、コマンド、ファイル名展開を受けます)をオープンし、 コマンドの標準入力とします。 .It << word .Ar word と同一の行が出現するまで、シェルの入力を読み込みます。 .Ar word は変数、ファイル名、コマンド置換を受けません。シェル入力の行は 読み込まれるとすぐに .Ar word と比較されます(置換を行う前に)。その後、 .Ar word に `\e', `"', `\'', `\*(ga' クォートが出現しないなら、読み込まれた行には 変数置換と .\" #### ^^^^^^^ `\'' だと思う(1次チェック者のコメント?jpman kuma 961205) .\" #### kuma agree with you, changed as specified 96.12.22 コマンド置換が適用されます。この置換を抑制するために、`\e' によって `$', `\e', `\*(ga' をクォートすることができます。コマンド置換において、 すべての空白、タブ、改行は保存されますが、最後の改行は削除されます。 読み込んだ行はすべて中間的なファイルに保存され、コマンドの標準入力として 用いられます。 .It > name .It >! name .It >& name .It >&! name ファイル .Ar name を標準出力として用います。ファイルが存在しなければ作成され、 すでにファイルが存在すればその内容は切り捨てられ、以前の内容は失われます。 .Pp 変数 .Ar noclobber がセットされている場合、ファイルが存在しないか文字型特殊ファイル (端末や `/dev/null' のような) でなければエラーになります。これは、 すでに存在するファイルを思いがけず削除してしまうことを防止します。`!' を 用いた形式を使うと、この検査を抑制することができます。 .Pp `&' を用いた形式では、標準出力とともに標準エラー出力もファイルへ リダイレクトされます。 .Ar name .\" #### modified by kuma 96.12.21 #### は、 `<' の入力ファイル名の場合と同様の展開を受けます。 .It >> name .It >>& name .It >>! name .It >>&! name `>' と同様に、ファイル .Ar name を標準出力として用います。ただし、コマンドの出力はファイルへ追加されます。 変数 .Ar noclobber がセットされている場合、 ファイルが存在しなければエラーとなります(`!' を用いることで、 この検査を抑制することができます)。 他は `>' と同様です。 .El .Pp コマンドは、シェルが起動されたときの環境を、入出力リダイレクトと パイプラインによって変更したもののなかで実行されます。以前のいくつかの シェルとは異なり、 シェルコマンドファイルから起動されたコマンドは、デフォルトでは標準入力に よってシェルコマンドファイル自体にアクセスすることはできません。 かわりに、シェルが起動した環境の標準入力をそのまま受け継いでいます。 `<<' 機構はインラインデータのために用いるべきです。 このように制限することにより、 シェルコマンドスクリプトをパイプラインの一部として用いることができます。 バックグラウンドで実行されているコマンドの標準入力も .Pa /dev/null 等にリダイレクトされることは .Ar なく 、シェルの標準入力をそのまま受け継いでいます。もし標準入力が端末で、 コマンドが端末から読み込もうとした場合、そのプロセスはブロックされ、 シェルはユーザにそのことを通知します(参照: .Sx ジョブ の項)。 .Pp 標準エラー出力もパイプにリダイレクトすることができます。単純に `\&|' の かわりに `\&|&' を使います。 .Ss 式 .\" #### modified by kuma 96.12.21 #### いくつかの組み込みコマンド(後述します)は、引数として式を取ります。式は C 言語のものと類似しており、同じ優先順位を持ちます。式は -.Nm @ , -.Ar exit , -.Ar if , -.Ar while +.Em @ , +.Em exit , +.Em if , +.Em while コマンド中で用います。以下の演算子が使用可能です: .Bd -ragged -offset indent \&|\&| && \&| \*(ua & == != =~ !~ <= >= < > << >> + \- * / % ! ~ ( ) .Ed .Pp 上記の演算子は右にいくほど優先順位が高くなっています。 `==' `!=' `=~' `!~', `<=' `>=' `<' `>', `<<' `>>', `+' `\-', `*' `/' `%' の 5グループは各グループ内では同じ優先度です。 `==', `!=', `=~', `!~' は文字列の比較を行い、他の演算子は数値演算を 行います。`=~', `!~' は `!=', `==' と同様ですが、右辺を .Ar パターン (`*', `?', `[...]' を含んだ) とみなして、左辺とのパターンマッチが行われます。 これにより、シェル スクリプトにおいてパターンマッチのみが必要な局面では .Ar switch ステートメントを使わずに済ませることができます。 .Pp 先頭が `0' の文字列は 8 進数の数値とみなされます。空または省略された引数 は `0' とみなされます。すべての演算結果は 10 進数数値の文字列となります。 式の 2 つの要素が同一の単語中に出現してはいけません。つまり、 .\" #### modified by kuma 96.12.21 #### 要素の前後が、構文解析において特殊な意味を持つ `&', `\&|', `<', `>', `(', `)' でない場合は、 その要素は空白で囲まれていることが必要です。 .Pp 数式中では、`{' と `}' で囲んだコマンドと、 以下のファイル検査演算子を用いることができます。 ファイル検査演算子は .Fl l .Ar name の形式で、 .Ic l は以下のうちのいずれかです: .Bd -literal -offset indent r 読み込みアクセス w 書き込みアクセス x 実行アクセス e 存在 o 所有 z サイズがゼロ f 通常ファイル d ディレクトリ .Ed .Pp 指定された name は、コマンド、ファイル名置換を適用したのちに 実ユーザの権限において検査されます。ファイルが存在しないか、 アクセス不可なら演算結果は false すなわち `0' になります。 コマンド実行においては、コマンドが成功したなら演算結果は true `1' に、 コマンドが 0 以外の終了ステータスを返してきたら、すなわち、 失敗なら演算結果は false `0' になります。 終了ステータスの値自体を知りたい場合は、コマンドを式以外の文脈で実行し、変数 .Ar status の値を調べます。 .Ss 制御構造 シェルにはコマンドファイル(シェル・スクリプト)中で、 あるいは(制限されてはいるが、便利な方法で)端末から、 制御の流れを変更するためのいくつかのコマンドがあります。 これらのコマンドはシェルに入力を読み直させたり、 スキップさせたりすることができます。実装の制限上、 これらのコマンドを書くことのできる位置に制限があります。 .Pp .Ic foreach , .Ic switch , .Ic while , 文、および、 .Ic if\-then\-else の .Ic if ステートメントは、 後述するように入力行の単一の単純コマンドとして現れる必要があります。 .Pp シェルの入力がシーク不可能な場合、 シェルは繰り返しが必要なときには入力をバッファに保存し、 .\" #### modified by kuma 96.12.23 #### この内部バッファに対してシークを行います(このため、シーク不可能な入力の場合も、 後方への goto が可能です)。 .Ss 組み込みコマンド 組み込みコマンドは通常シェルのプロセス内部で実行されます。 ただし、組み込みコマンドがパイプラインの最後以外に用いられた場合は、 サブシェル上で実行されます。 .Pp .Bl -tag -width Ds -compact -offset indent .It Ic alias .It Ic alias Ar name .It Ic alias Ar name wordlist 1行目の形式はすべてのエイリアスを出力します。2 行目の形式は .Ar name に対応したエイリアスの値を出力します。最後の形式は .Ar wordlist を .Ar name のエイリアスとして登録します。 .Ar wordlist にはコマンド置換、ファイル名置換が適用されます。 .Ar name として .Ar alias または .Ar unalias を指定することはできません。 .Pp .It Ic alloc .Nm csh が獲得したメモリのうちの使用量と空き容量を表示します。 なんらかの引数をつけると、ブロックサイズごとの使用中/空ブロック数を表示します。 ブロックサイズは 8、16、32、.. となります。 本コマンドの出力はシステムによって異なります。 VAX 以外のシステムは、異なるメモリ管理を行っているかもしれないからです。 .Pp .It Ic bg .It Ic bg \&% Ns Ar job ... 現在のジョブあるいは指定されたジョブをバックグラウンドに移動します。 もしそれらのジョブが停止されていたなら、実行が再開されます。 .Pp .It Ic break 最も内側の .Ic foreach または .Ic while ループに対応する .Ic end の後へ脱出します。同じ行にある残りのコマンドは実行されます。複数の .Ic break を同一行に記述することで複数レベルの脱出が行えます。 .Pp .It Ic breaksw .Ic switch から脱出し、 .Ic endsw のあとで実行を再開します。 .Pp .It Ic case Ar label : .Ic switch ステートメントのラベルを指定します。 .Pp .It Ic cd .It Ic cd Ar name .It Ic chdir .It Ic chdir Ar name .\" #### modified by kuma 96.12.23 #### シェルの作業ディレクトリをディレクトリ .Ar name に変更します。引数が指定されなかった場合には、 ユーザのホーム・ディレクトリに変更します。 カレント・ディレクトリにディレクトリ .Ar name がない場合(かつ .Ar name が `/', `./', `../' で始まっていない場合)、変数 .Ic cdpath の各要素のサブディレクトリとして .Ar name がないかどうかを調べます。最後に、シェル変数 .Ar name に `/' で始まる値が設定されているなら、 その値のディレクトリが存在しないかを調べます。 .Pp .It Ic continue 最も内側の .Ic while または .Ic foreach ループの先頭に戻ります。戻る前に、同じ行に記述されたコマンドが実行されます。 .Pp .It Ic default : .Ic switch ステートメントのデフォルトを指定します。 .Ic default は、すべての .Ic case ラベルのあとに出現しなければなりません。 .Pp .It Ic dirs ディレクトリ・スタックを表示します。 スタックの先頭(カレント・ディレクトリ)を左端にして表示します。 .Pp .It Ic echo Ar wordlist .It Ic echo Fl n Ar wordlist 指定された単語を空白で区切った文字列をシェルの標準出力に書き出します。 .Fl n オプションが指定されなければ、最後に改行が出力されます。 .Pp .It Ic else .It Ic end .It Ic endif .It Ic endsw .Ic foreach , .Ic if , .Ic switch , .Ic while ステートメントの項を参照してください。 .Pp .It Ic eval Ar arg ... ( .Xr sh 1 と同様)引数をシェルへの入力であるとみなして読み込み、 現在のシェルのコンテキストで実行します。 コマンド置換や変数置換の結果として生成されたコマンド列を実行する場合に用いられます。 通常は、それらの置換に先立って文法解析が行われてしまうからです。 .Ic eval の使い方の例が .Xr tset 1 にあります。 .Pp .It Ic exec Ar command 指定された command を現在のシェルと置き換えて実行します。 .Pp .It Ic exit .It Ic exit Ar (expr ) 1行目の形式では変数 .Ic status の値、2 行目の形式では式 .Ic expr の値を返り値としてシェルを終了します。 .Pp .It Ic fg .It Ic fg % Ns Ar job ... 現在のジョブあるいは指定されたジョブをフォアグラウンドに移動します。 停止していたジョブは実行を再開します。 .Pp .It Ic foreach Ar name (wordlist) .It ... .It Ic end 変数 .Ic name に .Ic wordlist の各値を順次セットしながら対応する .Ic end までのコマンドを繰り返し実行します( .Ic foreach と .Ic end .\" #### modified by kuma 96.12.23 #### は単独で行に置かなければなりません)。組み込みコマンド .Ic continue を使って中途でループの次の繰り返しを実行させたり、 .Ic break コマンドによって中途でループを脱出させたりすることができます。 このコマンドが端末から読み込まれる場合、ループすべての内容が(プロンプト ? を表示しながら)読み込まれてから実行が開始されます。 端末からループ中でタイプ・ミスした場合は修正できます。 .Pp .It Ic glob Ar wordlist .Ic echo コマンドと似ていますが、`\e' によるエスケープは解釈されず、 .\" #### modified by kuma 96.12.23 #### 単語はヌル文字によって区切られます。プログラムから、 シェルをファイル名置換のために利用する場合に便利です。 .Pp .It Ic goto Ar word .Ic word にファイル名置換、およびコマンド置換が適用されたのち、それを `label' とみなします。シェルは可能なかぎり入力を遡って読み直し、`label:' のある行を検索し、そこから実行を開始します。 ラベルの前には空白またはタブを置くことが可能です。 .Pp .It Ic hashstat コマンドを検索するのに、 内部キャッシュがどの程度効率的に働いているか (そして .Ic exec をどの程度回避できているかを)を表示します。 .\" #### modified by kuma 96.12.23 #### .Em path の要素のうち、ハッシュ関数がヒットの可能性を示すものと、 `/' で始まらないものについて .Ic exec が試みられます。 .Pp .It Ic history .It Ic history Ar n .It Ic history Fl r Ar n .It Ic history Fl h Ar n ヒストリのリストを表示します。数字 .Ar n が指定された場合には、最近の .Ar n 個のイベントが表示されます。 .Fl r オプションは表示順序を逆にします。 .\" #### modified by kuma 96.12.23 #### すなわち、最も古いものを先に表示するのではなく、 最も新しいものを先に表示します。 .Fl h オプションを指定すればイベント番号が省略されます。これは .Ic source コマンドで \-h を使って読み込むためのファイルを生成する場合に用いることができます。 .Pp .It Ic if ( Ar expr ) No command .\" #### modified by kuma 96.12.23 #### 指定された式が true と評価されたなら、単一のコマンド .Ar command が実行されます。 .Ar command .\" #### modified by kuma 96.12.23 #### に対する変数置換は、実行に先だって .Ic if コマンドの残りの部分と同時に行なわれます。 .Ar command は単純コマンドのみが許され、パイプライン、コマンドリスト、括弧でくく られたコマンドであってはいけません。入出力リダイレクションは式 .Ar expr が false と評価され、それゆえ .Ar command が実行 .Sy されなかった 場合にも処理されます(これはバグです)。 .Pp .It Ic if ( Ar expr ) Ic then .It ... .It Ic else if ( Ar expr2 ) Ic then .It ... .It Ic else .It ... .It Ic endif 式 .Ar expr が true なら最初の .Ic else までのコマンドが実行されます。さもなければ、式 .Ar expr2 が true なら次の .Ic else までのコマンドが実行されます。 いくつでも .Ic else-if の対を繰り返すことができます。最後に 1 つの .Ic endif が必要です。 最後の .Ic else 部分はあってもなくてもかまいません。 (単語 .Ic else と .Ic endif は入力行の最初に置く必要があります。また、 .Ic if は行内に単独で、または .Ic else のあとに置く必要があります)。 .Pp .It Ic jobs .It Ic jobs Fl l アクティブなジョブの一覧を出力します。 .Fl l .\" #### modified by kuma 96.12.23 #### オプションを指定すると、通常の情報に加えてプロセス ID も出力します。 .Pp .It Ic kill % Ns Ar job .It Ic kill Ar pid .It Ic kill Fl sig Ar pid ... .It Ic kill Fl l TERM(terminate) シグナルあるいは指定したシグナルを、 指定されたジョブまたはプロセスに送ります。 シグナルは番号または名前で指定できます(名前は .Pa /usr/include/signal.h にある名前から `SIG' を取り除いたものです)。 シグナル名の一覧を ``kill \-l'' により表示できます。 kill にはデフォルト動作はなく、 単に `kill' を実行しても現在のジョブにシグナルが送られるようなことはありません。 送るシグナルが TERM(terminate) または HUP(hangup) の場合、 CONT(continue) シグナルも同時に送られます。 .Pp .It Ic limit .It Ic limit Ar resource .It Ic limit Ar resource maximum-use .It Ic limit Fl h .It Ic limit Fl h Ar resource .It Ic limit Fl h Ar resource maximum-use 現在のプロセスと、それが生成するプロセスのそれぞれについて、 .\" #### modified by kuma 96.12.23 #### 指定されたリソース .Ar resource を、指定された .Ar maximum-use を超えて使用しないように設定します。 .Ar maximum-use が指定されなかった場合、現在の制限値が表示されます。 .Ar resource が指定されなかった場合、すべての制限値が表示されます。 .Fl h オプションが指定された場合、 現在の制限値のかわりにハードリミットの表示/設定を行います。 .\" #### modified by kuma 96.12.23 #### ハードリミットは現在の制限値の上限の値です。 スーパーユーザのみがハードリミットを増加させることができます。 一般ユーザは現在の制限値を可能な範囲で増減することができます。 .Pp .\" #### modified by kuma 96.12.23 #### 現在のところ、制御可能なリソースは、 .Ar cputime (各プロセスが使うことのできる最大の CPU 秒数)、 .Ar filesize (1つのファイルの最大サイズ)、 .Ar datasize ( .Xr sbrk 2 .\" #### modified by kuma 96.12.23 #### を用いてプログラムのテキスト領域の末尾を超えて増加させることのできる data+stack 領域の最大サイズ)、 .Ar stacksize .\" #### modified by kuma 96.12.23 #### (自動的に拡張されるスタックの最大サイズ)、 .Ar coredumpsize (最大のコアファイルのサイズ)です。 .Pp 最大値 .Ar maximum-use は、(整数あるいは浮動小数の) 数値とそれに続くスケールファクタによって指定します。 .Ar cputime 以外の制限値のデフォルトのスケールファクタは `k' あるいは `kilobytes'(1024 バイト)です。 .\" #### modified by kuma 96.12.23 #### スケールファクタとして `m' あるいは `megabytes' を使用することもできます。 .Ar cputime のデフォルトのスケールファクタは `seconds'(秒)です。 `m'(分)、`h'(時間) をスケールファクタとして指定したり、 `mm:ss' 形式で分秒を指定したりすることができます。 .Pp .\" #### modified by kuma 96.12.23 #### リソース名 .Ar resource とスケールファクタを指定する際には、 .\" #### modified by kuma 96.12.23 #### 一意に決定できるなら、名前の先頭部分だけを指定することができます .\" #### jpman kuma: not found in freebsd-2.1.5-RELEASE manpage (st を stacksize のかわりに用いる等)。 .Pp .It Ic login ログイン・シェルを終了し、 .Pa /usr/bin/login と置き換えます。これは .Xr sh 1 との互換性のために用意されたログオフの手段です。 .Pp .It Ic logout ログイン・シェルを終了します。 .Ic ignoreeof がセットされている場合に便利です。 .Pp .It Ic nice .It Ic nice Ar +number .It Ic nice Ar command .It Ic nice Ar +number command 1 行目の形式は、シェルのスケジューリング・プライオリティを 4 に設定します。 2 行目の形式は、プライオリティを指定された値 .Ar number に設定します。残りの 2 つの形式は、コマンド command をプライオリティ 4 または指定した .Ar number で実行します。 .\" #### modified by kuma 96.12.23 #### 大きい数値を指定するとプロセスが利用できる CPU がその分少なくなります。 スーパーユーザのみがプライオリティとして負の値を `nice \-number ...' のように指定することができます。 .Ar command はつねにサブシェルで実行され、 単純な .Ic if .\" #### modified by kuma 96.12.23 #### 文のコマンドと同様の制限を受けます。 .Pp .It Ic nohup .It Ic nohup Ar command 1 行目の形式は、シェル・スクリプト内で使用し、 スクリプトのそれ以降で hangup シグナルを無視するように設定します。 2 行目の形式は、指定されたコマンドが、 hangup シグナルを無視するように設定して実行します。 `&' をつけて実行されたプログラムは、 .Ic nohup を指定して実行したのと同様に hangup シグナルを無視します。 .Pp .It Ic notify .It Ic notify % Ns Ar job ... 現在のジョブまたは指定されたジョブの状態が変化したときに、 .\" #### modified by kuma 96.12.23 #### コマンド待ちかどうかに関わりなく即座に通知するように指定します。 通常は、プロンプトが表示される直前に通知が行われます。 シェル変数 .Ic notify が指定されている場合は、すべてのジョブに対して同様の設定が行われます。 .Pp .It Ic onintr .It Ic onintr Fl .It Ic onintr Ar label 割り込みに対するシェルの動作を制御します。1行目の形式は、 シェルをデフォルトの動作、すなわち、スクリプトの実行が中断される、 またはコマンド入力状態に戻るように設定します。 2 行目の形式は、すべての割り込みを無視するように設定します。 3行目の形式は、シェルが割り込みを受けるか、 チャイルドプロセスが割り込みによって停止した場合に goto label が実行されるように設定します。 .Pp シェルがバックグラウンドで、かつ、 シグナルを無視するように設定して実行されている場合は、 .Ic onintr は効力を持たず、 割り込みはシェルとそこから起動されるすべてのコマンドで 引続き無視されます。 最後に .Ic onintr 文はシステムのスタートアップ・ファイル (/etc/csh.cshrc, /etc/csh.login) 中でも、 割り込みが禁止されているので無視されます。 .Pp .It Ic popd .It Ic popd Ar +n ディレクトリ・スタックをポップし、 新たにスタックの先頭になったディレクトリにカレント・ディレクトリを変更します。 引数 .Ns \`+ Ar n Ns \' が指定された場合、スタックの .Ar n 番目の要素が捨てられます。ディレクトリ・スタックの要素は、 スタックの先頭から 0 から順に番号がつけられます。 .Pp .It Ic pushd .It Ic pushd Ar name .It Ic pushd Ar n 引数を指定しなかった場合、 .Ic pushd はスタックの先頭の 2 つの要素を入れ替えます。引数 .Ar name が指定された場合、 .Ic cd と同様にカレント・ディレクトリを変更したあと、 古いカレント・ディレクトリ .\" cwd の typo だと思うが わからない .\" (as in .\" .Ic csw ) .\" #### kuma agree with you on 96.12.23 #### をディレクトリ・スタックにプッシュします。 数字引数が指定された場合、ディレクトリ・スタックの .Ar n 番目の要素が スタックの先頭にくるようにローテートし、 カレント・ディレクトリをその要素が指すディレクトリに変更します。 ディレクトリ・スタックの要素は、スタックの先頭から 0 から順に番号がつけられます。 .Pp .It Ic rehash 変数 .Ic path に指定されているディレクトリ内の、ファイルに関するハッシュ・テーブルを 再計算させます。ログイン中に、新しいコマンドが .Ic path に含まれるディレクトリに追加された場合、 .\" #### modified by kuma 96.12.23 #### rehash コマンドを実行する必要があります。 これは、あなたが個人的なディレクトリの 1 つにコマンドを追加したか、 システムの管理者がシステム・ディレクトリの内容を変更したような 場合にのみ必要です。 .Pp .It Ic repeat Ar count command 指定されたコマンド .Ar command を .Ar count 回繰り返し実行します。 .Ar command .\" #### modified by kuma 96.12.23 #### に指定するものは、先の 1 行 .Ic if 文で指定する .Ar command と同様の制限を受けます。 入出力リダイレクションは .Ar count が たとえ 0 であっても、必ず 1回だけ処理されます。 .Pp .It Ic set .It Ic set Ar name .It Ic set Ar name Ns =word .It Ic set Ar name[index] Ns =word .It Ic set Ar name Ns =(wordlist) 1 行目の形式はすべてのシェル変数の値を表示します。 複数の単語からなる値を持つ変数は括弧で囲まれた値のリストで表示します。 2 行目の形式は、 .Ar name に空文字列を設定します。3 行目の形式は .Ar name に単一の単語 .\" #### modified by kuma 96.12.23 .Ar word を設定します。4 行目の形式は .Ar name の .Ar index 番目の要素に .Ar word を設定します。 .Ar index 番目の要素はすでに存在していなければなりません。5 行目の形式は .Ar name に .Ar wordlist で指定した単語列を設定します。すべての形式で、 値にはコマンド置換とファイル名置換が適用されます。 .Pp 複数の変数を設定するために、set コマンドへの引数を繰り返すことができます。 ただし、引数に対する変数展開処理は、代入処理に先だって行われます。 .Pp .It Ic setenv .It Ic setenv Ar name .It Ic setenv Ar name value 1 行目の形式はすべての環境変数の一覧を出力します。 これは .Xr printenv 1 と等価です。 3 行目の形式は環境変数 .Ar name に値 .Ar value を設定します。2 行目の形式は環境変数 .Ar name .\" #### modified by kuma 96.12.23 #### に空文字列を設定します。最も一般的に用いられる環境変数である .Ev USER , .Ev TERM , .Ev PATH は .Nm csh の起動時にシェル変数 .Ar user , .Ar term , .Ar path にそれぞれ設定され、 .Nm csh から実行するプログラムの環境変数には、シェル変数 .Ic user , .Ic term , .Ic path の値が反映されます。そのため、これらの変数を明示的に .Ic setenv する必要はありません。 .Pp .It Ic shift .It Ic shift Ar variable (リスト)変数 .Ic argv .\" #### modified by kuma 96.12.23 #### の各要素を左にシフトし、 .Ic argv Ns Bq 1 の値を捨てます。 .Ic argv に値が設定されていないか、 1 つ以上の要素を持たない場合にはエラーになります。 2 行目の形式は、指定された変数 .Ar variable に対して同様の処理を行います。 .Pp .It Ic source Ar name .It Ic source Fl h Ar name シェルは、指定されたファイル .Ar name からコマンドを読み込みます。 .Ic source コマンドはネストすることができます。あまりに深くネストさせると、 .\" #### modified by kuma 96.12.23 #### ファイル識別子を使い切ってしまう場合があります。いずれかのレベルの .Ic source コマンド中でエラーが発生すると、ネストしているすべての .Ic source コマンドが中断されます。通常、 .Ic source の実行中に実行されたコマンドはヒストリに記録されませんが、 -\-h +.Fl h オプションを指定することにより、 ファイルに記述してあるコマンドを実行せずに、 ヒストリにのみ記録することができます。 .Pp .It Ic stop .It Ic stop % Ns Ar job ... バックグラウンドで走行中の現在のジョブ、あるいは指定されたジョブを停止します。 .Pp .It Ic suspend シェル自身を停止させます。 -.Ic ^Z +.Em ^Z でストップ・シグナルを送られたかのように振舞います。 -.Xr su 1 +.Xr su 1 によって起動したシェルを停止する場合によく用いられます。 .Pp .It Ic switch Ar (string) .It Ic case Ar str1 : .It \ \ \ \ \&... .It Ic \ \ \ \ breaksw .It \ \ \ \ \&... .It Ic default : .It \ \ \ \ \&... .It Ic \ \ \ \ breaksw .It Ic endsw .\" #### modified by kuma 96.12.23 #### 各 .Ic case ラベルを順に、指定された文字列 .Ar string でマッチングを行います。 .Ar string には、まず、コマンド置換とファイル名置換が行われます。 .Ic case ラベルには変数置換が行われ、ファイル名メタキャラクタの `*', `?', `[...]' を用いることができます。 .\" #### modified by kuma 96.12.23 #### .Ic default ラベルが出てくるまでにどの .Ic case ラベルともマッチしなかった場合は、 .Ic default ラベルの直後から実行が始まります。 .Ic case ラベルと .Ic default ラベルは行の最初に書かれなければなりません。 .Ic breaksw コマンドによって .Ic endsw 以降のコマンドから実行が再開されます。 .Ic breaksw を用いない場合は、 C 言語の場合と同様に、 .Ic case ラベル、 .Ic default ラベルを通過して実行が続けられます。 .Ic default がなく、どのラベルもマッチしなかった場合には、 .Ic endsw 以降から実行が再開されます。 .Pp .It Ic time .It Ic time Ar command 1 行目の形式では、 シェルとそのチャイルドプロセスが使用した時間が表示されます。 .\" #### modified by kuma 96.12.23 #### 2 行目の形式では、指定された単純コマンドの実行時間が計測され、 .\" #### modified by kuma 96.12.23 #### 変数 .Ic time の項で説明する形式で、使用時間情報の要約が表示されます。 必要ならば、コマンド終了時に時間を表示するための追加のシェルが生成されます。 .Pp .It Ic umask .It Ic umask Ar value ファイル作成マスクを表示(第 1 の形式)または設定(第 2 の形式)します。 マスクは 8 進数で与えます。一般的な値としては、 グループにすべての権限を与え、 そのほかには読み込みと実行のみを許可する 002 や、 所有者以外には読み込みと実行しか許可しない 022 があります。 .Pp .It Ic unalias Ar pattern .Ar pattern にマッチするすべてのエイリアスを削除します。 `unalias *' とすることですべてのエイリアスを削除することができます。 削除するものがなかった場合にもエラーにはなりません。 .Pp .It Ic unhash 実行プログラムの位置検索を高速化する内部ハッシュ・テーブルの使用を禁止します。 .Pp .It Ic unlimit .It Ic unlimit Ar resource .It Ic unlimit Fl h .It Ic unlimit Fl h Ar resource リソースの制限を解除します。 .Ar resource が指定されない場合、すべてのリソースに対する制限が解除されます。 .Fl h が指定された場合、対応するハードリミットが解除されます。 これはスーパーユーザのみが行うことができます。 .Pp .It Ic unset Ar pattern 指定された .Ar pattern にマッチするすべての変数を削除します。 `unset *' と指定するとすべての変数が削除され、 悲惨な結果を生じることがあります。 .Ic unset するものがない場合もエラーになりません。 .Pp .It Ic unsetenv Ar pattern 指定された .Ar pattern にマッチするすべての環境変数を削除します。前述の .Ic setenv の項と .Xr printenv 1 を参照してください。 .Pp .It Ic wait すべてのバックグラウンドジョブの終了を待ちます。 対話的にシェルが実行されている場合、 インタラプトにより wait を停止することができます。 このとき、シェルはいまだに終了していないジョブの名前とジョブ番号を表示します。 .It Ic which Ar command .\" #### modified by kuma 96.12.23 #### .Ar command を指定したとき、シェルが実行するコマンドの位置を表示します。 .Pp .It Ic while Ar (expr) .It \&... .It Ic end 指定された式の評価結果がゼロでないかぎり、 .Ic while と対応する .Ic end の間のコマンドを繰り返し実行します。 .Ic break や .Ic continue によりループを終了したり、途中から繰り返しを再開させたりすることができます。 ( .Ic while と .Ic end は、その行に単独で書かれなければなりません。)入力が端末の場合、 .Ic foreach ステートメントの場合と同様に、 ループのすべてを入力するまでプロンプトが表示され、 すべての入力を終えた時点でループが実行されます。 .Pp .It Ic % Ns Ar job 指定されたジョブをフォアグラウンドに移動します。 .Pp .It Ic % Ns Ar job Ic & 指定されたジョブをバックグラウンドで再開実行させます。 .Pp .It Ic @ .It Ic @ Ar name Ns = Ns expr .It Ic @ Ar name[index] Ns = Ns expr 1 行目の形式は、すべてのシェル変数の値を表示します。2 行目の形式は、 指定された名前 .Ar name の変数に式 .Ar expr の値を代入します。式のなかに `<', `>', `&', `|'を含んでいる場合、 少なくともそのような部分は `(' と `)' で囲まれている必要があります。 3 行目の形式は、変数の .Ar index 番目の要素に式 .Ar expr の値を代入します。 .Ar name と、その .Ar index 番目の要素はすでに存在していなければいけません。 .El .Pp C 言語と同様に、演算子 `*=', `+=' 等が利用可能です。 変数名と演算子の間の空白はあってもなくてもかまいません。 しかしながら、式の各要素の間には空白が必須です。 さもなければ、単一の単語とみなされてしまいます。 .Pp 特別な後置演算子 `+\|+' と `\-\|\-' により変数の値を 1 だけ増加させたり、 減少させたりすることができます。たとえば、`@ i++' のように使います。 .Ss 定義済み変数と環境変数 以下の変数は、シェルにとって特別な意味があります。これらのうち、 .Ar argv , .Ar cwd , .Ar home , .Ar path , .Ar prompt , .Ar shell , .Ar status はシェルが設定します。そのうち、 .Ar cwd と .Ar status 以外の変数の設定はシェルの起動時にのみ行われます。 そのような変数は、ユーザが明示的に変更しないかぎり、 値が変化することはありません。 .Pp シェルは、環境変数 .Ev USER をシェル変数 .Ar user に、 .Ev TERM を .Ar term に、 .Ev HOME を .Ar home にそれぞれコピーします。また、 これらのシェル変数が再度セットされた場合は環境変数にコピーしなおします。 環境変数 .Ev PATH も同様に扱われます。サブシェルは環境変数によって .Ar path の値を得て、もしそれが変更されれば環境変数にコピーしなおすので .Ar \&.cshrc 以外での .Ar path 変数の設定について気をつける必要はありません。 .Bl -tag -width histchars .It Ic argv シェルへの引数が設定されます。位置パラメータは argv の値に展開されます。 すなわち、 `$1' は `$argv[1]' の値に置換されます。 .It Ic cdpath .Ar chdir .\" #### modified by kuma 96.12.23 #### コマンドにおいてサブディレクトリを検索するためのディレクトリのリストです。 .It Ic cwd .\" #### modified by kuma 96.12.23 #### カレント・ディレクトリのフルパス名です。 .It Ic echo .Fl x オプションが指定された場合にセットされます。セットすることにより、 コマンドが実行される前にコマンド名とその引数が表示されるようになります。 .\" #### modified by kuma 96.12.23 #### 組み込みコマンド以外では、表示の前にすべての展開が行われます。 組み込みコマンドではコマンド置換とファイル名置換が行われる前に表示されます。 なぜなら、これらの置換は選択的に行われるからです。 .It Ic filec ファイル名補完を有効にします。 .It Ic histchars ヒストリ置換に用いる文字を文字列で指定します。 指定した文字列の最初の文字はヒストリ置換文字(デフォルトは `!')、 2 文字目は簡易置換文字(デフォルトは `\*(ua') を指定します。 .It Ic histfile ヒストリをセーブ/リストアするパス名を指定できます。 .It Ic history ヒストリ・リストのサイズを指定します。 このサイズを超えたコマンド履歴は削除されます。 あまりに大きな値を設定すると、シェルがメモリを使いつくすかもしれません。 最後に実行したコマンドは .Ar history の値にかかわらず、つねにヒストリ・リストに保存されます。 .It Ic home .\" #### modified by kuma 96.12.23 #### シェルを起動したユーザのホーム・ディレクトリです。 起動時に環境変数から設定されます。 ファイル名置換において .Sq Pa ~ は本変数を参照して展開されます。 .It Ic ignoreeof セットされると、端末のファイル終端(EOF)を無視するようになります。 間違って control-D を押してシェルを終了させてしまうのを防ぐことができます。 .It Ic mail シェルがメールの到着をチェックするためのメールファイルを指定します。 コマンド実行が完了しプロンプトが表示されるときに、 .\" #### modified by kuma 96.12.23 #### 指定された時間が経過していればメイル到着のチェックが行われます。 最終修正時刻が最終アクセス時刻以降の場合、 シェルは `You have new mail' と出力します。 .Pp .Ar mail の値の最初の単語が数値の場合には、 その数値でメール検査の間隔を秒単位で指定します。 指定がなかった場合のデフォルト値は 10分です。 .Pp 複数のメールファイルが指定された場合、 メールが到着していた場合のメッセージは `New mail in .Ar name Ns ' となります。ここで、 .Ar name は到着したメールが あるファイル名です。 .It Ic noclobber .Sx 入出力 の項で説明したように、 出力リダイレクトによって意図せずにファイルを削除しないように制限したり、 `>>' リダイレクトがすでに存在するファイルにしか適用できないようにします。 .It Ic noglob セットされると、ファイル名展開が禁止されます。 ファイル名を扱わないシェルスクリプト内や、すでにファイル名展開を行ったあとで、 それ以上の展開を望まない場合に設定します。 .It Ic nonomatch .\" #### modified by kuma 96.12.23 #### セットされると、ファイル名展開の結果が空になってもエラーとせず、 展開前のパターンをそのまま残します。 .\" #### modified by kuma 96.12.23 #### ただし、`echo [' のような、 展開前のパターンが文法的に正しくない場合はエラーになります。 .It Ic notify セットされると、シェルがジョブの終了を随時報告するようになります。 通常はプロンプトの表示直前にのみ報告が行われます。 .It Ic path .\" #### modified by kuma 96.12.23 #### path 変数の各単語は、コマンドファイルを検索すべきディレクトリ名を表します。 空の単語はカレント・ディレクトリを示します。 .Ar path 変数が設定されて いない場合、フルパス指定によるコマンド実行のみが可能になります。 通常の検索パスは `.', `/bin', `/usr/bin' です。しかし、これらの値はシステムによって異なります。 スーパーユーザのデフォルトの検索パスは `/etc', `/bin', `/usr/bin' です。 .Fl c オプションも .Fl t オプションも指定されなかった場合、 シェルは .Ar path 変数で指定されたディレクトリの内容をハッシュ・テーブルに保存します。 ハッシュ・テーブルは、起動時に .Ar \&.cshrc を読み込んだ後と .Ar path 変数を再設定した時に再構築されます。 シェルの実行中に、 新しいコマンドがハッシュされているディレクトリに追加された場合は、 .Ic rehash コマンドによりハッシュを再構築しなければなりません。 .\" #### modified by kuma 96.12.23 #### さもなければ、コマンドが見付からない可能性があります。 .It Ic prompt 端末上で対話的に実行されているシェルにおいて、 .\" #### modified by kuma 96.12.23 #### コマンド読み込み時に表示される文字列を指定します。 `!' が含まれる場合、現在のイベント番号に置換されます。 `\e' を指定することにより、この解釈を抑制することができます。 デフォルトの値は `% 'です。スーパーユーザの場合は `# ' となります。 .It Ic savehist ログアウト時にファイル ~/.history に保存されるコマンド履歴の数を指定 します。 .\" #### modified by kuma 96.12.23 #### この値で指定される数のイベントが保存されます。 起動時に、シェルは ~/.history の内容を読み込みます。あまりに 大きな値を指定すると、シェルの起動が遅くなる場合があります。 .Ar savehist がセットされているだけの場合は .Ar history に指定された値を使用します。 .It Ic shell シェルのフルパス名を示します。実行属性が立っているが、 .\" #### modified by kuma 96.12.23 #### システムが起動できないファイルを 実行する際に起動するシェルとして用いられます(後述の .Sx 非組み込みコマンドの実行 の項を参照)。システム依存の値で初期化されます。 .It Ic status 最後に実行したコマンドの終了ステータス値を保持します。 異常終了した場合は、値に 0200 が加算されます。 組み込みコマンドが失敗した場合は `1' に、成功した場合は `0' になります。 .It Ic time .\" #### modified by kuma 96.12.23 #### コマンドの自動計時を制御します。値が設定されている場合、 コマンドがその値よりも長く CPU 秒数を消費した場合には、 コマンド終了時にユーザ時間、システム時間、実時間と、 利用率すなわちユーザ+システム時間と実時間のパーセンテージが出力されます。 .It Ic verbose .Fl v コマンドラインオプションが指定されていた場合にセットされます。 ヒストリ置換が行われたあと、コマンドの内容が出力されます。 .El .Ss 非組み込みコマンドの実行 実行すべきコマンドが組み込みコマンドでなかった場合、シェルはコマンドを .Xr execve 2 システムコールによって起動しようとします。シェル変数 .Ar path .\" #### modified by kuma 96.12.23 #### の各単語は、シェルがコマンドを実行しようとするディレクトリ名を表します。 .Fl c オプションも .Fl t オプションも指定されなかった場合、 .\" #### modified by kuma 96.12.23 #### シェルはそれらのディレクトリ内にあるファイル名のハッシュ値を計算し、 シェル内部のテーブルに格納します。これは、 コマンドが存在する可能性のあるディレクトリだけで .Ic exec を試みるようにするためです。 この近道によって、サーチ・パスにたくさんのディレクトリが指定されている時、 コマンドの位置決定が著しく高速化されます。 この機能が( .Ic unhash .\" #### modified by kuma 96.12.23 #### コマンドによって)停止されている場合、または .Fl c または .Fl t オプションが起動時に指定された場合、または .Ar path .\" #### modified by kuma 96.12.23 #### 中の単語で `/' から始まらないものについては、ハッシュが用いられることはありません。 この場合は、 .Ar path の要素にコマンドラインで指定されたコマンドを連結した名前を持つ ファイルを実行しようと試みます。 .Pp 括弧で囲まれたコマンドは、つねにサブシェルによって実行されます。ですから、 .Pp .Dl (cd ; pwd) ; pwd .Pp はホーム・ディレクトリの値を表示しますが、カレント・ディレクトリ(ホーム・ .\" #### modified by kuma 96.12.23 #### ディレクトリの後に表示されます)は移動しません。 一方、 .Pp .Dl cd ; pwd .Pp を実行すると、カレント・ディレクトリがホーム・ディレクトリに移動します。 括弧で囲まれたコマンドは、現在のシェルのカレント・ディレクトリに 影響を与えずにコマンドを実行する場合にしばしば用いられます。 .Pp 実行属性が立っているにもかかわらず、 システムによって実行可能ではないファイルは シェルコマンドファイルであるとみなし、 サブシェルを起動してそのファイルを読み込ませます。 .Pp .Ic shell という名前のエイリアスが存在する場合、 エイリアスの値はシェルコマンドファイルを実行する場合の 引数リストの前に挿入されます。エイリアスの値の最初の単語は シェルのフルパス名でなければいけません(たとえば `$shell')。 .\" #### modified by kuma 96.12.23 #### これはエイリアス展開としては特別のもので、かなり後の時点に行われ、 引数リストを修正せずに、その前に単語を挿入するための手段を提供します。 .Ss シグナル処理 シェルは、通常 .Ar quit シグナルを無視します。バックグラウンドのジョブ( .Ic \&& または .Ic bg または .Ic %... & .\" #### modified by kuma 96.12.23 #### によるコマンド)はキーボードから入力されたシグナルに影響されません (hangup も含みます)。他のシグナルに対する挙動は親の環境を引き継ぎます。 シェル・スクリプトでの interrupt と terminate シグナルに対する処理は .Ic onintr によって制御することができます。ログイン・シェルは .Ar terminate シグナルを捕捉します。それ以外のシェルでは、 .Ar terminate シグナルはシェルの親の状態に従ってチャイルドプロセスに渡されます。 ログイン・シェルが .Pa \&.logout ファイルを読み込んでいる間は interrupt は無視されます。 .Sh 作者 -William Joy。 +.An William Joy +。 ジョブ制御とディレクトリ・スタックは -J.E. Kulp of IIASA, Laxenburg, Austria によって、 +.An J.E. Kulp , +IIASA, Laxenburg, Austria によって、 .\" #### modified by kuma 96.12.23 #### 現在とは異なる文法のものが実装されました。 -ファイル名補完は Ken Greer, HP Labs が、 +ファイル名補完は +.An Ken Greer , +HP Labs が、 .\" #### modified by kuma 96.12.23 #### -8 bit クリーンな実装は Christos S. Zoulas, Cornell University +8 bit クリーンな実装は +.An Christos S. Zoulas , +Cornell University によって行われました。 .Sh 関連ファイル .Bl -tag -width /etc/passwd -compact .It Pa ~/.cshrc シェルが起動されるときに読み込まれる。 .It Pa ~/.login ログイン・シェルの場合、ログイン時に `.cshrc' の後に読み込まれる。 .It Pa ~/.logout ログイン・シェルにおいてログアウト時に読み込まれる。 .It Pa /bin/sh 標準シェル。`#' で始まらないシェル・スクリプトの実行に用いる。 .It Pa /tmp/sh* `<<' の処理に用いられる一時ファイル。 .It Pa /etc/passwd `~name' 展開時に用いられるホーム・ディレクトリに関する情報を得る。 .El .Sh 制限事項 .\" #### modified by kuma 96.12.23 #### 単語の長さは 1024 文字に制限されます。引数リストは、システムによって 10240 文字に制限されています。ファイル名展開を含む引数の数は、 引数リストの文字数の 6 分の 1 に制限されています。 コマンド置換の結果は、引数リストと同数の制限があります。 ループ検出のため、1 行に対するエイリアス展開は 20 回までに制限されています。 .Sh 関連項目 .Xr sh 1 , .Xr su 1 , .Xr access 2 , .Xr execve 2 , .Xr fork 2 , .Xr killpg 2 , .Xr pipe 2 , .Xr setrlimit 2 , .Xr sigvec 2 , .Xr umask 2 , .Xr wait 2 , .Xr tty 4 , .Xr a.out 5 , .Xr environ 7 .br .Em An introduction to the C shell .Sh 歴史 .Nm csh は .Bx 3 で追加されました。 .\" #### modified by kuma 96.12.23 #### コマンドインタプリタとしては、履歴(参照: .Sx ヒストリ置換 )、ジョブ制御 (参照: .Sx ジョブ .\" #### modified by kuma 96.12.23 #### 参照)、対話的なファイル名補完とユーザ名補完(参照: .Sx ファイル名補完 .\" #### modified by kuma 96.12.23 #### )、C言語ライクな文法を採用して実装した最初のものです。 これらの機構にいくつかの追加機能(といくらかのバグの可能性)を 持つシェルは、現在ではたくさんあります。 これらは usenet から入手することができます。 .Sh バグ コマンドが停止状態から復帰したとき、もしそのコマンドが起動したときの ディレクトリとカレント・ディレクトリが異なるなら、 シェルはコマンドを起動したときのカレント・ディレクトリの値を表示します。 .\" #### modified by kuma 96.12.23 #### これは、そのジョブが内部的にディレクトリを変更した場合は誤解(間違った情報) を与える可能性があります。 .Pp シェルの組み込みコマンドは中断(suspend)も再開もできません。 `a ; b ; c' のようなコマンド列も適切には中断することができません。 たとえば、 `b' の実行を中断した場合には、 すぐに `c' の実行が開始されてしまいます。これは .Ar alias としてコマンド列を指定している場合に特に目立ちます。 このようなコマンド列は `()' で囲んでサブシェルで実行されるようにすることによって、 適切に停止させることが可能になります(`( a ; b ; c )'のように)。 .Pp プロセスを起動したあとの端末出力の制御が貧弱です。おそらく、 このために、 .\" #### modified by kuma 96.12.23 #### もっと良い仮想端末インタフェースを開発したいと考える人がいても何ら不思議はないです。 仮想端末インタフェース上なら、 もっと おもしろい端末出力の制御が可能になるでしょう。 .Pp .\" #### modified by kuma 96.12.23 #### シェル関数をシミュレートするために、エイリアスを不格好に用いてしまうことが よくあります。シェル関数がサポートされるべきです。 .Pp ループ中のコマンド入力において、 `?' プロンプトに続けて入力された内容はヒストリに残りません。 制御構造は組み込みコマンドとして解釈されるのではなく、 文法的に解釈するようにするべきです。これにより制御コマンドをどこにでも 置けるようになり、`\&|', `&', `;' との組み合わせが 自由にできるようになります。 .Pp コマンド置換の出力にも `:' 修飾子が適用できるべきです。 .Pp .\" #### modified by kuma 96.12.23 #### ファイル名補完機構の実装は不細工かつ非効率的です。 diff --git a/ja_JP.eucJP/man/man1/domainname.1 b/ja_JP.eucJP/man/man1/domainname.1 index c40f762f7a..4864359096 100644 --- a/ja_JP.eucJP/man/man1/domainname.1 +++ b/ja_JP.eucJP/man/man1/domainname.1 @@ -1,67 +1,68 @@ .\" Copyright (c) 1983, 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hostname.1 8.1 (Berkeley) 5/31/93 +.\" %Id: domainname.1,v 1.2.6.2 1998/06/30 06:42:59 charnier Exp % .\" %Id: domainname.1,v 1.2.6.1 1997/08/24 21:48:26 jkh Exp % .\" jpman %Id: domainname.1,v 1.3 1997/08/07 12:10:39 horikawa Stab % .\" .Dd September 18, 1994 .Dt DOMAINNAME 1 .Os "FreeBSD 2.0" .Sh 名称 .Nm domainname .Nd 現在の YP/NIS ドメイン名の設定、表示 .Sh 書式 .Nm domainname .Op Ar ypdomain .Sh 解説 .Nm domainname は現在の YP/NIS ドメイン名の表示をします。 スーパユーザは、引数にドメイン名を指定することでドメイン名の設定を することもできます。 通常このコマンドは、起動時のネットワークの初期化スクリプト .Pa /etc/rc.network で実行されます。 .Sh 注意事項 YP/NIS (昔は ``Yellow Pages'' でしたが、法律上の問題で改名しました) のドメイン名は、 必ずしもドメインネームシステム(DNS)のドメイン名とは関係有りません。 しかし、しばしば管理上の便利さから同じに設定される 場合があるようです。 .Sh 関連項目 .Xr getdomainname 3 .Sh 歴史 .Nm domainname コマンドは .Tn SunOS の同様のコマンドをベースに、 .Tn FreeBSD 1.1 で登場しました。 diff --git a/ja_JP.eucJP/man/man1/fdwrite.1 b/ja_JP.eucJP/man/man1/fdwrite.1 index a33db83318..b068e1a634 100644 --- a/ja_JP.eucJP/man/man1/fdwrite.1 +++ b/ja_JP.eucJP/man/man1/fdwrite.1 @@ -1,123 +1,123 @@ .\" .\" ---------------------------------------------------------------------------- .\" "THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\" can do whatever you want with this stuff. If we meet some day, and you think .\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\" ---------------------------------------------------------------------------- .\" -.\" %Id: fdwrite.1,v 1.2.2.2 1997/09/19 06:21:39 charnier Exp % +.\" %Id: fdwrite.1,v 1.2.2.4 1998/06/27 21:30:44 steve Exp % .\" jpman %Id: fdwrite.1,v 1.4 1997/07/26 21:35:54 horikawa Stab % .\" .\" .Dd September 16, 1993 .Os FreeBSD .Dt FDWRITE 1 .Sh 名称 .Nm fdwrite .Nd フロッピディスクのフォーマットと書き込み .Sh 書式 .Nm fdwrite .Op Fl v .Op Fl y .Op Fl f Ar inputfile .Op Fl d Ar device .Sh 解説 .Nm fdwrite は、複数のフロッピディスクをフォーマットし書き込みます。 フォーマットできるフロッピディスクデバイスを使うことができます。 .Nm fdwrite は、 .Pq /dev/tty のユーザに新しいフロッピをいれてリターンキーを押すように指示します。 デバイスがその後にオープンされ、パラメータが尋ねられ、 その後トラックがフォーマットされ、 .Ar inputfile で指定されたデータが書き込まれ、ベリファイされます。 フロッピディスクがいっぱいになった時は、この仮定が次のディスクに対して 繰り返されます。これは、プログラムが中断されるか .Ar inputfile の終り (EOF) に達するまで続けられます。 以下のようなオプションがあります。 .Bl -tag -width 10n -offset indent .It Fl v 標準出力への出力情報の状態をトグルで変更します。 デフォルトのモードは ``on'' です。 はじめてデバイスがオープンされた後で、フォーマットが出力されます。 操作の間には、現在のフロッピディスクの残りのトラック数と 文字 I, Z, F, W, R, C,の文字が出力されます。各文字は、現在のトラックに 対して、入力 (I) 、ゼロで埋める (Z) 、フォーマット (F) 、書き込み (W) 、 読み込み (R) 、比較 (C) のそれぞれを行っていることをあらわします。 .It Fl y ドライブにフロッピディスクがあるかどうか問いあわせません。 この非対話オプションはシェルスクリプトで使用するのに便利です。 .It Fl f Ar inputfile 読み込むための入力ファイルです。もし、与えられていない場合は標準入力が 仮定されます。 .It Fl d Ar device 書き込むためのフロッピデバイスの名前です。 デフォルトは、 ``/dev/rfd0'' です。 .El .Nm fdwrite は、ユーザがリターンを押すのを待っている間は .Ar device をクローズしています。したがって、この時には完全にドライブを別の目的で 使うことができ、あとで次のフロッピの書き込みを再開できます。 .Ar device からかえって来たパラメータは、フォーマットのために使われます。 もし、特別なフォーマットが必要な時には、 .Xr fdformat 1 を代わりに使ってください。 .Sh 使用例 .Nm fdwrite は、複数枚数のフロッピへの書き込みを 簡単に行えるようにと考えらえて作成されたツールです。 そのような使用例は、以下の tar アーカイブの書き込みがあります。 .ce 1 tar cf - . | gzip -9 | fdwrite -d /dev/rfd0.1720 -v .Xr tar 1 のマルチボリューム機能との主要な違いは、 もちろんフロッピのフォーマットです。フォーマットは実行中に行われるので、 フロッピに対する仕事の量を減らすことができます。 .Sh 関連項目 -.Xr fdformat 1 . +.Xr fdformat 1 .Sh 歴史 .Nm fdwrite は、 ``make world'' が終了するのを待つ間に書かれました。 コードのうちいくつかは、 .Xr fdformat 1 から持って来ました。 .Sh 作者 このプログラムは、 .An Poul-Henning Kamp Aq phk@login.dknet.dk によるコントリビューションです。 .Sh バグ 診断機能は現在は完全ではありません。 フロッピがおかしい時に .Ar inputfile がシーク可能であれば、ユーザにディスクを無げ捨て、 別のフロッピを入れて、正しい場所まで戻って操作を続けるように指示すべきです。 この方法は、シークできない入力に対しても同様に一時ファイルを 使用することで、拡張可能です。 オプション ( デフォルトは 0) で、ユーザに失敗した時の再試行回数を 尋ねるべきでしょう。 現在は、フロッピのマルチボリュームを読み戻すための適当なツールが ありません。 データが圧縮されていない時には、代わりに .Xr tar 1 の様なプログラムで、そのような仕事を行うことができます。 このような状態の時にはもちろん、いつも .Xr dd 1 を信用することもできます。 diff --git a/ja_JP.eucJP/man/man1/hostname.1 b/ja_JP.eucJP/man/man1/hostname.1 index c1eeefe81a..d989f32b14 100644 --- a/ja_JP.eucJP/man/man1/hostname.1 +++ b/ja_JP.eucJP/man/man1/hostname.1 @@ -1,65 +1,65 @@ .\" Copyright (c) 1983, 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hostname.1 8.2 (Berkeley) 4/28/95 .\" jpman %Id: hostname.1,v 1.2 1997/04/10 07:27:59 mutoh Stab % -.\" %Id: hostname.1,v 1.3.2.2 1997/08/24 21:51:25 jkh Exp % +.\" %Id: hostname.1,v 1.3.2.3 1998/06/30 06:43:13 charnier Exp % .\" .Dd April 28, 1995 .Dt HOSTNAME 1 .Os BSD 4.2 .Sh 名称 .Nm hostname .Nd 現在のホスト名の表示、設定 .Sh 書式 .Nm hostname .Op Fl s .Op Ar name-of-host .Sh 解説 .Nm は、現在のホストの名前を表示します。 スーパーユーザは、引数を与えることでホスト名の設定をすることもできます。 これは通常、ブート時にネットワークの初期化スクリプトである .Pa /etc/rc.network の中で行なわれます。 .Pp オプションとしては、以下のものがあります。 .Bl -tag -width flag .It Fl s 名前からドメイン情報を取り除いて表示します。 .El .Sh 関連項目 .Xr gethostname 3 .Sh 歴史 .Nm hostname ユーティリティは .Bx 4.2 から登場しています。 diff --git a/ja_JP.eucJP/man/man1/mkdir.1 b/ja_JP.eucJP/man/man1/mkdir.1 index 6e06f2ae08..c8e6ef0b94 100644 --- a/ja_JP.eucJP/man/man1/mkdir.1 +++ b/ja_JP.eucJP/man/man1/mkdir.1 @@ -1,103 +1,103 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 -.\" %Id: mkdir.1,v 1.3.2.1 1997/02/28 07:54:38 mpp Exp % +.\" %Id: mkdir.1,v 1.3.2.2 1998/06/30 06:42:30 charnier Exp % .\" jpman %Id: mkdir.1,v 1.2 1997/03/29 06:22:04 horikawa Stab % .\" .Dd January 25, 1994 .Dt MKDIR 1 .Os .Sh 名称 .Nm mkdir .Nd ディレクトリの作成 .Sh 書式 .Nm mkdir .Op Fl p .Op Fl m Ar mode .Ar directory_name ... .Sh 解説 .Nm は、 オペランドで指定されたディレクトリを作成します。 作成する順番は指定された順番です。 作成されるディレクトリのパーミッションは、 .Li rwxrwxrwx (\&0777) に .Xr umask 2 の修正を加えたものです。 .Pp オプションとしては以下のものがあります: .Pp .Bl -tag -width indent .It Fl m Ar mode 作成されるディレクトリのパーミッションを指定します。 .Ar mode の書式は .Xr chmod 1 コマンドと同じです。シンボリック形式で指定する場合、 .Dq + および .Dq - は、最初のパーミッションが .Dq a=rwx であるものとして解釈されます。 .It Fl p 必要に応じて途中のディレクトリを作成します。 このオプションが指定されていない場合には、 .Ar directory_name で指定するパスの途中のディレクトリは既に存在している必要があります。 途中に作成されるディレクトリのパーミッションは、 .Li rwxrwxrwx (\&0777) に現在の umask の修正を加えたものに、 所有者に対する書き込みと検索パーミッションが加わった値となります。 .El .Pp ユーザは親ディレクトリに対する 書き込みパーミッションを持っている必要があります。 .Pp .Nm は成功した場合は 0 を、エラーが起きた場合は 1 以上の値を返します。 .Sh 関連項目 .Xr rmdir 1 .Sh 規格 .Nm mkdir ユーティリティは .St -p1003.2 互換です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/pax.1 b/ja_JP.eucJP/man/man1/pax.1 index ebaeb29b71..1e2b0a57d0 100644 --- a/ja_JP.eucJP/man/man1/pax.1 +++ b/ja_JP.eucJP/man/man1/pax.1 @@ -1,1174 +1,1175 @@ .\" Copyright (c) 1992 Keith Muller. .\" Copyright (c) 1992, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Keith Muller of the University of California, San Diego. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pax.1 8.4 (Berkeley) 4/18/94 +.\" %Id: pax.1,v 1.3.2.2 1998/06/30 06:42:49 charnier Exp % .\" jpman %Id: pax.1,v 1.4 1997/08/25 03:45:37 horikawa Stab % -.\" %Id: pax.1,v 1.3.2.1 1998/05/31 22:44:52 steve Exp % .\" .Dd April 18, 1994 .Dt PAX 1 .Os BSD 4.4 .Sh 名称 .Nm pax .Nd ファイルアーカイブの読み書きやディレクトリ階層のコピーを行う .Sh 書式 .Nm pax .Op Fl cdnv .Bk -words .Op Fl f Ar archive .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Oc .Ar ... .Ek .Op Ar pattern ... .Nm pax .Fl r .Op Fl cdiknuvDYZ .Bk -words .Op Fl f Ar archive .Ek .Bk -words .Op Fl o Ar options .Ar ... .Ek .Bk -words .Op Fl p Ar string .Ar ... .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Op Fl E Ar limit .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Oc .Ar ... .Ek .Op Ar pattern ... .Nm pax .Fl w .Op Fl dituvHLPX .Bk -words .Op Fl b Ar blocksize .Ek .Oo .Op Fl a .Op Fl f Ar archive .Oc .Bk -words .Op Fl x Ar format .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Bk -words .Op Fl o Ar options .Ar ... .Ek .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Op Fl B Ar bytes .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Op Ar /[c][m] .Oc .Ar ... .Ek .Op Ar file ... .Nm pax .Fl r .Fl w .Op Fl diklntuvDHLPXYZ .Bk -words .Op Fl p Ar string .Ar ... .Ek .Bk -words .Op Fl s Ar replstr .Ar ... .Ek .Bk -words .Op Fl U Ar user .Ar ... .Ek .Bk -words .Op Fl G Ar group .Ar ... .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Op Ar /[c][m] .Oc .Ar ... .Ek .Op Ar file ... .Ar directory .Sh 解説 .Nm pax は、アーカイブファイルの読み込み、書きだし、アーカイブファイルに 格納されているファイルの一覧読みだし、そしてディレクトリ階層のコピーを 行います。 .Nm pax の操作は指定したアーカイブフォーマットとは独立しており、また .Nm pax は広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。 .Nm pax のサポートするアーカイブフォーマット一覧は、 .Fl x オプションの説明時に示します。 .Pp .Fl r および .Fl w は、以下の .Nm pax の機能モードのいずれかを指定するのに用いられます。その機能モードとは、 .Em 一覧表示モード、読み込みモード、書き込みモード、コピーモード の 4 つです。 .Bl -tag -width 6n .It .Em 一覧表示モードです。 .Nm pax は、 .Dv 標準入力 から読み込まれたアーカイブ内の格納ファイルのリストを .Dv 標準出力 へ書き出します。標準入力から読み込まれるファイルのパス名は、指定した .Ar pattern に一致するものが採用されます。 ファイル一覧は 1 行に 1 つのファイル名を含み、1 行バッファリングを行って 書き出されます。 .It Fl r .Em 読み込みモードです。 .Nm pax は、 .Dv 標準入力 からアーカイブ読み込み、その内に格納されたファイルのうち指定した .Ar pattern に一致するファイル名を持つファイルを展開します。 アーカイブフォーマット及びブロック化係数は、自動的に入力から決定されます。 展開されるファイルがディレクトリの場合、そのディレクトリ配下に連なる ファイル階層は完全な形で展開されます。 展開される全てのファイルは、現在のファイル階層からの相対ディレクトリに 生成されます。展開されるファイルの所有権、アクセス時刻、更新時刻、 そしてファイルモードの設定についての詳細は、 .Fl p オプションのところで述べます。 .It Fl w .Em 書き込みモードです。 .Nm pax は、 .Ar file オペランドで指定したファイル群のアーカイブを 指定したフォーマットで標準出力に書き出します。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下の 全ファイルが作成されるアーカイブに含まれます。 .It Fl r Fl w .Em コピーモードです。 .Nm pax は、ファイルオペランドで指定したファイル群を、指定した .Ar ディレクトリ にコピーします。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下のファイルがすべて、 コピー先として指定したディレクトリ配下に作成されます。 .Em コピーモード は、ファイルがアーカイブファイルに対して書き込まれ、 そして一方でそのアーカイブファイルが展開されるかのように見ます。 ただし、これはオリジナルファイルとコピーファイルの間に ハードリンクが張られるかも知れない事を除きます .Ns ( Fl l オプションを参照して下さい)。 .Pp .Em 注意 コピー先の .Ar ディレクトリ には、コピー元にあるものと同じファイル名の .Ar file オペランドや .Ar file オペランドで指定されるディレクトリ階層の配下にあるファイル名などを 指定してはいけません。 そのような場合、 .Em コピー の結果は予測できないものになります。 .El .Pp .Em 読み込み 操作や .Em 一覧表示 動作において壊れたアーカイブを処理する場合、 .Nm pax は媒体破損を可能な限り復旧し、 アーカイブの中から可能な限りのファイルを処理しようと試みます (エラー時の 処理の詳細は .Fl E オプションを参照して下さい)。 .Sh オペランド .Pp .Ar directory オペランドは、コピー先ディレクトリの指定を行います。 .Ar directory オペランドが存在しない場合、もしくはユーザが書き込みを出来ない、 もしくは指定したオペランドがディレクトリでない場合には、 .Nm pax は、0 以外のステータスでプログラムを終了します。 .Pp .Ar pattern オペランドは、アーカイブに格納されているファイルの名前を選択するために 用いられます。 アーカイブメンバは、 .Xr fnmatch 3 に記述のある表記に一致するパターンを用いて選択されます。 .Ar pattern オペランドが指定されない場合には、アーカイブ内に格納されている 全てのメンバが選択されます。 .Ar pattern がディレクトリ名と一致する場合には、そのディレクトリ配下の階層に 位置する全てのファイルが選択されます。 もしアーカイブ内に .Ar pattern オペランドの指定と一致する名前のファイルがない場合には、 .Nm pax は .Ar 標準エラー出力 に出力される診断メッセージにこの .Ar pattern オペランドを書き出し、0 以外のステータスでプログラムを終了します。 .Pp .Ar file オペランドは、コピーもしくはアーカイブされるファイルのパス名を指定します。 .Ar file オペランドが 1 つもアーカイブメンバを選択しない場合には、 .Nm pax は .Dv 標準エラー出力 に出力される診断メッセージにこの .Ar file オペランドの内容を書き出し、0 以外のステータスでプログラムを終了します。 .Sh オプション .Pp .Nm pax では、以下のオプションが使用可能です。 .Bl -tag -width 4n .It Fl r アーカイブファイルを .Dv 標準入力 から読み込み、 .Ar files で指定したファイルを展開します。 アーカイブされているファイルの展開に中間ディレクトリの作成が必要な場合、 これらのディレクトリは、 .Xr mkdir 2 の mode 引数のところに .Dv S_IRWXU , S_IRWXG , S_IRWXO の .Dv 論理和 を指定して呼び出された場合と同様に作成されます。 選択されたアーカイブ形式がリンクファイルの指定をサポートし、 かつアーカイブ展開時にリンク不可能である場合には、 .Nm pax は、処理が終了する時に、診断メッセージを .Dv 標準エラー出力 に書き出し、0 以外のステータスで終了します。 .It Fl w 指定したアーカイブフォーマットで、 .Dv 標準出力 にアーカイブを書き出します。 .Ar file オペランドが指定されない場合には、1 行につき展開するファイルのパス名 1 つを 記述したリストを .Dv 標準入力 から読み込みます。 このリストの各行の先頭や末尾には .Aq 空白 を入れてはいけません。 .It Fl a すでに存在するアーカイブファイルの後ろに、ファイル .Ar files を追加書き込みします。 .Fl x オプションによるアーカイブフォーマット指定がされない場合、 アーカイブフォーマットは追加書き込み対象となるアーカイブファイルの フォーマットと同一になります。 アーカイブファイルに対して、そのアーカイブファイルのフォーマットと 異なるフォーマットを用いてファイルを追加書き込みをしようとした場合、 .Nm pax は即時に 0 以外の終了ステータスでプログラム終了します。 アーカイブボリュームに最初に書き込んだブロックサイズを引き継いで、 残りのアーカイブボリュームのブロックサイズとします。 .Pp .Em 注意 : 多くの記憶装置は追加書き込み処理に必要な操作をサポートできません。 そのようなサポートしていないデバイスに対するアーカイブの追加書き込みは、 アーカイブの破損もしくは他の予期せぬ結果を招くことになります。 特に、テープドライブに対する追加書き込み処理は、最もサポートしそうにない ものです。 普通のファイルシステムのファイルとして、もしくはディスクデバイス上に 保存されているアーカイブについては、通常は追加書き込み処理をサポートします。 .It Fl b Ar blocksize アーカイブを .Em 書き出す 際、アーカイブへと書き出す内容を blocksize (正の整数) で指定したバイト数 でブロック化します。 .Ar blocksize で指定出来る値は、512 の倍数でなくてはならず、最大は 32256 です。 .Ar blocksize で指定する数は、その最後に .Li k もしくは .Li b を付加することで、1024(1K) もしくは 512 の倍数として指定できます。 .Ar blocksizes に指定する数字を .Li x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 アーカイブの書き込みのために指定するデバイスによっては、 ブロックサイズに対してさらに制限がかかることがあります。 ブロック化が指定されない場合には、デフォルトの .Ar blocksize は使用される特定のアーカイブフォーマットに依存します。 .Ns ( Fl x オプションを参照して下さい)。 .It Fl c .Ar pattern に指定されたパターンにマッチしたファイルおよび .Ar file オペランドで指定されたファイル .Em 以外 の、全てのファイルもしくはアーカイブ内メンバにマッチします。 .It Fl d コピーもしくはアーカイブされるディレクトリ、もしくはアーカイブに格納され ているディレクトリについて、指定パターンに一致した名前のディレクトリもし くはアーカイブ内に格納されているディレクトリのみ処理し、そのディレクトリ 配下にあるファイルについては処理しません。 .It Fl f Ar archive .Ar archive で指定したファイルを入力元のアーカイブもしくは出力先のアーカイブに指定し ます。この場合、デフォルトの .Dv 標準入力 .Ns ( Em 一覧表示モード および .Em 読み込みモード の場合) もしくは .Dv 標準出力 .Ns ( Em 書き込みモード ) については無視されます。 1 つのアーカイブが複数のファイルもしくは異なるアーカイブデバイスに渡って も構いません。必要があった場合、 .Nm pax は、アーカイブの格納されている次のボリュームのファイルもしくはデバイスの パス名の入力を促します。 .It Fl i 対話的にファイルもしくはアーカイブ内に格納されるファイルのリネームを行います。 .Ar pattern で指定した文字列パターンに一致するアーカイブ内の格納ファイルもしくは .Ar file オペランドの指定に一致するファイルについて、 .Nm pax は .Pa /dev/tty に対してファイルの名前やファイルモード、そしてファイルの更新時刻を表示して 入力を促します。 それから .Nm pax は .Pa /dev/tty からデータを 1 行読み込みます。 その行が空行だった場合には、その時のファイルもしくはアーカイブ内の 格納ファイルについては、処理を行いません。 その行がピリオド 1 つだけの行だった場合には、その時のファイルもしくは アーカイブ内の格納ファイルについては、ファイル名についての更新は行いません。 それ以外の場合には、ファイル名はその行の文字列で指定した名前に変更されます。 上記操作中に .Dv を .Pa /dev/tty から受けとった場合、もしくは何らかの理由で .Pa /dev/tty をオープン出来なかった場合、 .Nm pax は 0 以外の終了ステータスで即座に終了します。 .It Fl k すでに存在するファイルに対する上書きをしません。 .It Fl l (アルファベットの ``エル'' ) ファイルをリンクします。 .Em コピーモード .Ns ( Fl r .Fl w ) の場合には、コピー元コピー先間には可能な限りハードリンクが作成されます。 .It Fl n アーカイブに格納されるファイルのうち、各 .Ar pattern オペランドに指定した文字列パターンに一致するファイル名を持つ最初のものを 選択します。 アーカイブに格納されるファイルのうち .Ar pattern オペランドに指定した文字列パターン に一致するもので、2 つめ以降のものは選択されません。 文字列パターンで指定した条件に合致するものがディレクトリだった場合、 そのディレクトリ配下のファイルについても選択されたものとみなされます(ただし、 .Fl d オプションが指定された場合にはこの限りではありません)。 .It Fl o Ar options .Fl x で指定されるアーカイブフォーマットから特定される、 アーカイブファイル展開/書き出しアルゴリズムの更新情報を指定します。 一般的に、 .Ar options は .Cm name=value のように指定されます。 .It Fl p Ar string 1 つ以上のファイルの属性操作に関する動作をオプション指定します。 .Ar string オプション引数は、ファイル展開時に、展開ファイルの属性を保存するか破棄す るかを指定する文字列です。 string は、 .Cm a , e , m , o , p の 5 つの指定文字から成ります。 複数の属性を同じ文字列の中につなげて記述したり、複数の .Fl p オプションを指定したりすることもできます。 これらの文字は、以下のように動作の指定を行います: .Bl -tag -width 2n .It Cm a ファイルのアクセス時間を保存しません。 デフォルトでは、ファイルのアクセスタイムは可能な限り保存されます。 .It Cm e ファイルのユーザ ID, グループ ID, ファイルモードのビット、ファイルの アクセス時間、ファイルの更新時間、これらの .Sq 全ての属性を保存します。 本オプションは、 .Em スーパユーザ、 もしくは適正な権限を持ったユーザによって 使用されることを推奨します。 これは、アーカイブ内に格納されたすべてのファイルについて、 そのファイルの特性を保存するためです。 フラグを指定した場合は、 .Cm o および .Cm p フラグを指定したのと同様の効果を持ちます。 .It Cm m ファイルの更新時間を保存しません。 デフォルトでは、ファイルの更新時間は可能な限り保存されます。 .It Cm o ユーザ ID とグループ ID を保存します。 .It Cm p ファイルモードのビットを .Sq 保存します。 本オプションは、 ファイルについて、所有者情報以外の全ての情報の保存を希望するなど適正な 権限を持った .Em ユーザ に使用されることを推奨しています。 ファイルの時刻はデフォルトで保存されますが、 これを無効にしたり、展開時の時刻を用いるようにするために 別に 2 つのフラグが用意されています。 .El .Pp 先述のオプション一覧にて、 .Sq 属性の保存 とは、起動したプロセスの権限に応じて アーカイブ内に保存された属性が展開ファイルに反映されることを意味します。 これ以外の場合は、展開されるファイルの属性は、 通常のファイル生成と同様に決定されます。 .Cm e と .Cm o のどちらも指定されない場合、あるいは ユーザ ID とグループ ID がいかなる理由にせよ保存されない場合、 .Nm pax はファイル属性中の .Dv S_ISUID .Em ( setuid ) および .Dv S_ISGID .Em ( setgid ) のビットを設定しません。 これらの情報の引き継ぎが何らかの理由で失敗した場合、 .Nm pax は診断メッセージを .Dv 標準エラー出力 に書き出します。 これらの情報の保存失敗は、最終的な終了ステータスに影響しますが、 展開されたファイルが削除されるようなことはありません。 ファイル属性の操作に関するオプション文字が重複していたり、 他のオプション文字と処理上の競合を起こす場合には、 それらのオプションの中で一番最後に記述されたものの処理が採用されます。 例えば、 .Dl Fl p Ar eme が指定された場合には、ファイルの更新時間は保存されます。 .It Fl s Ar replstr アーカイブ内に格納されているファイルのうち、 .Ar pattern オペランドもしくは .Ar file オペランドで指定されたもののファイル名を、 .Ar replstr で指定された置換表現にしたがって更新します。この置換表現は、 .Xr ed 1 にて記述されている正規表現の書法に準じます。 これらの正規表現の書式は .Dl /old/new/[gp] です。 .Xr ed 1 に示されるように、 .Cm old は基本的な正規表現であり、 .Cm new はアンパサンド (&)、後方参照 \\n (nの部分は数字が入ります)、 補助表現を含むことができます。 文字列 .Cm old には、 .Dv 改行文字 を含んでも構いません。 ヌル文字以外のいかなる文字も、区切り文字として用いることが可能です (ここでは / を示しました)。 また、複数の .Fl s 表現を指定することが許されています。 これらの表現はコマンドラインで指定された順に適用され、 最初の置換が成功した時点でその置換を終了します。 置換処理の追加処理指定として、 .Cm g を指定した場合には、継続してファイル名の置換を行うことを指示します。 この場合、前回置換に成功した直後の文字から継続して置換を行います。 そして最初に置換を失敗したときに .Cm g オプションの処理を終了します。 置換処理の追加処理指定として .Cm p を指定した場合には、最初の置換成功結果を .Dv 標準エラー出力 に以下のフォーマットで書き出します: .Dl >> 空白文字に置換される通常ファイルもしくはアーカイブ内に格納されたファイルの ファイル名は、処理対象として選択されず、そのファイル名に対する 処理はスキップされます。 .It Fl t .Nm pax が読み込んだ、もしくはアクセスした全てのファイルやディレクトリの アクセス時間を、 .Nm pax がそれらのファイルやディレクトリを処理する前のものに再設定します。 .It Fl u 同じ名前ですでに存在するファイルやアーカイブ内に格納されているファイルより 古い (ファイル更新時刻が古い) ファイルを無視します。 .Em 読み込み処理 においては、アーカイブ内のファイルにファイルシステム上にすでに存在するものと 同じ名前のファイルがあり、アーカイブ内のファイルの方が新しい場合に、 アーカイブ内のファイルが展開されます。 .Em 書き込み処理 においては、ファイルシステム上のファイルとアーカイブ内のファイルの名前が 同じもので、かつファイルシステム上のファイルの方がアーカイブ内のものより も新しい場合に、ファイルシステム上のファイルのアーカイブへの格納が行われます。 .Em コピー処理 においては、コピー先にあるファイルとコピー元にあるファイルが同一のファイル名 を持ち、かつコピー元にあるファイルの方が新しい場合に、 コピーあるいはリンクが行われます。 .It Fl v .Em 一覧表示処理 において、 .Xr ls 1 コマンドの .Fl l オプションを用いた時の表示と同じ形式を用いて、アーカイブ内容の表示を行います。 アーカイブの他のメンバとの間にハードリンクを構成するファイルのパス名に ついては、以下のフォーマットで出力されます。 .Dl == アーカイブの他のメンバとの間にシンボリックリンクを構成するファイルの パス名については、以下のフォーマットで出力されます。 .Dl => ここで の箇所は、 .Xr ls 1 コマンドを .Fl l オプションを付けて実行した場合の出力形式になります。 他のオプショナルモード (読み込みモード、書き込みモード、そしてコピーモード) の場合には、当該ファイルもしくはアーカイブ内のファイルの処理が始まるとすぐに、 それらのパス名が末尾の .Dv 改行文字 なしで .Dv 標準エラー出力 に書き込まれ、フラッシュされます。 ファイル名に付随する .Dv 改行文字 はバッファリングされることなく、ファイルが読み込まれたもしくは書き込まれた 直後に書き出されます。 .It Fl x Ar format 出力されるアーカイブフォーマットを指定します。デフォルトフォーマットは、 .Ar ustar フォーマットです。 .Nm pax は、現在以下のアーカイブフォーマットをサポートします: .Bl -tag -width "sv4cpio" .It Ar cpio .St -p1003.2 標準にて規定される、拡張 cpio 交換形式です。 本フォーマットのデフォルトブロックサイズは、5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar bcpio 古い binary cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは、5120 バイトです。 本フォーマットはポータビリティがそれほどよくないので、別のフォーマットが 使えるならば、そちらを使用したほうがよいでしょう。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar sv4cpio Unix System V Release 4(SVR4) の cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar sv4crc SVR4 で使用される、ファイルの crc チェックサムつきの cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm pax にて検出され、復元されます。 .It Ar tar BSD4.3 から用いられている古い BSD tar フォーマットです。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットでは、アーカイブ内に格納されるファイルのパス名は 100 文字以内 でなくてはなりません。 .Em 通常ファイル、ハードリンクファイル、 .Em シンボリックリンクファイル、ディレクトリ のみがアーカイブ内に格納されます (他のファイルシステムタイプについては、 サポートされません)。 さらに古い tar フォーマットとの過去の互換性は、 .Fl o オプションを用いて、アーカイブへのファイル保存時に ディレクトリを無視することで実現されます。 本オプションは、以下のように指定します: .Dl Fl o Cm write_opt=nodir .It Ar ustar .St -p1003.2 標準にて規定される、 拡張 tar 交換形式です。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットのアーカイブ内に保存されるファイルのパス名は、250 文字以下 の長さでなくてはなりません。 .El .Pp .Nm pax は、指定したアーカイブフォーマットの制限に起因して、ファイルの アーカイブへの格納もしくはアーカイブからのファイルの展開が出来ない場合には、 それを検出し、報告します。 各アーカイブフォーマットを使用した場合には、 使用時に更にそのアーカイブフォーマットの制限が課せられることがあります。 典型的なアーカイブフォーマットの制限は、ファイルのパス名の長さ、 ファイルサイズ、リンクファイルの指すファイルのパス名の長さ、 そしてファイルタイプなど。 (なお、制限要素はこれらに限られるわけではありません。) .It Fl B Ar bytes 単一のアーカイブボリュームに書き出される最大データ長を、 .Ar bytes で制限します。 .Ar bytes パラメータの末尾には .Li m , .Li k , .Li b のいずれかの文字を付加でき、それぞれ 1048576 (1M), 1024 (1K), 512 の倍数を 意味します。 また、 .Ar bytes に指定する数字を .Li x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 .Pp .Em 警告 : 最後の (もしくは最大の) 書き込み時のオフセットに基づいた EOF をサポートする デバイス (テープや通常ファイルなどのようなもの) にアーカイブを書き出す時 にのみ本オプションを使って下さい。 本オプションをフロッピーやハードディスクデバイスファイルに対して用いる ことは、推奨しません。 .It Fl D 本オプションは、 .Fl u オプションと同様の動作を行いますが、ファイルの更新時間の代わりに ファイルの inode 変更時間がチェックされるところが異なります。 ファイルの inode 変更時間は、inode 情報 (ユーザ ID、グループ ID、その他) が コピー先のディレクトリ .Ar directory にあるものよりも新しいファイルを選択するのに用いられます。 .It Fl E Ar limit 部分的に破損したアーカイブの読み込みをリトライする際、その読み込み失敗回数を .Ar limit までに制限します。 .Ar limit に正の数を指定した場合、 .Nm pax はアーカイブの読み込みエラーからの復帰を試行し、アーカイブに格納されて いる次のファイルから処理を継続します。 .Ar limit が 0 の場合、 .Nm pax は最初のリードエラーがアーカイブボリュームに発生したところで処理を停止します。 .Ar limit が .Li NONE の場合には、読み込み失敗からの復帰を永遠に試行します。 デフォルトの .Ar limit の値は、小さい正の整数(リトライ回数)です。 .Pp .Em 警告 : .Nm pax コマンドを、本オプションを .Li NONE 指定して起動する場合には十分に気をつけて下さい。 というのも、処理対象となるアーカイブがぼろぼろに破損していた場合には、 処理が無限ループに陥る可能性があるからです。 .It Fl G Ar group グループ名が .Ar group で指定したものであるファイルを選択します。 グループ名が .Cm # で始まる場合には、ファイルのグループ ID がそれに連なる数字のものを 選択します。'\\' を用いて .Cm # をエスケープすることができます。 .Fl G オプションは、複数指定することが可能です。 この場合、最初にグループ名もしくはグループIDが一致したらところで チェックは停止します。 .It Fl H 物理的にファイルシステムトラバースを行いながら、 コマンドラインで指定されたファイルについてのみ シンボリックリンクをたどります。 .It Fl L 全てのシンボリックリンクファイルをたどります。 すなわち、論理的にファイルシステムトラバースを行います。 .It Fl P シンボリックリンクをたどりません。 すなわち、物理的にファイルシステムトラバースを行います。 デフォルトはこのモードです。 .It Fl T Ar [from_date][,to_date][/[c][m]] ファイル更新時間もしくは inode 更新時間が .Ar from_date から .Ar to_date の間 (それぞれで指定した時間も含みます) にあるファイルを選択します。 .Ar from_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより新しいもののみ選択されます。 .Ar to_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより古いもののみ選択されます。 .Ar from_date と .Ar to_date が等しい場合には、ファイル更新時間もしくは inode 更新時間が その時間と等しいものが選択されます。 .Pp .Nm pax が .Em 書き込みモード もしくは .Em コピーモード の場合には、オプションフィールドとして .Ar [c][m] を指定することが可能です。このフィールドは、時間の比較に inode更新時間と ファイル更新時間のどちら(あるいは両方)を使うかを決定します。 どちらも指定されない場合(デフォルト時)には、ファイル更新時間のみが用いられます。 .Ar m は、ファイル更新時間 (ファイルへの書き込みが最後に行われた時間) を 比較対象として用います。 .Ar c は、inode 更新時間 (inode が最後に更新された時間。例えば所有者、 グループ、モードその他が更新された時間) を比較対象として用います。 .Ar c と .Ar m の両者が指定された場合、ファイル更新時間と inode 更新時間の両者が比較対象 になります。 inode 更新時間の比較は、最近属性が変更されたファイルや 最近作成されたファイル、そしてファイル更新時間が古いものに再設定された ファイル (ファイル更新時間を保存するオプションを用いてアーカイブから 展開されたファイルなどがこれにあたります) を選択するのに便利です。 ファイル時間も併用して時間比較をする機能は、 .Nm pax を用いて、 時間を基準にしたインクリメンタルアーカイブ (指定した期間内に更新された ファイルのみアーカイブすること) を行うのに便利です。 .Pp 時間の範囲は、6 つの異なるフィールドから成り、各フィールドは 2 ケタの数字を 含む必要があります。 その形式は以下の通りです: .Dl [yy[mm[dd[hh]]]]mm[.ss] .Cm yy は、年号 (西暦) の最後の 2 桁です。 最初の .Cm mm は、月 (01 から 12) です。 .Cm dd は、日付 (01 から 31 まで) です .Cm hh は、時 (00 から 23 まで) です。 2 番めの .Cm mm は、分 (00 から 59 まで)です。 そして、 .Cm ss は、秒 (00 から 59 まで)です。 分のフィールドの .Cm mm は、省略不可であり、他のフィールドはオプションであり、以下の順序で 付加されなければなりません: .Dl Cm hh , dd , mm , yy ただし、 .Cm ss フィールドだけは、他のフィールドとは独立して付加可能です。 時間の範囲は、現在時刻からの相対値で表され、 .Dl Fl T Ar 1234/cm は、本日の 12:34 PM から後のファイル更新時間、もしくは inode 更新時間を持つ ファイルを選択することを表します。 複数の .Fl T による時間範囲指定を行うことが許可されており、 指定した範囲のうちいずれかと一致したら、その後の範囲チェックは行いません。 .It Fl U Ar user ファイルの所有者名 .Ar user に基づいて、ファイル選択が行われます。所有者名が .Cm # で始まる場合には、ファイルの UID がそれに連なる数字のものを 選択します。'\\' を用いて .Cm # をエスケープすることができます。 複数の .Fl U オプションを指定することが許されており、その指定の中で最初にユーザが 一致した場合には、それ以降のユーザ名のチェックは行いません。 .It Fl X パス名で指定されたファイル階層をトラバースする場合に、異なるデバイス ID を 持つディレクトリへは下りていきません。 デバイス ID について詳細な情報を取得したい場合には、 .Xr stat 2 の .Li st_dev フィールドを参照して下さい。 .It Fl Y 本オプションは、 .Fl D オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて inode 更新時間をチェックするところが異なります。 .It Fl Z 本オプションは、 .Fl u オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて、ファイル更新時間をチェックするところが異なります。 .El .Pp ファイルもしくはアーカイブ内に格納されたファイルについての操作を制御する オプション ( .Fl c , .Fl i , .Fl n , .Fl s , .Fl u , .Fl v , .Fl D , .Fl G , .Fl T , .Fl U , .Fl Y , .Fl Z ) は、相互に以下のような影響を及ぼします。 .Pp .Em 読み込み 処理におけるファイル展開時には、 展開されるファイルは、まず、アーカイブ内に格納されるファイルのうち .Fl c , .Fl n , .Fl u , .Fl D , .Fl G , .Fl T , .Fl U のそれぞれのオプションを用いて指定されるユーザ指定のパターンオペランド に基づいて選択されます。 それらのファイルの中から .Fl s および .Fl i オプションがこの順に、選択されたファイル名を修正します。 それから、最終的なファイル名にて .Fl Y および .Fl Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 .Fl v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。 .Pp .Em 書き込み 操作や .Em コピー 操作のファイルアーカイブでは、以下のオプション .Fl n , .Fl u , .Fl D , .Fl G , .Fl T , .Fl U ( .Fl D オプションはコピー操作時のみ適用されます) によって アーカイブメンバのファイルを選択します。 続いて、それらのファイルの中から .Fl s および .Fl i オプションがこの順に、選択されたファイル名を修正します。 それから .Em コピー 処理においては、最終的なファイル名にて .Fl Y および .Fl Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 .Fl v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。 .Pp .Fl n といっしょに .Fl u オプションあるいは .Fl D オプションのどちらか、もしくは両方が指定された場合、そのファイルが 比較対象のファイルより新しくなければ、そのファイルは選択されたとは みなされません。 .Sh 使用例 コマンド: .Dl pax -w -f /dev/rst0 .\ は、カレントディレクトリの内容を .Pa /dev/rst0 にコピーします。 .Pp コマンド: .Dl pax -v -f filename は、 .Pa filename で指定したアーカイブに格納されているファイル内容の詳細な一覧を表示します。 .Pp 以下のコマンド: .Dl mkdir /tmp/foo .Dl cd /tmp/bar .Dl pax -rw .\ /tmp/foo を実行すると、 .Pa /tmp/bar 配下のディレクトリ階層全体を .Pa /tmp/foo にコピーします。 .Pp コマンド: .Dl pax -r -s ',^//*usr//*,,' -f a.pax は、アーカイブファイル .Pa a.pax からデータを読み込み、アーカイブ中の ``/usr'' 配下のファイルを全て、 カレントディレクトリからの相対ディレクトリに展開します。 .Pp コマンド: .Dl pax -rw -i .\ dest_dir は、カレントディレクトリから .Pa dest_dir ディレクトリにコピーしますが、ファイルをコピーするかどうかを 対話的に選択します。 .Pp コマンド: .Dl pax -r -pe -U root -G bin -f a.pax は、 .Pa a.pax 中に格納されているファイルのうち、所有者が .Em root でグループが .Em bin であるファイルを選択し、すべてのファイル属性を保存して展開します。 .Pp コマンド: .Dl pax -r -w -v -Y -Z home /backup は、コピー先ディレクトリ .Pa /backup にあるファイルのうち、コピー元ディレクトリ .Pa home に存在する同名のファイルより (inode 更新時刻もしくは ファイル更新時刻が) 古いものについて更新を行い、一覧表示します。 .Sh 規格 .Nm pax ユーティリティは、 .St -p1003.2 標準のスーパセットです。 オプション .Fl B , .Fl D , .Fl E , .Fl G , .Fl H , .Fl L , .Fl P , .Fl T , .Fl U , .Fl Y , .Fl Z 、アーカイブ形式 .Ar bcpio , .Ar sv4cpio , .Ar sv4crc , .Ar tar 、および .Ar 一覧表示 モードと .Ar 読み込み モードにおける破損したアーカイブの取り扱いは、 .Tn POSIX 標準に対する拡張です。 .Sh 作者 -Keith Muller at the University of California, San Diego +.An Keith Muller +at the University of California, San Diego .Sh エラー .Nm pax は、以下の値のいずれかで終了します: .Bl -tag -width 2n .It 0 すべてのファイルは正常に処理されました。 .It 1 エラーが発生しました。 .El .Pp アーカイブ読み込み中に .Nm pax がファイルを作成できない場合やリンクを張れない場合、 アーカイブに書き込み中にファイルが見つからない場合、 .Fl p オプション指定時にユーザ ID、グループ ID、ファイル属性を保存できない場合には、 診断メッセージが .Dv 標準エラー出力に 書き出され、0 以外の終了ステータスが返却されますが、 処理自体は継続して行われます。 ファイルへのリンクを作成できない場合には、 .Nm pax はファイルの二次コピーを作成しません。 .Pp アーカイブからのファイルの展開が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm pax はユーザが指定したファイルの一部分だけを展開して終了する可能性があります。 更に、展開したファイルやディレクトリの属性が不正であったり、 アクセス時間、更新時間も不正である可能性があります。 .Pp アーカイブの生成が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm pax は中途半端なアーカイブを生成している可能性があります。 このようなアーカイブは 特定のアーカイブフォーマット規定を満足していない可能性があります。 .Pp .Em コピー を行っている最中に、 .Nm pax が読み出したのと同じファイルへの書き込みを検出した場合、 そのファイルはコピーされず、診断メッセージが .Dv 標準エラー出力 へ書き出され、 .Nm pax は 0 以外の終了ステータスでプログラム終了します。 diff --git a/ja_JP.eucJP/man/man1/pwd.1 b/ja_JP.eucJP/man/man1/pwd.1 index d7ef88bc76..55ddd298bf 100644 --- a/ja_JP.eucJP/man/man1/pwd.1 +++ b/ja_JP.eucJP/man/man1/pwd.1 @@ -1,67 +1,67 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pwd.1 8.2 (Berkeley) 4/28/95 +.\" %Id: pwd.1,v 1.2.8.2 1998/06/30 06:43:02 charnier Exp % .\" jpman %Id: pwd.1,v 1.2 1997/04/21 08:09:42 mitchy Stab % -.\" %Id: pwd.1,v 1.2.8.1 1997/02/28 07:54:40 mpp Exp % .\" .Dd April 28, 1995 .Dt PWD 1 .Os BSD 4 .Sh 名称 .Nm pwd .Nd ワーキングディレクトリの表示 .Sh 書式 .Nm pwd .Sh 解説 .Nm pwd は、現在のワーキングディレクトリを絶対パスで標準出力に出力します。 .Pp .Nm pwd は、成功した場合は 0 を、エラーが起きた場合は 1 以上の値を返します。 .Sh 規格 .Nm pwd コマンドは .St -p1003.2 互換です。 .Sh 関連項目 .Xr cd 1 , .Xr csh 1 , .Xr getcwd 3 .Sh バグ .Xr csh 1 の内部コマンド .Ic dirs は pwd より高速ですが、実装が違うため、まれに サブディレクトリに移動したときの表示結果が異なることがあります。 diff --git a/ja_JP.eucJP/man/man1/rmdir.1 b/ja_JP.eucJP/man/man1/rmdir.1 index c303e059cb..b286858a06 100644 --- a/ja_JP.eucJP/man/man1/rmdir.1 +++ b/ja_JP.eucJP/man/man1/rmdir.1 @@ -1,98 +1,98 @@ .\" %NetBSD: rmdir.1,v 1.9 1995/03/21 09:08:29 cgd Exp % .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93 -.\" %Id: rmdir.1,v 1.3.2.1 1997/08/25 08:43:05 jkh Exp % +.\" %Id: rmdir.1,v 1.3.2.2 1998/06/30 06:42:35 charnier Exp % .\" jpman %Id: rmdir.1,v 1.2 1997/03/29 12:05:03 horikawa Stab % .\" .Dd May 31, 1993 .Dt RMDIR 1 .Os .Sh 名称 .Nm rmdir .Nd ディレクトリの削除 .Sh 書式 .Nm rmdir .Op Fl p .Ar directory ... .Sh 解説 -.Nm rmdir +.Nm は、 .Ar directory で指定したディレクトリが空の場合、削除を行います。 .Pp -.Nm rmdir +.Nm は、 .Ar directory で指定した順番にディレクトリの削除を試みます。 親ディレクトリとそのサブディレクトリを削除する場合は、先にサブディ レクトリが削除されるようにしなければなりません。 -.Nm rmdir +.Nm が親ディレクトリを削除する時に、 当該親ディレクトリが空となっている必要があるからです。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl p 各 .Ar directory 引数を構成する各ディレクトリに関しても、 そのディレクトリが空の場合、削除を行います。 削除は最後の要素から行います。( .Xr rm 1 の完全な無差別再帰削除を参照して下さい。) .El .Pp -.Nm rmdir +.Nm は以下のいずれかの値を返します: .Bl -tag -width Ds .It Li \&0 引数で指定されるディレクトリは空であり、削除に成功しました。 .It Li \&>\&0 エラーが発生しました。 .El .Sh 関連項目 .Xr rm 1 .Sh 規格 -.Nm rmdir +.Nm コマンドは .St -p1003.2 互換です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index f84e99a603..246dcd1b35 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1192 +1,1192 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" %Id: sh.1,v 1.9.2.8 1998/02/15 11:32:26 jkh Exp % +.\" %Id: sh.1,v 1.9.2.9 1998/06/30 06:42:53 charnier Exp % .\" jpman %Id: sh.1,v 1.2 1997/05/31 16:40:31 jsakai Stab % .\" Japanese Translation amended by Norihiro Kumagai, 3/29/96, .\" based on the version of NetBSD Japanese Man Project .\" This amended version is for the FreeBSD-jpman Project, convened .\" by Kazuo Horikawa. .\" .Dd May 5, 1995 .Dt SH 1 .Os BSD 4 .Sh 名称 .Nm sh .Nd コマンドインタプリタ(シェル) .Sh 書式 .Nm .Op Fl /+abCEefIimnpsuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Ar arg ... .Sh 解説 -.Nm sh +.Nm はシステムの標準コマンドインタープリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 Korn shell のクローンではありません(もし Korn shell クローンを望むなら、 Gnu の bash を使いましょう)。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです(ただし、ユーザは chsh(1) コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 実行させることもできます。 .Ss 起動 引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが ダッシュ `-' で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ユーザのホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 .sp .Dl ENV=$HOME/.shinit; export ENV .sp ここで、 .Pa .shinit のかわりに好きな名前を指定することができます。 オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 .Xr set 1 組み込みコマンド (後述) の引数として用いることができます。 これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 マイナス記号 .Dq - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Dq + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入された変数の全てをエクスポートします(未実装です)。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す(未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に -V オプションが指定 された場合、それを無効にします)。 .It Fl e Li errexit 非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq && や .Dq || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の EOF を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを( .Xr set 1 などによって)設定しても効果はありません。 .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi 組込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に `+' を付加して) 書き出します。デバッグのときに便利です。 .It Fl c Ar string 文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 数の単語からなる文字列は引用符で囲う必要があります。 .El .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるもので す) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: & && ( ) ; ;; | || .No \en .It No リダイレクト演算子: < > >| << >> <& >& <<- <> .El .Ss 引用(クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま(リテラ ル)として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字($)、バッククォート 文字(`)、バックスラッシュ文字(\\) を除き、すべてリテラルとして扱われま す。ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, 改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ ます。 .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bd -literal -offset indent ! { } case do done elif else esac fi for if then until while .Ed .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組込みコマンド .Xr alias 1 によって定義されます。 シェルは、予約語が現れる可能性がある場所(上記を参照)で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、``lf'' という名前で ``ls -F'' という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある ``name=value'' の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、「展開」の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した ``name=value'' の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複写 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .sp .Dl [n] redir-op file .sp ここで、redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890" -offset indent .It [n]> file 標準出力 (またはファイル記述子 n への出力) をファイル file に書き出します。 .It [n]>| file 上と同様。ただし、-C オプションの効果を打ち消します。 .It [n]>> file 標準出力 (またはファイル記述子 n への出力) をファイル file に追加します。 .It [n]< file 標準入力 (またはファイル記述子 n からの入力) をファイル file から取ります。 .It [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複写します。 .It [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It [n1]>&n2 ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に複写します。 .It [n]>&- 標準出力 (またはファイル記述子 n) をクローズします。 .It [n]<> file 標準入力 (あるいはファイル記述子 n) により、ファイル file を 読み書きするようにします。 .El .Pp 以下のリダイレクトは、しばしば``ヒア・ドキュメント(here-document)''と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォー ト) されていた場合、here-doc-text の内容をリテラルとして扱います。そ うでない場合、パラメータ展開、コマンド置換、数値演算 (「展開」の節で説 明します) を適用します。演算子が (``<<'' でなく) ``<<-'' の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に ``name=value'' を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で "#!" となる「マジックナンバ」でファイルが始まっておらず、 .Fn execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新た にシェルが起動されたかのような効果を得るために、子シェルは自分自身を再 初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、マジッ クナンバのないシェルスクリプトのことを「シェルプロシージャ」と呼んでい て、まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン(``:'')で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう な意味を持つかが記述されているはずです。組込みコマンドと(実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了(terminate)させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド(Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト(compound-list) .It 合成コマンド(compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 .Bd -literal -offset indent [!] command1 [ | command2 ...] .Ed .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属するリ ダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて下 さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Bd -literal -offset indent $ command1 2>&1 | command2 .Ed .Pp は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に 接続します。 .Pp \&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を 順次実行します。& は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは 起動したシェルの子プロセスとなります (シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されます --- ただし 環境に対して行った操作は取り消されます)。 .Ss バックグラウンドコマンド -- & コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト -- 一般的な話 リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいず れかで終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始しま す。その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開 始します。 .Ss 短絡リスト演算子(Short-Circuit List Operators) ``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 ``||'' も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 ``&&'' と ``||'' の優先順位は 同じです。 .Ss 制御構造 -- if, while, for, case if コマンドの文法は以下のとおりです。 .Bd -literal -offset indent if list then list [ elif list then list ] ... [ else list ] fi .Ed .Pp while コマンドの文法は以下のとおりです。 .Bd -literal -offset indent while list do list done .Ed .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。until コマンドも同様に実行しますが、 単語 while の代わりに単語 until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp for コマンドの文法は以下のとおりです。 .Bd -literal -offset indent for variable in word... do list done .Ed .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。do と done は ``{'' と ``}'' で置き換えることができます。 .Pp break と continue コマンドの文法は以下のとおりです。 .Bd -literal -offset indent break [ num ] continue [ num ] .Ed .Pp break は内側から num 個の for ループまたは while ループを終了します。 continue は、 num 個目のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組込みコマンドとして実装されています。 .Pp case コマンドの文法は以下のとおりです。 .Bd -literal -offset indent case word in pattern) list ;; ... esac .Ed .Pp pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 のこと) を ``|'' で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 (list) のなかの組込みコマンドは、現在のシェルには影響を与えません。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、``{'' と ``}'' で囲まれたリストです。 .Pp local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -literal -offset indent local [ variable | - ] ... .Ed .Pp local コマンドは、組込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名 前の変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から関 数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x ではなく、関数 f で宣言された変数 x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは ``-'' だけです。 ``-'' を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp return コマンドの文法は以下のとおりです。 .Bd -literal -offset indent return [ exitstatus ] .Ed .Pp return は現在実行中の関数を終了させます。return は組込みコマンドとして 実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組込みコマンド .Xr set 1 により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS が設定されていない場合は空白文字) で区切った単一の文字列になります。 .It @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が ``abc''、$2 が ``def ghi'' であっ た場合、"$@" は次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It # 位置パラメータの数に展開されます。 .It ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It - (ハイフン) 現在のオプションフラグ (1文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 (-f オプションが無効の場合) .It クォート削除 .El .Pp 文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合(たとえば ~/foobar)、チルダ文字は変数 HOME の値(現在のユーザ のホームディレクトリ)に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した `}' までのすべての文字です。対応する`}' を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧({})で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが @ の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の(文字列としての)長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン の項を参照) が用いられます。パラメータが` * 'または` @ 'の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp または(``バッククォート'' バージョン)、 .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 に出力したものから最後の改行文字を削除した結果で置換します (最後以外の 改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss 組込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、効率を上げるために組込みされているコマンド (例えば test(1) .Xr printf 1 , .Xr echo 1 , .Xr test 1 , 等) もあわせて列挙します。 .Bl -tag -width Ds .It : 終了ステータス 0 (真) を返すヌルコマンドです。 .It \&. file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Ql / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It alias [ name[=string] ... ] name=string が指定されている場合、シェルは名前 ``name'' を持つ値 ``value'' のエイリアスを定義します。単に ``name'' だけが指定された場合、 エイリアス ``name'' の値が表示されます。引数が指定されない場合、定義さ れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 .It bg [ job ] ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It command command arg ... 指定された組込みコマンドを実行します (組込みコマンドと同じ名前のシェル関数 がある場合に使います)。 .It cd [ directory ] 指定されたディレクトリに移動します (directory 無指定時は $HOME に移動します)。 cd コマンドの 環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ 指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 CDPATH に列挙されたディレクトリ以下に 指定されたディレクトリ directory がないか検索されます。 CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを 辿った場合に発生します。 .It eval string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It exec [ command arg ... ] コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに 置き換えられます (command は、シェル組込みコマンドや関数ではない、本物の プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 .It exit [ exitstatus ] シェルを終了します。指定された exitstatus は、シェルの終了ステータスに なります。exitstatus が省略された場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It export name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It fc [-e editor] [first [last]] .It fc -l [-nr] [first [last]] .It fc -s [old=new] [first] fc は、対話的シェルにそれ以前に入力されたコマンドの内容を 表示、編集、再実行します。 .Bl -tag -width Ds .It -e editor 編集に際し、指定されたエディタ editor を使用します。 editor は変数 PATH を通して検索できるコマンド名です。 -e が指定されなかった場合は、変数 FCEDIT の値が 用いられます。FCEDIT が設定されていないか空に設定されている場合は EDITOR の値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It -l (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は -r オプションの影響を受けます)出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It -n -l で一覧出力する際にコマンド番号を付加しません。 .It -r -l オプションでの一覧や、 編集時 (-l も -s も指定されなかった場合) の順序を反転します。 .It -s エディタを起動せずにコマンドを再実行します。 .It first .It last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 HISTSIZE の値で決まります。 first、last の値は以下のいずれかの形式で指定します。 .It [+]number 正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて 調べることができます。 .It -number 負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし -s オプションが指定されて ``old=new'' が指定されていなければ、 最初のオペランドにイコール記号(``='')を含めることはできません。 .El .\" 次の行の .Pp はもともとコメントアウトされていた .Pp fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Va FCEDIT 使用するエディタ名 .It Va HISTSIZE アクセス可能なコマンド数 .El .It fg [ job ] 指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 .It getopts optstring var POSIX に準拠した getopts コマンドです。 この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 有効でないオプションに出くわすと、変数 var には `?' がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It hash -rv command ... シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に cd コマンドが実行されてから参照されていない項目には アスタリスク文字 (``*'') が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 -v オプションを指定した場合、発見したコマンドの位置を表示します。-r オ プションを指定した場合、関数以外のすべてのエントリをハッシュテーブルから 削除します。 .It jobid [ job ] ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が 省略された場合、現在のジョブに対して処理を行います。 .It jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It pwd カレントディレクトリを表示します。組込みコマンドの pwd は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 組込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 .It Li "read [ -p prompt ] [ -e ] variable ... -p オプションが指定され、かつ標準入力が端末の場合、 prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の 単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp -t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 read コマンドは値を割当てずに戻ります。 タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 どれも指定しない場合には 's' であるものとします。 .Pp -e オプションを指定すると、入力中のバックスラッシュ文字を特別扱いします。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 .It readonly name ... 指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され ます。 .It Li "set [ { -options | +options | -- } ] arg ... set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 .It options が指定された場合、「引数リスト処理」の節で説明した方法で、 指定されたオプションフラグを設定あるいは解除します。 .It 第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの 設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 の引数として ``--'' を指定します。arg が指定されない場合、 すべての位置パラメータはクリアされます (``shift $#'' を実行することと 等価です)。 .El .Pp .It setvar variable value 変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。) .It shift [ n ] 位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It trap [ action ] signal ... シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する ように設定します。シグナルはシグナル番号で指定します。action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して trap コマンドを使用しても効果はありません。 .It type [name] ... 各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組込みコマンド、コマンド、痕跡つきエイリアス(tracked alias)、最後に not found (見つからず)があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマ ンドの完全なパス名が印刷されます。 .It ulimit [ -HSacdflmnust ] [ limit ] リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 ``limit'' が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp ``-H'' が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション ``-S'' を指定した場合はソフトリミットになります。 リミット値を表示する場合、``-S'' か ``-H'' のいずれか一方だけしか 指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション ``-a'' を指定すると全リソースの設定値が表示されます。 この場合、パラメータ ``limit'' は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It -c coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It -d datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It -f filesize ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 .It -l lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It -m memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It -n nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It -s stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It -t time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It -u userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It umask [ mask ] umask の値 ( .Xr umask 2 を参照) を、指定された 8 進数の値に設定します。引数が 省略された場合、現在の umask の値が表示されます。 .It unalias [-a] [name] ``name'' が指定された場合、指定された名前のエイリアスを削除します。 ``-a'' オプションが指定された場合、すべてのエイリアスを削除します。 .It unset name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It wait [ job ] 指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび コマンド履歴 (組込みコマンド fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man1/sleep.1 b/ja_JP.eucJP/man/man1/sleep.1 index 1fd80562ac..aef0fa44e4 100644 --- a/ja_JP.eucJP/man/man1/sleep.1 +++ b/ja_JP.eucJP/man/man1/sleep.1 @@ -1,120 +1,120 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sleep.1 8.3 (Berkeley) 4/18/94 -.\" %Id: sleep.1,v 1.2.8.2 1997/08/25 09:18:37 jkh Exp % +.\" %Id: sleep.1,v 1.2.8.3 1998/06/30 06:43:08 charnier Exp % .\" jpman %Id: sleep.1,v 1.2 1997/05/04 13:38:26 horikawa Stab % .\" .Dd April 18, 1994 .Dt SLEEP 1 .Os .Sh 名称 .Nm sleep .Nd 一定の時間実行を停止する .Sh 書式 .Nm .Ar seconds .Sh 解説 .Nm コマンドは、少なくとも .Ar seconds で指定した秒数だけ実行を停止します。 .Nm コマンドは 他のコマンドの実行のスケジューリングに用いられます(以下の .Sx 使用例 を参照)。 .Pp .Nm コマンドが SIGALRM シグナルを受信すると終了ステータス 0 にて終了します。 その他のシグナルでは標準の動作を行います。 .Pp .Nm コマンドは終了時に以下の値のいずれかを返します。 .Bl -tag -width flag .It Li \&0 正常終了した場合、もしくは .Dv SIGALRM シグナルを受信した場合。 .It Li \&>\&0 エラーが起きた場合。 .El .Sh 使用例 あるコマンドの実行を .Va x 秒後に設定したい場合: .Pp .Dl (sleep 1800; sh command_file >& errors)& .Pp 上記の例では、command_file で指定したスクリプトを実行する前に 30 分間待ちます( .Xr at 1 ユーティリティの項を参照)。 .Pp あるコマンドを( .Xr csh 1 を使って)繰り返し実行したい場合: .Pp .Bd -literal -offset indent -compact while (1) if (! -r zzz.rawdata) then sleep 300 else foreach i (`ls *.rawdata`) sleep 70 awk -f collapse_data $i >> results end break endif end .Ed .Pp このようなスクリプトが必要とされるのは以下のような場合でしょう: 現在実行中のプログラムが、一連のファイル群を処理するのに予想以上の 時間を必要としていて、このプログラムが処理結果をファイル (zzz.rawdata)に出力したらすぐに別のプログラムを起動して そのファイルを処理したほうがよい場合があります。 上記のスクリプトでは、zzz.rawdata が生成されたかどうかを 5 分おきに確認し、生成が確認されたら 70 秒待って awk ジョブを 実行する、という操作を繰り返します。 .Sh 関連項目 .Xr at 1 , .Xr setitimer 2 , .Xr alarm 3 , .Xr sleep 3 .Sh 規格 .Nm コマンドは、おそらく .St -p1003.2 互換です。 diff --git a/ja_JP.eucJP/man/man1/stty.1 b/ja_JP.eucJP/man/man1/stty.1 index 23407055bb..d8ad126433 100644 --- a/ja_JP.eucJP/man/man1/stty.1 +++ b/ja_JP.eucJP/man/man1/stty.1 @@ -1,530 +1,530 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stty.1 8.4 (Berkeley) 4/18/94 -.\" %Id: stty.1,v 1.4.2.3 1998/06/03 04:12:26 jkoshy Exp % +.\" %Id: stty.1,v 1.4.2.4 1998/06/30 06:43:23 charnier Exp % .\" jpman %Id: stty.1,v 1.2 1997/06/05 04:05:59 yugawa Stab % .\" .Dd April 18, 1994 .Dt STTY 1 .Os .Sh 名称 .Nm stty .Nd 端末の設定を行なう .Sh 書式 .Nm stty .Op Fl a | Fl e | Fl g .Op Fl f Ar file .Op operands .Sh 解説 -.Nm stty +.Nm は、標準入力になっているデバイスの端末属性を設定もしくは表示する プログラムです。オプションや引数を指定しなかった場合、 設定されている属性の一部や、デフォルト値と違う値が設定されている属性 を表示します。 指定した場合は、指定された引数に従って端末の状態を変更します。 ターミナルの種類によっては相互に排他的な引数の組み合わせもあります。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width Ds .It Fl a .St -p1003.2 に規定された形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl e .Tn BSD の伝統的な ``all'' や ``everything'' の形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl f 標準入力ではなく、 .Ar file で指定された端末を使います。 このファイルは .Fn open 関数に .Dv O_NONBLOCK フラグを付けてオープンされるので、端末の設定や表示をブロックされず に行なうことができます。 .It Fl g 端末変更後に端末の状態を復帰させられるように、 -.Nm stty +.Nm の引数として指定できる形式で、現在の端末属性を標準出力に 出力します。 この形式は .St -p1003.2 に規定されています。 .El .Pp 端末属性の設定には、以下の引数が使えます。 .Ss 制御モード: .Pp 制御モードのフラグは端末と関連するハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。 .Bl -tag -width Fl .It Cm parenb Pq Fl parenb パリティ生成および検出を有効 (無効) にします。 .It Cm parodd Pq Fl parodd 奇数パリティ (偶数パリティ) にします。 .It Cm cs5 cs6 cs7 cs8 可能なら 1 文字のビット幅を設定します。 .It Ar number 可能なら、端末のボーレートを .Ar number に設定します。0 を指定した場合は、モデムの制御を切ります。 .It Cm ispeed Ar number 可能なら、入力のボーレートを .Ar number に設定します。0 を設定した場合は、出力のボーレートと同じ値に設定されます。 .It Cm ospeed Ar number 可能なら、出力のボーレートを .Ar number に設定します。0 を設定した場合は、モデムの制御を切ります。 .It Cm speed Ar number .Cm ispeed と .Cm ospeed の両方を .Ar number に設定します。 .It Cm hupcl Pq Fl hupcl そのデバイスをオープンしているプロセスがクローズ処理を行ったとき、ほか にこのデバイスをオープンしているプロセスがなければ、モデムの制御機能に より切断処理を行います (行いません)。 .It Cm hup Pq Fl hup hupcl .Pq Fl hupcl と同じです。 .It Cm cstopb Pq Fl cstopb ストップビットを 2ビット (1ビット) にします。 .It Cm cread Pq Fl cread 受話器を有効 (無効) にします。 .It Cm clocal Pq Fl clocal 回線に対してモデム制御が不要である (必要である) とみなします。 .It Cm crtscts Pq Fl crtscts RTS/CTS フロー制御を有効 (無効) にします。 .El .Ss 入力モード: これは termios 構造体の c_iflag に相当します。 .Bl -tag -width Fl .It Cm ignbrk Pq Fl ignbrk 入力のブレーク信号を無視します (無視しません)。 .It Cm brkint Pq Fl brkint ブレークを受信したとき、シグナル .Dv INTR を出します (出しません)。 .It Cm ignpar Pq Fl ignpar パリティエラーを無視します (無視しません)。 .It Cm parmrk Pq Fl parmrk パリティエラーをマークします (マークしません)。 .It Cm inpck Pq Fl inpck 入力のパリティチェックを有効 (無効) にします。 .It Cm istrip Pq Fl istrip 入力した文字の 8 ビット目を捨てて 7 ビットにします (8 ビット目 を捨てません)。 .It Cm inlcr Pq Fl inlcr 入力の .Dv NL を .Dv CR に変換します (変換しません)。 .It Cm igncr Pq Fl igncr 入力の .Dv CR を無視します (無視しません)。 .It Cm icrnl Pq Fl icrnl 入力の .Dv CR を .Dv NL に変換します (変換しません)。 .It Cm ixon Pq Fl ixon 制御コードの .Dv START/STOP を使った出力フロー制御を有効 (無効) にします。 システムから端末への出力において、システムが .Dv STOP を受信したら出力を中断し、 .Dv START を受信するか、 .Cm ixany が設定されている場合は何らかの文字を受信すると、 出力を再開するようになります。 .It Cm ixoff Pq Fl ixoff システムの入力キューが 空/満杯に近づいたら、それぞれ .Dv START/STOP を出力するようにします (近づいても、出力しません)。 .It Cm ixany Pq Fl ixany どんな文字が来ても ( .Dv START が来た場合のみ) 出力を再開します。 .It Cm imaxbel Pq Fl imaxbel システムによって入力キューの .Dv MAX_INPUT (一般的には 255) の最大文字数が規定されており、 .Cm imaxbel がセットされていると、入力キューの制限を越えた入力に対して ASCII BEL キャラクタを出力キューに送ります (端末が鳴ります)。 .Cm imaxbel がセットされていなくて入力キューが一杯になった場合、次の文字入力で すべての入力、出力キューは捨てられます。 .El .Ss 出力モード: これは termios 構造体の c_oflag に相当します。 .Bl -tag -width Fl .It Cm opost Pq Fl opost プロセス後の処理を行った上で出力をします (プロセス後の処理を行わずに出力します。 この指定をすると、他のすべての出力モードが無視されます)。 .It Cm onlcr Pq Fl onlcr 出力の .Dv NL を .Dv CR-NL に変換します (変換しません)。 .It Cm oxtabs Pq Fl oxtabs 出力のタブをスペースに展開します (展開しません)。 .El .Ss ローカルモード: .Pp ローカルモードのフラグ (lflags) は端末処理のさまざまな属性に影響します。 歴史的には、"local"という名前のつけられた新しいジョブコントロール機能 は Jim Kulp によって .Tn IIASA の .Tn Pdp 11/70 に実装されました。 その後このドライバは、 Evans Hall, UC Berkeley の最初の .Tn VAX 上で走りました。その際ジョブコントロールの細部は大幅に変更されましたが、 構造体の定義と名前は根本的には変わりませんでした。 lflag の 'l' の二つ目の解釈は、 .Ar termios 構造体の .Ar c_lflag に相当する ``line discipline flag''(行制御規則フラグ) です。 .Bl -tag -width Fl .It Cm isig Pq Fl isig 特殊な制御文字 .Dv INTR , QUIT , .Dv SUSP に対する処理を有効 (無効) にします。 .It Cm icanon Pq Fl icanon .Dv ERASE と .Dv KILL 処理による入力制御を有効 (無効) にします。 .It Cm iexten Pq Fl iexten icanon, isig, ixon で制御に使われているもの以外の特殊な 制御文字の処理を有効 (無効) にします。 .It Cm echo Pq Fl echo タイプされた文字をエコーバックします (エコーバックしません)。 .It Cm echoe Pq Fl echoe .Dv ERASE 文字の入力があった場合、可能ならディスプレイ上に見える現在の出力行の 最後の文字を消します (消しません)。 .It Cm echok Pq Fl echok .Dv KILL 文字の入力があった場合、そのあとに .Dv NL を出力します (出力しません)。 .It Cm echoke Pq Fl echoke 可能なら、 .Dv KILL 文字でディスプレイ上の現在の行を消します (消しません)。 .It Cm echonl Pq Fl echonl echo が無効になっているときでも .Dv NL 文字だけはエコーバックさせます (エコーバックしません)。 .It Cm echoctl Pq Fl echoctl .Cm echoctl をセットすると、制御文字は ^X のように表示されます。 セットしなければ、その文字自身が表示されます。 .It Cm echoprt Pq Fl echoprt プリンタ端末に対するもので、設定された場合、削除された文字を ``\\'' と ``/'' で囲んで逆方向にエコーします。 設定されていなければ、この機能を無効にします。 .It Cm noflsh Pq Fl noflsh .Dv INTR , QUIT , SUSP のあとのフラッシュ処理を無効 (有効) にします。 .It Cm tostop Pq Fl tostop バックグラウンドジョブが出力を行おうとした時に .Dv SIGTTOU を送ります (送りません)。これによってバックグラウンドジョブは画面出力を 行おうとすると停止するようになります。 .It Cm altwerase Pq Fl altwerase .Dv WERASE 文字を処理するときに、別の単語消去アルゴリズムを用います (用いません)。 このアルゴリズムは英数字とアンダースコアの並びを単語とみなします。 また、分類上直前の文字をスキップします (便宜的に、直前の文字を .Dv ERASE 一文字で消すことができるようにするため)。 .It Cm mdmbuf Pq Fl mdmbuf セットされると、CD 信号の検出によるフロー制御の出力を行います。 セットされなければ、CD 信号の低下に対してエラーを出力します (キャリア信号は .Dv CLOCAL フラグによっても無視されません)。 .It Cm flusho Pq Fl flusho 出力を捨てます (捨てません)。 .It Cm pendin Pq Fl pendin 入力を非標準 (non-canonical) モードから標準 (canonical) モードへ切り換えた あと、入力を保留します (保留しません)。読み込みが保留されたとき、または更に入力があったときに 再入力されます。 .El .Ss 制御文字: .Bl -tag -width Fl .It Ar control-character Ar string .Ar string に .Ar control-character を割り当てます。もし string が 1 文字だけなら、その文字に .Ar control-character が割り当てられます。 string が二文字の "^-" もしくは "undef" の場合は .Ar control-character は無効にされます (つまり、 .Pf { Dv _POSIX_VDISABLE Ns } になります)。 .Pp 認識される制御文字: .Bd -ragged -offset indent .Bl -column character Subscript .It 制御文字 記号   説明 .It _________ _________ _______________ .It eof Ta Tn VEOF EOF No character .It eol Ta Tn VEOL EOL No character .It eol2 Ta Tn VEOL2 EOL2 No character .It erase Ta Tn VERASE ERASE No character .It werase Ta Tn VWERASE WERASE No character .It intr Ta Tn VINTR INTR No character .It kill Ta Tn VKILL KILL No character .It quit Ta Tn VQUIT QUIT No character .It susp Ta Tn VSUSP SUSP No character .It start Ta Tn VSTART START No character .It stop Ta Tn VSTOP STOP No character .It dsusp Ta Tn VDSUSP DSUSP No character .It lnext Ta Tn VLNEXT LNEXT No character .It reprint Ta Tn VREPRINT REPRINT No character .It status Ta Tn VSTATUS STATUS No character .El .Ed .It Cm min Ar number .It Cm time Ar number min あるいは time の値を .Ar number にします。 .Dv MIN と .Dv TIME は非標準的なモード (-icanon) での入力処理に使われます。 .El .Ss 複合モード: .Pp .Bl -tag -width Fl .It Ar saved settings 現在の端末属性を .Fl g オプションによって保存された属性にする。 .It Cm evenp No or Cm parity parenb と cs7 を有効にし、parodd を無効にします。 .It Cm oddp parenb, cs7, parodd を有効にします。 .It Fl parity , evenp , oddp parenb を無効にして、cs8 をセットします。 .It Cm \&nl Pq Fl \&nl icrnl を有効 (無効) にします。 それに加えて、-nl は inlcr と igncr を解除します。 .It Cm ek .Dv ERASE と .Dv KILL に割り当てられている文字をシステムのデフォルトのものに戻します。 .It Cm sane すべてのモードを対話的な端末利用に妥当な値にリセットします。 .It Cm tty 行制御規則を標準端末の規則 .Dv TTYDISC に設定します。 .It Cm crt Pq Fl crt CRT ディスプレイ用に適合するモードをすべて有効 (無効) にします。 .It Cm kerninfo Pq Fl kerninfo .Dv STATUS 文字 (通常 ^T に設定されています) に結びつけられた システムステータス行の生成を有効 (無効) にします。 このステータス行はシステムの負荷、現在のコマンドの名前、プロセス ID、 プロセスが待っているイベント (あるいはプロセスの状態)、 ユーザー時間とシステム時間、CPU利用率、現在のメモリ使用状況 からなっています。 .It Cm columns Ar number 端末の大きさを .Ar number 列とします。 .It Cm cols Ar number .Cm columns の別名定義です。 .It Cm rows Ar number 端末の大きさを .Ar number 行とします。 .It Cm dec Digital Equipment Corporation systems の端末設定にします。 ( .Dv ERASE , .Dv KILL , .Dv INTR をそれぞれ ^?, ^U, ^Cとし、 .Dv ixany を無効、 .Dv crt を有効にします) .It Cm extproc Pq Fl extproc 設定されると、一部の端末処理が端末機器ないし pty に接続されたリモート側 で行なわれるようになります。 .It Cm raw Pq Fl raw 端末モードを全く入出力処理を行なわないモードにします。 これを無効にすると、端末を入出力処理を行なう普通のモードに戻します。 注意すべきなのは、端末用のドライバは単一の .Dv RAW ビットを持つわけではないので、 .Cm raw モードに設定する前にどのようなフラグが設定してあったのかを知ることがで きないということです。つまり、 .Cm raw モードを解除するだけでは、 .Cm raw モード設定前の状態には戻りません。 端末を raw 状態にして、それを正確に元に戻すためには、以下のような シェルコマンドを使うことを薦めます。 .nf save_state=$(stty -g) stty raw \&... stty "$save_state" .fi .It Cm size 端末の大きさを行、列の順に並べた一行で表示します。 .El .Ss 互換モード: .Pp 以下のモードは旧バージョンの stty コマンドとの互換性保持のために残され ています。 .Bl -tag -width Fl .It Cm all 縦覧式でコントール文字を表示する以外は、 .Cm stty Fl a と同様に端末設定を表示します。 .It Cm everything .Cm all と同じです。 .It Cm cooked .Cm sane と同じです。 .It Cm cbreak .Cm brkint , ixon , imaxbel , opost , .Cm isig , iexten , .Cm Fl icanon を有効にします。 解除した場合は .Cm sane と同じです。 .It Cm new .Cm tty と同じです。 .It Cm old .Cm tty と同じです。 .It Cm newcrt Pq Fl newcrt .Cm crt と同じです。 .It Cm pass8 .Cm parity の反対です。 .It Cm tandem Pq Fl tandem .Cm ixoff と同じです。 .It Cm decctlq Pq Fl decctlq .Cm ixany の反対です。 .It Cm crterase Pq Fl crterase .Cm echoe と同じです。 .It Cm crtbs Pq Fl crtbs .Cm echoe と同じです。 .It Cm crtkill Pq Fl crtkill .Cm echoke と同じです。 .It Cm ctlecho Pq Fl ctlecho .Cm echoctl と同じです。 .It Cm prterase Pq Fl prterase .Cm echoprt と同じです。 .It Cm litout Pq Fl litout .Cm opost の反対です。 .It Cm tabs Pq Fl tabs .Cm oxtabs の反対です。 .It Cm brk Ar value 制御文字 .Cm eol と同じです。 .It Cm flush Ar value 制御文字 .Cm discard と同じです。 .It Cm rprnt Ar value 制御文字 .Cm reprint と同じです。 .El .Pp -.Nm stty +.Nm は成功した場合は 0 を、エラーが起きた場合は 0 より大きい値を返します。 .Sh 関連項目 .Xr termios 4 .Sh 規格 -.Nm stty +.Nm は .St -p1003.2 互換です。 .Fl e と .Fl f のフラグは規格を拡張しています。 diff --git a/ja_JP.eucJP/man/man8/chat.8 b/ja_JP.eucJP/man/man8/chat.8 index ce082be2a3..b37e4c67df 100644 --- a/ja_JP.eucJP/man/man8/chat.8 +++ b/ja_JP.eucJP/man/man8/chat.8 @@ -1,502 +1,521 @@ .\" -*- nroff -*- .\" manual page [] for chat 1.8 -.\" %Id: chat.8,v 1.4.2.3 1998/06/03 04:35:17 jkoshy Exp % +.\" %Id: chat.8,v 1.4.2.4 1998/06/23 22:12:41 peter Exp % .\" jpman %Id: chat.8,v 1.3 1997/08/31 14:02:42 horikawa Stab % .\" SH section heading .\" SS subsection heading .\" LP paragraph .\" IP indented paragraph .\" TP hanging label -.TH CHAT 8 "5 May 1995" "Chat Version 1.9" +.TH CHAT 8 "27 Sep 1997" "Chat Version 1.17" .SH 名称 chat \- モデム接続の確立を自動化するスクリプト言語 .SH 書式 .B chat [ .I options ] .I script .SH 解説 .LP \fIchat\fR プログラムはコンピュータとモデムの間のメッセージ交換を制御します。 このコマンドの主な目的は、Point-to-Point Protocol デーモン (\fIpppd\fR) と リモートの \fIpppd\fR プロセスの間の接続を確立することです。 .SH オプション .TP .B -f \fI チャットスクリプトを \fIchat file\fR から読み込みます。このオプションと script パラメータとは、互いに排他の関係にあります。 chat コマンドを実行するユーザは、このファイルのリードアクセス権を 持っていなければなりません。このファイルの中では、文字列の区切りとして スペースとタブを使うことができます。 .TP .B -t \fI 文字列の受信待ちのタイムアウトを指定します。もし、タイムリミットまでに 指定された文字列を受信できなかった場合には、応答文字列の送信をおこないません。 この時、かわりの応答文字列が指定されていれば それが送信され、 指定されていなければ スクリプトの実行が失敗します。 スクリプトの実行が失敗すると、\fIchat\fR プログラムは 0 以外のエラーコードを返して終了します。 .TP .B -r \fI レポート文字列を出力するファイルを指定します。 キーワード \fIREPORT\fR を用いると、結果の文字列がこのファイルに 出力されます。このオプションを指定せずに \fIREPORT\fR キーワードを 使用すると、レポート文字列は \fIstderr\fR に出力されます。 .TP .B -e エコーオプションを有効にして開始します。 \fIchat\fR スクリプトの特定の場所において \fIECHO\fR キーワードにて エコーの有効および無効を切り替えることができます。 エコーが有効にされると、モデムからの出力は全て \fIstderr\fR へエコーされます。 .TP .B -v \fIchat\fR スクリプトを冗長モードで実行します。 -これを指定すると、\fIchat\fR プログラムはモデムから受信したすべてのテキストと +これを指定すると、\fIchat\fR プログラムは、チャットスクリプトの実行状態、 +モデムから受信した全てのテキスト、 +モデムに送った全てのテキストのログをとります。 +デフォルトでは .IR syslogd (8) -に送られる出力のログをとります。 +を介して取得します。ログの方法は -S および -s のフラグで変更できます。 冗長トレースのログとりは \fIlocal2\fR ファシリティのレベル \fIinfo\fR でおこなわれ、エラーについてはレベル \fIerr\fR が使われます。 .TP .B -V -\fIchat\fR スクリプトを stderr 冗長モードにて実行するように要求します。 +\fIchat\fR スクリプトを標準エラー出力冗長モードにて実行するように要求します。 \fIchat\fR プログラムは、 -モデムから受信する全てのテキストおよび -stderr デバイスへ送出する出力文字列をログします。 +モデムから受信する全てのテキストおよびモデムへ送信する全てのテキストを +標準エラー出力デバイスへログします。 chat もしくは pppd プログラムを動作させている場所では、 このデバイスは通常ローカルのコンソールです。 -stderr が /dev/null にリダイレクトされている場合には、 -このオプションはうまく働きません。 -pppd が `デタッチ' モードで動作している時がその場合です。 -この場合、`-v' オプションを使用して、 -セッションを SYSLOG デバイスへ記録してください。 +.TP +.B -s +標準エラー出力を使用します。'-v' による全ログメッセージ +および全エラーメッセージを標準エラー出力へ送られます。 +.TP +.B -S +.IR syslog (3) +を使用しません。デフォルトではエラーメッセージは +.IR syslog (3) +へ送られます。-S を使用すると '-v' によるログおよびエラーメッセージは +.IR syslog (3) +へは送られなくなります。 +.TP +.B -T \fI +送信文字列において \\T 置換メタ文字を置き換える任意の文字列を渡します。 +通常は電話番号です。 +.TP +.B -U \fI +送信文字列において \\U 置換メタ文字を置き換える第 2 文字列を渡します。 +通常は電話番号です。 +2 つの番号を要する ISDN ターミナルアダプタでタイアルする場合に有用です。 .TP .B script \fI-f\fR オプションのファイルでスクリプトが指定されていなければ、 \fIchat\fR プログラムに対するパラメータ文字列が スクリプトとして読み込まれます。 .SH チャットスクリプト .LP \fIchat\fR スクリプトには通信の手順を定義します。 .LP スクリプトは一つまたはそれ以上の「受信待ち-送信」文字列の組からなり、 それぞれは空白で区切られています。 オプションとして「副受信待ち-副送信」文字列の組を追加することもでき、 その場合には以下の例のようにダッシュで区切ります: .IP ogin:-BREAK-ogin: ppp ssword: hello2u2 .LP これにより、\fIchat\fR プログラムは文字列 "ogin:" の受信待ちをおこないます。 もしもタイムアウトする前にログインプロンプトを受信できなければ、 リモートホストにブレーク信号を送信し、それから文字列 "ogin:" を受信待ちします。 もしも最初の "ogin:" が受信できていれば、ブレーク信号は送信されません。 .LP 一旦ログインプロンプトを受信すると、\fIchat\fR プログラムは文字列 ppp を 送信して、プロンプト "ssword:" の受信を待ちます。 パスワードプロンプトを 受信すると、chat プログラムはパスワード hello2u2 を送信します。 .LP 応答文字列に続いて、通常はキャリッジリターン文字が送られます。 「受信待ち」文字列中では、\\r 文字シーケンスで明示的に指定しないかぎり、 キャリッジリターンは文字列に含まれません。 .LP 目的の文字列を識別するのに必要な部分だけを受信待ち文字列に 指定するようにするべきです。 なぜなら、受信待ち文字列は通常ディスクファイルに記録されるため、 動的に変化する情報を含むことができないからです。 一般には、時刻を表す文字列やネットワーク ID 文字列その他の 変化するデータの塊を受信待ちさせることはできません。 .LP 通信の初期段階では、文字が化けて受信される場合があります。 この場合にも正しく認識ができるように、 文字列 "login:" ではなく "ogin:" を待つようにします。 仮に最初の "l" という文字が化けて受信されたとしますと、 リモートシステムが "login:" を送信したとしても、 その文字列は認識されないことになります。 このため、スクリプトでは "login:" ではなく "ogin:" を、 "password:" ではなく "ssword:" を待つようにします。 .LP 非常に単純なスクリプトは、以下のようになるでしょう: .IP ogin: ppp ssword: hello2u2 .LP 言いかえると、....ogin: を受信待ちして ppp を送信し、...ssword: を 受信待ちして hello2u2 を送信するということになります。 .LP 現実問題としては、単純なスクリプトが使われることはほとんどないでしょう。 少なくとも、最初の受信待ち文字列が受信できなかった場合に、 副受信待ち文字列を実行するようにするべきでしょう。 たとえば、以下のスクリプトを考えてみます: .IP ogin:--ogin: ppp ssword: hello2u2 .LP これは以前に使った単純なものよりも良いスクリプトでしょう。 以前のものと同様に login: プロンプトを待ちますが、もし受信できなかった場合には リターンを一つ送ってから再び login: が送られてくるのを待ちます。 最初のログインプロンプトがラインノイズによって化けたとしても、 空行が送られることで、通常はもう一度ログインプロンプトが送信されます。 .SH コメント コメントを chat スクリプト中に埋め込むことが可能です。 コメントは \fB#\fR (ハッシュ) 文字をカラム 1 から開始する行です。 このようなコメント行は chat プログラムは単に無視します。 「受信待ち」文字列の最初の文字が `#' 文字の場合、 「受信待ち」文字列をクォートする必要があります。 文字 # (ハッシュ)から始まるプロンプトを待ちたい場合には、 以下のように書かねばならないでしょう: .IP # Now wait for the prompt and send logout string .br \'# ' logout .LP .SH 中断文字列 多くのモデムはダイアルの結果を文字列としてレポートします。 これらの文字列は \fBCONNECTED\fR だったり、\fBNO CARRIER\fR や \fBBUSY\fR だったりするでしょう。 モデムが相手との接続に失敗した場合には、スクリプトを終了させたいと 思うことがよくあるでしょう。 問題は、どの文字列を次に受信するかということを、 スクリプトが正確に知ることはできないということです。 ある時には \fBBUSY\fR を受信するかもしれませんが、 次には \fBNO CARRIER\fR を受信するかもしれません。 .LP これらの「中断」文字列は、\fIABORT\fR シーケンスにより スクリプト中に指定することができます。 それは、以下の例のようにスクリプトに指定します: .IP ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT .LP このシーケンスは受信待ちをおこないません。それから文字列 ATZ を送信します。 受信待ち文字列は \fIOK\fR です。 \fIOK\fR を受信すると、電話をかけるために文字列 ATDT5551212 を送信します。 受信待ち文字列は \fICONNECT\fR です。 文字列 \fICONNECT\fR を受信すると、スクリプトの残りが実行されます。 一方、モデムが話中を検出すると、文字列 \fIBUSY\fR が送られて 中断文字列への一致が起こります。 この一致が起きたことにより、スクリプトは失敗します。 もしも文字列 \fINO CARRIER\fR を受信すると、それは同じ理由で中断されます。 どちらの文字列が受信されても、\fIchat\fR スクリプトは終了します。 .SH CLR_ABORT 文字列 このシーケンスは以前に設定した \fBABORT\fR 文字列をクリアします。 \fBABORT\fR 文字列は規定サイズ(コンパイル時に決定)の配列に保持されます; \fBCLR_ABORT\fR はクリアされたエントリの領域を再要求し、 新たな文字列をそこに格納できるようにします。 .SH SAY 文字列 \fBSAY\fR ディレクティブにて、 script が標準エラー出力を介してユーザ端末ヘ文字列を送ることができます。 \fBchat\fR が pppd から起動される場合、 pppd はデーモンとして実行され(制御端末から切離され)、 標準エラー出力は通常 /etc/ppp/connect-errors へとリダイレクトされます。 .LP \fBSAY\fR 文字列は、シングルクォートもしくはダブルクォートにて 括る必要があります。 出力中にキャリッジリターンおよびラインフィードが必要な場合、 明示的に文字列中に含める必要があります。 .LP SAY 文字列を使用して script の進捗状況メッセージを表示することで、'ECHO OFF' しつつもユーザになにが起っているのか示すことが可能です。 例を示します: .IP ABORT BUSY .br ECHO OFF .br SAY "Dialling your ISP...\\n" .br \'' ATDT5551212 .br TIMEOUT 120 .br SAY "Waiting up to 2 minutes for connection ... " .br CONNECT '' .br SAY "Connected, now logging in ...\n" .br ogin: account .br ssword: pass .br $ \c SAY "Logged in OK ...\n" \fIetc ...\fR .LP このシーケンスは SAY 文字列のみユーザに示し、script の詳細は隠します。 例えば、上記 script を実行した場合、ユーザが見るのは以下です: .IP Dialling your ISP... .br Waiting up to 2 minutes for connection ... Connected, now logging in ... .br Logged in OK ... .LP .SH レポート文字列 \fBレポート\fR 文字列は ABORT 文字列に似ています。 違うのは、その文字列自身とキャリッジリターン等の 次の制御文字までの -すべての文字がレポートファイルに書かれるということです。 +全ての文字がレポートファイルに書かれるということです。 .LP レポート文字列はモデムのコネクト文字列の転送レートと chat ユーザへのリターン値を切りわけるために使えます。 レポート文字列ロジックの分析は、受信待ち文字列の検索などの 他の文字列処理と同時におこなわれます。 レポート文字列と中断文字列に同じ文字列を使用することも可能ですが、 おそらくあまり使い道がないでしょう。 .LP レポート文字列はプログラムの終了コードに影響を及ぼしません。 .LP これらの「レポート」文字列は、\fIREPORT\fR シーケンスにより スクリプト中に指定することができます。 それは、以下の例のようにスクリプトに指定します: .IP REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin: account .LP このシーケンスは受信待ちをおこなわず、文字列 ATDT5551212 を送信して 電話をかけます。受信待ち文字列は \fICONNECT\fR です。 文字列 \fICONNECT\fR を受信すると、スクリプトの残りが実行されます。 さらに、文字列 "CONNECT" と、それに続く接続レートなどの 任意の文字がレポートファイルに記録されます。 .\" 原文では expect-file となっているが、report-file の間違いと思われる。 .\" send-pr する予定。 .\" 2.2.2R 対象(1997/06/04) Saeki Takashi .SH CLR_REPORT 文字列 このシーケンスを使用して、以前に設定した \fBREPORT\fR 文字列をクリア できます。 \fBREPORT\fR 文字列は規定サイズ(コンパイル時に決定)の配列に保持されます; \fBCLR_REPORT\fR はクリアされたエントリの領域を再要求し、 新たな文字列をそこに格納できるようにします。 .SH エコー エコーオプションはモデムからの出力を \fIstderr\fR へエコーするか否か を制御します。 このオプションを \fI-e\fR オプションにて設定することができますし、 \fIECHO\fR キーワードにて制御することもできます。 「受信待ち-送信」文字列の組 \fIECHO\fR \fION\fR はエコーを有効にし、 \fIECHO\fR \fIOFF\fR は無効にします。 このキーワードを使用してどの会話を見せるかを選択可能です。 例えば以下の script では: .IP ABORT 'BUSY' .br ABORT 'NO CARRIER' .br '' ATZ .br OK\\r\\n ATD1234567 .br \\r\\n \\c .br ECHO ON .br CONNECT \\c .br ogin: account .LP モデム設定結果およびダイヤル結果は見せませんが、 \fICONNECT\fR (もしくは \fIBUSY\fR) メッセージ語は全てをエコーします。 .SH 回線切断 HANGUP オプションはモデムの回線切断をエラーと扱うか否かを制御します。 このオプションは、 システムにダイヤル後に回線切断しコールバックする script 中で有効です。 HANGUP オプションは \fBON\fR もしくは \fBOFF\fR にできます。 .br HANGUP を OFF に設定しモデムを回線切断 (つまりコールバックシステムへの最初のログイン)すると、\fBchat\fR は script の実行を続けます (つまり呼び出しと二度目のログインプロンプトを待ちます)。 呼び出しにて接続後すぐに、\fBHANGUP ON\fR ディレクティブを使用して 通常の回線切断シグナルの動作を戻す必要があります。 (簡単な) script 例を示します: .IP ABORT 'BUSY' .br '' ATZ .br OK\\r\\n ATD1234567 .br \\r\\n \\c .br CONNECT \\c .br \'Callback login:' call_back_ID .br HANGUP OFF .br ABORT "Bad Login" .br \'Callback Password:' Call_back_password .br TIMEOUT 120 .br CONNECT \\c .br HANGUP ON .br ABORT "NO CARRIER" .br ogin:--BREAK--ogin: real_account .br \fIetc ...\fR .LP .SH タイムアウト タイムアウトの初期値は 45 秒です。これは \fB-t\fR パラメータにより 変更することができます。 .LP 次に受信待ちする文字列のタイムアウト値を変更するには、以下のようにします: .IP ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2 .LP これは login: プロンプトを受信待ちする際のタイムアウトを 10 秒に変更します。 さらに password プロンプトを受信待ちする際にはタイムアウトを 5 秒に変更します。 .LP 一旦タイムアウト値が変更されると、次に変更されるまでは そのままになります。 .SH EOT の送信 チャットプログラムは特殊な応答文字列 \fIEOT\fR により、 リモート側へ EOT 文字を送信します。 通常、これはファイル終了を表す文字です。 EOT に続けてリターン文字が送られることはありません。 .PR \fI^D\fR シーケンスを使って EOT を送信文字列に埋め込むことができます。 .SH ブレークの生成 特殊な応答文字列 \fIBREAK\fR により、ブレーク信号が送られます。 ブレークは送信側では特殊な信号として扱われます。 受信側では通常、転送レートの変更要求として処理されます。 これにより、正常に login プロンプトを受信できるまで ブレーク信号を送ることで、リモート側がサポートしている転送レートを 順次切替えさせることができます。 .PR \fI\\K\fR シーケンスを使ってブレーク信号を送信文字列に埋め込むことができます。 .SH エスケープシーケンス 受信待ち文字列と応答文字列には、エスケープシーケンスを指定することができます。 -応答文字列では、すべてのエスケープシーケンスが使えます。 +応答文字列では、全てのエスケープシーケンスが使えます。 受信待ち文字列では、ほとんどのエスケープシーケンスが使えます。 受信待ち文字列では使えないエスケープシーケンスについては、 説明文中にそのことが書かれています。 .TP .B '' 空文字列を受信待ちしたり、送信したりします。 もし、空文字列を送信しようとすると、それはリターン文字を送ることになります。 このシーケンスはアポストロフィ文字またはクォート文字のペアの どちらでもかまいません。 .TP .B \\\\b バックスペース文字を表します。 .TP .B \\\\c 応答文字列の末尾の改行を抑制します。 これは末尾に改行文字のつかない文字列を送る唯一の方法です。 これは送信文字列の最後に置かれなければいけません。 たとえば、文字列 hello\\c は単に h, e, l, l, o という文字だけを送ります。 .I (受信待ち文字列では使えません) .TP .B \\\\d 1 秒のディレイです。プログラムは 1 秒のディレイのために sleep(1) を使います。 .I (受信待ち文字列では使えません) .TP .B \\\\K ブレーク信号を挿入します。 .I (受信待ち文字列では使えません) .TP .B \\\\n 改行文字を送信します。 .TP .B \\\\N 空 (null) 文字を送信します。\\0 でも同じシーケンスを表すことができます。 .I (受信待ち文字列では使えません) .TP .B \\\\p 1 秒以下のポーズです。ディレイ時間は 1/10 秒です。 .I (受信待ち文字列では使えません) .TP .B \\\\q .IR syslogd (8) への文字列出力を抑止します。 かわりに文字列 ?????? がログに出力されます。 .I (受信待ち文字列では使えません) .TP .B \\\\r キャリッジリターン文字を送信または受信待ちします。 .TP .B \\\\s 文字列中のスペース文字を表します。 これはスペースを含む文字列をクォートしたくない場合に使います。 シーケンス 'HI TIM' と HI\\sTIM は等価です。 .TP .B \\\\t タブ文字を送信または受信待ちします。 .TP .B \\\\\\\\ バックスラッシュ文字を送信または受信待ちします。 .TP .B \\\\ddd 8 進数 (ddd) を一つの ASCII 文字に変換し、その文字を送信します。 .I (受信待ち文字列では使えない文字がいくつかあります) .TP .B \^^C C で表現される制御文字に置きかえられます。 例えば、文字 DC1 (17) は \^^Q で表されます。 .I (受信待ち文字列では使えない文字がいくつかあります) .SH 終了コード \fIchat\fR プログラムは以下の終了コードを返します。 .TP .B 0 プログラムは正常終了しました。これは、スクリプトがエラーを起こさずに 実行されて、正常に終了したことを示します。 .TP .B 1 一つまたはそれ以上のパラメータが不正であるか、受信待ち文字列が 内部バッファよりも大きすぎます。これはプログラムが正しく 実行されなかったことを示します。 .TP .B 2 プログラムの実行中にエラーが発生しました。これは、何らかの理由で リードまたはライトの操作が失敗したか、chat が SIGINT のような シグナルを受信したためでしょう。 .TP .B 3 「-副送信」文字列のない\fI受信待ち\fR文字列があり、タイムアウトイベントが 発生しました。これは、スクリプトが正しくプログラムされていないか、 予期しないイベントが発生して受信待ち文字列を見つけられなかったためでしょう。 .TP .B 4 \fIABORT\fR 条件としてマークされた 1 番目の文字列を検出しました。 .TP .B 5 \fIABORT\fR 条件としてマークされた 2 番目の文字列を検出しました。 .TP .B 6 \fIABORT\fR 条件としてマークされた 3 番目の文字列を検出しました。 .TP .B 7 \fIABORT\fR 条件としてマークされた 4 番目の文字列を検出しました。 .TP .B ... その他の終了コードも、\fIABORT\fR 条件としてマークされた文字列を 検出したことを示します。 .LP 終了コードを使うと、どのイベントによりスクリプトが終了したのかを 判断することができます。 つまり、"NO DIAL TONE" を受信したのか "BUSY" を受信したのかを 識別することができるということです。 最初のイベント (BUSY) ならばリトライする価値がありますが、 二つ目のイベント (NO DIAL TONE) だと、 おそらくリトライしてもそれがうまくいく可能性は低いでしょう。 .SH 関連項目 UUCP のドキュメントからも、\fIchat\fR スクリプトに関する 追加情報が得られるでしょう。 \fIchat\fR スクリプトは \fIuucico\fR プログラムで使われる スクリプトによって提示されたアイデアを基にしています。 .LP -uucico(1), uucp(1) +uucico(1), uucp(1), syslog(3), syslogd(8). .SH 著作権 \fIchat\fR プログラムは、パブリックドメインのソフトウェアです。 -これは GNU のパブリックライセンス(一般公有使用許諾)とは ことなります。 +これは GNU のパブリックライセンス (一般公有使用許諾) とは異なります。 このプログラムを分割する場合には、その両方を管理するようにしてください。 .\" 原文は The \fIchat\fR program is in public domain. This is not .\" the GNU public license. If it breaks then you get to keep both pieces. .\" 最後の文章にはあまり自信がありません。(^_^;; .\" 2.2.2R 対象(1997/06/26) Saeki Takashi diff --git a/ja_JP.eucJP/man/man8/pppd.8 b/ja_JP.eucJP/man/man8/pppd.8 index 4c0be54a5e..6042934a08 100644 --- a/ja_JP.eucJP/man/man8/pppd.8 +++ b/ja_JP.eucJP/man/man8/pppd.8 @@ -1,844 +1,1282 @@ -.\" manual page [] for pppd 2.0 -.\" %Id: pppd.8,v 1.7.2.2 1997/05/07 23:57:42 brian Exp % +.\" manual page [] for pppd 2.3 +.\" %Id: pppd.8,v 1.7.2.3 1998/06/23 21:41:46 peter Exp % .\" jpman %Id: pppd.8,v 1.2 1997/05/27 00:43:48 mutoh Stab % .\" SH section heading .\" SS subsection heading .\" LP paragraph .\" IP indented paragraph .\" TP hanging label .TH PPPD 8 .SH 名称 -pppd \- PPP(Point to Point Protocol) を処理するデーモン +pppd \- PPP (Point to Point Protocol) を処理するデーモン .SH 書式 .B pppd [ -.I options -] [ .I tty_name ] [ .I speed +] [ +.I options ] .SH 解説 .LP Point-to-Point プロトコル (PPP) は、シリアル回線上に確立された Point-to-Point リンクを介したデータグラムの送受方法を提供します。 PPP は、データグラムのカプセル化方式、拡張可能なリンク制御プロトコル (LCP)、 -そして異なるネットワーク層プロトコルの設定とコネクションの確立を行なう +そして異なるネットワーク層プロトコルの設定と接続の確立を行う 一群のネットワーク制御プロトコル (NCP) の 3 つの部分から構成されています。 .LP カプセル化体系は、カーネル内のドライバコードにより提供されています。 -.B pppd -は、基本的な LCP 機能、認証機能、そして IP コネクションの確立と設定を行なう -NCP(IP Control Protocol(IPCP) と呼ばれています)を提供します。 +pppd +は、基本的な LCP 機能、認証機能、そしてインターネットプロトコル (IP) +接続の確立と設定を行う +NCP (IP 制御プロトコル (IPCP) と呼ばれています) を提供します。 .SH よく使われるオプション .TP .I -使用するシリアルポートの特殊ファイル名を指定します。 -もし必要であれば、特殊ファイル名の前に"/dev/"文字列が追加されます。 -デバイス名が指定されていない場合や制御端末の名前が与えられた場合には、 -.I pppd -は自らの制御端末をコネクションの確立に使用し、 -バックグラウンド実行のための fork を行ないません。 +指定したデバイスを介して通信します。 +もし必要であれば、前に "/dev/" 文字列が追加されます。 +デバイス名が指定されていない場合や +標準入力に接続された端末の名前が与えられた場合には、 +pppd +はその端末を使用し、 +バックグラウンド実行のための fork を行いません。 +\fInoauth\fR オプションが使用された場合、 +このオプションは特権オプションとなります。 .TP .I -tty の速度を設定します。4.4BSD や NetBSD では任意の速度を指定することが -できます。その他のシステム (SunOS 等) では一定の組合せのみが指定可能です。 +ボーレートを に設定します (10 進数)。 +4.4BSD や NetBSD といったシステムでは、 +シリアルデバイスドライバがサポートする任意の速度を指定可能です。 +その他のシステム (SunOS, Linux 等) では一定の組合せのみが指定可能です。 +.TP +.B active-filter \fIfilter-expression +データパケットに適用されるパケットフィルタであり、 +どのパケットをリンクアクティビティとみなすかを決定するパケットフィルタを +指定します。 +リンクアクティビティとみなされると、アイドルタイマがリセットされるか、 +デマンドダイアルモード時にはリンクがアップされます。 +(例えば経路情報パケット等) 定常的にリンク上でパケット送受信が行われ、 +他の方法ではリンクがアイドルであるとはみなされない場合に、 +このオプションを \fBidle\fR オプションとともに使用すると便利です。 +\fIfilter-expression\fR の文法は tcpdump(1) と同じですが、 +限定子は PPP では不適当ですので、\fBether\fR や \fBarp\fR は使用できません。 +一般的には、フィルタ式をシングルクォートで括って、 +式中の空白がシェルに解釈されることを避けるべきです。 +カーネル及び pppd が PPP_FILTER を定義してコンパイルされた場合のみ、 +このオプションを利用可能です。 .TP .B asyncmap \fI -非同期キャラクタマップを に設定します。 -このマップは、シリアル回線を経由するとどのコントロールキャラクタの受信が +非同期文字マップを に設定します。 +このマップは、シリアル回線を経由するとどの制御文字の受信が うまくいかなくなるかを記述するものです。 -.I pppd -は、相手側にこれらのキャラクタを 2 バイトのエスケープシーケンスとして -送信するよう依頼します。 -引数は 32 ビットの 16 進数であり、各ビットがエスケープするべきキャラクタを +pppd +は、これらの文字を 2 バイトのエスケープシーケンスとして送信するよう、 +相手側に依頼します。 +引数は 32 ビットの 16 進数であり、各ビットがエスケープすべき文字を 表しています。 -ビット 0 (00000001) はキャラクタ 0x00 をあらわし、 -ビット 31 (80000000) は、キャラクタ 0x1f '^_' をあらわしています。 -複数の \fBasyncmap\fR オプションが与えられた場合、それらの値の論理和が +ビット 0 (00000001) は文字 0x00 を表し、 +ビット 31 (80000000) は、文字 0x1f つまり '^_' を表しています。 +複数の \fIasyncmap\fR オプションが与えられた場合、それらの値の論理和が 採用されます。 -\fBasyncmap\fR が与えられなかった場合には、このホストが受信側となる -非同期キャラクタマップは設定されません。 -相手側はすべてのコントロールキャラクタをエスケープして送信します。 +\fIasyncmap\fR オプションが与えられなかった場合には、このホストが受信側となる +非同期文字マップは設定されません。 +相手側は\fIすべての\fR制御文字をエスケープして送信します。 +送信文字をエスケープするには、\fIescape\fR オプションを使用します。 .TP .B auth -ネットワークパケットの送受信を許可する前に、相手側に自分自身の認証を -行なうよう要求します。 -.TP -.B connect \fI

-\fI

\fR で指定された実行可能コマンドまたはシェルコマンドを -シリアル回線のセットアップに用います。 -ほとんどの場合ここで指定されるスクリプトには、 -モデムにダイヤルコマンドを送ったり リモート ppp セッションを -開始したりするための "チャット(chat)" プログラムを使用します。 +ネットワークパケットの送受信を許可する前に、相手側に自分証明を +行うよう要求します。 +.TP +.B call \fIname +ファイル /etc/ppp/peers/\fIname\fR からオプションを読みます。 +pppd が root 以外によって起動された場合においても、 +このファイルに \fInoauth\fR のような特権オプションを含んでもかまいません。 +文字列 \fIname\fR は / で開始してはなりませんし、 +パス名の一部に .. を含んではなりません。 +オプションファイルのフォーマットは後述します。 +.TP +.B connect \fIscript +\fIscript\fR で指定された実行可能コマンドまたはシェルコマンドを使用して、 +シリアル回線のセットアップを行います。 +ほとんどの場合、ここで指定されるスクリプトには chat(8) プログラムを使用し、 +モデムにダイアルコマンドを送ったり、リモート ppp セッションを開始したりします。 +\fInoauth\fR オプションが使用された場合、 +このオプションは特権オプションとなります。 .TP .B connect-max-attempts \fI -指定した時間 (デフォルトでは 1)以上 リモートシステムとの -ダイアルコネクションを保持しません。コネクションができない場合は、 +指定した時間 (デフォルトでは 1) を越えてリモートシステムとの +ダイアル接続を保持しません。接続ができない場合は、 pppd は終了します。 \fBpersist\fR を指定することが要求されます。 .TP .B crtscts -シリアルポートのフロー制御にハードフロー制御 (RTS/CTS) を用います。 -.TP -.B -crtscts -シリアルポートのハードウエアフロー制御 (RTS/CTS) を使いません。 -\fBcrtscts\fR か \fB\-crtscts\fR の両方のオプションが与えられない時、 -シリアルポートのハードウエアフロー制御の設定は変更されずに +シリアルポートのフロー制御にハードウェアフロー制御 (RTS/CTS) を用います。 +\fIcrtscts\fR か \fInocrtscts\fR の両方のオプションが与えられない時、 +シリアルポートのハードウェアフロー制御の設定は変更されずに そのままになります。 .TP -.B xonxoff -シリアルポートのフロー制御に XON/XOFF キャラクタによるフロー制御を用います。 -現時点では、このオプションは Linux では実装されていません。 -.TP .B defaultroute -IPCP ネゴシエーションが成功すると、相手側をゲートウェイとする -デフォルトルートをシステムのルーティングテーブルに追加します。 -このオプションにより追加されたデフォルトルートエントリは、 -PPP コネクションが切断された際に削除されます。 -.TP -.B disconnect \fI

-pppd が接続を切った後に \fI

\fR で指定した実行可能コマンドまたは +IPCP 交渉が成功すると、相手側をゲートウェイとする +デフォルト経路をシステムの経路テーブルに追加します。 +このオプションにより追加されたデフォルト経路エントリは、 +PPP 接続が切断された際に削除されます。 +\fInodefaultroute\fR オプションが指定された場合には、 +このオプションは特権オプションとなります。 +.TP +.B disconnect \fIscript +pppd が接続を切った後に \fIscript\fR で指定した実行可能コマンドまたは シェルコマンドを実行します。 このスクリプトで、例えばハードウェアモデム制御信号 (DTR) が使えない場合に -モデムに回線切断のコマンドを発行することができます。 +モデムをハングアップすることができます。 +モデムが既にハングアップしている場合には、この切断スクリプトは実行されません。 +\fInoauth\fR オプションが使用された場合には、 +このオプションは特権オプションです。 .TP .B escape \fIxx,yy,... -転送時にエスケープを行なうべきキャラクタを指定します(相手側が -非同期キャラクタマップでエスケープを要求しているかどうかには影響されません)。 -エスケープされるキャラクタは、カンマで区切られた 16 進の数字で指定します。 -コントロールキャラクタしか指定できない非同期キャラクタマップ (asyncmap) -とは異なり、\fBescape\fR オプションではどんなキャラクタでも指定できる +転送時にエスケープを行うべき文字を指定します (相手側が +非同期文字マップでエスケープを要求しているかどうかには影響されません)。 +エスケープされる文字は、コンマで区切られた 16 進数で指定します。 +制御文字しか指定できない \fIasyncmap\fR オプション +とは異なり、\fIescape\fR オプションではどんな文字でも指定できる ことに注意してください。 -ただし 16 進表記で 0x20 から 0x3f までと 0x5e のキャラクタは -エスケープするべきではありません。 +ただし 16 進表記で 0x20 から 0x3f までと 0x5e の文字は +エスケープしてはなりません。 .TP -.B file \fI -オプションをファイル から読み込みます(フォーマットは後述します)。 +.B file \fIname +オプションをファイル \fIname\fR から読み込みます (フォーマットは後述します)。 +このファイルは、pppd を起動したユーザが読むことが可能である必要があります。 .TP .B lock -シリアルデバイスに対する排他アクセスを確実に行なうために、 -UUCP 形式のロックファイルを作成するよう \fIpppd\fR に指示します。 -.TP -.B mru \fI -ネゴシエーション時の MRU [Maximum Receive Unit] 値を に設定します。 -.I pppd -は、通信相手に バイトを超えるパケットを送信しないよう要求します。 +シリアルデバイスに対する排他アクセスを確実に行うために、 +UUCP 形式のロックファイルを作成するよう pppd に指示します。 +.TP +.B mru \fIn +交渉時の MRU [最大受信単位; Maximum Receive Unit] +値を \fIn\fR に設定します。 +pppd +は、通信相手に \fIn\fR バイトを超えるパケットを送信しないよう要求します。 最小の MRU 値は、128 です。 -デフォルトの MRU 値は 1500 です。低速のリンクでは 296 を推奨します。 -(TCP/IP ヘッダ 40 バイト + データ 256 バイト). -.TP -.B netmask \fI -インタフェースの netmask を に設定します。 -32 bit の netmask を、255.255.255.0 のように、 -10 進 + ピリオド表記 (符号付き 10 進表現) で指定します。 +デフォルトの MRU 値は 1500 です。低速のリンクでは 296 を推奨します +(TCP/IP ヘッダ 40 バイト + データ 256 バイト)。 .TP -.B dns1 \fI -接続先が プライマリ DNS サーバを聞いてきた場合、このアドレスを答えます。 -32 bit IP アドレスを 符号付き 10 進表現で指定します。 -.TP -.B dns2 \fI -接続先が セカンダリ DNS サーバを聞いてきた場合、このアドレスを答えます。 -32 bit IP アドレスを 符号付き 10 進表現で指定します。 +.B mtu \fIn +MTU [最大転送単位; Maximum Transmit Unit] 値を \fIn\fR に設定します。 +相手が MRU 交渉を通じてこれより小さい値を要求してこない限り、 +PPP ネットワークインタフェースを通して \fIn\fR バイトを +越えないデータパケットを送ることを、 +pppd はカーネルのネットワークコードに要求します。 .TP .B passive LCP で "passive" オプションを有効にします。このオプションを指定した場合には、 -コネクションを開始しようとしても相手からの返答がない場合、 -.I pppd -は相手から有効な LCP パケットが到着するのを待ち続けます。 -(このオプションを指定しなければ、相手からの返答がない場合に -.I pppd -は実行を中断します。) -.TP -.B silent -このオプションを指定した場合、 -.I pppd -は相手から有効な LCP パケットを受信するまで -接続を開始するための LCP パケットを送信せずに待ちます。 -(旧バージョンの \fIpppd\fR で 'passive' オプションを指定した場合と -同じ動作です。) +接続を開始しようとしても相手からの返答がない場合、 +pppd +は相手から有効な LCP パケットが到着するのを受動的に待ち続けます。 +このオプションを指定しなければ、相手からの返答がない場合に +pppd +は実行を中断します。 .SH オプション .TP .I \fB:\fI ローカルインタフェースとリモートインタフェースの IP アドレスを設定します。 -どちらか一方を省略することも可能です。IP アドレスは、ホスト名もしくは -符号付き 10 進表現 (例 :150.234.56.78) のどちらでも指定可能です。 -デフォルトのローカルアドレスは、そのシステムの ( 最初の )IP アドレスと -なります。( ただし -.B noipdefault +どちらか片方を省略することも可能です。IP アドレスは、ホスト名もしくは +10 進数ドット表現 (例: 150.234.56.78) のどちらでも指定可能です。 +デフォルトのローカルアドレスは、そのシステムの (最初の) IP アドレスと +なります。(ただし +\fInoipdefault\fR オプションが指定された場合を除きます。) リモートアドレスは、 オプションで指定されていない場合には相手側から取得されます。 ですから、もっとも単純な指定を行う場合には、このオプションは不必要です。 ローカルまたはリモートの IP アドレスがこのオプションで指定されている場合には、 -.I pppd -は IPCP ネゴシエーションで相手側がこの指定と異なるアドレスを送って来た場合 +pppd +は IPCP 交渉で相手側がこの指定と異なるアドレスを送って来た場合 これを拒否します。ただし、 -.B ipcp-accept-local +\fIipcp-accept-local\fR や -.B ipcp-accept-remote +\fIipcp-accept-remote\fR が指定されている場合にはこの限りではありません。 .TP -.B -all -LCP や IPCP でのオプションによるネゴシエーションは -要求も許可もされません。(デフォルト値を用います。) -.TP -.B -ac -Address/Control 圧縮ネゴシエーションを無効にします -( これがデフォルトで、address/control フィールドの圧縮は通常行なわれません)。 -.TP -.B -am -asyncmap ネゴシエーションを無効にします(デフォルトの asyncmap が用られ、 -全てのコントロールキャラクタがエスケープされます)。 -.TP -.B -as \fI -.B asyncmap \fI -と同じ意味です。 -.TP -.B -d -デバッグレベルを増やします。(\fBdebug\fR オプションと同じ意味です。) -.TP -.B -detach -バックグラウンドプロセスになるための fork を行ないません( -.I pppd -は、シリアルデバイスが指定されていて -このオプションが指定されていない場合もしくはシリアルデバイスが -制御端末ではない場合には fork します)。 -.TP -.B -ip -IP アドレスネゴシエーションを無効にします -(このオプションを指定した場合には、リモート IP アドレスを -コマンドラインもしくはオプションファイルで指定する必要があります)。 -.TP -.B -mn -magic number ネゴシエーションを無効にします。このオプションを指定した場合には、 -.I pppd -はループバック回線を検出することができません。 -.TP -.B -mru -MRU [Maximum Receive Unit] ネゴシエーションを無効にします -( デフォルトの MRU 値の 1500 を使用します)。 -.TP -.B -p -.B passive -オプションと同じ意味です。 -.TP -.B -pc -プロトコルフィールド圧縮ネゴシエーションを無効にします -(これがデフォルトで、プロトコルフィールドの圧縮は通常無効になっています)。 -.TP -.B +ua \fI

-相手側から PAP [Password Authentication Protocol] による認証を -要求された場合には、それに同意します。そしてファイル

に記述された -データを用いてユーザ名とパスワードを相手に送ります。 -このファイルには、リモートのユーザ名と改行が格納され、 -続いてリモートパスワードと改行が格納されています。 -このオプションは旧式です。 -.TP -.B +pap -PAP を用いて自分自身の認証を行なうよう相手に要求します。 -.TP -.B -pap -PAP による認証を拒否します。 -.TP -.B +chap -CHAP [Challenge Handshake Authentication Protocol] を用いて -自分自身の認証を行なうことを相手に要求します。 -.TP -.B -chap -CHAP による認証を拒否します。 -.TP -.B -vj -Van Jacobson 形式の IP ヘッダ圧縮のネゴシエーションを無効にします -(これがデフォルトで、ヘッダの圧縮は通常行なわれません)。 -.TP .B bsdcomp \fInr,nt -接続相手に、BSD圧縮方式を使った送出時のパケット圧縮を要求します。 +接続相手に、BSD-Compress 方式を使った送出時のパケット圧縮を要求します。 ここでの最大コードサイズは \fInr\fR ビットです。 相手側が送るパケットの最大の大きさは、 \fInt\fR ビットです。 -\fInt\fR が指定されない時は、デフォルトの値が使われます。 +\fInt\fR が指定されない時は、デフォルトの \fInr\fR が使われます。 9 から 15 の範囲の値が、 \fInr\fR と \fInt\fR で使われます。 より大きな値は、よりよい圧縮となりますが、圧縮辞書のためにより多くの カーネルメモリを消費します。\fInr\fR や \fInt\fR に対して、値 0 を -指定すると、圧縮を指定した方向には行いません。 +指定すると、指定した方向には圧縮を行いません。 +BSD-Compress 圧縮を完全に無効にするためには、 +\fInobsdcomp\fR か \fIbsdcomp 0\fR を指定してください。 +.TP +.B chap-interval \fIn +このオプションが指定された場合、 +pppd +は \fIn\fR 秒おきに再チャレンジします。 .TP -.B \-bsdcomp -圧縮を行いません。 \fBpppd\fR は、BSD 圧縮方式を使ったパケットの圧縮を -要求しませんし、許可もしません。 +.B chap-max-challenge \fIn +CHAP チャレンジの最大送信回数を \fIn\fR に設定します (デフォルト値は 10)。 +.TP +.B chap-restart \fIn +(チャレンジの再送のタイムアウトによる) +CHAP 再開の間隔を \fIn\fR 秒に設定します +(デフォルト値は 3)。 .TP .B debug -デバッグレベルを増加させます (\fB\-d\fR と同じ意味です)。 -このオプションを指定した場合、\fIpppd\fR は送受信した -すべての制御パケットの内容を可読形式でログをとります。 +接続のデバッグ機能を有効にします。 +このオプションを指定した場合、pppd は送受信した +すべての制御パケットの内容を可読形式でログします。 パケットは syslog を経由して、\fIdaemon\fR ファシリティの \fIdebug\fR レベルとして記録されます。 本情報は、/etc/syslog.conf を適切に記述することで -ファイルに記録することができます(syslog.conf(5) 参照)。 -(もし \fIpppd\fR が extra debugging オプションを有効にして -コンパイルされていれば、\fIdaemon\fR ファシリティの -かわりに \fIlocal2\fR ファシリティを使用してメッセージを記録します。) -.TP -.B \-defaultroute -\fBdefaultroute\fR オプションを無効にします。 -\fIpppd\fR を使っているユーザにデフォルトルートを作成させたくない -システム管理者は、このオプションを /etc/ppp/options ファイルに -記述することができます。 -.TP -.B domain \fI -認証のために使用するローカルホスト名にドメイン名 を付加します。 -例えば、FQDN が porsche.Quotron.COM であって、 +ファイルに記録することができます (syslog.conf(5) 参照)。 +.TP +.B default-asyncmap +asyncmap 交渉を無効にし、 +送受信両方向にて全制御文字をエスケープさせます。 +.TP +.B default-mru +MRU [最大受信単位; Maximum Receive Unit] 交渉を無効にします。 +このオプションを指定すると、送受信両方向において、 +pppd はデフォルトの MRU 値 1500 バイトを使用します。 +.TP +.B deflate \fInr,nt +接続相手に、Deflate 方式を使った送出時のパケット圧縮を要求します。 +ここで最大のウィンドウサイズは \fI2**nr\fR バイトです。 +また、相手に送るパケットを最大ウィンドウサイズ \fI2**nt\fR バイトにて圧縮 +することを合意します。 +\fInt\fR が指定されないと、デフォルトの \fInr\fR の値となります。 +\fInr\fR と \fInt\fR には 8 から 15 までの範囲の値が許されます。 +より大きな値は、よりよい圧縮となりますが、圧縮辞書のためにより多くの +カーネルメモリを消費します。 +\fInr\fR や \fInt\fR に対して、値 0 を +指定すると、指定した方向には圧縮を行いません。 +Deflate 圧縮を完全に無効にするためには、 +\fInodeflate\fR か \fIdeflate 0\fR を指定してください。 +(注: 相手が両方とも可能な場合には、 +pppd は BSD-Compress よりも Deflate 圧縮を好んで要求します。) +.TP +.B demand +リンクの開始を要求時のみ、つまりデータトラフィックが存在する時のみ行います。 +このオプションを指定する場合、リモート IP アドレスを、 +ユーザがコマンドラインで指定するか、オプションファイル中に含む必要があります。 +pppd は、相手に接続することなく、 +まずインタフェースを設定して IP トラフィックに備えます。 +トラフィックが現れると、pppd は相手へ接続し、 +交渉や認証などを行います。 +これが完了すると、pppd はリンクを介してデータパケット (すなわち IP パケット) +の授受を開始します。 + +\fIdemand\fR オプションは暗黙的に \fIpersist\fR オプションを指定します。 +この動作が望ましくない場合、\fIdemand\fR オプションの後に +\fInopersist\fR オプションを使用してください。 +\fIidle\fR および \fIholdoff\fR のオプションもまた、 +\fIdemand\fR オプションとともに使用すると便利です。 +.TP +.B domain \fId +認証のために使用するローカルホスト名にドメイン名 \fId\fR を付加します。 +例えば、完全な形でのドメイン名 (FQDN) が porsche.Quotron.COM であって、 gethostname() が porsche という名前を返す場合には、 -このオプションを用いてドメイン名を Quotron.COM と指定します。 +このオプションを用いてドメイン名を \fIQuotron.COM\fR と指定します。 +そうすると、pppd は \fIporsche.Quotron.COM\fR を +秘密情報ファイルの中の秘密情報を調べるために使用したり、 +相手に対して自己証明するために送るデフォルトの名前として使用します。 +このオプションは特権オプションです。 +.TP +.B holdoff \fIn +リンク切断から再初期化まで何秒待つかを指定します。 +\fIpersist\fR または \fIdemand\fR オプション使用時にのみ、 +このオプションは有効です。 +アイドルであったためにリンクが切断された場合は、 +この抑止期間は適用されません。 +.TP +.B idle \fIn +リンクが \fIn\fR 秒アイドルだった場合に接続を切るように pppd に指定します。 +データパケット (つまり IP パケット)が送受信されない時に、 +リンクはアイドルだとみなされます。 +注: \fIdemand\fR オプションを使用せずに +\fIpersist\fR オプションを使用する場合に、このオプションを使うことを勧めます。 +\fBactive-filter\fR オプションが与えられると、 +指定したアクティビティフィルタが受理しなかったデータパケットもまた、 +リンクがアイドルであるとみなす対象とします。 +.TP +.B ipcp-accept-local +このオプションが指定された場合には、 +別のオプションによってローカル IP アドレスの指定が行われている場合でも、 +pppd +は相手からのローカル IP アドレスの指定を受け入れます。 +.TP +.B ipcp-accept-remote +このオプションが指定された場合には、 +別のオプションによってリモート IP アドレスの指定が行われている場合でも、 +pppd +は相手からのリモート IP アドレスの指定を受け入れます。 +.TP +.B ipcp-max-configure \fIn +IPCP configure-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 10)。 +.TP +.B ipcp-max-failure \fIn +IPCP configure-Reject を送信開始するまでの IPCP configure-NAK の最大応答回数を +\fIn\fR 回に設定します (デフォルト値は 10)。 +.TP +.B ipcp-max-terminate \fIn +IPCP terminate-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 3)。 +.TP +.B ipcp-restart \fI +(再送のタイムアウトによる) IPCP 再開の間隔を \fIn\fR 秒に設定します。 +(デフォルト値は 3)。 .TP .B ipparam \fIstring ip-up と ip-down スクリプト用に余分のパラメータを指定します。 このオプションが与えられた場合、 \fIstring\fR が 6 番目のパラメータと して、これらのスクリプトに与えられます。 .TP -.B modem -モデム制御線を使用します。このオプションはデフォルトです。 -このオプションを使うことで、 -.B pppd -は、シリアルデバイスをオープンした時に -(接続スクリプトが指定されていなくても) -モデムから CD (Carrier Detect) 信号が送られるのを待ちます。 -そして、接続が中断された時や接続スクリプトが終了する時に、 -DTR (Data Terminal Ready) 信号を落します。 Ultrix では、 -このオプションは、 \fBcrtscts\fR オプションのように -ハードワイアフロー制御を実行します。 +.B ipx +IPXCP および IPX プロトコルを有効にします。 +このオプションは現在 Linux でのみ、 +IPX サポートを含めてカーネルを構成した場合のみサポートされています。 +.TP +.B ipx-network \fIn +IPXCP 設定要求フレーム中の IPX ネットワーク番号を \fIn\fR に設定します。 +16 進数 (先頭の 0x を除いて) を指定します。 +正当なデフォルト値はありません。 +このオプションが指定されないと、ネットワーク番号は相手から獲得します。 +相手がネットワーク番号を持っていない場合は、IPX プロトコルは開始されません。 +.TP +.B ipx-node \fIn\fB:\fIm +IPX ノード番号を設定します。 +2 つのノード番号をコロンで区切ります。 +最初の番号 \fIn\fR はローカルのノード番号です。 +次の番号 \fIm\fR は相手のノード番号です。 +どちらのノード番号も 16 進数であり、最大 10 桁です。 +ipx-network のノード番号は一意である必要があります。 +正当なデフォルト値はありません。 +このオプションが指定されないと、ノード番号は相手から獲得します。 +.TP +.B ipx-router-name \fI +ルータ名を設定します。 +これは文字列であり、情報データとして相手に送られます。 +.TP +.B ipx-routing \fIn +受信する経路プロトコルをこのオプションで指定します。 +複数の \fIipx-routing\fR インスタンスを指定可能です。'\fInone\fR' オプション +(0) のみ、ipx-routing インスタンスとして指定可能です。 +値は、\fI0\fR が \fINONE\fR に、\fI2\fR が \fIRIP/SAP\fR に、 +\fI4\fR が \fINLSP\fR に対応します。 +.TP +.B ipxcp-accept-local +ipx-node オプションで指定したノード番号に対する、相手の NAK を受け付けます。 +非ゼロのノード番号が指定された場合、 +この値の使用を主張することがデフォルトです。 +このオプションを指定すると、 +相手がノード番号のエントリを上書きすることを許します。 +.TP +.B ipxcp-accept-network +ipx-network オプションで指定したネットワーク番号に対する、 +相手の NAK を受け付けます。 +非ゼロのノード番号が指定された場合、 +この値の使用を主張することがデフォルトです。 +このオプションを指定すると、 +相手がノード番号のエントリを上書きすることを許します。 +.TP +.B ipxcp-accept-remote +設定要求フレーム中に指定される相手のネットワーク番号を使用します。 +相手のノード番号を指定し、 +かつこのオプションを指定しなかった場合は、 +相手はあなたが指定した値を使用することを強制されます。 +.TP +.B ipxcp-max-configure \fIn +システムが送信する IPXCP 設定要求フレーム数の最大値を \fIn\fR に設定します。 +デフォルト値は 10 です。 +.TP +.B ipxcp-max-failure \fIn +ローカルシステムがオプションを拒否する前に、 +ローカルシステムが送信する IPXCP NAK フレーム数の +最大値を設定します。デフォルト値は 3 です。 +.TP +.B ipxcp-max-terminate \fIn +相手が聞いていないという判断をローカルシステムが下す前に、 +ローカルシステムが送信する +IPCP 停止要求フレーム数の最大値を設定します。デフォルト値は 3 です。 .TP .B kdebug \fIn カーネルレベルの PPP ドライバのデバッグコードを有効にします。 引数 \fIn\fR として、以下の数値のうち必要なものの合計を指定します。 1 は一般的なデバッグメッセージ出力を有効にします。 2 は受信したパケットの内容の出力を要求します。 4 は送信したパケットの内容の出力を要求します。 +ほとんどのシステムでは、カーネルが表示したメッセージは、 +/etc/syslog.conf 設定ファイルに指示されるように、 +syslog(1) がファイルにログします。 .TP -.B local -モデム制御線を使用しません。 -.B pppd -は、モデムからの CD (Carrier Detect) 信号の状態を無視し、 -DTR (Data Terminal Ready) 信号の状態を変化しません。 +.B lcp-echo-failure \fIn +このオプションが指定された場合、 LCP echo-request を \fIn\fR 回送信しても +相手から有効な LCP echo-reply が帰ってこなければ、pppd は +相手がダウンしているものと推測します。このような場合、pppd は +接続を切断します。このオプションを使用する際には、 +\fIlcp-echo-interval\fR のパラメータとして 0 以外の数値を指定してください。 +このオプションは、ハードウェアモデム制御線 (DSR) が使用できない状況で、 +(モデムがハングアップするなど) 物理的な接続が切断された後に +pppd を終了するために用いられます。 .TP -.B mtu \fI -MTU [Maximum Transmit Unit] 値を \fI\fR に設定します。 -相手が MRU ネゴシエーションを通じてこれより小さい値を要求してこない限り、 -\fIpppd\ は、PPP ネットワークインタフェースを通して \fIn\fR バイトを -越えないデータパケットを送ることをカーネルのネットワークコードに要求します。 +.B lcp-echo-interval \fI +このオプションを指定すると、pppd は LCP echo-request フレームを +\fIn\fR 秒毎に相手側に送信します。 +通常、相手側は echo-request を受信すると echo-reply を送り返して返答します。 +このオプションは、相手側との接続が切れたことを検出するために +\fIlcp-echo-failure\fR オプションとともに使用されます。 .TP -.B name \fI -認証の目的で用いられるローカルシステムの名前を に設定します。 +.B lcp-max-configure \fIn +LCP configure-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 10)。 .TP -.B user \fI -PAP を用いてこのマシンの認証を行なう際に用いるユーザ名を に設定します。 +.B lcp-max-failure \fIn +LCP configure-Reject を送信開始するまでの LCP configure-NAK の最大応答回数を +\fIn\fR 回に設定します (デフォルト値は 10)。 .TP -.B usehostname -認証時にホスト名をローカルシステムの名前として使用することを強制します。 -( -このオプションは -.B name -オプションに優先します。 -) +.B lcp-max-terminate \fIn +LCP terminate-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 3)。 .TP -.B remotename \fI -リモートシステムの名前を とみなして認証を行ないます。 +.B lcp-restart \fIn +(再送のタイムアウトによる) LCP 再開の間隔を \fIn\fR 秒に設定します +(デフォルト値は 3)。 .TP -.B papcrypt -相手の同一性を調べるために使われる -/etc/ppp/pap-secrets ファイル内の全ての秘密を暗号化することを -指示します。そして、 pppd は、 (暗号化前の) /etc/ppp/pap-secrets -ファイルからの秘密と等かであってもパスワードを受け入れません。 +.B local +モデム制御線を使用しません。このオプションを指定すると、 +pppd +は、モデムからの CD (Carrier Detect) 信号の状態を無視し、 +DTR (Data Terminal Ready) 信号の状態を変化させません。 .TP -.B proxyarp -自システムの ARP [Address Resolution Protocol] テーブルに相手の IP アドレス -と自イーサネットアドレスを追加します。 +.B login +PAP を用いた相手の認証に、システムパスワードデータベースを用い、 +ユーザをシステムの wtmp ファイルに記録します。 +アクセスが許されるためには、 +/etc/ppp/pap-secrets ファイルとシステムパスワードデータベースの両方に、 +相手のエントリが存在する必要があります。 .TP -.B \-proxyarp -\fBproxyarp\fR オプションを使いません。\fIpppd\fR のユーザに -proxy ARP エントリを作成させたくないシステム管理者はこのオプションを -/etc/ppp/options ファイルに記述することでそのようにできます。 +.B maxconnect \fIn +ネットワークトラフィックの使用開始から \fIn\fR 秒後に接続を切断します +(これは、最初のネットワーク制御プロトコルが来てから \fIn\fR 秒になります)。 .TP -.B persist -接続が切断された後で終了しません。代わりに再接続しようとします。 +.B modem +モデム制御線を使用します。このオプションはデフォルトです。 +このオプションを指定すると、pppd は +(接続スクリプトが指定していなければ) +モデムからの CD (Carrier Detect) 信号のアサートを待ってから +シリアルデバイスをオープンし、接続終了時に +DTR (Data Terminal Ready) 信号を短い期間落としてから +接続スクリプトを実行します。 +Ultrix では、このオプションはハードウェアフロー制御、 +すなわち \fIcrtscts\fR オプションを暗黙的に指定します。 +.TP +.B ms-dns \fI +pppd が Microsoft Windows クライアントのサーバとして動作している場合、 +このオプションは pppd に 1 または 2 の DNS (Domain Name Server) アドレスを +クライアントに提供することを許します。 +このオプションの最初のインスタンスはプライマリ DNS アドレスを与えます。 +次のインスタンスは (もし与えられれば) セカンダリ DNS アドレスを与えます。 +(このオプションは、 +古いバージョンの pppd では \fBdns-addr\fR という名前でした。) +.TP +.B ms-wins \fI +pppd が Microsoft Windows クライアントまたは "Samba" クライアントの +サーバとして動作している場合、このオプションは pppd に 1 または 2 の +WINS (Windows Internet Name Services) サーバアドレスをクライアントに提供 +することを許します。 +このオプションの最初のインスタンスはプライマリ WINS アドレスを与えます。 +次のインスタンスは (もし与えられれば) セカンダリ WINS アドレスを与えます。 +.TP +.B name \fIname +認証の目的で用いられるローカルシステムの名前を \fIname\fR に設定します。 +このオプションは特権オプションです。 +このオプションを指定すると、pppd は秘密情報ファイルの第 2 フィールドが \fIname\fR +である行を使用して秘密情報を探し、相手を認証します。 +さらに、\fIuser\fR オプションで上書きしない場合は、 +相手に対してローカルシステムを自己証明する時に送る名前として +\fIname\fR を使用します。 +(pppd はドメイン名を \fIname\fR に付加しないことに注意してください。) +.TP +.B netmask \fIn +インタフェースのネットマスクを \fIn\fR に設定します。 +32 ビットのネットマスクを「10 進数ドット」表記で指定します (例: 255.255.255.0)。 +このオプションが与えられると、デフォルトのネットマスクと指定したネットマスク +との論理和が値となります。デフォルトのネットマスクは交渉される +リモートの IP アドレスに依存します。 +リモート IP アドレスのクラスに適切なネットマスクと、 +同一ネットワーク上システムの非 point-to-point ネットワークインターフェース +のネットマスクとの論理和となります。 +.TP +.B noaccomp +Address/Control 圧縮を双方向 (送受信) で無効にします。 +.TP +.B noauth +相手が自己証明することを要求しません。 +\fIauth\fR オプションが /etc/ppp/options に指定されている場合、 +このオプションは特権オプションです。 +.TP +.B nobsdcomp +BSD-Compress 圧縮を無効にします。 +BSD-Compress 方式を使用したパケット圧縮を \fBpppd\fR は要求も賛同もしません。 +.TP +.B noccp +CCP (圧縮制御プロトコル; Compression Control Protocol) 交渉を無効にします。 +相手にバグがあるために、 +CCP 交渉のための pppd からの要求に混乱してしまう場合にのみ、 +このオプションが必要です。 +.TP +.B nocrtscts +シリアルポートにハードウェアフロー制御 (つまり RTS/CTS) を使用しません。 +\fIcrtscts\fR か \fInocrtscts\fR の両方のオプションが与えられない時、 +シリアルポートのハードウェアフロー制御の設定は変更されずに +そのままになります。 .TP -.B login -PAP を用いた相手の認証に、システムパスワードデータベースを用います。 +.B nodefaultroute +\fIdefaultroute\fR オプションを無効にします。 +\fIpppd\fR を使っているユーザにデフォルト経路を作成させたくない +システム管理者は、このオプションを /etc/ppp/options ファイルに +記述することができます。 +.TP +.B nodeflate +Deflate 圧縮を無効にします。 +pppd は Deflate 方式を使用した圧縮パケットを要求しませんし、賛同もしません。 +.TP +.B nodetach +制御端末から切り離しません。このオプションを指定しないと、 +標準入力がある端末以外のシリアルデバイスが指定された場合は、 +pppd は fork してバックグラウンドプロセスになります。 +.TP +.B noip +IPCP 交渉と IP 通信を無効にします。 +相手にバグがあるために、 +IPCP 交渉のための pppd からの要求に混乱してしまう場合にのみ、 +このオプションが必要です。 .TP .B noipdefault -ローカル IP アドレスが指定されない場合にデフォルトで行なわれる、 -ホスト名から IP アドレスを ( 可能であれば ) 決定する動作を無効にします。 -このオプションを指定した場合には、IPCP ネゴシエーション時に +ローカル IP アドレスが指定されない場合にデフォルトで行われる、 +ホスト名から IP アドレスを (可能であれば) 決定する動作を無効にします。 +このオプションを指定した場合には、IPCP 交渉時に 相手側がローカルの IP アドレスを指定する必要があります (明示的にコマンドラインで指定されているか、 オプションファイルで指定されている場合を除きます)。 .TP -.B lcp-echo-interval \fI -このオプションを指定すると、\fIpppd\fR は LCP echo-request frame を -\fIn\fR 秒毎に相手側に送信します。Linux では、相手側からのパケットが -\fIn\fR 秒間途切れた場合に echo-request が相手側に送信されます。 -通常、相手側は echo-request を受信すると echo-reply を送り返して返答します。 -このオプションは、相手側との接続が切れたことを検出するために -\fIlcp-echo-failure\fR オプションとともに使用されます。 +.B noipx +IPXCP および IPX プロトコルを無効にします。 +相手にバグがあるために、 +IPXCP 交渉のための pppd からの要求に混乱してしまう場合にのみ、 +このオプションが必要です。 .TP -.B lcp-echo-failure \fI -このオプションが指定された場合、 LCP echo-request を \fIn\fR 回送信しても -相手から有効な LCP echo-reply が帰ってこなければ、\fIpppd\fR は -相手がダウンしているものと推測します。このような場合、\fIpppd\fR は -コネクションを切断します。このオプションを使用する際には、 -\fIlcp-echo-interval\fR のパラメータとして 0 以外の数値を指定して下さい。 -このオプションは、ハードウェアモデム制御線 (DSR) が使用できない状況で、 -( モデムが回線を切断するなどの ) 物理的なコネクションが切断された後に -\fIpppd\fR を終了するために用いられます。 +.B nomagic +magic number 交渉を無効にします。このオプションを指定した場合には、 +pppd +はループバック回線を検出することができません。 +相手にバグがある場合にのみ必要となります。 .TP -.B lcp-restart \fI -( 再送のタイムアウトによる ) LCP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B nopcomp +送受信方向とも、プロトコルフィールド圧縮交渉を無効にします。 .TP -.B lcp-max-terminate \fI -LCP terminate-request の最大送信回数を 回に設定します。 -デフォルト値は 3 です。 +.B nopersist +接続の確立と切断のたびに終了します。 +\fIpersist\fR または \fIdemand\fR のオプションが指定されない場合、 +このオプションはデフォルトです。 .TP -.B lcp-max-configure \fI -LCP configure-request の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B nopredictor1 +Predictor-1 圧縮を受け付けませんし、賛同もしません。 .TP -.B lcp-max-failure \fI -LCP configure-Rejects を送信開始するまでの LCP configure-NAKs 最大応答回数を - 回に設定します。デフォルト値は 10 です。 +.B noproxyarp +\fIproxyarp\fR オプションを無効にします。pppd のユーザに +proxy ARP エントリを作成させたくないシステム管理者は、このオプションを +/etc/ppp/options ファイルに記述することでそのようにできます。 .TP -.B ipcp-restart \fI -( 再送のタイムアウトによる ) IPCP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B novj +Van Jacobson 形式の TCP/IP ヘッダ圧縮を送受信方向において無効にします .TP -.B ipcp-max-terminate \fI -IPCP terminate-request の最大送信回数を 回に設定します。 -デフォルト値は 3 です。 +.B novjccomp +Van Jacobson 形式の TCP/IP ヘッダ圧縮において、 +connection-ID 圧縮を無効にします。 +このオプションを指定すると、 +pppd は Van Jacobson 圧縮された TCP/IP ヘッダから +connection-ID バイトを省略しなくなりますし、 +相手にも依頼しません。 .TP -.B ipcp-max-configure \fI -IPCP configure-request の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B papcrypt +相手の同一性を調べるために使われる +/etc/ppp/pap-secrets ファイル内の全ての秘密情報を暗号化することを +指示します。pppd は、暗号化前の /etc/ppp/pap-secrets +ファイルからの秘密情報と等しいパスワードを受け入れません。 +.TP +.B pap-max-authreq \fIn +PAP authenticate-request の最大送信回数を \fIn\fR 回に設定します +(デフォルト値は 10)。 +.TP +.B pap-restart \fIn +(再送のタイムアウトによる) PAP 再開の間隔を \fIn\fR 秒に設定します +(デフォルト値は 3)。 +.TP +.B pap-timeout \fIn +PAP において接続先が自己証明するまで +pppd +が待機する最大時間を、\fIn\fR 秒に +設定します (0 は制限を設けないことを意味します)。 +.TP +.B pass-filter \fIfilter-expression +送受信されるデータパケットに適用されるフィルタで、 +通過を許されるパケットを決定するフィルタを指定します。 +フィルタが拒否するパケットは黙って捨てられます。 +特定のネットワークデーモン (例えば routed) が +リンクバンド幅を使い切ることを防いだり、 +基本的なファイアウォール機能を提供するために、このオプションがあります。 +\fIfilter-expression\fR の文法は tcpdump(1) と同じですが、 +限定子は PPP リンクでは不適当ですので、 +\fBether\fR や \fBarp\fR は使用できません。 +一般的には、フィルタ式をシングルクォートで括って、 +式中の空白がシェルに解釈されることを避けるべきです。 +\fBinbound\fR と \fBoutbound\fR の限定子を付けることにより、 +入出力のパケットに異なった制約を適用可能です。 +このオプションは現在 NetBSD でのみ利用可能であり、 +カーネル及び pppd が PPP_FILTER を定義してコンパイルされた場合のみ、 +このオプションを利用可能です。 +.TP +.B persist +接続が切断された後で終了しません。代わりに再接続しようとします。 .TP -.B ipcp-max-failure \fI -IPCP configure-Rejects を送信開始するまでの IPCP configure-NAKs 最大応答回数を - 回に設定します。デフォルト値は 10 です。 +.B predictor1 +相手が送出するフレームを Predictor-1 圧縮を使用するよう要求し、 +要求された場合 Predictor-1 で送出フレームを圧縮することに賛同します。 +カーネルドライバが Predictor-1 圧縮をサポートしない場合には、 +このオプションは影響ありません。 .TP -.B pap-restart \fI -( 再送のタイムアウトによる ) PAP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B proxyarp +自システムの ARP [アドレス解決プロトコル; Address Resolution Protocol] +テーブルに相手の IP アドレス +と自システムのイーサネットアドレスを追加します。 +他のシステムに対して、 +相手がローカルイーサネット上にあるように見せることになります。 .TP -.B pap-max-authreq \fI -PAP authenticate-request の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B remotename \fIname +リモートシステムの名前を \fIname\fR とみなして認証を行います。 .TP -.B pap-timeout \fI -.I pppd -が PAP において接続先の認証のために待機する最大時間を 秒に -設定します(0 は制限を設けないことを意味します)。 +.B refuse-chap +このオプションを指定すると、 +pppd は相手に対して自己証明するにあたり CHAP の使用に賛同しません。 .TP -.B chap-restart \fI -( 再送のタイムアウトによる ) CHAP restart の間隔を 秒に設定します。 -デフォルト値は 3 です。 +.B refuse-pap +このオプションを指定すると、 +pppd は相手に対して自己証明するにあたり PAP の使用に賛同しません。 .TP -.B chap-max-challenge \fI -CHAP challenge の最大送信回数を 回に設定します。 -デフォルト値は 10 です。 +.B require-chap +CHAP [チャレンジハンドシェーク認証プロトコル; +Challenge Handshake Authentication Protocol] を用いて +自己証明を行うことを相手に要求します。 .TP -.B chap-interval \fI -このオプションが指定された場合、 -.I pppd -は 秒おきに CHAP challenge を再送信します。 +.B require-pap +PAP [パスワード認証プロトコル; Password Authentication Protocol] を用いて +自己証明を行うことを相手に要求します。 .TP -.B ipcp-accept-local -このオプションが指定された場合には、 -別のオプションによってローカル IP アドレスの指定が行なわれている場合でも、 -.I pppd -は相手からのローカル IP アドレスの指定を受け入れます。 +.B silent +このオプションを指定した場合、 +pppd +は相手から有効な LCP パケットを受信するまで、 +接続を開始するための LCP パケットを送信せずに待ちます +(旧バージョンの pppd で 'passive' オプションを指定した場合と同じ動作です)。 .TP -.B ipcp-accept-remote -このオプションが指定された場合には、 -別のオプションによってリモート IP アドレスの指定が行なわれている場合でも、 -.I pppd -は相手からのリモート IP アドレスの指定を受け入れます。 +.B usehostname +認証時にホスト名をローカルシステムの名前として使用することを強制します +(ドメイン名が与えられれば付加されます)。 +(このオプションは \fIname\fR オプションに優先します。) +.TP +.B user \fIname +このマシンを相手に対して自己証明する際に用いるユーザ名を +\fIname\fR に設定します。 +.TP +.B vj-max-slots \fIn +Van Jacobson の TCP/IP ヘッダ圧縮/伸長に使用する接続スロット数を +\fIn\fR に設定します。 +2 から 16 (両端を含む) の範囲にある必要があります。 +.TP +.B welcome \fIscript +PPP 交渉開始前かつ、(もしあれば) 接続スクリプトの完了後に、 +\fIscript\fR で指定される実行コマンドもしくはシェルコマンドを実行します。 +\fInoauth\fR オプションが使用された場合には、 +このオプションは特権オプションとなります。 +.TP +.B xonxoff +ソフトウェアフロー制御 (つまり XON/XOFF) を使用してシリアルポート上の +データフローを制御します。 .SH オプションファイル オプションは、コマンドラインから与えられるのと同様に、 ファイルに記述されたものを用いることも可能です。 -.I pppd +pppd は、コマンドラインからのオプションを -読み込む前に /etc/ppp/options および ~/.ppprc から -オプションを読み込みます。オプションファイルの内容は、 +読み込む前に /etc/ppp/options, ~/.ppprc, /etc/ppp/options.\fIttyname\fR から +(この順に) オプションを読み込みます。 +(実際には、端末名を得るためにコマンドラインオプションがまずスキャンされてから、 +options.\fIttyname\fR ファイルが読まれます。) +options.\fIttyname\fR ファイル名構成にあたり、 +まず /dev/ が端末名から除かれ、残った / 文字がドットと置換されます。 +.PP +オプションファイルの内容は、 空白文字をデリミタとする単語の並びとして解釈されます。 空白文字を含む文字列はダブルクォート (") で囲うことで 1 つの文字列として解釈されるようになります。 -バックスラッシュ (\\) は、直後の 1 キャラクタをクォートします。 -シャープ文字 (#) はコメントの始まりとして解釈され、 +バックスラッシュ (\\) は、直後の 1 文字をクォートします。 +ハッシュ文字 (#) はコメントの始まりとして解釈され、 改行までをコメントとみなします。 -.SH 認証 +オプションファイル中での \fIfile\fR および \fIcall\fR のオプションの +使用制限はありません。 +.SH セキュリティ .I pppd は、正当なユーザに対するサーバマシンへの PPP アクセスを提供しつつ、 サーバ自身やそのサーバが存在するネットワークのセキュリティを危険に さらす心配のない、充分なアクセス制御をシステム管理者に提供します。 このアクセス制御の一部は、 /etc/ppp/options ファイルにより提供されます。 このファイルでシステム管理者は -.I pppd -が実行される時には常に認証を要求するように -オプションを設定することができます。 -また一部は、PAP や CHAP のシークレットファイルにより提供されます。 +pppd の使用制限を設定することができます。 +また一部は、PAP や CHAP の秘密情報ファイルにより提供されます。 このファイルで個々のユーザが使用する IP アドレスの組を 管理者が制限することができます。 +.PP +通常の pppd の用途においては、 +\fIauth\fR オプションを /etc/ppp/options ファイルに設定すべきです。 +(将来のリリースにおいてデフォルトになるかもしれません。) +ユーザが pppd を使用して相手にダイアルアウトしたい場合で、 +相手が自己証明することを拒否する場合 (インターネットサービスプロバイダなど)、 +システム管理者は /etc/ppp/peers 下にオプションファイルを作成し、 +ここに \fInoauth\fR オプションと、使用するシリアルポート名と、 +(必要なら) \fIconnect\fR オプションと、その他適切なオプションを格納します。 +このようにすることで、 +非特権ユーザが信頼関係のある相手との間で認証されない接続を結ぶことを可能 +とします。 +.PP +上述のように、セキュリティに影響するオプションは特権オプションであり、 +通常の非特権ユーザが setuid-root された pppd では使用できません。 +これは、コマンドラインでも、ユーザの ~/.ppprc ファイルでも、 +\fIfile\fR オプションを使用して読まれるオプションファイルでも言えることです。 +/etc/ppp/options ファイル中、 +もしくは \fIcall\fR オプションを使用して読まれるオプションファイル中では、 +特権オプションの使用は許されます。 +pppd が root ユーザにより起動された場合、特権オプションの使用は無制限です。 +.SH 認証 +認証とは、一方が他方に自己を認めさせる処理のことを言います。 +これは、一方が自己の名前を他方に送る際、 +その名前のオーソライズされた本物の使用者のみから生まれる +ある種の秘密情報を伴うことを必要とします。 +このような交換において、最初の一方を「クライアント」と呼び、 +他方を「サーバ」と呼びます。 +クライアントは自己をサーバに識別させるための名前を持ち、 +サーバもまた自己をクライアントに識別させるための名前を持ちます。 +一般的に本物のクライアントは秘密情報 (またはパスワード) をサーバと共有し、 +自己を証明するにあたりその秘密情報を知っていると伝えます。 +認証に使用される名前は相手のインターネットホスト名に対応することが多いですが、 +これは本質的なことではありません。 .LP -.I pppd +現在 pppd は 2 つの認証プロトコルをサポートします: +それぞれ、パスワード認証プロトコル (Password Authentication Protocol; PAP) と +チャレンジハンドシェーク認証プロトコル +(Challenge Handshake Authentication Protocol; CHAP) です。 +PAP の場合、クライアントは自己証明のために、 +自己の名前とクリアテキストパスワードをサーバに送る必要があります。 +これとは対称的に、CHAP 認証交換はサーバが開始し、 +チャレンジをクライアントに送ります +(チャレンジパケットにはサーバ名が含まれます)。 +クライアントはこれに返答する必要があり、 +返事の中に自己の名前に加えて共有秘密情報とチャレンジから得られるハッシュ値を +含め、自己が秘密情報を知っていると伝える必要があります。 +.LP +PPP プロトコルは対称的ですから、 +両者が他方に対して自己証明を行うように要求することを許します。 +この場合、2 つの別々かつ独立した認証交換が発生します。 +2 つの交換においては別の認証プロトコルを使用できますし、 +原則的には違う名前を使用可能です。 +.LP +pppd のデフォルトの挙動は、もし認証の要求があればそれを受け入れ、 相手側には認証を要求しないというものです。 ただし、 -.I pppd -がその認証を行なうのに必要なシークレットを持っていない +pppd +がその認証を行なうのに必要な秘密情報を持っていない 特定のプロトコルによる認証は拒否します。 .LP -認証はシークレットファイルから選ばれたシークレットをベースにしています。 -(PAP では /etc/ppp/pap-secrets が、CHAP では /etc/ppp/chap-secrets が -シークレットファイルです。) -どちらのシークレットファイルも同じフォーマットになっており、 -どちらもサーバ ( 認証する側 ) とクライアント ( 認証される側 ) の -それぞれの組合せを記録しておくことができます。 -.I pppd -はサーバにもクライアントにもなれることと、必要ならそれぞれの方向で -異なったプロトコルを使用した認証ができることに注意してください。 -.LP -シークレットファイルはオプションファイルと同じように単語の並びとして -解釈されます。一組のシークレットは最低でも 3 つの単語を含む 1 つの行として -指定され、3 つの単語はそれぞれクライアント名・サーバ名・シークレットとして -解釈されます。残りの単語があれば、それはクライアント側で -使用可能な IP アドレスのリストとして解釈されます。 -もしその行に 3 つの単語しかない場合は、どのような IP アドレスでも受け入れ -可能であると仮定されます。全ての IP アドレスを禁止するには "-" を使います。 -もしシークレットが一個の `@' で始まる場合には、続く文字列がシークレットを -読み込むファイルの名前であると仮定されます。 -クライアント名またはサーバ名が "*" であれば、それはどのような名前とも -マッチします。 -シークレットを選択する際、\fIpppd\fR は最も良くマッチするものを選びます。 -つまり、最もワイルドカードの少ないマッチが選ばれます。 -.LP -このように、シークレットファイルは他のホストを認証するための -シークレットに加えて、自分自身を他のホストに認証させるための -シークレットを含んでいます。 -どのシークレットを使うかは、自分の名前 ( ローカル名 ) と -相手側の名前 ( リモート名 ) をベースにして選ばれます。 -ローカル名は以下のようにしてセットされます。 -.TP 3 -\fBusehostname\fR オプションが指定されていれば、 -ローカル名はそのマシンのホスト名になります -( domain が指定されていれば追加されます)。 -.TP 3 -そうではなく、\fBname\fR が指定されていれば -最初の \fBname\fR オプションの引数が使われます。 -.TP 3 -そうではなく、ローカル IP アドレスがホスト名で指定されていれば -そのホスト名が使われます。 -.TP 3 -何も指定されていない場合は、このマシンのホスト名が使われます -( domain が指定されていれば追加されます)。 -.LP -PAP を使用して自分の認証を行なう場合、ユーザ名というものがありますが、 -デフォルトではローカル名が使われます。 -しかし、\fBuser\fR オプションまたは \fB+ua\fR オプションで -ユーザ名をセットすることができます。 -.LP -リモート名は以下のようにしてセットされます。 -.TP 3 -\fBremotename\fR オプションが指定されていれば、 -最後の \fBremotename\fR の引数が使われます。 -.TP 3 -そうではなく、リモート IP アドレスがホスト名で指定されていれば、 -そのホスト名が使用されます。 -.TP 3 -何も指定されていない場合、リモート名は空文字列 "" になります。 -.LP -PAP シークレットファイルからのシークレットの選択は -以下のように行なわれます。 -.TP 2 -* -相手側の認証を行なう場合には、PAP 認証要求で指定されたユーザ名が -クライアント名と一致し、サーバ名がローカル名と一致する -シークレットが選ばれます。 -.TP 2 -* -相手側に自分を認証してもらう場合には、クライアント名がユーザ名と -一致し、サーバ名がリモート名と一致するシークレットを探します。 -.LP -相手側を PAP で認証する際に、"" というシークレットは相手側から -送られてきた任意のパスワードとマッチします。 -もしパスワードがシークレットとマッチしなければ、 -パスワードは crypt() を使用して暗号化され、再びシークレットと -比較されます。このため相手側の認証に使用するシークレットは +pppd は認証に使用する秘密情報を秘密情報ファイル +(PAP の場合 /etc/ppp/pap-secrets、 +CHAP の場合 /etc/ppp/chap-secrets) に格納します。 +どちらの秘密情報ファイルも同じフォーマットです。 +秘密情報ファイルには、 +pppd が他のシステムに対して自己証明するための秘密情報を格納する +ことができますし、 +他のシステムの認証を行うための秘密情報を格納することも可能です。 +.LP +秘密情報ファイル中の各行は 1 つの秘密情報を格納します。 +特定の秘密情報はあるクライアントとサーバの組み合わせに対して特有です - +このクライアントがこのサーバに対して自己証明することにのみ使用されます。 +秘密情報ファイルの各行は、少くとも 3 つのフィールドからなります: +それぞれ、クライアント名、サーバ名、秘密情報です。 +指定したサーバに指定したクライアントが接続する時に使用する +IP アドレスリストを、これらのフィールドの後に続けることができます。 +.LP +秘密情報ファイルはオプションファイルと同じように単語の並びとして +解釈されますので、クライアント名、サーバ名、秘密情報の各フィールドは +1 語である必要があり、 +これに含まれる空白文字や特殊文字は +クォートもしくはエスケープする必要があります。 +同じ行の残りの語は、クライアントに許される IP アドレスのリストとされるか、 +(ワイルドカードでもなく空でもない) 特定のクライアント名を含む行の +場合は "local:remote" アドレス +(コマンドラインもしくはオプションファイルで共通フォーマット) +に優先します。 +行に 3 語しか無い場合もしくは最初の語が "-" である場合、 +全ての IP アドレスが不許可となります。 +全アドレスを許可するには "*" を使用します。 +また "!" から始まる語は、指定したアドレスを受け付け\fIない\fRことを示します。 +アドレスの後には "/" と数値 \fIn\fR を続けることが可能であり、 +全体のサブネットを示します。 +つまり、全てのアドレスの上位 \fIn\fR ビットが同じ値となります。 +クライアント名、サーバ名、秘密情報においては大文字小文字の区別は重要です。 +.LP +秘密情報が `@' から始まる場合、後続するものはファイル名であり、 +そこから秘密情報を読み込むものとされます。 +クライアント名もしくはクライアント名に単一の "*" を使用すると、 +いかなる名前にもマッチします。 +秘密情報を選択する時、pppd はベストマッチ、 +すなわちワイルドカードが最小となるマッチを採用します。 +.LP +秘密情報ファイルには、他のホストを認証するための秘密情報に加え、 +他のホストに対して自己証明するための秘密情報も格納します。 +pppd が相手を認証 (相手が相手であることを確認) する時、 +秘密情報の検索にあたり、 +相手の名前が最初のフィールドにありローカルシステムの名前が 2 番目のフィールド +にあるものを選びます。 +ローカルシステム名のデフォルトはホスト名であり、 +\fIdomain\fR オプション使用時にはドメイン名が付加されます。 +このデフォルトには \fIname\fR オプションが優先しますが、 +\fIusehostname\fR オプションが使用されている場合は例外です。 +.LP +pppd が相手に対する自己証明のための秘密情報を選ぶ時には、 +まずどの名前を使用して相手に対して自己識別するかを決めます。 +この名前はユーザが \fIuser\fR オプションで指定可能です。 +このオプションが使用されていない場合、 +名前はデフォルトのローカルシステム名となり、 +前の段落で示したように決定されます。 +こうして pppd は秘密情報の検索にあたり、 +この名前が最初のフィールドにあり相手の名前が 2 番目のフィールド +にあるものを選びます。 +CHAP 認証が使用される場合、 +相手はチャレンジパケット中に相手の名前を含めますから、 +pppd は相手の名前を知ることになります。 +しかし、PAP が使用される場合、 +ユーザが指定したオプションを元に pppd は相手の名前を決定します。 +ユーザは相手の名前を直接 \fIremotename\fR で指定可能です。 +そうではない場合で、リモート IP アドレスが (数値形式でなく) +名前で指定された場合、その名前を相手の名前として使用します。 +これに失敗すると、pppd は相手の名前に空文字列を使用します。 +.LP +相手側を PAP で認証する際に、提供されるパスワードはまず秘密情報ファイルの +秘密情報と比較されます。 +もしパスワードが秘密情報とマッチしなければ、 +パスワードは crypt() を使用して暗号化され、再び秘密情報と比較されます。 +このため相手側の認証に使用する秘密情報は 暗号化された形式で記録することができます。 -\fBpapcrypt\fR オプションが与えられた場合、よりよいセキュリティのため +\fIpapcrypt\fR オプションが与えられた場合、よりよいセキュリティのため 最初の (暗号化されていない) 比較対象は除外されます。 .LP -もし \fBlogin\fR オプションが指定されていれば、ユーザ名とパスワードも +更にもし \fIlogin\fR オプションが指定されていれば、ユーザ名とパスワードも システムパスワードデータベースでチェックされます。 このためシステム管理者は特定のユーザだけに PPP アクセスを 許可し、個々のユーザが使用できる IP アドレスの組を -制限するよう pap-secrets ファイルをセットアップすることができます。 -典型的には、\fBlogin\fR オプションを使う時に、 /etc/ppp/pap-secrets -中の シークレット部分を "" とすることで、同じシークレットが二つの -場所で必要とされることを避けることができます。 +制限するよう pap-secrets ファイルを設定することができます。 +典型的には、\fIlogin\fR オプションを使う時に、 +/etc/ppp/pap-secrets 中の秘密情報を "" とすることで、 +相手が提供するいかなるパスワードにもマッチするようになります。 +これにより、同じ秘密情報を 2 個所で必要とされることを避けることができます。 .LP \fBlogin\fR オプションが使われている時には、更なる確認が行われます。 /etc/ppp/ppp.deny が存在して、ユーザがそこに記述されている場合、 -認証は失敗します。 /etc/ppp/ppp.shells が存在して、ユーザの普通の +認証は失敗します。 /etc/ppp/ppp.shells が存在して、ユーザの通常の ログインシェルが記述されていない場合、認証は失敗します。 .LP -CHAP シークレットファイルからのシークレットの選択は -以下のように行なわれます。 -.TP 2 -* -相手側の認証を行なう場合には、CHAP-Response メッセージで指定された -名前がクライアント名と一致し、サーバ名がローカル名と一致する -シークレットを探します。 -.TP 2 -* -相手側に自分を認証してもらう場合には、クライアント名がローカル名と -一致し、CHAP-Challenge メッセージで指定された名前がサーバ名と一致する -シークレットを探します。 -.LP -認証は IPCP (またはその他の NCP) が開始される前に納得のいくように -完了している必要があります。 -もしも認証に失敗すると、\fIpppd\fR は (LCP をクローズすることで) -リンクを切断します。 +認証は IPCP (またはその他のネットワーク制御プロトコル) +が開始される前に納得のいくように完了している必要があります。 +相手が自己証明することを求められている時に、認証に失敗すると、 +\fIpppd\fR は (LCP をクローズすることで) リンクを切断します。 もし IPCP で得られたリモートホストの IP アドレスが受け入れられない ものであった場合、IPCP はクローズされます。 IP パケットは IPCP が オープンしている時だけ送受信可能です。 .LP ローカルホストが一般的に認証を必要とする時でも、 -接続を行い限定された IP アドレスの組の一つを使うために -自分自身の認証を行うことができないようないくつかのホストに対して、 +接続を行い限定された IP アドレスの組の 1 つを使うために +自己証明ができないホストに対して、 接続を認める必要がある場合もあります。 -もし相手側がこちらの認証要求を拒否した場合、\fIpppd\fR はそれを +もし相手側がこちらの認証要求を拒否した場合、pppd はそれを ユーザ名とパスワードが空文字列である PAP 認証として扱います。 そこで、クライアント名とパスワードに空文字列を指定した 1 行を -pap-secrets ファイルに追加することで、自分自身の認証を拒否する +pap-secrets ファイルに追加することで、自己証明を拒否する ホストにも制限つきのアクセスを許可することができます。 .SH 経路制御 .LP -IPCP negotiation が成功した場合、 -.I pppd +IPCP 交渉が成功した場合、 +pppd はカーネルに、PPP インタフェースで用いるローカル IP アドレスおよび -リモート IP アドレスを通知します。これは、相手側と IP パケットを交換する +リモート IP アドレスを通知します。 +これは、相手側と IP パケットを交換する リンクのリモート終端への経路を作成するのに充分な情報です。 -サーバ以外のマシンとの通信には、一般的にはルーティング -テーブルや ARP テーブルのさらなる更新が必要となります。 -いくつかのケースでは、これらのテーブルの -更新は \fIrouted\fR や \fIgated\fR などのデーモンプロセスが -自動的に行なってくれます。 -しかし、大半のケースでは、さらに何らかの介入が必要となります。 -.LP -インターネットへの接続を PPP インタフェース経由のみで行なうマシンの -場合には、リモートホストを通る default route の追加が -しばしば必要となる場合があります。 -\fBdefaultroute\fR オプションは、IPCP が完了した際に \fIpppd\fR に -そのような default route を作成させ、リンクが切断されたときには -その default route を削除させます。 +サーバ以外のマシンとの通信には、一般的には経路 +テーブルや ARP (アドレス解決プロトコル; Address Resolution Protocol) +テーブルのさらなる更新が必要となります。 +ほとんどの場合 \fIdefaultroute\fR や \fIproxyarp\fR オプションで十分ですが、 +更なる解析が必要な場合もあります。 +/etc/ppp/ip-up スクリプトが使用可能な場合があります。 +.LP +インターネットへの接続を PPP インタフェース経由のみで行うマシンの +場合には、リモートホストを通るデフォルト経路の追加が +望ましい場合があります。 +\fIdefaultroute\fR オプションは、IPCP が完了した際に pppd に +そのようなデフォルト経路を作成させ、リンクが切断されたときには +そのデフォルト経路を削除させます。 .LP 例えばサーバマシンが LAN に接続されている場合、LAN 上の他のホストが リモートホストと通信できるようにするために proxy ARP の使用が -必要な場合もあります。 -\fBproxyarp\fR オプションを指定すると、\fIpppd\fR はリモートホストと -同一サブネット上にある ( ブロードキャストと ARP をサポートし、動作中 -かつ point-to-point やループバックでない ) ネットワークインタフェースを -探します。そのようなインタフェースが見つかった場合、\fIpppd\fR は +望ましい場合もあります。 +\fIproxyarp\fR オプションを指定すると、pppd はリモートホストと +同一サブネット上にある (ブロードキャストと ARP をサポートし、動作中 +かつ point-to-point やループバックでない) ネットワークインタフェースを +探します。 +そのようなインタフェースが見つかった場合、pppd は 恒久的に公開された ARP エントリとしてリモートホストの IP アドレスと その見つかったネットワークインタフェースのイーサネット (MAC) アドレスを 登録します。 +.LP +\fIdemand\fR オプション使用時は、IPCP 起動時に +インタフェースの IP アドレスは設定済みです。 +pppd がインタフェース設定に使用したものと同じアドレスを +交渉できなかった場合には +(例えば ISP が動的に IP アドレスを割り当てる場合)、 +pppd はインタフェースの IP アドレスを交渉されたものに +変更する必要があります。 +この場合既存の接続を破壊するかもしれませんので、 +動的 IP 割り当てを行う相手と要求時ダイアルを行うことは勧められません。 .SH 使用例 .LP -もっとも単純な場合では、2 つのマシンのシリアルポートをつなぎ、 -それぞれのマシンで以下のようなコマンドを実行します。 +(ppp の配布のデフォルトの /etc/ppp/options ファイルと同じく) +以下の例では /etc/ppp/options ファイルは +\fIauth\fR オプションを含むものとします +.LP +おそらく最も一般的な pppd の使用方法は ISP へダイアルアウトすることでしょう。 +この場合次のコマンドを使用します。 .IP -pppd /dev/ttya 9600 passive +pppd call isp .LP -ただしそれぞれのマシンにおいて、シリアルポートで \fIgetty\fR が -走っていないものと仮定しています。 -もし片方のマシンで \fIgetty\fR が走っている場合、 -\fIkermit\fR や \fItip\fR などの通信プログラムを用いて \fIgetty\fR が -走っているマシンにログインし、次のようなコマンドを実行します。 +ここで /etc/ppp/peers/isp ファイルはシステム管理者が次のように設定します: .IP -pppd passive +ttyS0 19200 crtscts +.br +connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp' +.br +noauth +.LP +この例では、chat を使用して ISP のモデムにダイアルし、 +必要なログオンシーケンスを通過します。 +/etc/ppp/chat-isp ファイルは chat が使用するスクリプトを含みます。 +例えば次のようになっています: +.IP +ABORT "NO CARRIER" +.br +ABORT "NO DIALTONE" +.br +ABORT "ERROR" +.br +ABORT "NO ANSWER" +.br +ABORT "BUSY" +.br +ABORT "Username/Password Incorrect" +.br +"" "at" +.br +OK "at&d0&c1" +.br +OK "atdt2468135" +.br +"name:" "^Umyuserid" +.br +"word:" "\\qmypassword" +.br +"ispts" "\\q^Uppp" +.br +"~-^Uppp-~" +.LP +chat スクリプトの詳細については、 +chat(8) のマニュアルページを参照してください。 .LP -それから通信プログラムを終了し、( コネクションが切断されていないことを確 -認して ) 次のようなコマンドを実行します。 +pppd はまたダイアルイン ppp サービスをユーザに提供するために使用可能です。 +ユーザが既にログインアカウントを持っている場合には、 +ppp サービスの最も簡単な設定方法は、 +ユーザにそのアカウントでログインしてもらってから、 +(setuid-root された) pppd を次のように実行することです。 .IP -pppd /dev/ttya 9600 +pppd proxyarp .LP -もう一方のマシンへのログインおよび \fIpppd\fR の開始処理は、 -\fBconnect\fR オプションを使用して \fIchat\fR スクリプトを起動することで -自動化できます。 -例 : +ユーザが PPP 機能を使用することを許すためには、 +そのユーザのマシンのための IP アドレスを割り当て、 +/etc/ppp/pap-secrets または /etc/ppp/chap-secrets (ユーザのマシンの PPP 実装が +どちらの認証方法をサポートするかに依存します) +にエントリを作成して、ユーザのマシンを認証可能とします。 +例えば、Joe が "joespc" というマシンを持っていて、"server" というマシンへの +ダイアルインおよび joespc.my.net という IP アドレスの使用が許されている場合、 +次のようなエントリを /etc/ppp/pap-secrets または /etc/ppp/chap-secrets に +加えます: .IP -pppd /dev/ttya 38400 connect 'chat "" "" "login:" "username" -"Password:" "password" "% " "exec pppd passive"' +joespc server "joe's secret" joespc.my.net .LP -(ただし、このように chat プログラムを起動すると、パスワードの文字列が -pppd や chat のパラメータリスト (ps 等の出力で得られます ) で -見えてしまうことに注意して下さい。) +別の方法として、(例えば) "ppp" といったユーザ名を作成し、 +そのログインシェルを pppd とし、 +ホームディレクトリを /etc/ppp とする方法があります。 +この方法で pppd を実行する場合に使用するオプションは +/etc/ppp/.ppprc に置くことができます。 .LP -もしあなたのシリアルコネクションがケーブル一本でなく、もっと複雑な場合には、 -いくつかのコントロールキャラクタがエスケープされるように +もしあなたのシリアル接続がケーブル 1 本でなく、もっと複雑な場合には、 +いくつかの制御文字がエスケープされるように 準備しておく必要があります。とりわけ、XON (^Q) および XOFF (^S) を、 -\fBasyncmap a0000\fR を用いてエスケープすることはしばしば有効です。 -パスが telnet を含む場合には、 ^] キャラクタも同様にエスケープ -(\fBasyncmap 200a0000\fR を指定 ) する必要があるでしょう。 +\fIasyncmap a0000\fR を用いてエスケープすることはしばしば有効です。 +パスが telnet を含む場合には、 ^] 文字も同様にエスケープ +(\fIasyncmap 200a0000\fR を指定) する必要があるでしょう。 パスが rlogin を含む場合には、rlogin クライアントの動作している側の -ホストで \fBescape ff\fR を指定する必要があるでしょう。これは、多くの +ホストで \fIescape ff\fR を指定する必要があるでしょう。これは、多くの rlogin の実装がネットワーク透過でないためです。 それらの rlogin では、 0xff, 0xff, 0x73, 0x73 とそれに続く 8 バイトの シーケンスをストリームから取り除きます。 .SH 診断 .LP メッセージは LOG_DAEMON ファシリティを用いて syslog デーモンに 送られます (これは希望するファシリティを LOG_PPP マクロとして定義し、 -\fIpppd\fR を再コンパイルすることで変更することができます)。 +pppd を再コンパイルすることで変更することができます)。 エラーメッセージやデバッグメッセージを見るためには、 /etc/syslogd.conf ファイルを編集して pppd からのメッセージが 希望する出力デバイスやファイルに書き出されるようにしておく必要があります。 .LP -\fBdebug\fR オプションは送受信されるすべての制御パケットの内容が +\fIdebug\fR オプションは送受信されるすべての制御パケットの内容が ログに記録されるようにします。対象となる制御パケットは、 すべての LCP, PAP, CHAP, IPCP パケットです。 -この機能は、PPP ネゴシエーションがうまくいかない場合の原因究明に -効果的でしょう。 +この機能は、PPP 交渉がうまくいかない場合や +認証が失敗する場合の原因究明に効果的でしょう。 コンパイル時にデバッギングオプションを有効にしていた場合には、 -\fBdebug\fR もまた他のデバッグメッセージを記録するために使われます。 +\fIdebug\fR もまた他のデバッグメッセージを記録するために使われます。 .LP .I pppd プロセスに SIGUSR1 シグナルを送ってデバッギングを有効にすることが できます。これはトグル動作します。 -.SH 関連ファイル -.TP -.B /var/run/ppp\fIn\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(others) -ppp インタフェースユニット \fIn\fR に対応する \fIpppd\fR プロセスの -プロセス ID が記録されます。 +.SH スクリプト +pppd は処理の様々な段階においてスクリプトを起動し、 +サイト固有の追加処理を行います。 +これらのスクリプトは通常シェルスクリプトですが、 +実行可能コードファイルであってもかまいません。 +pppd はスクリプトが終了するまで待ちません。 +スクリプトは root にて (実ユーザ ID および実効ユーザ ID とも 0 に設定して) +実行されますので、経路テーブルの更新や特権デーモンの実行が可能です。 +これらのスクリプトの内容によってシステムセキュリティが危うくならないよう +注意してください。 +pppd は標準入力・標準出力・標準エラー出力を /dev/null にリダイレクトし、 +リンクの情報を与えるいくつかの環境変数を除いて環境変数を空にして、 +スクリプトを実行します。 +pppd が設定する環境変数を以下に示します: +.TP +.B DEVICE +使用しているシリアル tty デバイス名。 +.TP +.B IFNAME +使用しているネットワークインタフェース名。 +.TP +.B IPLOCAL +リンクのローカル側の IP アドレス。 +IPCP が立ち上がった時のみ設定されます。 +.TP +.B IPREMOTE +リンクのリモート側の IP アドレス。 +IPCP が立ち上がった時のみ設定されます。 +.TP +.B PEERNAME +相手の認証された名前。 +相手が自己証明した場合のみ設定されます。 +.TP +.B SPEED +tty デバイスのボーレート。 +.TP +.B UID +pppd を起動したユーザの実ユーザ ID。 +.P +pppd は、以下のスクリプトが存在すれば起動します。 +存在しなくてもエラーではありません。 +.TP +.B /etc/ppp/auth-up +リモートシステムが成功裏に自己証明した後で実行される +プログラムまたはスクリプトです。 +次のものをパラメータとして実行されます。 +.IP +\fIinterface-name peer-name user-name tty-device speed\fR +.IP +相手が自己証明しない場合には、 +このスクリプトは実行されないことに注意してください。 +例えば \fInoauth\fR オプションが使用される時がこれにあたります。 .TP -.B /var/run/tty\fIXn\fB.if \fR(BSD or Linux), \fB/etc/ppp/tty\fIXn\fB.if \fR(others) -シリアルデバイス /dev/tty\fIXn\fR 上の \fIpppd\fR プロセスのための -インタフェースです。 +.B /etc/ppp/auth-down +/etc/ppp/auth-up が以前実行された後でリンクが落ちた時に実行される +プログラムまたはスクリプトです。 +これは /etc/ppp/auth-up と同じパラメータを与えて、同じ方法で実行されます。 .TP .B /etc/ppp/ip-up -そのリンクで IP パケットの送受信が行なえるようになった時 -(IPCP が完了した時 ) に実行されるプログラムまたはスクリプトです。 -これは +そのリンクで IP パケットの送受信が行えるようになった時 +(IPCP が完了した時) に実行されるプログラムまたはスクリプトです。 +次のものをパラメータとして実行されます。 .IP \fIinterface-name tty-device speed local-IP-address -remote-IP-address\fR -.IP -をパラメータに与えて標準入力をつかって実行されます。 -出力とエラー出力は、 \fB/dev/null\fR にリダイレクトされます。 -.IP -このプログラムまたはスクリプトは、pppd と同一の実ユーザ ID および実効 -ユーザ ID で実行されます。 -つまり、少なくとも実効ユーザ ID は \fBroot\fR であり、 -できれば実ユーザ ID も \fBroot\fR であることが望まれます。 -これは、経路情報を変更したり、( 例えば sendmail のような ) 特権デーモン等を -動作させたりするのに必要だからです。 -/etc/ppp/ip-up や /etc/ppp/ip-down スクリプトの内容については、 -システムのセキュリティを危うくしないよう注意して下さい。 +remote-IP-address ipparam\fR .TP .B /etc/ppp/ip-down そのリンクで IP パケットの送受信ができなくなった場合に実行される プログラムまたはスクリプトです。 -このスクリプトは /etc/ppp/ip-up スクリプトで行なった変更を +このスクリプトは /etc/ppp/ip-up スクリプトで行った変更を 元にもどすために用いられます。 -これは ip-up と同じパラメータを与えて実行されます。 -なお、\fIpppd\fR と同じ実効ユーザ ID および実ユーザ ID で実行されるため、 -ip-up スクリプトと同様にセキュリティ上の考慮が必要になります。 +これは ip-up と同じパラメータを与えて、同じ方法で実行されます。 +.TP +.B /etc/ppp/ipx-up +そのリンクで IPX パケットの送受信が行えるようになった時 +(IPXCP が完了した時) に実行されるプログラムまたはスクリプトです。 +次のものをパラメータとして実行されます。 +.IP +\fIinterface-name tty-device speed network-number local-IPX-node-address +remote-IPX-node-address local-IPX-routing-protocol remote-IPX-routing-protocol +local-IPX-router-name remote-IPX-router-name ipparam pppd-pid\fR +.IP +local-IPX-routing-protocol および remote-IPX-routing-protocol のフィールドは +以下のいずれかです: +.IP +NONE 経路プロトコルが無いことを示します +.br +RIP RIP/SAP を使うべきであることを示します +.br +NLSP Novell NLSP を使うべきであることを示します +.br +RIP NLSP RIP/SAP と NLSP の両方を使うべきであることを示します +.TP +.B /etc/ppp/ipx-down +そのリンクで IPX パケットの送受信ができなくなった場合に実行される +プログラムまたはスクリプトです。 +このスクリプトは /etc/ppp/ipx-up スクリプトで行った変更を +元にもどすために用いられます。 +これは ipx-up と同じパラメータを与えて、同じ方法で実行されます。 +.SH 関連ファイル +.TP +.B /var/run/ppp\fIn\fB.pid \fR(BSD または Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(その他) +ppp インタフェースユニット \fIn\fR に対応する pppd プロセスの +プロセス ID が記録されます。 .TP .B /etc/ppp/pap-secrets PAP 認証で使用するユーザ名、パスワード、IP アドレスを格納します。 +このファイルは root が所有し、他のユーザは読み書きできてはなりません。 +そうでない場合 pppd は警告ログを行います。 .TP .B /etc/ppp/chap-secrets -CHAP 認証で使用する名前、シークレット、IP アドレスを格納します。 +CHAP 認証で使用する名前、秘密情報、IP アドレスを格納します。 +このファイルは root が所有し、他のユーザは読み書きできてはなりません。 +そうでない場合 pppd は警告ログを行います。 .TP .B /etc/ppp/options -.I pppd -のシステムデフォルトオプションを記述します。このファイルは、コマンド -ラインのオプションが解釈される前に読み込まれます。 +pppd +のシステムデフォルトオプションを記述します。 +ユーザデフォルトオプションおよびコマンド +ラインオプションが読まれる前に読み込まれます。 .TP .B ~/.ppprc -ユーザごとのデフォルトオプションを記述します。このファイルは、コマンド -ラインのオプションが解釈される前に読み込まれます。 +ユーザ毎のデフォルトオプションを記述します。 +/etc/ppp/options.\fIttyname が読まれる前に読み込まれます。 .TP .B /etc/ppp/options.\fIttyname 各シリアルポートのシステムデフォルトオプションを指定します。 -このファイルは、コマンドラインのオプションが解釈された後で読み込まれます。 +~/.ppprc の後で読まれます。 +このファイル名の \fIttyname\fR 部分の構成にあたり、 +まず /dev/ が (存在すれば) ポート名から除かれ、 +残ったスラッシュがドットに置換されます。 +.TP +.B /etc/ppp/peers +pppd が非 root ユーザによって起動されたとしても +特権オプションを含んでかまわないオプションファイルを含むディレクトリです。 +システム管理者はオプションファイルをこのディレクトリ中に作成することにより、 +非特権ユーザが相手の認証を要さずにダイアルアウト可能とします。 +しかし、信頼関係のある相手のみ可能です。 .TP .B /etc/ppp/ppp.deny システムのパスワードによる PAP 認証を使わせないユーザを記述します。 .TP .B /etc/ppp/ppp.shells システムのパスワードによる PAP 認証ログインのために適切なシェルを 記述します。 .SH 関連項目 .IR chat(8), .IR ppp(8) .TP .B RFC1144 Jacobson, V. -.I Compressing TCP/IP headers for low-speed serial links. -1990 February. +\fICompressing TCP/IP headers for low-speed serial links.\fR +February 1990. .TP .B RFC1321 Rivest, R. .I The MD5 Message-Digest Algorithm. -1992 April. +April 1992. .TP .B RFC1332 McGregor, G. .I PPP Internet Protocol Control Protocol (IPCP). -1992 May. +May 1992. .TP .B RFC1334 Lloyd, B.; Simpson, W.A. .I PPP authentication protocols. -1992 October. +October 1992. .TP -.B RFC1548 +.B RFC1661 Simpson, W.A. .I The Point\-to\-Point Protocol (PPP). -1993 December. +July 1994. .TP -.B RFC1549 +.B RFC1662 Simpson, W.A. -.I PPP in HDLC Framing. -1993 December +.I PPP in HDLC-like Framing. +July 1994. .SH 注意 以下のシグナルが -.I pppd -プロセスに送られた場合、ここで説明する効果が得られます。 +pppd +に送られた場合、ここで説明する効果が得られます。 .TP .B SIGINT, SIGTERM -これらのシグナルを受信した場合、\fIpppd\fR は (LCP をクローズすることで ) +これらのシグナルを受信した場合、pppd は (LCP をクローズすることで) リンクを切断し、シリアルデバイスの設定を復元して、プログラムを終了します。 .TP .B SIGHUP -物理層のリンク切断を指示します。\fIpppd\fR はシリアルデバイスの設定を復元し、 -プログラムを終了します。 -\fBpersist\fR オプションが指定されている場合、 \fBpppd\fR は -シリアルデバイスを再オープンし、新しい接続を始めようとします。 -そうでない場合は、 \fBpppd\fR は終了します。 +物理層のリンク切断を指示します。pppd はシリアルデバイスの設定を復元し、 +シリアルデバイスを閉じます。 +\fIpersist\fR または \fIdemand\fR のオプションが指定されている場合、pppd は +シリアルデバイスを再オープンし、(抑止期間を置いてから) +新しい接続を始めようとします。 +そうでない場合は、pppd は終了します。 +このシグナルを抑止期間に受けると、pppd は抑止期間をすぐに終了します。 +.TP +.B SIGUSR1 +このシグナルは、\fIdebug\fR オプションの状態を反転します。 +.TP .B SIGUSR2 このシグナルは、 -.B pppd -に圧縮に付いて再交渉させます。これは、致命的な伸長エラーの結果として +pppd +に圧縮に付いて再び交渉させます。 +これは、致命的な伸長エラーの結果として 圧縮を止めた後で、再び圧縮を有効にするために便利です。 -BSD 圧縮方式では、致命的な伸長エラーは一般にどちらかの実装上の -バグである可能性を示します。 -.\".SH バグ -.\"モデム制御線の使用と \fBmodem\fR オプション、\fBlocal\fR オプションの -.\"動作については、はっきりとは定義されていません。 -.\"(訳中)前記原文には確認できないので、コメントアウトした。 -.\" 2.2.1R 対象(1997/05/26) Takeshi MUTOH +(致命的な伸長エラーは一般にどちらかの実装上の +バグを示します。) .SH 作者 +Paul Mackerras (Paul.Mackerras@cs.anu.edu.au) が、 Drew Perkins, Brad Clements, Karl Fox, Greg Christy, -Brad Parker , -Paul Mackerras (paulus@cs.anu.edu.au) +Brad Parker +の作業を元に作成しました。 diff --git a/ja_JP.eucJP/man/man8/rmail.8 b/ja_JP.eucJP/man/man8/rmail.8 index 8c70040fcb..9515eaf152 100644 --- a/ja_JP.eucJP/man/man8/rmail.8 +++ b/ja_JP.eucJP/man/man8/rmail.8 @@ -1,75 +1,75 @@ .\" Copyright (c) 1983, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rmail.8 6.10 (Berkeley) 4/29/93 .\" jpman %Id: rmail.8,v 1.2 1997/05/16 07:57:46 yugawa Stab % -.\" %Id: rmail.8,v 1.2.8.1 1997/02/28 07:54:43 mpp Exp % +.\" %Id: rmail.8,v 1.2.8.2 1998/06/30 06:43:18 charnier Exp % .\" .Dd April 29, 1993 .Dt RMAIL 8 .Os BSD 4.2 .Sh 名称 .Nm rmail .Nd uucpで送られてきたメールを処理する .Sh 書式 .Nm rmail .Ar user ... .Sh 解説 -.Nm rmail +.Nm は .Xr uucp 1 経由で受けとったメールを解釈し、 .Xr mail.local 8 によって生成される``From''行を、``return-path!sender'' という一行に変換して .Xr sendmail 8 に渡します。 .Pp -.Nm rmail +.Nm は、明らかに -.Xr uucp +.Xr uucp 1 と -.Xr sendmail +.Xr sendmail 8 で使われるように設計されています。 .Sh 関連項目 .Xr uucp 1 , .Xr mail.local 8 , .Xr sendmail 8 .Sh 歴史 -.Nm rmail +.Nm プログラムは .Bx 4.2 から登場しました。 .Sh バグ .Nm rmail は .Pa /bin に置くべきではありません。 diff --git a/ja_JP.eucJP/man/man8/sync.8 b/ja_JP.eucJP/man/man8/sync.8 index 225eef8c79..413f81edf4 100644 --- a/ja_JP.eucJP/man/man8/sync.8 +++ b/ja_JP.eucJP/man/man8/sync.8 @@ -1,76 +1,76 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sync.8 8.1 (Berkeley) 5/31/93 .\" jpman %Id: sync.8,v 1.2 1997/04/10 05:32:43 mutoh Stab % -.\" %Id: sync.8,v 1.3.2.1 1997/08/25 09:25:24 jkh Exp % +.\" %Id: sync.8,v 1.3.2.2 1998/06/30 06:42:40 charnier Exp % .\" .Dd May 31, 1993 .Dt SYNC 8 .Os BSD 4 .Sh 名称 .Nm sync .Nd 未実行のディスク書き込みを強制実行する ( キャッシュのフラッシュ ) .Sh 書式 .Nm sync .Sh 解説 .Xr reboot 8 または .Xr halt 8 を使わずにプロセッサを停止する場合、全てのディスク書き込みが 適切に完了することを保証するため、停止に先だって .Nm sync を呼ぶことができます。 一般的には、システムをシャットダウンするには -.Xr reboot +.Xr reboot 8 もしくは -.Xr halt +.Xr halt 8 を使うことが好ましいでしょう。 なぜならこれらのプログラムは、最終的な .Nm sync を実行する前に、内蔵時計の再同期や内部キャッシュの フラッシュなどの追加動作を実行する場合があるからです。 .Pp .Nm sync は、 .Xr sync 2 ファンクションコールを利用します。 .Sh 関連項目 .Xr fsync 2 , .Xr sync 2 , .Xr update 4 , .Xr halt 8 , .Xr reboot 8 .Sh 歴史 .Nm sync コマンドは .At v6 から実装されました。