diff --git a/ja_JP.eucJP/man/man1/apropos.1 b/ja_JP.eucJP/man/man1/apropos.1 index 9f20b09cb4..a5c132d0cc 100644 --- a/ja_JP.eucJP/man/man1/apropos.1 +++ b/ja_JP.eucJP/man/man1/apropos.1 @@ -1,41 +1,48 @@ .\" Man page for apropos an wahtis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" -.\" %FreeBSD: src/gnu/usr.bin/man/apropos/apropos.man,v 1.6.2.2 2000/12/12 09:52:17 ru Exp % +.\" %FreeBSD: src/gnu/usr.bin/man/apropos/apropos.man,v 1.6.2.3 2002/08/11 11:18:51 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/apropos.1,v 1.8 2001/05/14 01:07:21 horikawa Exp $ +.\" $FreeBSD$ .Dd January 15, 1991 .Dt APROPOS 1 .Os .Sh 名称 .Nm apropos , .Nm whatis .Nd whatis データベースを文字列で検索する .Sh 書式 .Nm apropos .Ar keyword ... .Nm whatis .Ar keyword ... .Sh 解説 .Nm は、システムコマンドに関する短い簡単な説明を含んだデータベースファイルを、 キーワードによって検索して、その結果を標準出力に表示します。 .Nm whatis では完全な語にのみマッチします。 -.Sh 戻り値 +.Pp +.Ar keyword +は実際には拡張正規表現です。 +この書式に関する詳細は +.Xr grep 1 +マニュアルページを参照してください。 +.Sh 診断 .Nm は成功時には 0 を、キーワードがマッチしない場合には 1 を返します。 .Sh 関連項目 +.Xr grep 1 , .Xr makewhatis 1 , .Xr man 1 diff --git a/ja_JP.eucJP/man/man1/biff.1 b/ja_JP.eucJP/man/man1/biff.1 index 88d5ba4c3b..513934f062 100644 --- a/ja_JP.eucJP/man/man1/biff.1 +++ b/ja_JP.eucJP/man/man1/biff.1 @@ -1,108 +1,113 @@ .\" Copyright (c) 1980, 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. .\" .\" from: @(#)biff.1 6.5 (Berkeley) 3/14/91 -.\" %FreeBSD: src/usr.bin/biff/biff.1,v 1.8.2.6 2002/07/21 15:31:09 johan Exp % +.\" %FreeBSD: src/usr.bin/biff/biff.1,v 1.8.2.7 2002/08/09 02:56:31 johan Exp % .\" .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt BIFF 1 .Os .Sh 名称 .Nm biff .Nd メールの到着時に、メールの着信とメールの発信人を報告するかどうか設定する .Sh 書式 .Nm biff -.Op Cm n | y +.Op Cm n | y | b .Sh 解説 .Nm ユーティリティは、現在の端末を利用している間、メールの到着を システムから報告してもらうかどうかを設定します。 .Pp .Nm がサポートしているオプションとしては、以下のものがあります: .Bl -tag -width indent .It Cm n 報告しないように設定します。 .It Cm y -報告するように設定します。 +ヘッダ報告を設定します。 +.It Cm b +ベル報告を設定します。 .El .Pp .\" 以下の一文は元の英語版マニュアルには含まれていないので .\" とりあえずコメントアウトしてある --- jpman project sakai@csl.cl.nec.co.jp .\" .\" オプションを指定しない場合は現在状態を表示します。 .\" -メールの到着を報告するように設定しているときにメールが届いた場合、 +ヘッダ報告を設定しているときにメールが届いた場合、 メールのヘッダとメッセージの最初の数行が自分の画面に表示されます。 ログインするたびに設定されるように、たいてい .Pa \&.login や .Pa \&.profile ファイルに .Dq Li biff y コマンドの記述が含められます。 .Pp +ベル報告を設定しているときは、ベル文字 (ASCII \\007) 2 個だけが、 +メール到着時に端末に表示されます。 +.Pp .Nm ユーティリティは非同期に動作します。同期して動作させる場合は、 .Xr sh 1 の .Ev MAIL 変数を用いるか、 .Xr csh 1 の .Ev mail 変数を利用してください。 .Sh 診断 .Nm ユーティリティは次のいずれかの値で終了します: .Bl -tag -width Ds .It 0 報告するようになっています。 .It 1 報告しないようになっています。 .It >1 エラーが発生しました。 .El .Sh 関連項目 .Xr csh 1 , .Xr mail 1 , .Xr sh 1 , .Xr comsat 8 .Sh 歴史 .Nm コマンドは .Bx 4.0 から登場しました。 .Nm コマンドの名前は、 Heidi Stettner の犬の名前にちなんでいます。 彼は、1993年の8月に15歳で亡くなりました。 diff --git a/ja_JP.eucJP/man/man1/chmod.1 b/ja_JP.eucJP/man/man1/chmod.1 index 256b194113..a7fad69270 100644 --- a/ja_JP.eucJP/man/man1/chmod.1 +++ b/ja_JP.eucJP/man/man1/chmod.1 @@ -1,325 +1,324 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 -.\" %FreeBSD: src/bin/chmod/chmod.1,v 1.17.2.9 2002/07/14 21:38:40 keramida Exp % +.\" %FreeBSD: src/bin/chmod/chmod.1,v 1.17.2.10 2002/08/16 04:34:00 trhodes Exp % .\" .\" $FreeBSD$ .Dd March 31, 1994 .Dt CHMOD 1 .Os .Sh 名称 .Nm chmod .Nd ファイルのモードを変更する .Sh 書式 .Nm chmod .Oo .Fl fv .Fl R .Op Fl H | Fl L | Fl P .Oc .Ar mode .Ar .Sh 解説 .Nm は指定されたファイルのモードを .Ar mode で指定したものに変更します。 .Pp オプションとして以下のものがあります: .Bl -tag -width Ds .It Fl H .Fl R オプションが指定されていれば、引数がシンボリックリンクのとき、それを たどって変更します。 (ディレクトリツリー探索中に見つかったシンボリックリンクは、デフォルトでは それ以上追跡しません) .It Fl L .Fl R オプションが指定されていれば、すべてのシンボリックリンクをたどり、 リンク先のファイルを変更します。 .It Fl P .Fl R オプションが指定されていても、どのシンボリックリンクもたどりません。 これがデフォルトです。 .It Fl R 指定されたファイル自身だけではなく、それらをルートとする ディレクトリ階層を再帰的に検索してモードを変更します。 .It Fl f .Nm が .Va file のモードを変更できなかった場合に、診断メッセージを表示しません。 +.It Fl h +ファイルがシンボリックリンクの場合、 +リンクの先のファイルの代りにリンク自身のモードを変更します。 .It Fl v .Nm を冗長にし、モードが変更されるファイルを表示させます。 +.Fl v +が複数回指定された場合、ファイルの旧モードと新モードが、 +8 進数およびシンボルにて表示されます。 .El .Pp -シンボリックリンクはモードを持たないので、 -.Fl H -または -.Fl L -オプションが指定されていなければ、シンボリックリンクに対する -.Nm -実行結果は常に真となり、何も変えません。 .Fl H , .Fl L , .Fl P オプションは、 .Fl R オプションが指定されていなければ無視されます。また、これらが 複数指定されると最後に指定したものが有効になります。 .Pp ファイルのモードの変更はそのファイルの所有者とスーパユーザだけにしか 許されていません。 .Sh 診断 .Ex -std .Sh モード モードには、数値を用いた絶対値指定と、シンボルによる指定があります。 数値指定では、以下の値を .Ar ``or'' で組み合わせた 8 進数を用います: .Pp .Bl -tag -width 6n -compact -offset indent .It Li 4000 (set-user-ID-on-execution ビット) このビットがセットされている実行可能ファイルは、 ファイルを所有するユーザ ID に実効ユーザ ID を設定されて実行されます。 set-user-id ビットをセットされているディレクトリは、 その中で作成される全てのファイルおよびディレクトリの所有者を ディレクトリの所有者に設定することを強制し、 作成するプロセスのユーザ ID は無関係となります。 これは、ディレクトリが存在するファイルシステムが この機能をサポートしている場合に限られます: .Xr chmod 2 と .Xr mount 8 の .Ar suiddir オプションを参照してください。 .It Li 2000 (set-group-ID-on-execution ビット) このビットがセットされている実行可能ファイルは、 ファイルを所有するグループ ID に実効グループ ID を設定されて実行されます。 .It Li 1000 (スティッキービット) .Xr chmod 2 と .Xr sticky 8 を参照してください。 .It Li 0400 所有者の読み込みを許可。 .It Li 0200 所有者の書き込みを許可。 .It Li 0100 ファイルの場合、所有者の実行を許可。 ディレクトリの場合、所有者の検索を許可。 .It Li 0040 グループのメンバの読み込みを許可。 .It Li 0020 グループのメンバの書き込みを許可。 .It Li 0010 ファイルの場合、グループのメンバの実行を許可。 ディレクトリの場合、グループのメンバの検索を許可。 .It Li 0004 他者の読み込みを許可。 .It Li 0002 他者の書き込みを許可。 .It Li 0001 ファイルの場合、他者の実行を許可。 ディレクトリの場合、他者の検索を許可。 .El .Pp 例えば、所有者に読み込み・書き込み・実行を許可し、 グループのメンバに読み込み・実行を許可し、 他者に読み込み・実行を許可し、 set-uid と set-gid を指定しない絶対値指定のモードは、 755 (400+200+100+040+010+004+001) となります。 .Pp シンボルによる指定は以下の文法に従います。 .Bd -literal -offset indent mode ::= clause [, clause ...] clause ::= [who ...] [action ...] action action ::= op [perm ...] who ::= a | u | g | o op ::= + | \- | = perm ::= r | s | t | w | x | X | u | g | o .Ed .Pp .Ar who シンボルの ``u'', ``g'', ``o'' はそれぞれユーザ、グループ、それ以外に 相当します。``a'' シンボルは ``ugo'' を指定した場合と同じになります。 .Pp .Ar perm シンボルはモードの各ビットを以下のように表現します。 .Pp .Bl -tag -width Ds -compact -offset indent .It r 読み込み許可ビット .It s 実行時 setuid および実行時 setgid ビット .It t sticky ビット .It w 書き込み許可ビット .It x 実行/検索 許可ビット .It X 対象がディレクトリであるか、変更前のモードで誰かの実行/検索許可ビット が立っている場合に、実行/検索許可ビットがセットされます。 .Ar perm シンボルでの ``X'' の指定は、 .Ar op シンボルを ``+''で連結する時のみ意味があり、他の場合は無視されます。 .It u 元の、ファイルの所有者許可ビット .It g 元の、ファイルのグループ許可ビット .It o 元の、ファイルの所有者とグループ以外の許可ビット .El .Pp .Ar op シンボルの働きは以下のようになります .Bl -tag -width 4n .It + .Ar perm 値が指定されなければ、``+'' は何の作用もありません。 .Ar who シンボルが指定されていなければ、 .Ar perm 値はそれぞれの who シンボルの対応するビットに作用し、それを umask で マスクしたビットがセットされます。 .Ar who シンボルが指定されていれば、その .Ar perm 値が設定されます。 .It \&\- .Ar perm 値が指定されていなければ、``\-'' は何の作用もありません。 .Ar who シンボルが指定されていなければ、 .Ar perm 値はそれぞれの who シンボルの対応するビットに作用し、それを umask で マスクしたビットがクリアされます。 .Ar who シンボルが指定されていれば、その .Ar perm 値がクリアされます。 .It = .Ar who シンボルで指定されたモードビットがクリアされます。who シンボルが指定 されていなければ、所有者、グループ、その他の各モードビットがクリアされ ます。 .Ar who シンボルが指定されていなければ、 perm で指定したビットが、所有者、グループ、その他のそれぞれを umask で マスクしたものだけ設定されます。 .Ar who シンボルと .Ar perm が指定されていれば、その値がそのまま設定されます。 .El .Pp 各 .Ar clause では、モードビットを操作するためのオペレーションを 1 つ以上記述しなけ ればなりません。そして各オペレーションは記述した順番で適用されます。 .Pp 所有者とグループ以外の ``o'' のみに対して、``s'' や ``t'' の組み合わせの .Ar perm 値が指定されても無視されます。 .Sh 使用例 .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 ファイルを誰にでも読めるようにして、ファイルの所有者のみ書き込み可能に します。 .Pp .It Li go-w ファイルの所有者以外の書き込みを禁止します。 .Pp .It Li =rw,+X umask でマスクされていないビットの読み書きを許可しますが、実行許可は 現在設定されているものを保持します。 .Pp .It Li +X 誰かが実行/検索可能なファイルやディレクトリならば、すべてのユーザが 実行/検索できるファイルやディレクトリとします。 .Pp .It Li 755 .It Li u=rwx,go=rx .It Li u=rwx,go=u-w 誰にでも読み込みと実行ができて、所有者のみ書き込み可能になるようにしま す。 .Pp .It Li go= グループやその他のユーザにいかなる許可も与えません。 .Pp .It Li g=u-w グループビットをユーザビットと同じにしますが、グループの書き込みは禁止 します。 .El .Sh バグ naughty bit のための .Ar perm オプションがありません。 .Sh 互換性 .Fl v オプションは非標準であり、スクリプト中の使用は非推奨です。 .Sh 関連項目 .Xr chflags 1 , .Xr install 1 , .Xr chmod 2 , .Xr stat 2 , .Xr umask 2 , .Xr fts 3 , .Xr setmode 3 , .Xr symlink 7 , .Xr chown 8 , .Xr mount 8 , .Xr sticky 8 .Sh 規格 .Nm ユーティリティは、規格にない .Ar perm シンボルの .Dq t を除いては .St -p1003.2 互換になるように作られています。 .Sh 歴史 .Nm コマンドは .At v1 から導入されました. diff --git a/ja_JP.eucJP/man/man1/cp.1 b/ja_JP.eucJP/man/man1/cp.1 index ce23e82c19..a055f2c1af 100644 --- a/ja_JP.eucJP/man/man1/cp.1 +++ b/ja_JP.eucJP/man/man1/cp.1 @@ -1,235 +1,250 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 -.\" %FreeBSD: src/bin/cp/cp.1,v 1.16.2.5 2001/08/16 10:01:03 ru Exp % +.\" %FreeBSD: src/bin/cp/cp.1,v 1.16.2.6 2002/08/10 13:20:19 johan Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/cp.1,v 1.15 2001/08/17 06:18:09 horikawa Exp $ -.Dd April 18, 1994 +.\" $FreeBSD$ +.Dd August 10, 2002 .Dt CP 1 .Os .Sh 名称 .Nm cp .Nd ファイルをコピーする .Sh 書式 .Nm cp .Oo .Fl R .Op Fl H | Fl L | Fl P .Oc -.Op Fl f | i +.Op Fl f | i | n .Op Fl pv .Ar source_file target_file .br .Nm cp .Oo .Fl R .Op Fl H | Fl L | Fl P .Oc -.Op Fl f | i +.Op Fl f | i | n .Op Fl pv .Ar source_file ... target_directory .Sh 解説 1 番目の書式の場合、 .Nm は .Ar source_file の内容を .Ar target_file にコピーします。 2 番目の書式の場合、 .Ar source_file の各々が .Ar target_directory の中へコピーされます。このとき 名前は変更されません。 コピー先が元のファイル自身になるような 指定を .Nm が検出した場合、コピーは失敗します。 .Pp 以下のオプションが使用できます。 .Bl -tag -width flag .It Fl H .Fl R オプションが指定されている時、コマンド行で指定されたシンボリックリンク を追跡します。(木構造の検索中に見つかったシンボリックリンクは追跡 しません) .It Fl L .Fl R オプションが指定されている時、すべてのシンボリックリンクを追跡します。 .It Fl P .Fl R オプションが指定されている時、シンボリックリンクを一切追跡しません。 これがデフォルトです。 .It Fl R .Ar source_file としてディレクトリが指定された場合、 .Nm はそのディレクトリとそれ以下の 部分木を構成するすべてのファイルをコピーします。シンボリックリンクに ついては、それが指している先のファイルをコピーするのではなく シンボリックリンクのままコピーします。特殊ファイルについても 通常ファイルとしてではなく .Nm が特殊ファイルを生成することでコピーします。 作成されるディレクトリの属性はプロセスの umask 値の 影響を受けず、対応するコピー元ディレクトリと同じ属性となります。 .Pp ハードリンクされたファイルについては、 .Nm が別々のファイルとしてコピーすることに注意してください。 ハードリンクを保つためには、代りに .Xr tar 1 , .Xr cpio 1 , .Xr pax 1 を使ってください。 .It Fl f コピー先にすでに同名のファイルが存在する場合、そのファイルのパー ミッションに関わらず、確認を求めずにそれを消去して新しくファイル を作成します。( .Fl f オプションより前の .Fl i +または +.Fl n オプションは無視されます。) .It Fl i すでに存在するファイルへの上書きを伴うコピーを実行する前に、 上書きするかどうかの確認プロンプトを標準エラー出力へ出力するよう .Nm に指示します。標準入力からの返答が 文字 .Sq Li y か .Sq Li Y で始まっていればコピーが実行されます。 ( .Fl i オプションより前の .Fl f +または +.Fl n +オプションは無視されます。) +.It Fl n +既存のファイルを上書きしません。 +( +.Fl n +オプションより前の +.Fl f +または +.Fl i オプションは無視されます。) .It Fl p ファイルの変更時刻・アクセス時刻・フラグ・モード・ユーザ ID・グループ ID などを、パーミッションが許す範囲内で可能な限り保存してコピーするよう .Nm に指示します。 .Pp ユーザ ID やグループ ID が保存できない場合でも、エラーメッセージは出力されず 戻り値も変化しません。 .Pp コピー元ファイルに SETUID ビットが立っておりかつそのユーザ ID が保存できない 場合、SETUID ビットは保存されません。コピー元ファイルに SETGID ビットが 立っておりかつそのグループIDが保存できない場合、SETGID ビットは保存されません。 コピー元のファイルに SETUID ビットと SETGID ビットが共に 立っておりかつそのユーザ ID かグループ ID のいずれか一方でも保存できない場合、 .Fl p オプションが指定されていない限り、 SETUID ビットと SETGID ビットの両方が保存されません。 .It Fl v .Nm を冗長にし、コピーする時ファイルを表示させます。 .El .Pp すでに存在するコピー先ファイルについては、パーミッションが許せば 内容は上書きされますが、モード・ユーザ ID・グループ ID は変化しません。 .Pp 2 番目の書式では、 .Ar source_file としてディレクトリが一つだけ指定されかつ .Fl R オプションが指定されている場合を除き、 .Ar target_directory は存在していなければなりません。 .Pp コピー先ファイルが存在しない場合、コピー元ファイルのモードに ファイルモード生成マスク .Pf ( Ic umask , .Xr csh 1 を参照 ) を適用したものがコピー先ファイルのモードとして使用されます。 コピー元ファイルの SETUID ビットが立っていても、コピー元ファイルとコピー先 ファイルの所有者が同一でない限り、それは落とされます。 コピー元ファイルの SETGID ビットが立っていても、コピー元ファイルとコピー先 ファイルが同一グループに属しかつコピーを行うユーザがそのグループ に入っていない限りそれは落とされます。 SETUID ビットと SETGID ビットの両方が立っている場合、上記のすべての 条件が満たされない限り、両方のビットが落とされます。 .Pp ファイルの生成および上書きには、適切なパーミッションがなければなりません。 .Pp .Fl R フラグが指定されるとシンボリックリンクは追跡されませんが、 そうでない限りデフォルトでシンボリックリンクは常に追跡されます。 .Fl H または .Fl L フラグ ( .Fl R フラグと併用) を用いると、シンボリックリンクの追跡を前述したように動作さ せることができます。 .Fl H , .Fl L , .Fl P オプションは、 .Fl R オプションが指定されていなければ無視されます。 また、これらのオプションは互いに打ち消し合い、 最後に指定されたものが有効になります。 .Sh 診断 .Ex -std .Sh 互換性 従来版の .Nm には .Fl r オプションがありました。本実装でもこのオプションはサポートされていますが、 特殊ファイル・シンボリックリンク・FIFO などを正しくコピーできないため、 これを使用することは奨められません。 .Pp .Fl v +および +.Fl n は標準ではありませんし、スクリプト中での使用はお勧めしません。 .Sh 関連項目 .Xr mv 1 , .Xr rcp 1 , .Xr umask 2 , .Xr fts 3 , .Xr symlink 7 .Sh 規格 .Nm コマンドは、 .St -p1003.2 互換を想定しています。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/paste.1 b/ja_JP.eucJP/man/man1/paste.1 index e29fbeb380..1d6a62b3cc 100644 --- a/ja_JP.eucJP/man/man1/paste.1 +++ b/ja_JP.eucJP/man/man1/paste.1 @@ -1,140 +1,140 @@ .\" 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 .\" Adam S. Moskowitz and 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. .\" .\" @(#)paste.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/paste/paste.1,v 1.4.2.6 2002/07/14 15:16:53 tjr Exp % +.\" %FreeBSD: src/usr.bin/paste/paste.1,v 1.4.2.7 2002/08/15 18:53:17 schweikh Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt PASTE 1 .Os .Sh 名称 .Nm paste .Nd ファイルの対応する行または引き続く行を併合する .Sh 書式 .Nm .Op Fl s .Op Fl d Ar list .Ar .Sh 解説 .Nm ユーティリティは、与えられた入力ファイルの対応する行の結合を、 最後のファイル以外の改行文字を一つのタブ文字に置き換えながら行い、 その結果の行を標準出力に書き出します。 入力ファイルの一つが EOF (ファイルの終り) に達した場合、 他のファイルの終了までそのファイルは空行が有るかのように 扱われます。 .Pp 以下のようなオプションがあります。 .Bl -tag -width Fl .It Fl d Ar list デフォルトのタブの代わりに改行文字を置換するための文字として使います。 .Ar list 中の文字は巡回するように使われます。つまり、 .Ar list の文字が終った時には最初の文字が再び使われます。 これは、(デフォルトの操作では) 最後の入力ファイルからの行まで、もしくは ( .Fl s オプション使用時には) 各ファイルの最後の行が表示されるまで続きます。 最後の行を表示したところで、 .Nm は、選択された文字の最初から操作を行います。 .Pp 以下の特殊文字を記述可能です。 .Pp .Bl -tag -width flag -compact .It Li \en 改行文字 .It Li \et タブ文字 .It Li \e\e バックスラッシュ文字 .It Li \e0 空文字列 (ヌル文字ではありません) .El .Pp 上記以外の文字は、バックスラッシュ付きの場合その文字自身を表現します。 .It Fl s 別個の入力ファイルの全行の結合を、コマンドラインに並んだ順に行います。 入力ファイル中の、最後の行以外の全ての行の改行文字は、 .Fl d オプションが 指定されていない場合は、タブ文字で置き換えられます。 .El .Pp .Ql Fl が、1 つ以上の入力ファイルに指定された場合、標準入力が使われます。 標準入力は、一度に一行読み込まれ、巡回的に .Ql Fl の各実体として使われます。 .Sh 使用例 カレントディレクトリのファイルを 3 コラムで表示します: .Pp .Dl "ls | paste - - -" .Pp ファイル中の行の組を単一行に組み合わせます。 .Pp .Dl "paste -s -d '\et\en' myfile" .Pp ファイル中の行に番号を付けます。 .Xr nl 1 と似ています: .Pp .Dl "sed = myfile | paste -s -d '\et\en' - -" .Pp bin という名前のディレクトリをコロンで区切ってリストします。 .Ev PATH 環境変数で使用するのに適しています: .Pp .Dl "find / -name bin -type d | paste -s -d : -" .Sh 診断 .Ex -std .Sh 関連項目 .Xr cut 1 , .Xr lam 1 .Sh 規格 .Nm ユーティリティは、 .St -p1003.2 互換であることが期待されています。 .Sh 歴史 .Nm コマンドは .At 32v から登場しました。 .Sh バグ マルチバイト文字のデリミタは .Fl d オプションで指定できません。 diff --git a/ja_JP.eucJP/man/man1/pax.1 b/ja_JP.eucJP/man/man1/pax.1 index 472e885c16..5b2c310af7 100644 --- a/ja_JP.eucJP/man/man1/pax.1 +++ b/ja_JP.eucJP/man/man1/pax.1 @@ -1,1188 +1,1186 @@ .\" 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 -.\" %FreeBSD: src/bin/pax/pax.1,v 1.12.2.8 2002/06/20 22:43:28 charnier Exp % +.\" %FreeBSD: src/bin/pax/pax.1,v 1.12.2.9 2002/08/16 04:34:03 trhodes Exp % .\" .\" $FreeBSD$ .\" .Dd April 18, 1994 .Dt PAX 1 .Os .Sh 名称 .Nm pax .Nd ファイルアーカイブの読み書きやディレクトリ階層のコピーを行う .Sh 書式 .Nm .Op Fl cdnvz .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 .Fl r .Op Fl cdiknuvzDYZ .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 .Fl w .Op Fl dituvzHLPX .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 .Nm .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 .Ar directory .Sh 解説 .Nm ユーティリティは、 アーカイブファイルの読み込み、書きだし、アーカイブファイルに 格納されているファイルの一覧読みだし、そしてディレクトリ階層のコピーを 行います。 -.Nm -の操作は指定したアーカイブフォーマットとは独立しており、また -.Nm -は広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。 +これらの操作は指定したアーカイブフォーマットとは独立しており、 +広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。 .Nm のサポートするアーカイブフォーマット一覧は、 .Fl x オプションの説明時に示します。 .Pp .Fl r および .Fl w は、以下の .Nm の機能モードのいずれかを指定するのに用いられます。その機能モードとは、 .Em 一覧表示モード、読み込みモード、書き込みモード、コピーモード の 4 つです。 .Bl -tag -width 6n .It .Em 一覧表示モードです。 .Dv 標準入力 から読み込まれたアーカイブ内の格納ファイルのリストを .Dv 標準出力 へ書き出します。標準入力から読み込まれるファイルのパス名は、指定した .Ar pattern に一致するものが採用されます。 ファイル一覧は 1 行に 1 つのファイル名を含み、1 行バッファリングを行って 書き出されます。 .It Fl r .Em 読み込みモードです。 .Dv 標準入力 からアーカイブを読み込み、その内に格納されたファイルのうち指定した .Ar pattern に一致するファイル名を持つファイルを展開します。 アーカイブフォーマット及びブロック化係数は、自動的に入力から決定されます。 展開されるファイルがディレクトリの場合、そのディレクトリ配下に連なる ファイル階層は完全な形で展開されます。 展開される全てのファイルは、現在のファイル階層からの相対ディレクトリに 生成されます。展開されるファイルの所有権、アクセス時刻、更新時刻、 そしてファイルモードの設定についての詳細は、 .Fl p オプションのところで述べます。 .It Fl w .Em 書き込みモードです。 .Ar file オペランドで指定したファイル群のアーカイブを 指定したフォーマットで標準出力に書き出します。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下の 全ファイルが作成されるアーカイブに含まれます。 .It Fl r Fl w .Em コピーモードです。 ファイルオペランドで指定したファイル群を、指定した .Ar ディレクトリ にコピーします。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下のファイルがすべて、 コピー先として指定したディレクトリ配下に作成されます。 .Em コピーモード では、ファイルがアーカイブファイルに対して書き込まれ、 そして一方でそのアーカイブファイルが展開されるかのように見えます。 ただし、これはオリジナルファイルとコピーファイルの間に ハードリンクが張られるかも知れない事を除きます .Ns ( Fl l オプションを参照して下さい)。 .Pp .Em 注意 : コピー先の .Ar ディレクトリ には、コピー元にあるものと同じファイル名の .Ar file オペランドや .Ar file オペランドで指定されるディレクトリ階層の配下にあるファイル名などを 指定してはいけません。 そのような場合、 .Em コピー の結果は予測できないものになります。 .El .Pp .Em 読み込み 操作や .Em 一覧表示 動作において壊れたアーカイブを処理する場合、 .Nm は媒体破損を可能な限り復旧し、 アーカイブの中から可能な限りのファイルを処理しようと試みます (エラー時の 処理の詳細は .Fl E オプションを参照して下さい)。 .Sh オペランド .Ar directory オペランドは、コピー先ディレクトリの指定を行います。 .Ar directory オペランドが存在しない場合、もしくはユーザが書き込みを出来ない、 もしくは指定したオペランドがディレクトリでない場合には、 .Nm は、0 以外のステータスでプログラムを終了します。 .Pp .Ar pattern オペランドは、アーカイブに格納されているファイルの名前を選択するために 用いられます。 アーカイブメンバは、 .Xr fnmatch 3 に記述のある表記に一致するパターンを用いて選択されます。 .Ar pattern オペランドが指定されない場合には、アーカイブ内に格納されている 全てのメンバが選択されます。 .Ar pattern がディレクトリ名と一致する場合には、そのディレクトリ配下の階層に 位置する全てのファイルが選択されます。 もしアーカイブ内に .Ar pattern オペランドの指定と一致する名前のファイルがない場合には、 .Nm は .Ar 標準エラー出力 に出力される診断メッセージにこの .Ar pattern オペランドを書き出し、0 以外のステータスでプログラムを終了します。 .Pp .Ar file オペランドは、コピーもしくはアーカイブされるファイルのパス名を指定します。 .Ar file オペランドが 1 つもアーカイブメンバを選択しない場合には、 .Nm は .Dv 標準エラー出力 に出力される診断メッセージにこの .Ar file オペランドの内容を書き出し、0 以外のステータスでプログラムを終了します。 .Sh オプション .Nm では、以下のオプションが使用可能です。 .Bl -tag -width 4n .It Fl r アーカイブファイルを .Dv 標準入力 から読み込み、 .Ar files で指定したファイルを展開します。 アーカイブされているファイルの展開に中間ディレクトリの作成が必要な場合、 これらのディレクトリは、 .Xr mkdir 2 の mode 引数のところに .Dv S_IRWXU , S_IRWXG , S_IRWXO の .Dv 論理和 を指定して呼び出された場合と同様に作成されます。 選択されたアーカイブ形式がリンクファイルの指定をサポートし、 かつアーカイブ展開時にリンク不可能である場合には、 .Nm は、処理が終了する時に、診断メッセージを .Dv 標準エラー出力 に書き出し、0 以外のステータスで終了します。 .It Fl w 指定したアーカイブフォーマットで、 .Dv 標準出力 にアーカイブを書き出します。 .Ar file オペランドが指定されない場合には、1 行につき展開するファイルのパス名 1 つを 記述したリストを .Dv 標準入力 から読み込みます。 このリストの各行の先頭や末尾には .Aq 空白 を入れてはいけません。 .It Fl a すでに存在するアーカイブファイルの後ろに、ファイル .Ar files を追加書き込みします。 .Fl x オプションによるアーカイブフォーマット指定がされない場合、 アーカイブフォーマットは追加書き込み対象となるアーカイブファイルの フォーマットと同一になります。 アーカイブファイルに対して、そのアーカイブファイルのフォーマットと 異なるフォーマットを用いてファイルを追加書き込みをしようとした場合、 .Nm は即時に 0 以外の終了ステータスでプログラム終了します。 アーカイブボリュームに最初に書き込んだブロックサイズを引き継いで、 残りのアーカイブボリュームのブロックサイズとします。 .Pp .Em 注意 : 多くの記憶装置は追加書き込み処理に必要な操作をサポートできません。 そのようなサポートしていないデバイスに対するアーカイブの追加書き込みは、 アーカイブの破損もしくは他の予期せぬ結果を招くことになります。 特に、テープドライブに対する追加書き込み処理は、最もサポートしそうにない ものです。 普通のファイルシステムのファイルとして、もしくはディスクデバイス上に 保存されているアーカイブについては、通常は追加書き込み処理をサポートします。 .It Fl b Ar blocksize アーカイブを .Em 書き出す 際、アーカイブへと書き出す内容を blocksize (正の整数) で指定したバイト数 でブロック化します。 .Ar blocksize で指定出来る値は、512 の倍数でなくてはならず、最大は 64512 です。 32256 バイトより大きい場合 .Tn POSIX 標準違反であり、全システムで可搬であるわけではありません。 .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 は、アーカイブの格納されている次のボリュームのファイルもしくはデバイスの パス名の入力を促します。 .It Fl i 対話的にファイルもしくはアーカイブ内に格納されるファイルのリネームを行います。 .Ar pattern で指定した文字列パターンに一致するアーカイブ内の格納ファイルもしくは .Ar file オペランドの指定に一致するファイルについて、 .Nm は .Pa /dev/tty に対してファイルの名前やファイルモード、そしてファイルの更新時刻を表示して 入力を促します。 それから .Nm ユーティリティは .Pa /dev/tty からデータを 1 行読み込みます。 その行が空行だった場合には、その時のファイルもしくはアーカイブ内の 格納ファイルについては、処理を行いません。 その行がピリオド 1 つだけの行だった場合には、その時のファイルもしくは アーカイブ内の格納ファイルについては、ファイル名についての更新は行いません。 それ以外の場合には、ファイル名はその行の文字列で指定した名前に変更されます。 上記操作中に .Dv を .Pa /dev/tty から受けとった場合、もしくは何らかの理由で .Pa /dev/tty をオープン出来なかった場合、 .Nm ユーティリティは 0 以外の終了ステータスで即座に終了します。 .It Fl k すでに存在するファイルに対する上書きをしません。 .It Fl l (アルファベットの ``エル'') ファイルをリンクします。 .Em コピーモード .Ns ( Fl r 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 はファイル属性中の .Dv S_ISUID .Em ( setuid ) および .Dv S_ISGID .Em ( setgid ) のビットを設定しません。 これらの情報の引き継ぎが何らかの理由で失敗した場合、 .Nm は診断メッセージを .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 が読み込んだ、もしくはアクセスした全てのファイルやディレクトリの アクセス時間を、 .Nm がそれらのファイルやディレクトリを処理する前のものに再設定します。 .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 ユーティリティは、現在以下のアーカイブフォーマットをサポートします: .Bl -tag -width "sv4cpio" .It Ar cpio .St -p1003.2 標準にて規定される、拡張 cpio 交換形式です。 本フォーマットのデフォルトブロックサイズは、5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar bcpio 古い binary cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは、5120 バイトです。 本フォーマットはポータビリティがそれほどよくないので、別のフォーマットが 使えるならば、そちらを使用したほうがよいでしょう。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar sv4cpio Unix System V Release 4(SVR4) の cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar sv4crc SVR4 で使用される、ファイルの crc チェックサムつきの cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar tar .Bx 4.3 から用いられている古い .Bx 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 ユーティリティは、指定したアーカイブフォーマットの制限に起因して、ファイルの アーカイブへの格納もしくはアーカイブからのファイルの展開が出来ない場合には、 それを検出し、報告します。 各アーカイブフォーマットを使用した場合には、 使用時に更にそのアーカイブフォーマットの制限が課せられることがあります。 典型的なアーカイブフォーマットの制限は、ファイルのパス名の長さ、 ファイルサイズ、リンクファイルの指すファイルのパス名の長さ、 そしてファイルタイプなど。 (なお、制限要素はこれらに限られるわけではありません。) .It Fl z 書き込み (読み取り) 時のアーカイブの圧縮 (伸長) に .Xr gzip 1 を使用します。 .Fl a とは共に使用できません。 .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 はアーカイブの読み込みエラーからの復帰を試行し、アーカイブに格納されて いる次のファイルから処理を継続します。 .Ar limit が 0 の場合、 .Nm は最初のリードエラーがアーカイブボリュームに発生したところで処理を停止します。 .Ar limit が .Li NONE の場合には、読み込み失敗からの復帰を永遠に試行します。 デフォルトの .Ar limit の値は、小さい正の整数(リトライ回数)です。 .Pp .Em 警告 : .Nm コマンドを、本オプションを .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 が .Em 書き込みモード もしくは .Em コピーモード の場合には、オプションフィールドとして .Ar [c][m] を指定することが可能です。このフィールドは、時間の比較に inode更新時間と ファイル更新時間のどちら(あるいは両方)を使うかを決定します。 どちらも指定されない場合(デフォルト時)には、ファイル更新時間のみが用いられます。 .Ar m は、ファイル更新時間 (ファイルへの書き込みが最後に行われた時間) を 比較対象として用います。 .Ar c は、inode 更新時間 (inode が最後に更新された時間。例えば所有者、 グループ、モードその他が更新された時間) を比較対象として用います。 .Ar c と .Ar m の両者が指定された場合、ファイル更新時間と inode 更新時間の両者が比較対象 になります。 inode 更新時間の比較は、最近属性が変更されたファイルや 最近作成されたファイル、そしてファイル更新時間が古いものに再設定された ファイル (ファイル更新時間を保存するオプションを用いてアーカイブから 展開されたファイルなどがこれにあたります) を選択するのに便利です。 ファイル時間も併用して時間比較をする機能は、 .Nm を用いて、 時間を基準にしたインクリメンタルアーカイブ (指定した期間内に更新された ファイルのみアーカイブすること) を行うのに便利です。 .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 ユーティリティは、 .St -p1003.2 標準のスーパセットです。 オプション .Fl z , .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 関連項目 .Xr cpio 1 , .Xr tar 1 .Sh 歴史 .Nm は .Bx 4.4 に登場しました。 .Sh 作者 .An Keith Muller at the University of California, San Diego .Sh 診断 .Nm ユーティリティは、以下の値のいずれかで終了します: .Bl -tag -width 2n .It 0 すべてのファイルは正常に処理されました。 .It 1 エラーが発生しました。 .El .Pp アーカイブ読み込み中に .Nm がファイルを作成できない場合やリンクを張れない場合、 アーカイブに書き込み中にファイルが見つからない場合、 .Fl p オプション指定時にユーザ ID、グループ ID、ファイル属性を保存できない場合には、 診断メッセージが .Dv 標準エラー出力に 書き出され、0 以外の終了ステータスが返却されますが、 処理自体は継続して行われます。 ファイルへのリンクを作成できない場合には、 .Nm はファイルの二次コピーを作成しません。 .Pp アーカイブからのファイルの展開が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm はユーザが指定したファイルの一部分だけを展開して終了する可能性があります。 更に、展開したファイルやディレクトリの属性が不正であったり、 アクセス時間、更新時間も不正である可能性があります。 .Pp アーカイブの生成が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm は中途半端なアーカイブを生成している可能性があります。 このようなアーカイブは 特定のアーカイブフォーマット規定を満足していない可能性があります。 .Pp .Em コピー を行っている最中に、 .Nm が読み出したのと同じファイルへの書き込みを検出した場合、 そのファイルはコピーされず、診断メッセージが .Dv 標準エラー出力 へ書き出され、 .Nm は 0 以外の終了ステータスでプログラム終了します。 diff --git a/ja_JP.eucJP/man/man1/rcp.1 b/ja_JP.eucJP/man/man1/rcp.1 index 838a954813..92bedcc907 100644 --- a/ja_JP.eucJP/man/man1/rcp.1 +++ b/ja_JP.eucJP/man/man1/rcp.1 @@ -1,157 +1,161 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)rcp.1 8.1 (Berkeley) 5/31/93 -.\" %FreeBSD: src/bin/rcp/rcp.1,v 1.9.2.5 2002/04/22 22:25:19 keramida Exp % +.\" %FreeBSD: src/bin/rcp/rcp.1,v 1.9.2.6 2002/08/16 20:06:34 ume Exp % .\" $FreeBSD$ .\" .Dd May 31, 1993 .Dt RCP 1 .Os .Sh 名称 .Nm rcp .Nd リモートファイルのコピー .Sh 書式 .Nm -.Op Fl Kpx +.Op Fl 46Kpx .Op Fl k Ar realm .Ar file1 file2 .Nm -.Op Fl Kprx +.Op Fl 46Kprx .Op Fl k Ar realm .Ar .Ar directory .Sh 解説 .Nm ユーティリティは、 ネットワークでつながれた複数のマシンの間でコピーをするプログラムです。 .Ar file および .Ar directory として .Dq rname@rhost:path の形式で指定する ことにより、それがリモートマシン上のファイルであるとみなされます。 ファイル指定に `:' が含まれていないか、含まれていても `/' の後にある 場合は、ローカルマシンのファイルとみなされます。 .Pp 次のオプションを利用可能です: .Bl -tag -width flag +.It Fl 4 +IPv4 アドレスのみを使用します。 +.It Fl 6 +IPv6 アドレスのみを使用します。 .It Fl K 全ての Kerberos による認証を無効にします。 .It Fl k .Xr krb_realmofhost 3 で決定されるリモートホストの realm のかわりに、 .Ar realm で指定したリモートホストの チケットを得るようにします。 .It Fl p .Ar umask を無視し、転送元のファイルの修正日付とアクセスモードを維持したままコピー します。デフォルトでは、転送先に同じファイル名のファイルがすでに 存在していれば、そのファイルのモードと所有者が引き継がれ、もしファイルが 存在していなければ、転送元のファイルのモードに転送先のマシンで使われている .Xr umask 2 のマスクを施したアクセスモードになります。 .It Fl r 転送元としてディレクトリが指定された場合、ディレクトリ下の各ファイルも 再帰的にコピーします。この場合、転送先にはディレクトリを指定しなければ なりません。 .It Fl x .Nm で送るすべてのデータを .Tn DES 暗号化します。これによりレスポンスタイムと .Tn CPU の利用率に影響が生じますが、セキュリティは向上します。 .El .Pp .Ar file がフルパスでなかった場合は、リモートマシン .Ar rhost 上のユーザ .Ar ruser のログインディレクトリ (リモートユーザ名が指定されていなければ、現在のユーザ名の ログインディレクトリ) からの相対パスと解釈します。 リモートマシン上のファイル指定にワイルドカードなどのメタキャラクタを 含める場合は、ローカルマシンのシェルによりワイルドカードが 展開されないよう \e, ", \(aa のいずれかでクォートする必要があります。 .Pp .Nm ユーティリティでは .Xr rsh 1 を使用するため同様のユーザの認証が必要とされ、パスワードを要求する プロンプトを出しません。 .Pp .Nm ユーティリティでは転送元、転送先ともにリモートマシンを指定し、 第三者によるリモートマシン間での ファイルのコピーを行うこともできます。 .Sh 関連ファイル .Bl -tag -width /etc/auth.conf -compact .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr cp 1 , .Xr ftp 1 , .Xr rlogin 1 , .Xr rsh 1 , .Xr auth.conf 5 , .Xr hosts.equiv 5 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 このバージョンの .Nm は、 .Bx 4.3 Reno において Kerberos を組み込んで再実装されました。 .Sh バグ ディレクトリが指定されるべき場所にファイルが指定されている場合を検出で きるとは限りません。 .Pp リモートホストの .Pa \&.login , .Pa \&.profile , .Pa \&.cshrc のいずれかに含まれるコマンドの出力によって混乱することがあります。 .Pp 転送先のマシンにバージョン .Bx 4.2 の .Nm が動作している場合、 .Dq rhost.rname のように転送先のユーザ名とホスト 名を指定しなければなりません。 diff --git a/ja_JP.eucJP/man/man1/send-pr.1 b/ja_JP.eucJP/man/man1/send-pr.1 index 155c236994..907140ddc7 100644 --- a/ja_JP.eucJP/man/man1/send-pr.1 +++ b/ja_JP.eucJP/man/man1/send-pr.1 @@ -1,319 +1,322 @@ .\" -*- nroff -*- .\" --------------------------------------------------------------------------- .\" man page for send-pr (by Heinz G. Seidl, hgs@cygnus.com) .\" updated Feb 1993 for GNATS 3.00 by Jeffrey Osier, jeffrey@cygnus.com .\" .\" This file is part of the Problem Report Management System (GNATS) .\" Copyright 1992 Cygnus Support .\" .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU General Public .\" License as published by the Free Software Foundation; either .\" version 2 of the License, or (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" You should have received a copy of the GNU Library General Public .\" License along with this program; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA .\" .\" --------------------------------------------------------------------------- -.\" %FreeBSD: src/gnu/usr.bin/send-pr/send-pr.1,v 1.9.2.4 2002/07/03 00:36:13 des Exp % +.\" %FreeBSD: src/gnu/usr.bin/send-pr/send-pr.1,v 1.9.2.5 2002/08/16 07:43:13 blackend Exp % .\" $FreeBSD$ .nh .TH SEND-PR 1 3.113 "February 1993" .SH 名称 send-pr \- サポートサイトに Problem Report (PR) を送る。 .SH 書式 .B send-pr [ .I site ] [ .B \-f .I problem-report ] [ .B \-t .I mail-address ] .br .in +0.8i [ .B \-P ] [ .B \-L ] [ .B \-s .I severity ] [ .B \-V ] .br [ .B \-\-version ] [ .B \-c .I address ] [ .B \-a .I file ] .SH 解説 .B send-pr は、サポートサイトに対して、 .I problem report .\" SITE ADMINISTRATORS - change this if you use a local default (PR) を送るために使うツールです。大抵の場合は正しい .I site がデフォルトとなっているはずです。この引数は、問題 のカテゴリに対して責任をもつサポートサイトを指し示します。いくつかの サイトはデフォルトとしてローカルアドレスを使っていることでしょう。 .I site は、 .BR aliases (5) を使って定義されます。 .LP .B send-pr を実行すると、エディタが起動され、用意されているテンプレートが (いくつ かのフィールドにもっともらしいデフォルトの値をあてはめてから) 読み込ま れます。エディタを終了すると、 .B send-pr は、サポートサイトの .I Problem Report Management System (\fBGNATS\fR) に書き込み終えた書式をメールで送ります。 サポートサイトで は、PR に唯一の番号を割り当てて、その問題のカテゴリ と \fIsubmitter-id\fR とともに、\fBGNATS\fR データベースに 保存しています。 \fBGNATS\fR は PR を受理したこと知らせるために、 問題のカテゴリの引用と PR 番号とを自動的に返送します。 .LP PR がすぐに処理されるようにするためには、問題の属す領域を識別するため、 指定可能カテゴリから一つを選んで記入する必要があります。(カテゴリの一覧は .B `send-pr -L' で見ることができます。) .LP 問題の記述がより正確であり、提供される情報がより完全であればあるほど、 サポートチームは問題をそれだけ早く解決することができます。 .SH オプション .TP .BI \-f " problem-report" すでに記入した PR ファイルを \fIproblem-report\fR に指定できます。 .B send-pr はエディタを起動せずに指定したファイルを送ります。 .I problem-report が .BR `\|\-\|' のときは .B send-pr は、標準入力から読み込みます。 .TP .BI \-s " severity" PR の重大度を、 .IR severity と指定します。 .TP .BI \-t " mail-address" PR を送るサイトのメールアドレスを変更します。 デフォルトのメールアドレスは、 デフォルトサイトのものが使われます。特殊な状況を除き、この オプションではなく、 .I site 引数を使って下さい。 .TP .BI \-c " address" .I address を、メッセージの .B Cc: ヘッダ中に入れます。 .TP .BI \-a " file" 指定した .I file を .B Fix: 節にコピーします。 バイナリファイルは uuencode されます。 .TP .B \-P 環境変数 .B PR_FORM で指定されたテンプレートを標準出力に出力します。 .B PR_FORM が定義されていないときは、標準のブランク PR テンプレートが出力されます。 メールは送られません。 .TP .B \-L 指定可能なカテゴリの一覧が表示されます。メールは送られません。 .TP .B \-V .B send-pr のバージョン番号を表示します。 .B \-\-version 指定でも表示可能です。 .LP 注: PR を提出するためには、PR を直接メールするのではなく、 .B send-pr を使いましょう。テンプレートと .B send-pr の両方を使うことによって、必要な情報のすべてがサポートサイトに確実に 届きやすくなります。 .SH FREEBSD のカテゴリ .TP .B advocacy 支持 WWW ページ用。何に使うのか今は不確かです。 .TP .B alpha Alpha プロセッサ固有の問題。 .TP .B bin システムの実行形式の修正または拡張。 .TP .B conf システムの設定ファイルの修正または拡張。 .TP .B docs マニュアルページまたは他の文書の修正または拡張。 .TP .B gnu GNU 提供ソフトウェアの修正または拡張。 .TP .B i386 Intel x86 プロセッサ固有の問題。 .TP .B ia64 Intel ia64 プロセッサ固有の問題。 .TP .B java Java 関連の問題。 .TP .B kern アーキテクチャ独立カーネルソースの修正または拡張。 .TP .B misc 他のカテゴリにあてはまらない問題。 .TP .B ports ports collection の修正または拡張 (新規 ports を含みます)。 .TP +.B powerpc +PowerPC プロセッサ固有の問題。 +.TP .B sparc64 SPARC プロセッサ固有の問題。 .TP .B standards 標準への適合に関する件。 .TP .B www FreeBSD ウェブサイトの変更または向上。 .SH 環境変数 環境変数 .B EDITOR は、テンプレートを編集する際に使用するエディタを指定します。 .br デフォルト: .B vi .sp 環境変数 .B PR_FORM が設定されていれば、その値は編集する PR のテンプレートのファイル名として 使われます。部分的に埋められた記入書式 ( たとえば、identification フィールドがすでに完成した書式など) を使って始めようとする場合に、 この環境変数を使うことができます。 .SH " PR の記入方法" プログラムが容易に PR を扱うことができるようにするため、 PR はある形式に従っている必要があります。 以下のガイドラインを覚えておきましょう: .IP \(bu 3m それぞれの PR には .B 一つの問題 だけを記述しましょう。 .IP \(bu 3m フォローアップメールには、 自動返送されて来るメールと同じサブジェクトを使いましょう。サブジェクトは、 カテゴリ、PR 番号、もともとの概要 ( synopsis ) 行から構成されています。 これによってサポートサイトは、 複数のメールメッセージをある PR に関連付けることができ、 またそれらを自動的に記録することができます。 .IP \(bu 3m サブジェクトや、概要の行はできるだけ正確に記入するようにしましょう。 .IP \(bu 3m サブジェクトの行と概要の行は機密扱いになりません。 公開扱いのバグリストがサブジェクトと概要の行から編集生成されるからです。 機密情報はここに書かないでください。 .LP 詳しくは、GNU .B Info ファイルの .B send-pr.info か、RP について詳しく書かれている \fIReporting Problems With send-pr\fR\ のドキュメントなどを参照してください。 .SH "テストケース、コード、その他の記入方法" 小さなサンプルコードを送りましょう。 大きなテストケースや問題のソースコードを送りたい場合には、 サポートサイトに連絡を取り、指示に従ってください。 .SH 関連ファイル .ta \w'/tmp/pbad$$ 'u /tmp/p$$ 編集しているときに使う PR のコピー .br /tmp/pf$$ テスト目的で使う、空の PR テンプレートコピー .br /tmp/pbad$$ 却下された PR のファイル .SH EMACS ユーザインタフェース .B send-pr のフィールドを記入するための Emacs ユーザインタフェースが .B send-pr の配布物に含まれます( .BR "M-x send-pr" で起動します)。 コンフィギュレーションとインストールのための情報は、 .B send-pr.info もしくは配布物の最上位ディレクトリにある ASCII ファイル .B INSTALL を参照してください。 Emacs LISP のテンプレートファイルは .B send-pr-el.in であり、これを .BR send-pr.el としてインストールします。 .SH インストールとコンフィギュレーション インストール手順を知るためには .B send-pr.info か .B INSTALL を参照してください。 .SH 関連項目 .I Reporting Problems Using send-pr (GNU Info ファイル .BR send-pr.info としてもインストールされます) .SH 作者 Jeffrey Osier, Brendan Kehoe, Jason Merrill, Heinz G. Seidl (Cygnus Support) .SH COPYING Copyright (c) 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man1/tcsh.1 b/ja_JP.eucJP/man/man1/tcsh.1 index ebcda86363..be018ce4e4 100644 --- a/ja_JP.eucJP/man/man1/tcsh.1 +++ b/ja_JP.eucJP/man/man1/tcsh.1 @@ -1,5852 +1,5889 @@ .\" 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 acknowledgment: -.\" 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 +.\" 3. 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. .\" .\" tcsh マニュアルページ: スタイルに関する注意 .\" .\" - リストのタグはボールド体とします。但し、「関連ファイル (FILES)」 .\" セクション中でイタリック体になっている部分は除きます。 .\" .\" - セクション名、環境変数、シェル変数に対する参照はボールド体としま .\" す。コマンド (外部コマンド、組み込みコマンド、エイリアス、エディ .\" タコマンド) とコマンド引数に対する参照はイタリック体とします。 .\" .\" - .B, .I マクロに注意してください。扱うことができる単語数には限界が .\" あります。この制限を回避するには、\fB, \fI を用います。ただ、 .\" この利用は絶対に必要な場合に限るようにしてください。 .\" これは、tcsh.man2html が名前アンカーを見つける際に .\" .B/.I を使うからです。 .\" .\" - 4 の倍数でインデントしてください。普通は 8 でインデントしてください。 .\" .\" - `' を使ってください。シェル構文の例の中を除いて '' や "" は使わない .\" ようにしてください。行先頭で '' を使うと消えてしまいます。 .\" .\" - \- を使ってください。- は使わないようにしてください。 .\" .\" - ドットファイルの名前を表す際にはチルダも含めるようにしてください。 .\" つまり、`~/.login' と書きますが、`.login' とは書きません。 .\" .\" - 外部コマンドを参照する際は、マニュアルページ形式で参照してください。 .\" 例: `csh(1)'。ただし、tcsh は `tcsh' とし、`tcsh(1)' としません。 .\" というのは、このページが tcsh のマニュアルページだからです。 .\" .\" - tcsh と csh とを区別して表す場合を除き、「このシェル」といい、 .\" 「tcsh」と言わないようにしてください。 .\" .\" - ただ「変数」と言わずに、「シェル変数」、「環境変数」と言うように .\" してください。また、ただ、「ビルトイン」、「コマンド」と言わずに、 .\" 「組み込みコマンド」、「編集コマンド」と言うようにしてください。 .\" ただ、文脈上区別が明らかな場合は別ですが。 .\" .\" - 現在時制を使ってください。`The shell will use' ではなく、`The .\" shell uses' です (この項は日本語訳部分には適用しません)。 .\" .\" - 重要: できるだけ相互参照するようにしてください。「参照 (REFERENCE)」 .\" セクション中にあるコマンド、変数などは、適切な解説セクションの中 .\" で触れるようにしてください。少なくとも、(解説セクションかどこか .\" で触れられている)他のコマンドの「参照」セクションでの記述で触れ .\" るようにしてください。OS 固有事項に関する注意は、「OS 固有機能の .\" サポート(OS variant support)」のセクションに記述するようにして下 .\" さい。新規機能は「新規機能 (NEW FEATURES)」セクションに、外部コマ .\" ンドを参照した場合は、「関連項目 (SEE ALSO)」セクションにそれぞれ .\" 記述するようにしてください。 .\" .\" - tcsh.man2html は、それが作成された時点でマニュアルページで使用さ .\" れていた nroff コマンドにかなり依存しています。可能ならば、ここ .\" で用いているスタイルに厳密に従ってください。特に、これまで使用さ .\" れたことのない nroff コマンドを使用しないようにしてください。 .\" .\" WORD: command-line editor コマンド行編集 .\" WORD: editor command 編集コマンド .\" WORD: autologout mechanism 自動ログアウト機構 .\" WORD: directory stack entries ディレクトリスタックエントリ .\" WORD: word 単語 .\" WORD: positional completion 位置指定補完 .\" WORD: next-word completion 逐次補完 .\" WORD: programmed completion 補完指定 .\" WORD: tilde substitution チルダ置換 .\" WORD: hard limit hard limit .\" WORD: current limit current limit .\" WORD: register a misspelling ミススペルを記録する .\" WORD: switches スイッチ .\" WORD: glob-pattern グロブパターン .\" WORD: Toggles 切り替える .\" WORD: pager ページャー .\" WORD: prefix 接頭辞 .\" WORD: return リターンキー (enter キー) .\" WORD: builtin command 組み込みコマンド .\" WORD: spelling スペル .\" WORD: quote クォートする .\" .\" .\" .\" $FreeBSD$ -.TH TCSH 1 "2 September 2001" "Astron 6.11.00" +.TH TCSH 1 "23 July 2002" "Astron 6.12.00" .\" INTERIM1(jpman) .SH 名称 tcsh - ファイル名補完とコマンド行編集を追加した C シェル .SH 書式 .B tcsh \fR[\fB\-bcdefFimnqstvVxX\fR] [\fB\-Dname\fR[\fB=value\fR]] [arg ...] .br .B tcsh \-l .SH 解説 \fItcsh\fR は、バークレイ版 UNIX の C シェル \fIcsh\fR(1) と完全に 互換性があり、さらに機能強化したシェルです。 対話的なログインシェル、またシェルスクリプトのコマンドプロセッサの 両方の用途で使われるコマンドインタプリタです。 \fItcsh\fR には、コマンド行編集 (\fBコマンド行編集\fRの項を参照)、 プログラム可能な単語の補完 (\fB補完と一覧\fRの項を参照)、 スペル訂正 (\fBスペル訂正\fRの項を参照)、 履歴 (\fBヒストリ置換\fRの項を参照)、 ジョブ制御 (\fBジョブ\fRの項を参照)、 C 言語風の文法があります。 \fB新機能\fRの章では、\fIcsh\fR(1) には存在しない、\fItcsh\fR の 主な追加機能について説明しています。 このマニュアルを通じ、\fItcsh\fR の機能のうち、 \fIcsh\fR(1) のほとんどの実装 (特に 4.4BSD の \fIcsh\fR) に ない機能について、ラベル (+) をつけてあります。 そして、\fIcsh\fR(1) にあったけれども文書化されていなかった機能に ラベル (u) をつけてあります。 .SS "引数リスト処理" シェルへの 1 番目の引数 (引数 0 番) が `\-' の場合、シェルは ログインシェルになります。 シェルを \fB\-l\fR フラグを指定して起動することでも ログインシェルにできます。 .PP 残りのフラグは以下のように解釈されます。 .TP 4 .B \-b このフラグは、オプションの処理を強制的に中断させる場合に使用します。 このフラグ以降の引数はすべて、オプションではないものとして 処理されます。これにより、混乱を避け、小細工をしなくても、 シェルスクリプトにオプションを渡すことが可能になります。 set-user ID スクリプトは本オプションなしでは実行できません。 .TP 4 .B \-c コマンドを、本フラグの次にくる引数 (この引数は省略できません。 また、1 つだけである必要があります) から読み込み、実行します。 この引数は、あとで参照できるように、シェル変数 \fBcommand\fR に 格納されます。残りの引数は、シェル変数 \fBargv\fR に代入されます。 .TP 4 .B \-d ログインシェルであるかどうかにかかわらず、 \fBスタートアップとシャットダウン\fRの項で解説されているように \fI~/.cshdirs\fR から、ディレクトリスタックを読み込みます。(+) .TP 4 .B \-D\fIname\fR[=\fIvalue\fR] 環境変数 \fIname\fR に値 \fIvalue\fR を設定します。(Domain/OS のみ) (+) .TP 4 .B \-e 起動したコマンドが異常終了したり、0 でない終了ステータスを返したときに、 ただちにシェルを終了します。 .TP 4 .B \-f \fI~/.tcshrc \fRを読み込まずに無視するので、 起動が高速になります。 .TP 4 .B \-F プロセスを生成する際に \fIvfork\fR(2) の代わりに \fIfork\fR(2) を使います。(Convex/OS のみ) (+) .TP 4 .B \-i たとえ端末上で実行されていなくても、対話的に動作し最上位レベルの 入力の際にプロンプトを表示します。入力と出力がともに端末である場合、 本オプションなしでもシェルは対話的に動作します。 .TP 4 .B \-l ログインシェルとなります (\fB-l\fR が、指定された唯一のフラグである 場合にのみ有効です)。 .TP 4 .B \-m 実効ユーザに属していなくても \fI~/.tcshrc\fR をロードします。 新しいバージョンの \fIsu\fR(1) は \fB-m\fR をシェルに渡すことが できます。(+) .TP 4 .B \-n コマンドの解析は行いますが、実行はしません。 シェルスクリプトのデバッグに役立ちます。 .TP 4 .B \-q SIGQUIT (\fBシグナル処理\fRの項を参照) を受け付けるようにし、 デバッガのもとで使われても作動するようになります。 ジョブ制御は無効になります。(u) .TP 4 .B \-s 標準入力からコマンドを読み込みます。 .TP 4 .B \-t 入力から 1 行だけ読み込み、それを実行します。入力行の改行の直前に `\\' を置くことで、次の行への継続を行うことができます。 .TP 4 .B \-v シェル変数 \fBverbose\fR を設定します。 これにより、ヒストリ置換された状態のコマンド行を表示するようになります。 .TP 4 .B \-x シェル変数 \fBecho\fR を設定します。これにより、実行直前に、 実行するコマンドを表示するようになります。 .TP 4 .B \-V \fI~/.tcshrc\fR を実行する前に、シェル変数 \fBverbose\fR を設定します。 .TP 4 .B \-X \fI~/.tcshrc\fR を実行する前に、シェル変数 \fBecho\fR を設定します。 .TP 4 .B \-X に対する \fB-x\fR の関係は、\fB-V\fR に対する \fB-v\fR の関係に 相当します。 .PP フラグ引数の処理のあと、もし引数が残っていて、かつ、 \fB-c\fR, \fB-i\fR, \fB-s\fR, \fB-t\fR のいずれのフラグも 指定されていなければ、残っている引数のうち最初のものは コマンドファイル、つまり「スクリプト」の名前とみなされます。 シェルはこのファイルをオープンし、`$0' による置換に備えて ファイル名を保存します。 多くのシステムは、スクリプトが本シェルと互換性のない version 6 または version 7 の標準のシェルを使っているため、 スクリプトの先頭の文字が `#' でない場合、 つまりスクリプトがコメントから始まらない場合、本シェルは それらの「標準」のシェルを起動して実行します。 .PP 残りの引数はシェル変数 \fBargv\fR に設定されます。 .SS "スタートアップとシャットダウン" ログインシェルの場合は、実行開始に際し、まずシステムファイル \fI/etc/csh.cshrc\fR と \fI/etc/csh.login\fR を読み込んで実行します。 そしてシェルを起動したユーザの\fBホーム\fRディレクトリの中から、 まずはじめに \fI~/.tcshrc\fR (+) を読み込んで実行します。 もし、\fI~/.tcshrc\fR が見つからない場合は、\fI~/.cshrc\fR を 読み込んで実行します。 次に、\fI~/.history\fR (もしくは、シェル変数 \fBhistfile\fR の値) を、 その次に \fI~/.login\fR を、最後に、\fI~/.cshdirs\fR (もしくは、 シェル変数 \fBdirsfile\fR の値) (+) を読み込んで実行します。 コンパイルの仕方によって、シェルは \fI/etc/csh.cshrc\fR の後ではなく前に \fI/etc/csh.login\fR を読み込み、 \fI~/.tcshrc\fR (または \fI~/.cshrc\fR) と \fI~/.history\fR の後ではなく前に \fI~/.login\fR を読み込む場合があります。 シェル変数 \fBversion\fR を参照してください。(+) .PP ログインシェルでない場合は、\fI/etc/csh.cshrc\fR と、 \fI~/.tcshrc\fR (または \fI~/.cshrc\fR) のみを起動時に読み込みます。 .PP スタートアップファイルの例は、 \fIhttp://tcshrc.sourceforge.net\fR を見てください。 .PP \fIstty\fR(1) や \fItset\fR(1) のようなコマンドは、ログインする ごとに 1 度だけ実行される必要がありますが、これらのコマンドは、 普通は \fI~/.login\fR ファイルに入れます。 \fIcsh\fR(1) と \fItcsh\fR の両方で同じファイルのセットを使う 必要があるユーザは、\fI~/.cshrc\fR だけを使い、その中で シェル変数 \fBtcsh\fR (値は任意) があるかどうかチェックして から、\fItcsh\fR 特有のコマンドを使うようにします。または、 \fI~/.cshrc\fR と \fI~/.tcshrc\fR の両方を使うが、\fI~/.tcshrc\fR で、 \fIsource\fR コマンド (組み込みコマンドの項を参照) を使い \fI~/.cshrc\fR を読み込むようにします。 以下、このマニュアルの残りの部分で `\fI~/.tcshrc\fR' と表現したときは、 「\fI~/.tcshrc\fR、または \fI~/.tcshrc\fR が見つからない 場合は \fI~/.cshrc\fR」という意味で使います。 .PP 通常、シェルはプロンプト `> ' を表示し、端末からコマンドの読み込みを 開始します (引数処理と、コマンドスクリプトを含むファイルの処理のための シェルの使用については、後で説明します)。 シェルは、入力されたコマンド行の読み込み、読み込んだコマンド行を単語に 分解、およびコマンド履歴への格納、コマンド行の解析、 コマンド行の中のコマンドそれぞれの実行を繰り返します。 .PP ログアウトするには、空の行で `^D' とタイプするか、`logout' するか、 `login' するか、シェルの自動ログアウト機構 (シェル変数 \fBautologout\fR を参照) を使います。 ログインシェルが実行終了する際には、ログアウトの状況に応じて シェル変数 \fBlogout\fR を `normal' か `automatic' に設定し、 \fI/etc/csh.logout\fR ファイルと \fI~/.logout\fR ファイルにある コマンドを実行します。 コンパイルの仕方によっては、シェルは、ログアウト時に DTR を落とす ことがあります。これについてはシェル変数 \fBversion\fR を参照してください。 .PP システムのログインファイル名、ログアウトファイル名は、 異なる \fIcsh\fR(1) 間での互換性を保つために、 システムごとにファイルが違います。これについては、 \fB関連ファイル\fRを参照してください。 .SS 編集 はじめに、\fBコマンド行エディタ\fRについて説明します。 \fB補完と一覧\fRと、\fBスペル訂正\fRの 2 つの機能は、 編集コマンドとして実装されていますが、 特に分けて説明する必要があるため、項を改めて説明します。 最後に、\fB編集コマンド\fRの項で、シェルに特有の編集コマンドについて、 一覧をあげ、デフォルトのバインドとともに説明します。 .SS "コマンド行編集 (+)" コマンド行の入力データは、GNU Emacs や \fIvi\fR(1) で使われているものと、 よく似たキーシーケンスを使って編集できます。 シェル変数 \fBedit\fR がセットされているときのみ、編集できるように なっています。対話的なシェルでは、この値はデフォルトで 設定されています。 組み込みコマンド \fIbindkey\fR で、キーバインドを変更したり、 表示したりできます。 デフォルトでは、Emacs 形式のキーバインドが使われています (違う方法でコンパイルしなければそうなります。 シェル変数 \fBversion\fR を参照)。 しかし、コマンド \fIbindkey\fR で、キーバインドを \fIvi\fR 形式に 一括して変更できます。 .PP シェルは、つねに矢印キー (環境変数 \fBTERMCAP\fR で定義されたものです) を、次のように割り付けています。 .PP .PD 0 .RS +4 .TP 8 下矢印 \fIdown-history\fR .TP 8 上矢印 \fIup-history\fR .TP 8 左矢印 \fIbackward-char\fR .TP 8 右矢印 \fIforward-char\fR .PD .RE .PP 他の 1 文字バインドによって、変わっていなければこのようになります。 このようなバインドにしたくない場合、\fIsettc\fR を使って、矢印キーの エスケープシーケンスを空の文字列にセットすることができます。 ANSI/VT100 の矢印キーシーケンスは、つねにバインドされています。 .PP その他のキーバインドは、そのほとんどは、Emacs、\fIvi\fR(1) ユーザが 予想できるものです。また、簡単に \fIbindkey\fR コマンドで表示させる こともできるので、ここで、それらのバインドを並べあげる必要は ないでしょう。 同じく、\fIbindkey\fR コマンドは、それぞれの編集コマンドを 簡単な説明付きで、表示させることができます。 .PP 注意: 「単語」という概念に関して、編集コマンドは、シェルと同じ概念を 持たないことに注意してください。 エディタは、シェル変数 \fBwordchars\fR の中にはない非英数文字 (英文字、数字のどちらでもない文字) によって単語の区切りを決めます。 一方、シェルは、ホワイトスペース (空白、タブ、改行) と、 \fB字句構造\fRの項で列挙する特殊な意味を持つ文字のいくつかを 識別します。 .SS "補完と一覧 (+)" シェルは、一意に決まる短縮形を与えられると、しばしば単語の補完を 行うことができます。 単語の一部 (たとえば `ls /usr/lost') をタイプして、タブキーを押すと、 編集コマンド \fIcomplete-word\fR が実行します。シェルは、 ファイル名 `/usr/lost' を補完して `/usr/lost+found/' にします。 このとき、入力バッファの中で、不完全な単語を完全な単語で置き換えます。 (注意: 末端の `/' について: 補完では、ディレクトリ名を補完すると 最後に `/' を付け加えます。 そして、ディレクトリ名以外の単語を補完すると、末尾に空白文字を 付け加えます。こうすることで、タイプ入力が速くなり、また、 補完が成功したことが一目で分かります。 シェル変数 \fBaddsuffix\fR のセットをはずせば、 これらを付け加えなくすることもできます。) 合致するものが見当たらない場合 (おそらく `/usr/lost+found' が 存在しない場合でしょう)、端末のベルが鳴ります。 単語がすでに補完されている場合 (システムに `/usr/lost' が 存在する場合か、あるいは、ユーザがはるか先まで考えて、すべてを 入力してしまっていた場合でしょう)、`/' または空白文字が末尾に まだなければ、付け加えられます。 .PP 補完は、行の一番最後でなくても、途中どこででも機能します。 そして、テキストの補完によって、その分、行の残りは右方向へ押されます。 単語の中間で補完された場合、しばしばカーソルの右側に文字が残り、 それを消すはめになることもあります。 .PP コマンドと変数は、ほとんど同じ方法で補完できます。 たとえば、`em[tab]' とタイプした時、使用しているシステムで `em' から始まるコマンドが唯一 \fIemacs\fR だけならば、 `em' は `emacs' と補完されます。 補完は、\fBpath\fR 中のディレクトリにあるコマンドか、 フルパスが与えられれば、そこにあるコマンドを見つけ出すことができます。 `echo $ar[tab]' とタイプした時、他に `ar' から始まる変数がなければ、 `$ar' は `$argv' と補完されます。 .PP シェルは、入力バッファを解析して、補完したい単語を、ファイル名としてか、 コマンドとしてか、変数としてか、どのように補完すべきかを決めます。 バッファの中の最初の単語と、`;', `|', `|&', `&&', `||' の すぐ次にくる単語は、コマンドとみなします。 `$' で始まる単語は、変数とみなします。 その他のものは、ファイル名とみなします。 空の行は、ファイル名として `補完されて' います。 .PP いつでも、`^D' とタイプすることで、編集コマンド \fIdelete-char-or-list-or-eof\fR を実行させて、 補完可能な単語の候補を並べ挙げることができます。 シェルは、組み込みコマンド \fIls-F\fR (q.v.) を使って、 補完可能な候補を並べ挙げます。 そして、プロンプトと未完成のコマンドラインを再表示します。 次に例を示します。 .IP "" 4 > ls /usr/l[^D] .br lbin/ lib/ local/ lost+found/ .br > ls /usr/l .PP シェル変数 \fBautolist\fR をセットしていれば、シェルは、 補完に失敗したときはいつでも残りの選択肢を表示します。 .IP "" 4 > set autolist .br > nm /usr/lib/libt[tab] .br libtermcap.a@ libtermlib.a@ .br > nm /usr/lib/libterm .PP シェル変数 \fBautolist\fR を `ambiguous (あいまいな)' に セットした場合は、補完に失敗して補完される単語へ新しい文字を それ以上追加できなくなったときに限り、選択肢を表示します。 .PP 補完するファイル名には、変数、自分もしくは他人のホームディレクトリ (`~' で短縮したもの。\fBファイル名置換\fRの項を参照)、 ディレクトリスタックエントリ (`=' で短縮したもの。 \fBディレクトリスタック置換\fRの項を参照) を含めることができます。 たとえば、次のようになります。 .IP "" 4 > ls ~k[^D] .br kahn kas kellogg .br > ls ~ke[tab] .br > ls ~kellogg/ .PP あるいは、 .IP "" 4 > set local = /usr/local .br > ls $lo[tab] .br > ls $local/[^D] .br bin/ etc/ lib/ man/ src/ .br > ls $local/ .PP 変数については、編集コマンド \fIexpand-variables\fR を指定して使っても 展開できることに注意してください。 .PP コマンド \fIdelete-char-or-list-or-eof\fR は、行の最後でのみ リストを表示します。 行の中間の場合、カーソル位置の文字を消去します。 空行の場合、ログアウトします。ただし、\fBignoreeof\fR がセットされて いれば、何もしません。 `M-^D' は、編集コマンド \fIlist-choices\fR にバインドされていますが、 これは行中のどこでも、補完の候補のリストを表示します。 \fIlist-choices\fR (または、\fIdelete-char-or-list-or-eof\fR のところで 列挙するコマンドで、消去するコマンド、しないコマンド、 リスト表示するコマンド、ログアウトするコマンドのどれでも) は、そうしたい場合、組み込みコマンド \fIbindkey\fR で `^D' にバインドすることもできます。 .PP 編集コマンド \fIcomplete-word-fwd\fR と \fIcomplete-word-back\fR (デフォルトでは、どのキーにも割り付けられていません) を使うことで、 補完候補のリストを上または下に順に巡り、リスト上の現在の単語を、 次の単語または 1 つ前の単語に置き換えることができます。 .PP シェル変数 \fBfignore\fR に、補完の際に無視するファイルの サフィックスのリストをセットできます。 次の例を考えてみます。 .IP "" 4 > ls .br Makefile condiments.h~ main.o side.c .br README main.c meal side.o .br condiments.h main.c~ .br > set fignore = (.o \\~) .br > emacs ma[^D] .br main.c main.c~ main.o .br > emacs ma[tab] .br > emacs main.c .PP `main.c~' と `main.o' は、\fBfignore\fR にサフィックスが 登録されているために、補完では無視されます (しかしリスト上には表示されます)。 \fBファイル名置換\fRの項で解説しているように、\fBhome\fR に 拡張されないようにするために、`~' の前に `\\' が必要なことに 注意してください。補完の候補が1 つしかない場合は、 \fBfignore\fR の設定は無視されます。 .PP シェル変数 \fBcomplete\fR が `enhance(拡張)' にセットされていた場合、補完は 1) 大文字小文字の区別を無視し、 2) ピリオド、ハイフン、アンダスコア (`.', `\-', `_')を、 単語を分ける記号であるとみなし、ハイフンとアンダスコアは 同等なものとみなします。 次のようなファイルがある場合、 .IP "" 4 comp.lang.c comp.lang.perl comp.std.c++ .br comp.lang.c++ comp.std.c .PP `mail \-f c.l.c[tab]' とタイプすれば、`mail \-f comp.lang.c' のように補完され、^D の場合には、`comp.lang.c' と `comp.lang.c++' が リストとして表示されます。 `mail \-f c..c++[^D]' とタイプした場合は、`comp.lang.c++' と `comp.std.c++' が表示されます。 次のファイルがあるディレクトリで、`rm a\-\-file[^D]' とタイプした 場合、 .IP "" 4 A_silly_file a-hyphenated-file another_silly_file .PP の 3 つのファイルすべてが一覧表示されます。 なぜならば、大文字小文字の区別は無視されて、 ハイフンとアンダスコアは同等と解釈されるからです。しかしながら、 ピリオドは、ハイフンやアンダスコアと同等ではありません。 .PP 補完と一覧は、他にもいくつかのシェル変数の影響を受けます。 そのひとつ、\fBrecexact\fR をセットすると、続けてタイプすれば より長い単語に合致するような場合でさえも、 最短で一意に一致する単語に合致するようになります。たとえば、 .IP "" 4 > ls .br fodder foo food foonly .br > set recexact .br > rm fo[tab] .PP この場合はベルが鳴るだけです。 なぜなら、`fo' は、`fod' または `foo' に展開できるからです。 しかし、さらに `o' とタイプすると、 .IP "" 4 > rm foo[tab] .br > rm foo .PP `food' や `foonly' も合致するにもかかわらず、 補完は `foo' で完了します。 \fBautoexpand\fR をセットすると、補完を試みる前に、毎回、 編集コマンド \fIexpand-history\fR を実行するようになります。 \fBautocorrect\fR をセットすると、補完を試みる前に、毎回、 その単語のスペル訂正をするようになります (\fBスペル訂正\fRの項を参照)。 \fBcorrect\fR をセットすると、`return (enter)' キーを押したあと、 自動的にコマンドを補完するようになります。 \fBmatchbeep\fR をセットすると、補完に際して、状況の変化に応じて、 ベルを鳴らしたり、鳴らないようにできます。 \fBnobeep\fR をセットすると、まったくベルを鳴らさないようにできます。 \fBnostat\fR には、ディレクトリのリストやディレクトリに 合致するパターンをセットでき、これらのディレクトリで補完機構が \fIstat\fR(2) を実行しないようにすることができます。 \fBlistmax\fR や \fBlistmaxrows\fR にセットすることで、 まず問い合わせずに一覧表示する項目の数や、列の数を、それぞれ 制限することができます。 \fBrecognize_only_executables\fR をセットすると、 シェルがコマンド一覧を表示する際に、実行可能ファイルだけを 一覧表示するようにさせることができます。ただし、動作はきわめて 遅くなります。 .PP 最後に、組み込みコマンド \fIcomplete\fR を使って、ファイル名、 コマンド、変数以外の単語を補完する方法をシェルに教えることができます。 補完と一覧は、グロブパターン (\fBファイル名置換\fRの項を参照) 上では機能しませんが、編集コマンド \fIlist-glob\fR と \fIexpand-glob\fR はグロブパターンに対し同等の機能として実行されます。 .SS "スペル訂正 (+)" シェルは、補完したり一覧表示するのと同様に、ファイル名、コマンド、 変数名のスペルを訂正することができることがあります。 .PP 個々の単語は、編集コマンド \fIspell-word\fR (普通は M-s と M-S に バインドされています) でスペル訂正できます。入力バッファ全体は \fIspell-line\fR (普通は M-$ に割り付けられています) で スペル訂正できます。 シェル変数 \fBcorrect\fR に `cmd' を設定されておけば、コマンド名が スペル訂正されます。`all' を設定しておけば、リターンがタイプされる たびに行全体がスペル訂正されます。 \fBautocorrect\fR がセットされていれば、単語に補完を試みる前に その単語をスペル訂正します。 .PP スペル訂正が、ここで説明した方法のいずれかにより呼び出され、 コマンド行のどこかにスペル誤りがあると判断すると、 シェルは、次のように訂正済みのコマンド行を表示し入力を待ちます。 .IP "" 4 > set correct = cmd .br > lz /usr/bin .br CORRECT>ls /usr/bin (y|n|e|a)? .PP これに対し、`y' または空白文字で答えると、訂正済み行を実行し、 `e' で答えると、入力バッファに訂正前のコマンドを残し、 `a' で答えると、`^C' が押された場合と同様にコマンドを中止し、 それ以外の場合は、元のままの行を変えないで実行します。 .PP スペル訂正は、ユーザ定義の補完を識別します (組み込みコマンド \fIcomplete\fR を参照)。 もし、補完が実行される位置で、入力された単語が補完リストの中の単語に 似ていたとき、スペル訂正は、ミススペル記録して、見つかった単語を 訂正候補として提案します。しかし、入力された単語がその位置で、 どの補完候補にも合致しなかった時、スペル訂正は、 ミススペルを示しません。 .PP 補完と同様、スペル訂正は行のどこでも機能します。行の残りを右に 押し出したり、残りの余分な文字をカーソルの右に残したりします。 .PP 注意: スペル訂正は、意図どおりに動作する保証はありません。 そして、ほとんど実験的な機能として提供されています。 提案、改善する点があれば歓迎します。 .SS "編集コマンド (+)" `bindkey' はキーバインド一覧を表示し、 `bindkey \-l' は編集コマンドの一覧と短い解説を表示します。 ここでは、新しい編集コマンド、または、特に興味深い編集コマンドに ついてのみ解説します。 エディタのキーバインド割り付けの記述については、 \fIemacs\fR(1) と \fIvi\fR(1) を参照してください。 .PP デフォルトでそれぞれのコマンドにバインドられた文字 (あるいは複数文字) は、括弧の中に示しました。 `^\fIcharacter\fR' は制御文字を意味します。 `M-\fIcharacter\fR'はメタ文字です。 メタキーがない端末の場合は、escape-\fIcharacter\fR とタイプします。 大文字小文字の区別はありますが、 デフォルトで英文字に割り付けられるコマンドは、便宜上、 大文字、小文字の両方にキーバインドされています。 .TP 8 .B complete-word \fR(tab) \fB補完と一覧\fRの項で解説しているとおり、単語を補完します。 .TP 8 .B complete-word-back \fR(not bound) \fIcomplete-word-fwd\fR と同様ですが、単語リストの終わりから、 上へあがって行きます。 .TP 8 .B complete-word-fwd \fR(not bound) 現在の単語を、補完可能単語リスト上の始めの単語で置き換えます。 本コマンドを繰り返すことで、単語リスト上を下へ降りていくことができます。 単語リストの最後までいくと、ベルが鳴り、未補完の単語へ戻ります。 .TP 8 .B complete-word-raw \fR(^X-tab) \fIcomplete-word\fR と同様ですが、ユーザ定義した補完は無視されます。 .TP 8 .B copy-prev-word \fR(M-^_) 現在の行で、1 つ前の単語を入力バッファへコピーします。 \fIinsert-last-word\fR も参照してください。 .TP 8 .B dabbrev-expand \fR(M-/) 以前入力した単語の中で、現在の単語が先頭部分文字列であり、しかも 最近のものを見つけて、それで展開します。 必要ならば、ヒストリリストを一周回って元に戻って探します。 \fIdabbrev-expand\fR を中断せず繰り返すことで、 その次の単語に変わります。 \fIhistory-search-backward\fR と同様に、同一のマッチングは スキップします。 .TP 8 .B delete-char \fR(割り付けなし) カーソル下の文字を削除します。 \fIdelete-char-or-list-or-eof\fR も参照してください。 .TP 8 .B delete-char-or-eof \fR(割り付けなし) カーソル下に文字があれば \fIdelete-char\fR を実行し、 空行では \fIend-of-file\fR を実行します。 \fIdelete-char-or-list-or-eof\fR も参照してください。 .TP 8 .B delete-char-or-list \fR(割り付けなし) カーソル下に文字があれば \fIdelete-char\fR を実行し、 行の末尾では \fIlist-choices\fR を実行します。 \fIdelete-char-or-list-or-eof\fR も参照してください。 .TP 8 .B delete-char-or-list-or-eof \fR(^D) カーソル下に文字があれば \fIdelete-char\fR を実行し、 行の末尾では \fIlist-choices\fR を実行し、 空行では \fIend-of-file\fR を実行します。 これらの 3 つのコマンドも参照してください。 これらのコマンドは、それぞれ 1 つの動作を実行するだけです。 \fIdelete-char-or-eof\fR, \fIdelete-char-or-list\fR, \fIlist-or-eof\fR は、 それぞれ 3 つのうちの異なる 2 つを実行します。 .TP 8 .B down-history \fR(下矢印, ^N) \fIup-history\fR と同様ですが、1 つずつ下に移動し、もとの入力行で止まります。 .TP 8 .B end-of-file \fR(割り付けなし) ファイルの終端であることをシェルに通知します。 シェル変数 \fBignoreeof\fR (そちらも参照) がセットされて いない場合、その結果として、シェルは実行を終了します。 \fIdelete-char-or-list-or-eof\fR も参照してください。 .TP 8 .B expand-history \fR(M-space) 現在の単語のヒストリ置換を展開します。 \fBヒストリ置換\fRを参照してください。 \fImagic-space\fR, \fItoggle-literal-history\fR と、シェル変数 \fBautoexpand\fR も参照してください。 .TP 8 .B expand-glob \fR(^X-*) カーソルの左にグロブパターンを展開します。 \fBファイル名置換\fRを参照してください。 .TP 8 .B expand-line \fR(割り付けなし) \fIexpand-history\fR と同様ですが、入力バッファのそれぞれの単語の ヒストリ置換を展開します。 .TP 8 .B expand-variables \fR(^X-$) カーソルの左に変数を展開します。 \fB変数置換\fRを参照してください。 .TP 8 .B history-search-backward \fR(M-p, M-P) ヒストリリストを後方へ向かって、入力バッファの現在の中身 (カーソル位置まで) で始まるコマンドを検索し、 それを入力バッファへコピーします。 検索文字列は、`*', `?', `[]', `{}' を含んだグロブパターン (\fBファイル名置換\fRを参照) であってもかまいません。 \fIup-history\fR と \fIdown-history\fR は、ヒストリリストの該当する 地点から始める事ができます。 Emacs モードのみです。 \fIhistory-search-forward\fR と \fIi-search-back\fR も参照してください。 .TP 8 .B history-search-forward \fR(M-n, M-N) \fIhistory-search-backward\fR と同様ですが、前方へ検索します。 .TP 8 .B i-search-back \fR(割り付けなし) 後方へ、\fIhistory-search-backward\fR のように検索して、 最初に合致したものを入力バッファへコピーし、 カーソルをパターンの最後に位置させます。 そして、`bck: 'プロンプトと最初に合致したものを表示します。 追加の文字をタイプして、その検索を延長することができます。 \fIi-search-back\fR をタイプして、同じパターンで検索を延長する こともできます。必要があれば、ヒストリリストを一周回って 元に戻って検索を続けます。 (これを行うためには、\fIi-search-back\fR は、1 文字に バインドされていなければなりません。) あるいは、以下の特殊文字をタイプすることもできます。 .PP .RS +8 .RS +4 .PD 0 .TP 8 ^W カーソル下の単語の残りを検索パターンに加えます。 .TP 8 delete (あるいは \fIbackward-delete-char\fR にバインドされた文字) 最後にタイプされた文字の効果をとりけし、 適当なら検索パターンから文字を削除します。 .TP 8 ^G 前の検索が成功していたなら、検索全体を中止します。 そうでないなら、一番最後に成功した検索まで戻ります。 .TP 8 escape 検索を終え、入力バッファの現在の行をそのまま残します。 .RE .PD .PP この他の文字で、\fIself-insert-command\fR にバインドされている 以外のものをタイプすると、検索が終了します。入力バッファの現在の行は そのままになり、タイプした文字は通常の入力として解釈されます。 特に、キャリッジリターンの場合は、現在の行を実行に移します。 Emacs モードのみです。 \fIi-search-fwd\fR と \fIhistory-search-backward\fR も参照してください。 .RE .TP 8 .B i-search-fwd \fR(割り付けなし) \fIi-search-back\fR と同様ですが、前方へ検索します。 .TP 8 .B insert-last-word \fR(M-_) 1 つ前の入力行 (`!$') の最後の単語を入力バッファに挿入します。 \fIcopy-prev-word\fR も参照してください。 .TP 8 .B list-choices \fR(M-^D) \fB補完と一覧\fRで解説しているように、補完の可能性を一覧表示します。 \fIdelete-char-or-list-or-eof\fR と \fIlist-choices-raw\fR も 参照してください。 .TP 8 .B list-choices-raw \fR(^X-^D) \fIlist-choices\fR と同様ですが、ユーザ定義された補完を無視します。 .TP 8 .B list-glob \fR(^X-g, ^X-G) カーソルの左側のグロブパターン (\fBファイル名置換\fRを参照) に 合致したものを (組み込みコマンド \fIls\-F\fR を用いて) 一覧表示します。 .TP 8 .B list-or-eof \fR(割り付けなし) \fIlist-choices\fR を実行するか、または、空行の場合 \fIend-of-file\fR を 実行します。\fIdelete-char-or-list-or-eof\fR も参照してください。 .TP 8 .B magic-space \fR(割り付けなし) まず \fIexpand-history\fR と同様に、現在の行のヒストリ置換を展開して、 その後で空白を 1 つ付け加えます。 \fImagic-space\fR はスペースキーにバインドするように 設計されていますが、デフォルトではバインドされていません。 .TP 8 .B normalize-command \fR(^X-?) パスの中の現在の単語を検索します。そして、見つかった場合、 実行可能ファイルを指すフルパスで置き換えます。 特殊文字はクォートされます。エイリアスは展開されて、クォートされますが、 エイリアス中のコマンドは展開 / クォートされません。 このコマンドは、たとえば、`dbx' や `sh \-x' などのように、 コマンドが引数を取得する場合に役立ちます。 .TP 8 .B normalize-path \fR(^X-n, ^X-N) シェル変数 \fBsymlinks\fR の設定 `expand' の項で説明されているように、 現在の単語を展開します。 .TP 8 .B overwrite-mode \fR(割り付けられていません) 入力モードと上書きモードの間で切り替えます。 .TP 8 .B run-fg-editor \fR(M-^Z) 現在の入力行を保存します。そして、環境変数 \fBEDITOR\fR または \fBVISUAL\fR のファイル名部分の最後の構成要素 (または、どちらもセットされていなければ、`ed' か `vi') と等しい名前を持ち、ストップしているジョブを探します。 そのようなジョブが見つかれば、`fg %\fIjob\fR' とタイプしたのと 同じように、実行再開されます。 これは、エディタとシェルの間を抜けて交互に切り替えるのを容易にする ために使われます。 このコマンドを `^Z' にバインドし、もっと簡単に交互の切り替えが できるようにする人もいます。 .TP .B run-help \fR(M-h, M-H) 補完ルーチンの `現在のコマンド' と同じ概念による 現在のコマンドのドキュメントを検索し、表示します。 ページャを使う方法はありません。\fIrun-help\fR は短いヘルプファイルと のために設計されているためです。 特別なエイリアス \fBhelpcommand\fR が定義されていた場合、 コマンド名を唯一の引数としてその値が実行されます。 ほかに、ドキュメントのファイル名は、\fIコマンド名\fR.help, \fIコマンド名\fR.1, \fIコマンド名\fR.6, \fIコマンド名\fR.8, \fIコマンド名\fRのいずれかでなければなりません。 また、そのファイルは、環境変数 \fBHPATH\fR の中で、 一覧にあがっているディレクトリのうちの 1 つに入っていなければなりません。 もし、1 つ以上のヘルプファイルがある場合は、最初の 1 つのみが プリントされます。 .TP 8 .B self-insert-command \fR(テキスト文字) 挿入モード (デフォルト) では、タイプした文字を、 カーソル下の文字の後に挿入します。 上書きモードでは、タイプした文字で、カーソル下の文字を置き換えます。 入力モードは、通常、各行の間で維持されていますが、 シェル変数 \fBinputmode\fR を `insert(挿入)' あるいは、 `overwrite(上書き)' にセットしておくと、 エディタを、各行の始まりで、そのモードにすることができます。 \fIoverwrite-mode\fR も参照してください。 .TP 8 .B sequence-lead-in \fR(矢印接頭辞、メタ接頭辞、^X) 次に続く文字がマルチキーシーケンス (複数文字の連続) であることを 表します。マルチキーシーケンスをコマンドにバインドする場合、 実際には、次の 2 つのバインドを作ります。 まず、最初の文字を \fIsequence-lead-in\fR とします。そして、 シーケンス全体をそのコマンドにバインドします。 \fIsequence-lead-in\fR にバインドされた文字で始まる すべてのシーケンスは、他のコマンドにバインドされていなければ、 実質的には \fIundefined-key\fR にバインドされたのと同じことに なります。 .TP 8 .B spell-line \fR(M-$) \fIspell-word\fR と同様に、入力バッファ中の各単語のスペル訂正を 試みます。しかし、単語の最初の文字が、 `\-', `!', `^', `%' のうちのどれかの場合と、 単語中に `\\', `*', `?' のいずれかを含んでいる場合は、 スイッチや、置換などの問題を避けるために、これらの単語を無視します。 \fBスペル訂正\fRを参照してください。 .TP 8 .B spell-word \fR(M-s, M-S) \fBスペル訂正\fRの項で説明されているのと同じやり方で、現在の単語の スペルの訂正を試みます。 パス名として現れる単語の部分をそれぞれにチェックします。 .TP 8 .B toggle-literal-history \fR(M-r, M-R) 入力バッファのヒストリ置換を展開したり、`しなかったり' します。 \fIexpand-history\fR と、シェル変数 \fBautoexpand\fR も参照してください。 .TP 8 .B undefined-key \fR(割り付けのコマンドが無いキー) ベルを鳴らします。 .TP 8 .B up-history \fR(上矢印, ^P) ヒストリリストの中から 1 つ前のエントリを入力バッファにコピーします。 \fBhistlit\fR がセットされている場合、その記入された文字どおりの 形式を使います。 ヒストリリストを上の方へ 1 つずつ移動を繰り返した場合、 一番上で止まります。 .TP 8 .B vi-search-back \fR(?) 検索文字列 (\fIhistory-search-backward\fR と同様、グロブパターンでも 構いません) の入力のために `?' をプロンプト表示します。 その文字列を検索して、同じ文字列を入力バッファへコピーします。 合致するものが見つからなければ、ベルが鳴ります。 リターンキー (enter キー) を押すと、検索を終了して、入力バッファ中に 最後に合致した単語を残します。 escape キーを押すと、検索を終了して、合致したものを実行します。 \fIvi\fR モードのみです。 .TP 8 .B vi-search-fwd \fR(/) \fIvi-search-back\fR と同様ですが、前方へ検索します。 .TP 8 .B which-command \fR(M-?) 入力バッファの最初の単語に対して、\fIwhich\fR (組み込みコマンド の解説を参照) を実行します。 .SS "字句構造" シェルは入力された行をタブや空白で単語に分割します。 特殊文字 `&', `|', `;', `<', `>', `(', `)', 2 文字繰り返しの `&&', `||', `<<' , `>>' は、空白で囲まれているか どうかにかかわらず、常に単語の区切りになります。 .PP シェルの入力が端末からではないとき、文字 `#' は、コメントの始まりと して扱われます。`#' とその後ろの入力行の残りはコメントと解釈され、 文法解析されずに捨てられます。 .PP 特殊文字 (空白、タブ含む) は、その文字の直前にバックスラッシュ `\\' を置くことで、または、単一引用符 `''、二重引用符 `"'、 逆引用符 ``' で囲むことで、特殊な意味合いを持たないようにしたり、 場合によっては、他の単語の一部分にすることもできます。 他に引用がなされない限り、`\\' の直後に改行文字を置くと、改行文字は 空白扱いになります。しかし、引用中では、この文字の並びは改行文字に なります。 .PP さらに、\fBヒストリ置換\fRを除く、すべての\fB置換\fR (次項を参照) は、置換を含む文字列 (あるいは文字列の一部) を 単一引用符で囲むことで防ぐことができます。 あるいは、重大な文字 (たとえば、\fB変数置換\fR ならば `$' や、\fBコマンド置換\fRならば ``') を `\\' で クォートすることで 防ぐことができます。(\fBエイリアス置換\fRも例外ではありません。 一度定義された \fIalias\fR に対して、何らかの方法でその単語の どれかの文字をクォートすることで、そのエイリアスの置換を防ぐことが できます。エイリアスをクォートする普通の方法は、そのエイリアスの前に バックスラッシュを置くことです。) \fBヒストリ置換\fRは、バックスラッシュを用いることで防ぐことが できますが、単一引用符では防ぐことができません。 二重引用符、逆引用符でクォートされた文字列は、 \fB変数置換\fRと\fBコマンド置換\fRは受けますが、 その他の置換は受けません。 .PP 単一引用符、二重引用符で囲まれたテキストは 1 つの単語 (または その一部) となります。 それらの文字列中のメタ文字 (空白、タブを含む) は、単語を分割しません。 ひとつだけ特殊な場合 (次の\fBコマンド置換\fRを参照) として、 二重引用符で囲まれた文字列を 1 つ以上の単語に分けることができます。 これは、単一引用符で囲まれた文字列では決してできません。 逆引用符は特殊で、\fBコマンド置換\fR (そちらも参照) に、 影響を与え、その結果が 1 つ以上の単語になることもあります。 .PP 複雑な文字列をクォートする場合、特に、文字列自身にクォート文字が 含まれている場合は、わかりにくいかもしれません。 人間が書いたものの中では、引用符を引用のために使う必要はないことを 忘れないように! 文字列全体をクォートするのではなく、もし適当ならば異なるタイプの 引用符を用い、クォートする必要のある文字列の一部分のみをクォートする ことの方が、簡単かもしれません。 .PP シェル変数 \fBbackslash_quote\fR (そちらも参照) を セットすると、 バックスラッシュが常に `\\', `'', `"' をクォートするようにできます。(+) これによって、複雑な引用をする仕事が簡単になるかもしれません。 しかし \fIcsh\fR(1) のスクリプトでは、構文エラーの原因になります。 .SS 置換 ここで、シェルが入力に対して行うさまざまな変換を、 処理が行われる順に記述します。同時に、処理に関わるデータ構造と、 データ構造に影響を与えるコマンドと変数とにも触れておきます。 \fB字句構造\fRのところで説明する引用により、置換を抑制できることを 覚えておいてください。 .SS ヒストリ置換 端末から入力したコマンドひとつひとつ (イベント) は、ヒストリリストに 保存されます。直前のコマンドは常に保存されます。さらに、保存する コマンド数を、シェル変数 \fBhistory\fR に設定することができます。 重複するイベントを保存するかどうか、同じイベントの連続をそのまま 保存するかどうかを、シェル変数 \fBhistdup\fR に設定することが できます。 .PP 保存されたコマンドには、1 から始まる連続した番号が振られ、 タイムスタンプが打たれます。普通イベント番号を用いる必要はありませんが、 シェル変数 \fBprompt\fR の中に `!' を置くことで、現在のイベント番号を プロンプトの一部にすることができます。 .PP 実際のところ、シェルは、ヒストリを展開形式と 文字どおり (未展開) の形式とで保存しています。 シェル変数 \fBhistlit\fR を設定しておくと、 ヒストリを表示する / ヒストリに保存するコマンドで 文字どおりの形式を用いるようになります。 .PP 組み込みコマンド \fIhistory\fR により、ヒストリリストの表示、 ファイルに保存、ファイルからの読み込み、クリアをいつでも行えます。 シェル変数 \fBsavehist\fR と \fBhistfile\fR により、 ヒストリリストのログアウト時の自動保存と、ログイン時の自動読み込みを 設定することができます。 .PP ヒストリ置換により、ヒストリリストから単語の列を入力ストリームに 持ち込みます。これにより、前のコマンドの繰り返し、前のコマンドで使った 引数の繰り返し、前のコマンドで間違えたスペルの修正を わずかなキー入力で、かなり確実に 容易に行うことができるようになります。 .PP ヒストリ置換は、文字 `!' で始まります。ヒストリ置換は、 入力ストリームのどこから開始してもかまいませんが、入れ子には できません。 文字 `!' の前に `\\' を置くことで、`!' の特殊な意味を打ち消すことが できます。文字 `!' が、空白文字、タブ文字、改行文字、`='、`(' の 前にある場合は、そうした方が便利なので、無変更のまま渡されます。 入力行が `^' で始まる場合にも、ヒストリ置換が生じます。 この省略表現については後で説明します。 ヒストリ置換を示すための文字 (`!' と `^') は、 シェル変数 \fBhistchars\fR を設定することにより変更することが できます。入力行がヒストリ置換を含む場合、実行前に置換結果が 常に表示されます。 .PP ヒストリ置換には「イベント指定」、「単語指定子 (word designator)」、 「修飾子 (modifier)」を含めることができます。イベント指定は、 どのイベントから単語の列を取り出すかを指定します。単語指定子は、 選択したイベントからどの単語を選ぶかを指定します。修飾子は、 選択した単語をどう操作するかを指定します。 .PP イベント指定には、次のものがあります。 .PP .PD 0 .RS +4 .TP 8 .I n 番号: これはある特定のイベントを指定します。 .TP 8 \-\fIn\fR オフセット: これは現在のイベントの前 \fIn\fR 個目のイベントを 指定します。 .TP 8 # 現在のイベントを指定します。これは \fIcsh\fR(1) の中では注意して 扱わねばなりません。\fIcsh\fR(1) では、再帰呼び出しのチェックを していないからです。\fItcsh\fR では、再帰呼び出しは 10 レベルまで 許されています。(+) .TP 8 ! 1 つ前のイベントを指定します (`\-1' と等価)。 .TP 8 .I s 先頭の単語が \fIs\fR で始まるイベントのうち、最も新しいものを 指定します。 .TP 8 ?\fIs\fR? 文字列 \fIs\fR を含むイベントのうち、最も新しいものを指定します。 直後が改行文字の場合は、2 番目の `?' は省略可能です。 .RE .PD .PP たとえば、次のようなヒストリリストがあるとします。 .IP "" 4 \ 9 8:30 nroff \-man wumpus.man .br 10 8:31 cp wumpus.man wumpus.man.old .br 11 8:36 vi wumpus.man .br 12 8:37 diff wumpus.man.old wumpus.man .PP コマンドが、イベント番号とタイムスタンプ付きで表示されています。 現在のイベントは、まだ入力していませんが、イベント 13 です。 `!11' と `!-2' は、イベント 11 を指します。`!!' は、直前の イベントであるイベント 12 を指します。`!!' は、後ろに `:' が 付いている場合、`!' と省略することができます (`:' は後で説明します)。`!n' は、`n' から始まっている、 イベント 9 を指します。`!?old?' は、`old' を含んでいる イベント 12 を指します。単語指示子も単語修飾子もどちらも含まない場合、 ヒストリ参照はそのイベント全体を展開するだけです。ですから、 コピーコマンドを再実行したいときは `!cp' と入力しますし、`diff' の 出力が画面上端からスクロールして消えてしまう場合、`!!|more' と 入力します。 .PP 必要に応じ、中括弧で囲むことで、ヒストリ置換を前後のテキストから 分離することができます。たとえば、`!vdoc' とすると、`vdoc' で始まる コマンドを探しますが、この例で見つからないにしても、`!{v}doc' では、 あいまいさもなく `vi wumpus.mandoc' に展開されます。 中括弧の中でも、ヒストリ置換は入れ子になりません。 .PP (+) \fIcsh\fR(1) では、たとえば `!3d' は、イベント 3 の後ろに 英文字 `d' を付加して展開しますが、\fItcsh\fR では、これを `3d' で 始まるイベントのうち最新のものに展開します。つまり、完全な数値引数 だけをイベント番号と見なします。これにより、数字から始まるイベントを 呼び出すことが可能となります。`!3d' を \fIcsh\fR(1) のように 展開させるには、`!\\3d' と指定してください。 .PP イベントから単語を選択する場合、`:' と選択する単語を表す指示子を使い、 イベント指定を行うことができます。入力行の単語には、0 から始まる 番号が振られています。最初の単語 (普通、コマンドです) は 0 で、 2 番目の単語 (第 1 引数) は 1 といった具合です。基本的な単語指示子は 次のようになります。 .PP .PD 0 .RS +4 .TP 8 0 最初の単語 (コマンド) .TP 8 .I n \fIn\fR 番目の引数 .TP 8 ^ 最初の引数、`1' と等価 .TP 8 $ 最後の引数 .TP 8 % ?\fIs\fR? 検索で一致した単語 .TP 8 x\-y ある範囲の単語 .TP 8 .I \-y \fI`0\-y'\fR と等価 .TP 8 * `^\-$' と等価。但し、イベントが 1 単語しか含まない場合は何も返さない。 .TP 8 .I x* \fI`x\-$'\fR と等価 .TP 8 .I x\- \fI`x*'\fR と等価。但し、最後の単語 (`$') は除く。 .PD .RE .PP 選択した単語は、空白文字 1 つで区切られてコマンド行に挿入されます。 たとえば、`diff !!:1.old !!:1' と打ち込むことで、先の例の `diff' コマンドを入力することもできます (`:1' で、直前のイベントから 最初の引数を選択しています)。また、`diff !\-2:2 !\-2:1' と 打ち込むことで `cp' コマンドの引数を選択し、入れ換えることができます。 `diff' コマンドの引数の順番を気にしなければ、`diff !\-2:1\-2' と 打ち込んでも構いませんし、単に `diff !\-2:*' でも構いません。 `cp' コマンドは、現在のイベントを指す `#' を使い、 `cp wumpus.man !#:1.old' と書くことができます。`!n:\- hurkle.man' は、 `nroff' コマンドから最初の 2 単語を再利用し、 `nroff \-man hurkle.man' とすることになります。 .PP 文字 `:' は単語指定からイベント指定を分離しますが、引数選択子が `^', `$', `*', `%', `\-' で始まるとき、この文字 `:' は省略可能 です。たとえば、先ほどの `diff' コマンドは `diff !!^.old !!^' もしくは `diff !!$.old !!$' でも構わなかったのです。 しかし、`!!' が `!' に省略可能である場合、`\-' で始まる引数選択子は イベント指定として解釈されます。 .PP ヒストリ参照に、イベント指定のない単語指示子があっても構いません。 その場合、直前のコマンドを参照します。 .ig \" Not true, but we thought it was for a long time ... , unless a previous history reference occurred on the same line in which case this form repeats the previous reference. Thus `!?foo?^ !$' gives the first and last arguments from the command matching `?foo?'. 実際には正しくありませんが、我々は長い間そう信じていました。 ただし、これは同じ行に前のヒストリ参照が現れない場合に限ります。 この場合、この形式は直前の参照を繰り返します。よって、`!?foo?^ !$' は、`?foo?' に一致するコマンドから最初と最後の引数を与えます。 .. `diff' の例を続けるなら、単純に `diff !^.old !^' と入力することが できます。もしくは、逆順の引数を得るだけならば、単に `diff !*' で いいです。 .PP ヒストリ参照の中の単語は編集可能です。つまり、単語の後ろに 1 つまたは 複数の修飾子 (修飾子それぞれは `:' で始まります) を付けることで 「修飾」可能です。 .PP .PD 0 .RS +4 .TP 8 h 先頭のもの 1 つを残し、パス名の構成要素の後ろの部分を削除します。 .TP 8 t 末尾のもの 1 つを残し、パス名の構成要素の先頭の部分を削除します。 .TP 8 r ファイル名拡張子 `.xxx' を削除し、名前の基本部分だけを残します。 .TP 8 e 拡張子だけを残し、他をすべて削除します。 .TP 8 u 最初の英小文字を大文字に変換します。 .TP 8 l 最初の英大文字を小文字に変換します。 .TP 8 s\fI/l/r/\fR \fIl\fR を \fIr\fR で置換します。 \fIl\fR は \fIr\fR と同様に、単なる文字列です。名付け親である \fIed\fR(1) コマンドのような正規表現ではありません。 `/' の代わりに任意の文字を区切り文字として使うことができます。 `\\' を使い、\fIl\fR や \fIr\fR の中で区切り文字をクォートすることが できます。 \fIr\fR 中の文字 `&' は、\fIl\fR で置き換えられます。`\\' で `&' も クォートできます。\fIl\fR が空 (``'') の場合、以前の置換の \fIl\fR、 または以前のイベント指定 `?\fIs\fR?' の \fIs\fR を使用します。 最後の区切り文字の直後が改行文字の場合、その区切り文字を省略できます。 .TP 8 & 以前の置換を繰り返します。 .TP 8 g 後ろの修飾子を単語それぞれに適用します。 .TP 8 a (+) 後ろの修飾子を、ある単語だけにできるだけ多くの回数、適用します。 `a' と `g' をいっしょに用いて、修飾子をグローバルに適用することが できます。現在の実装では、修飾子 `a' と修飾子 `s' を同時に使用すると、 無限ループに陥る可能性があります。たとえば、`:as/f/ff/' は決して 終わりません。この動作は今後変更されるかもしれません。 .TP 8 p 新しいコマンド行を表示しますが、実行はしません。 .TP 8 q 置換された単語をクォートし、それ以上の置換が起きないようにします。 .TP 8 x q と同じです。ただし、単語を空白 / タブ / 改行文字のところで分割します。 .PD .RE .PP 修飾子は最初に見つかった修飾可能な単語だけに適用されます (`g' を 使用しない限り)。修飾可能な単語がない場合はエラーになります。 .PP たとえば、先の例の `diff' コマンドは、`diff wumpus.man.old !#^:r' とも 書くことができます。これは、`r' を用いて、同じ行 (`!#^') の最初の 引数から `.old' を削除しています。`echo hello out there' と 言っておいてから、`echo !*:u' を使い `hello' を大文字にできます。 `echo !*:au' を使い大声で言うようにできます。`echo !*:agu' を使い 絶叫させることもできます。`mail \-s "I forgot my password" rot' の後で `!:s/rot/root' を続けることで、`root' のスペル間違いを直すこと ができます (スペル間違いの訂正については、\fBスペル訂正\fRの項に 別のやり方があります)。 .PP 置換には特別な省略記法があります。`^' が入力行の先頭にある場合、 `!:s^' と等価です。よって、先の例でスペルを訂正するには、 ^rot^root と言うこともできたわけです。これは明示的に `!' で 始まらないヒストリ置換としては唯一のものです。 .PP (+) \fIcsh\fR では、ヒストリ展開または変数展開に適用される修飾子は 1 つだけです。\fItcsh\fR では、1 つ以上の修飾子が使用される可能性が あります。たとえば、次のような場合を考えます。 .IP "" 4 % mv wumpus.man /usr/man/man1/wumpus.1 .br % man !$:t:r .br man wumpus .PP \fIcsh\fR では、この結果は `wumpus.1:r' となります。コロンが後ろに続く 置換は、中括弧を用いてコロンと区切る必要があります。 .IP "" 4 > mv a.out /usr/games/wumpus .br > setenv PATH !$:h:$PATH .br Bad ! modifier: $. .br > setenv PATH !{\-2$:h}:$PATH .br setenv PATH /usr/games:/bin:/usr/bin:. .PP 最初の試みは \fIcsh\fR では成功しますが、\fItcsh\fR では失敗します。 この理由は、\fItcsh\fR は 2 番目のコロンの後ろに、`$' ではなく 修飾子があると思っているからです。 .PP 最後に、ヒストリはここで説明してきた置換だけでなく、エディタでも 利用することができます。編集コマンド \fIup-history\fR, \fIdown-history\fR, \fIhistory-search-backward\fR, \fIhistory-search-forward\fR, \fIi-search-back\fR, \fIi-search-fwd\fR, \fIvi-search-back\fR, \fIvi-search-fwd\fR, \fIcopy-prev-word\fR, \fIinsert-last-word\fR は ヒストリリスト中のイベントを検索し、入力バッファにイベントを コピーします。編集コマンド \fItoggle-literal-history\fR は、 入力バッファでヒストリ行を展開するか文字どおりに扱うかを切り替えます。 \fIexpand-history\fR, \fIexpand-line\fR はそれぞれ、現在の単語、 または、入力バッファ全体でヒストリ置換を展開します。 .SS エイリアス置換 シェルは、エイリアスのリストを保持しています。このリストは、 \fIalias\fR, \fIunalias\fR コマンドを使って設定、削除、表示する ことができます。コマンド行を解釈し単純コマンド (\fBコマンド\fRを参照) に分割したあと、複数のコマンドを左から右へ、それぞれの最初の単語が エイリアスを持っているかをチェックします。エイリアスを持っている 場合、最初の単語をエイリアスで置き換えます。置き換えたエイリアスが ヒストリ参照を含む場合、元のコマンドを直前の入力行とみなして、 \fBヒストリ置換\fR (そちらも参照) が適用されます。 エイリアスがヒストリ置換を含まない場合、引数リストは変更されず そのままです。 .PP そのため、たとえば `ls' のエイリアスが `ls \-l' だった場合、コマンド `ls /usr' は `ls \-l /usr' になります。ここで、引数リストは 影響を受けません。`lookup' のエイリアスが `grep !^ /etc/passwd' だとすると、コマンド `lookup bill' は `grep bill /etc/passwd' に なります。エイリアスを使い、パーザのメタ記法を利用できます。 たとえば、`alias print 'pr \e!* | lpr'' は、引数を ラインプリンタに \fIpr\fR(1) する ``コマンド''(`print') を 定義します。 .PP コマンドの最初の単語がエイリアスを持たなくなるまで、エイリアス置換は 繰り返されます。(先の例のように) エイリアス置換が最初の単語を 変更しない場合、そのエイリアスに印を付けてループが生じない ようにします。それ以外のループは検出され、エラー扱いになります。 .PP シェルが参照するエイリアスがいくつかあります。\fB特殊エイリアス\fR を参照してください。 .SS 変数置換 シェルは変数のリストを管理しており、それらは 0 個またはそれ以上の 個数の単語のリストを値として持ちます。シェル変数の値は、コマンド \fIset\fR, \fIunset\fR により表示、変更することができます。システムは、 自分自身の ``環境'' 変数のリストを保持しています。環境変数は コマンド \fIprintenv\fR, \fIsetenv\fR, \fIunsetenv\fR により表示、 変更することができます。 .PP (+) `set \-r' (参照) により変数を読み出し専用にすることが できます。読み出し専用変数は、変更や unset ができません。これを 試みるとエラーになります。一度読み出し専用にした変数は、 書き込み可能に戻すことはできません。ですから、`set \-r' は 注意して使用する必要があります。環境変数は読み出し専用に することはできません。 .PP シェルが設定、参照する変数がいくつかあります。たとえば、変数 \fBargv\fR は、シェルの引数リストの複製で、この変数の値である単語は特別な方法で 参照されます。シェルが参照する変数の中には、トグルスイッチがあります。 シェルは、これらの変数が何の値を持っているかではなく、値が設定されて いるかどうかにだけ影響を受けます。たとえば、変数 \fBverbose\fR は、 コマンド入力をエコーするかどうかを制御するトグルスイッチです。 コマンド行オプション \fB\-v\fR がこの変数に値を設定します。 シェルが参照する変数すべてのリストは、\fB特別なシェル変数\fRにあります。 .PP 変数を数値として扱う操作もあります。コマンド `@' により、 数値計算を実行し、結果を変数に代入することが可能となります。 しかしながら、変数の値は常に (0 個以上の) 文字列として表現されて います。数値として扱うために、空文字列は 0 と見なされます。 複数の単語からなる値の、2 番目以後の単語は無視されます。 .PP 入力行のエイリアス処理を終え、字句解析を終えた後で、そして、 各コマンドを実行する前に、`$' 文字をキーとして変数置換が行われます。 この展開は `$' の前に `\e' を置くことで抑止できます。ただし、`"' の 中は別で、ここでは\fI常に\fR変数置換が行われます。また、`'' の中も 別で、ここでは\fI決して\fR変数置換が行われません。``' で クォートした文字列は後で解釈されますから、 (後の\fBコマンド置換\fRを参照) そこでの `$' 置換は後になるまで行われません。`$' の後ろが空白、 タブ、改行文字の場合は、`$' 置換は発生しません。 .PP 入出力リダイレクトは、変数展開の前に識別され、別々に変数展開されます。 それ以外では、コマンド名と引数リスト全体が一緒に展開されます。ですから、 (この時点での) 最初の単語 (コマンド) から 2 つ以上の単語が生成される 可能性があります。展開後の複数の単語のうち最初のものがコマンド名となり、 残りの単語は引数になります。 .PP `"' で囲まれているか、修飾子 `:q' が指定されている場合を除き、 最終的には、変数置換の結果に対し、コマンド置換とファイル名置換が 適用されます。`"' で囲まれている場合、値が複数の単語で構成される変数は、 1 つの単語 (の一部) に展開されます。 この単語には、その変数の値である単語が空白で区切られたものを 含みます。置換の際に修飾子 `:q' が適用される場合、変数は複数の単語に 展開されます。それぞれの単語は空白で区切られ、以後、コマンド置換と ファイル名置換が適用されないようにクォートされます。 .PP シェルへの入力に変数の値を持ち込むための方法として、以下の構文が あります。特に注がない限り、設定されていない値の参照はエラーになります。 .PP .PD 0 $\fIname\fR .TP 8 ${\fIname\fR} 変数 \fIname\fR の値である単語に置換します。この単語は、 それぞれが空白で区切られたものです。 中括弧は \fIname\fR とそれ以後の文字列とを分離し、以後の文字列も含めて 1 つの変数名として解釈されないようにします。シェル変数の名前は上限が 20 文字であり、先頭は英文字で、2 文字目以後は英文字か数字で 構成されます。アンダスコアは英文字と見なします。\fIname\fR が シェル変数ではないが、環境に設定されている場合、環境の値を返します (ただし、修飾子 `:' と次で示す他の形式は利用可能です)。 .PP $\fIname\fR[\fIselector\fR] .TP 8 ${\fIname\fR[\fIselector\fR]} \fIname\fR の値のうち選択した単語のみで置換します。\fIselector\fR は `$' 置換が適用され、1 つの数値または `\-' で区切った 2 つの数値で 構成することができます。変数の値の先頭の単語は 1 番目として数えます。 範囲の最初の値を省略した場合、デフォルトの値 1 になります。範囲の 最後の数値を省略した場合、デフォルトの値 `$#\fIname\fR になります。 \fIselector\fR `*' はすべての単語を選択します。2 番目の引数が 省略されるか、あるいは範囲に収まっている場合、範囲が空になっても エラーになりません。 .TP 8 $0 コマンド入力を読み込んでいるファイル名で置換します。ファイル名が 不明の場合エラーになります。 .PP $\fInumber\fR .TP 8 ${\fInumber\fR} `$argv[\fInumber\fR]' と等価です。 .TP 8 $* `$argv' と等価です。これは `$argv[*]' と等価です。 .PD .PP \fBヒストリ置換\fRのところで説明した `:' 修飾子 (`:p' を除く) が、 上記の置換に対して適用できます。2 つ以上の修飾子も適用できます。 (+) \fBヒストリ置換\fR (そちらも参照) と同様に、 変数置換とリテラルのコロンとを分離するために、中括弧が必要なことが あります。修飾子は中括弧の中に置かねばなりません。 .PP 以下の置換は `:' 修飾子で修飾することはできません。 .PP .PD 0 $?\fIname\fR .TP 8 ${?\fIname\fR} \fIname\fR が設定されているときは、文字列 `1' で置き換えられます。 設定されていないときは、文字列 `0' で置き換えられます。 .TP 8 $?0 現在の入力ファイル名がわかっているときは、`1' で置き換えられます。 わかっていないときは、`0' で置き換えられます。 対話型のシェルでは、常に `0' です。 .PP $#\fIname\fR .TP 8 ${#\fIname\fR} \fIname\fR 中の単語の数で置き換えられます。 .TP 8 $# `$#argv' と等価です。(+) .PP $%\fIname\fR .TP 8 ${%\fIname\fR} \fIname\fR の文字数で置き換えられます。(+) .PP $%\fInumber\fR .TP 8 ${%\fInumber\fR} $argv[\fInumber\fR] の文字数で置き換えられます。(+) .TP 8 $? `$status' と等価です。(+) .TP 8 $$ (親) シェルの (10 進数の) プロセス番号で置き換えられます。 .TP 8 $! 本シェルが開始したバックグラウンドプロセスのうち最新のものの (10 進数の) プロセス番号で置き換えられます。(+) .TP 8 $_ 最後に実行したコマンドのコマンド行で置き換えます。(+) .TP 8 $< 標準入力から読み込んだ 1 行を、一切解釈をせずにこの変数と置き換えます。 シェルスクリプト中で、キーボードから読み込む際に用います。(+) \fIcsh\fR は、`$<:q' と等価であるかのように、$< をクォートしますが、 \fItcsh\fR はそうしません。それだけでなく、\fItcsh\fR がユーザの 入力行を待つとき、ユーザは割り込みを入力して、置換されるべき行が 入る列を中断することができます。しかし \fIcsh\fR ではそうすることが できません。 .PD .PP 編集コマンド \fIexpand-variables\fR は、 通常は `^X-$' にバインドされていますが、 これを使って、個々の変数を対話的に展開することができます。 .SS "コマンド置換、ファイル名置換、ディレクトリスタック置換" 組み込みコマンドの引数に対し、残りの置換が選択的に適用されます。 選択的とは、行の中で評価されなかった部分は、これらの展開の対象に ならないという意味です。シェルの内部コマンドでないコマンドに対しては、 コマンド名は引数リストとは別個に置換されます。この置換は最後の方、 入出力リダイレクトを実行したあと、メインシェルの子供の中で生じます。 .SS コマンド置換 ``' で囲まれたコマンドは、コマンド置換を示します。囲まれたコマンドの 出力を、空白、タブ、改行文字のところで別々の単語に分割します。 この出力に変数置換、コマンド置換を実行し、 元の文字列があった場所に置きます。 .PP ニ重引用符 (`"') の内側のコマンド置換は、空白、タブを保存します。 改行文字だけは新しく単語分けを行います。 ただし、どのような場合でも最後の改行文字だけは新しい単語になりません。 ですから、1 行まるまる出力するようなコマンドでも、コマンド置換を 用いると単語の一部だけを生成することができます。 .SS ファイル名置換 単語が `*', `?', `[', `{' のいずれかの文字を含む場合、または先頭が `~' で始まる場合、その単語はファイル名置換 (あるいはグロブ (globbing) と 呼ばれます) の候補になります。このような単語をパターン (グロブパターン) と見なし、そのパターンにマッチするファイル名の リストをアルファベット順で整列したもので置き換えます。 .PP ファイル名マッチの際に、ファイル名の先頭、または `/' の直後の 文字 `.' は、`/' と同様に、明示的にマッチさせなければなりません。 文字 `*' は、空文字列を含むどのような文字列にもマッチします。 文字 `?' は、どのような 1 文字にもマッチします。列 `[...]' は、 括弧の中で指定した文字のいずれかにマッチします。`[...]' 内では、 文字の対を `\-' でつなぐことで、(文字順序で) その 2 文字の範囲にある 文字のいずれかにマッチします。 .PP (+) グロブパターンの中には反転を指定できるものがあります。 列 `[^...]' は、括弧内の文字 / 範囲で指定して\fIいない\fR文字 ちょうど 1 つにマッチします。 .PP `^' により、グロブパターン全体を反転させることもできます。 .IP "" 4 > echo * .br bang crash crunch ouch .br > echo ^cr* .br bang ouch .PP `?', `*', `[]' のいずれも使わないグロブパターンや、 `{}', `~' (あとで説明します) を使うグロブパターンは、 反転しても正しい結果を得られません。 .PP メタ記法 `a{b,c,d}e' は、`abe ace ade' の省略記法です。左から右への 出現順序は保存されます。`/usr/source/s1/{oldls,ls}.c' は、 `/usr/source/s1/oldls.c /usr/source/s1/ls.c' に展開します。 マッチングの結果は下位のレベルで個別に整列され、出現順序は保存 されます。 `../{memo,*box}' は、`../memo ../box ../mbox' などに 展開されるでしょう (ここで、`memo' が `*box' のマッチング結果とともに 整列されていないことに注意してください)。この指定が展開された結果 ファイルが存在しなくてもエラーになりませんが、展開結果を渡した先の コマンドでエラーになる可能性はあります。この指定は入れ子にすることが できます。特殊な場合として、単語 `{', `}', `{}' は変更されずに そのまま渡されます。 .PP ファイル名先頭の文字 `~' は、ホームディレクトリを指します。単独で 用いられた場合、つまり `~' だけの場合、シェル変数 \fBhome\fR の値に 反映されているように、呼び出したユーザの ホームディレクトリに展開されます。`~' の直後に英文字、 数字、または文字 `\-' で構成される名前が続く場合、シェルはその 名前を持つユーザを検索し、そのユーザのホームディレクトリに展開します。 ですから、`~ken' はたとえば `/usr/ken' に展開されます。 また、`~ken/chmach'は、たとえば `/usr/ken/chmach' に展開されます。 文字 `~' の後ろに英文字でもなく `/' でもない文字が続いた場合、 もしくは、文字 `~' が単語の先頭以外に現れた場合、変更されずに そのまま渡されます。ですから、 `setenv MANPATH /usr/man:/usr/local/man:~/lib/man' のようなコマンド では、期待通りのホームディレクトリ置換が起こりません。 .PP `*', `?', `[', `~' のどれかを含むグロブパターン (`^' は付いていてもいなくとも同じ) は、マッチするファイルが ひとつもないとエラーになります。 しかし、グロブパターンのリストのうちのひとつでも マッチすれば (他のものはマッチするものがなくても) エラーになりません (したがって、たとえば `rm *.a *.c *.o' は、カレントディレクトリに `.a', `.c', `.o' で終わるファイルがひとつもないときに限って エラーになります)。 また、シェル変数 \fBnonomatch\fR が設定されている場合、 どれにもマッチしないパターン (あるいはパターンの列) は エラーにならずに無変換のまま残されます。 .PP ファイル名置換を止めるために、シェル変数 \fBnoglob\fR を設定することが できます。編集コマンド \fIexpand-glob\fR は、通常は `^X-*' に結合されて いますが、これを使い、個々のファイル名置換の展開を対話的に 行うことができます。 .SS "ディレクトリスタック置換 (+)" ディレクトリスタックはディレクトリの列であり、0 から番号付けられ、 組み込みコマンド \fIpushd\fR, \fIpopd\fR, \fIdirs\fR (そちらも参照) が使用します。 \fIdirs\fR コマンドを使用すると、ディレクトリスタックを いつでも表示でき、ファイルに書き込むことができ、 ファイルから読み込むことができ、そしてクリアすることが できます。シェル変数 \fBsavedirs\fR, \fBdirsfile\fR に 値を設定することで、ログアウト時のディレクトリスタックの書き込みと、 ログイン時の読み込みを自動的に行うことができます。シェル変数 \fBdirstack\fR を使い、ディレクトリスタックの中を調べることができ、 ディレクトリスタックに任意のディレクトリを設定することができます。 .PP 文字 `=' の後ろに 1 桁以上の数字が続くと、それは ディレクトリスタック中のエントリに展開されます。特殊な場合として、 `=\-' はスタックの最新のディレクトリに展開します。たとえば、 次のようにです。 .IP "" 4 > dirs \-v .br 0 /usr/bin .br 1 /usr/spool/uucp .br 2 /usr/accts/sys .br > echo =1 .br /usr/spool/uucp .br echo =0/calendar .br /usr/bin/calendar .br > echo =\- .br /usr/accts/sys .PP シェル変数 \fBnoglob\fR, \fBnonomatch\fR と編集コマンド \fIexpand-glob\fR はファイル名置換と同様に ディレクトリスタックにも適用されます。 .SS "その他の置換 (+)" ファイル名を含む変換が他にいくつかあります。厳密には先に説明した ものと関係があるわけではありませんが、完全を期するために ここで説明しておきます。変数 \fBsymlinks\fR (そちらも参照) が `expand' に設定されている場合、\fIどのような\fRファイル名も フルパスに展開される可能性があります。クォートすることで この展開を止めることができ、編集コマンド \fInormalize-path\fR を 使用すると要求に応じて展開を止めることができます。また、編集コマンド \fInormalize-command\fR は、PATH にあるコマンドを、 要求に応じてフルパスに展開します。 最後に、\fIcd\fR と \fIpushd\fR は `\-' を以前の作業ディレクトリ (シェル変数 \fBowd\fR と等価) と解釈します。これは置換でもなんでも なく、このコマンドだけで認識される省略記法です。それでも、この表記も クォートすることでこの解釈を止めることができます。 .SS コマンド 次の 3 つのセクションでは、シェルがどのようにコマンドを実行し、 それらの入出力をどのように扱うかを説明します。 .SS 単純コマンド、パイプライン、コマンド列 単純コマンドは、単語の列であり、 その最初の単語が実行されるコマンドです。 `|' 文字によって区切られた一連の単純コマンドは パイプラインを形成します。 パイプライン内のそれぞれのコマンドの出力は次のコマンドの 入力に接続されます。 .PP 単純コマンドとパイプラインは `;' 文字を使って コマンド列に組み入れることができ、並んでいる順に実行されます。 コマンドとパイプラインは `||' や `&&' でコマンド列に 組み込むこともでき、C 言語で扱われるのと同様に、 最初のコマンドが失敗した時にだけ (`||'の場合)、 あるいは成功した時にだけ (`&&'の場合)、次のコマンドが実行されます。 .PP 単純コマンド、パイプライン、またはコマンド列は、 括弧 `()' を使って単純コマンドを形成することができ、 パイプラインやコマンド列の一部として使用できます。 コマンド、パイプライン、またはコマンド列の後に `&' を 置いて実行すると、そのコマンドの終了を待たずに 次のコマンドを実行できます。 .SS "組み込みコマンド、非組み込みコマンドの実行" 組み込みコマンドは、シェルの中で実行されます。 パイプラインの構成要素の最後以外が組み込みコマンドのとき、 パイプラインは、サブシェル内で実行されます。 .PP 括弧で括られたコマンドは、常にサブシェル内で実行されます。 .IP "" 4 (cd; pwd); pwd .PP これは、現在のディレクトリを移動することなくく\fBホーム\fR ディレクトリを表示 (その後に現在のディレクトリを表示) し、 その一方、 .IP "" 4 cd; pwd .PP この場合は\fBホーム\fRディレクトリに移動します。 括弧で括られたコマンドは、たいてい \fIcd\fR が現在のシェルに 影響するのを防ぐために使用します。 .PP 実行するコマンドが組み込みコマンドでないことが判明すると、 シェルはそのコマンドを \fIexecve\fR(2) を通じて実行しようとします。 環境変数 \fBpath\fR 内の各語は、シェルがコマンドを検索する ディレクトリを指定します。 \fB\-c\fR, \fB\-t\fR オプションのいずれも指定されていない場合、 これらのディレクトリ内の名前を内部テーブルでハッシュし、 そのコマンドが存在する可能性のあるディレクトリだけで \fIexecve\fR(2) の実行を試みます。 このことは、検索パス内のディレクトリの数が多い場合に、 コマンドの位置確定を大いに高速化します。 この機構が (\fIunhash\fR によって) オフにされ、 シェルに \fB\-c\fR または \fB\-t\fR のオプションが与えられるか、 それぞれの \fBpath\fR のディレクトリ構成要素のいずれかが `/' で始まっていない場合、シェルは現在の作業ディレクトリと 与えられたコマンド名を結合して実行するファイルのパス名を形成します。 .PP ファイルに実行許可であってシステムが実行可能ではない場合、 (例 : 実行可能バイナリ、インタプリンタを指定したスクリプト ではないとき)、それをシェルコマンドを含むファイルであるとみなし、 新しいシェルを起動してそのファイルを読み込みます。 \fIシェル\fRの特殊なエイリアスで、シェル自体ではなくインタプリタを 指定するように設定することもできます。 .PP 慣習的な‘#!' スクリプトインタプリタを理解しないシステム上では、 シェルはそれをエミュレートするようにコンパイルされます ; シェル変数 \fBversion\fR を参照してください。 その場合、シェルがファイルの最初の行をチェックし、それが `#!\fIinterpreter\fR \fIarg\fR ...' の形式であるかどうかを 確認します。 この形式であれば、シェルは与えられた\fI引数\fRとともに \fIインタプリタ\fRを起動して、そのファイルを標準入力に供給します。 .SS 入出力 コマンドの標準入力と標準出力は以下の文法に従って リダイレクトすることができます: .PP .PD 0 .TP 8 < \fIname ファイル \fIname\fR (変数、コマンド、ファイル名展開を受けます) をオープンし、コマンドの標準入力とします。 .TP 8 << \fIword \fIword\fR と同一の行が出現するまで、シェルの入力を読み込みます。 \fIword\fR は変数、ファイル名、コマンド置換を受けません。 シェル入力の行は読み込まれるとすぐ、置換を行う前に \fIword\fR と比較されます。\fIword\fR に `\e', `"', `'', ``' のクォートが出現しなければ、行の中でコマンド置換が実行されます。 この置換を抑制するために、`\e' によって `$', `\e', ``' をクォートすることができます。コマンド置換において、 すべての空白、タブ、改行は保存されますが、最後の改行は削除されます。 読み込んだ行はすべてテンポラリファイルに保存され、 コマンドの標準入力として用いられます。 .PP > \fIname .br >! \fIname .br >& \fIname .TP 8 >&! \fIname ファイル \fIname\fR を標準出力として用います。 ファイルが存在しなければ作成されます。すでにファイルが存在すれば その内容は切り捨てられ、以前の内容は失われます。 .RS +8 .PD .PP シェル変数 \fBnoclobber\fR がセットされている場合、 ファイルが存在しないか文字型特殊ファイル (端末や `/dev/null' のような) でなければ エラーになります。これは、すでに存在するファイルを間違えて 削除してしまうことを防止します。`!' を用いた形式を使うと、 この検査を抑制することができます。 .PP `&' を用いた形式では、標準出力とともに診断メッセージ 出力もファイルへリダイレクトされます。 \fIname\fR は、`<' の 入力ファイル名の場合と同様の展開を受けます。 .PD 0 .RE .PP >> \fIname .br >>& \fIname .br >>! \fIname .TP 8 >>&! \fIname `>' と同様に、ファイル \fIname\fR を標準出力として用います。 ただし、コマンドの出力はファイルへ追加されます。 変数 \fBnoclobber\fR がセットされている場合、ファイルが \fI存在しなければ\fRエラーとなります。 `!' を用いることで、この検査を抑制することができます。 .PD .PP コマンドは、シェルが起動されたときの環境を引き継ぎます。 ただしこの環境は入出力のパラメータによって変更されますし、 コマンドがパイプラインの中にあった場合も変更されます。 したがって、以前のいくつかのシェルとは異なり、シェルの コマンドファイルから起動されたコマンドは、デフォルトでは そのコマンドのテキストへアクセスできません。かわりに それらのコマンドは、シェルのもともとの標準入力をそのまま 受け継ぎます。 シェルスクリプトの内部で、コマンドにあらかじめ決まった (inline) データを渡す場合には、標準入出力の形式ではなく、 `<<' の機構を使うことができます。 このように制限することにより、シェルコマンドスクリプトを パイプラインの一部として用いることができます。 バックグラウンドで実行されているコマンドの標準入力も \fI/dev/null\fR 等にリダイレクトされること\fIなく\fR、 シェルの標準入力をそのまま受け継いでいます。 もし標準入力が端末で、コマンドが端末から読み込もうとした場合、 そのプロセスはブロックされ、シェルはユーザにそのことを通知します (\fBジョブ\fRの項を参照)。 .PP 診断メッセージ出力もパイプにリダイレクトすることが できます。単に `|' のかわりに `|&' を使います。 .PP シェルは、標準出力のリダイレクトなしで、診断メッセージ出力を リダイレクトできなくなります。 そのため、`(\fIコマンド\fR > \fI出力ファイル\fR) >& \fIエラーファイル\fR' は、無難な予備手段としてされてます。 \fI出力ファイル\fR、\fIエラーファイル\fRのどちらかが、 端末に出力を送るための `/dev/tty' です。 .SS 特徴 ここではシェルがどのようにコマンドラインを受け入れ、 解釈し、実行するかを説明しました。 次は、便利な特徴について説明します。 .SS "制御フロー" このシェルには、 コマンドファイル (シェルスクリプト) や (制約はあるものの便利な) 端末からの入力 処理の流れを制御するために使用できる 多くのコマンドを備えています。 これらのコマンドは、 入力の再読み込みや読み飛ばしを行うため シェルを強制的に操作します。 これらの実装のために、幾つかのコマンドには制限があります。 .PP \fIforeach\fR、\fIswitch\fR、\fIwhile\fR 文は、 \fIif\fR 文の \fIif-then-else\fR 形式と同様に、 後で示すように入力行の単独の単純コマンド中に 主要なキーワードが現れることを要求します。 .PP シェルの入力がシーク可能でない場合は、 ループが読み込まれると常に入力をバッファし、 この内部バッファをシークすることでループによる 再読み込みを可能にします。 (これを許可した結果、 後方へ向かう \fIgoto\fR がシーク可能でない入力についても 成功することになります。) .SS 式 組み込みコマンドの \fIif\fR, \fIwhile\fR, \fIexit\fR は 共通した文法を持った式を使います。 式には、次の 3 つのセクションの中で説明される 任意の演算子を含めることができます。 \fI@\fR 組み込みコマンド (そちらも参照) 自体は、 文法を区切るので注意してください。 .SS "論理演算子, 算術演算子, 比較演算子" これらの演算子は C の演算子と 同じ優先順位となっています。 演算子には、次のものがあります。 .IP "" 4 || && | ^ & == != =~ !~ <= >= .br < > << >> + \- * / % ! ~ ( ) .PP ここに挙げた演算子は右側のものほど優先順位が高くなっています。 ただし、`==' `!=' `=~' `!~' の 4 つ、`<=' `>=' `<' `>' の 4 つ、 `<<' `>>' の 2 つ、`+' `-' の 2 つ、`*' `/' `%' の 3 つは それぞれ同一のグループに所属しており、同じグループに所属している 演算子の優先順位は同じレベルとなっています。 演算子 `==' `!=' `=~' `!~' は引数を文字列として比較します。 他の演算子はすべて数値で比較します。 演算子 `=~' `!~' は `!=' `==' と似ていますが、 左側のオペランドにマッチするグロブパターン (\fBファイル名置換\fRを参照) を右側に置くことが異なります。 必要なものに対してだけパターンマッチを行うので、 シェルスクリプト中における \fIswitch\fR 組み込みコマンドの使用の必要を減らします。 .PP `0' で始まる文字列は 8 進数とみなされます。 空の文字列や引数がぬけているものは `0' とみなされます。 すべての式の結果は 10 進数で表される文字列になります。 特に、式の構成要素が同一の単語中に複数個現れることはないと いうことに注意してください。 例外として、パーサに文法的に特別な意味を持つ式の構成要素 (`&' `|' `<' `>' `(' `)') が隣りにくることは構いません。 ただし、これらは空白で区切られるべきです。 .SS "コマンド終了ステータス" 式の中でコマンドを実行することができ、 式を中括弧 (`{}') で囲むと 終了ステータスが返されます。 中括弧は、コマンドの単語から空白で区切ることを 忘れないでください。 コマンドの実行が成功した場合は、 真 (たとえば `1') を返します。 コマンドが 0 のステータスで終了した場合、 または実行に失敗した場合は、偽 (たとえば `0') を返します。 もっと詳しいステータスの情報が必要な場合は、 コマンドを式の外部で実行し、 シェル変数 \fBstatus\fR を調べてください。 .SS "ファイル問い合わせ演算子" これらの演算子のうち幾つかは ファイルと関連するオブジェクトについて 真/偽の判定を行います。 これらは \fB\-\fIop file\fR の形式です。 \fIop\fR は次のうちのどれか 1 つです。 .PP .PD 0 .RS +4 .TP 4 .B r 読み取りアクセス .TP 4 .B w 書き込みアクセス .TP 4 .B x 実行アクセス .TP 4 .B X パス中にある実行可能ファイルやシェル組み込みコマンド。 たとえば `\-X ls' と `\-X ls\-F' は一般に真であり、 `\-X /bin/ls' はそうではない (+) .TP 4 .B e 存在 .TP 4 .B o 所有者 .TP 4 .B z サイズ 0 .TP 4 .B s サイズが 0 でない (+) .TP 4 .B f 通常ファイル .TP 4 .B d ディレクトリ .TP 4 .B l シンボリックリンク (+) * .TP 4 .B b ブロック型特殊ファイル (+) .TP 4 .B c キャラクタ型特殊ファイル (+) .TP 4 .B p 名前付きパイプ (fifo) (+) * .TP 4 .B S ソケット型特殊ファイル (+) * .TP 4 .B u set-user-ID ビットがセットされている (+) .TP 4 .B g set-group-ID ビットがセットされている (+) .TP 4 .B k スティッキービットがセットされている (+) .TP 4 .B t \fIfile\fR (これは数字でなければならない) は 端末デバイスに対してオープンしている ファイル記述子である (+) .TP 4 .B R migrate されている (convex システムのみ有効) (+) .TP 4 .B L 多重演算子の中でこの演算子の後にくる演算子は、 シンボリックリンクが指されているファイルではなく、 シンボリックリンクそのものに適用される (+) * .RE .PD .PP \fIfile\fR はコマンドと展開されたファイル名で、 指定された実ユーザに対する関係があるかどうか テストします。 \fIfile\fR が存在していない場合、 もしくはアクセスできない場合、 `*' で示した演算子については、 指定のファイルタイプが現在のシステムに 存在していなければ すべての問い合わせは偽 (たとえば `0') を返します。 .PP s true これらの演算子は、簡潔にするために連結することができます。 `\-\fIxy file\fR' は `\-\fIx file\fR && \-\fIy file\fR' と等価です。(+) たとえば `\-fx' は 通常の実行可能ファイルに対しては真 (`1' を返す) ですが、 ディレクトリに対してはそうではありません。 .PP s \fBL\fR は多重演算子の中で使用できます。 この演算子の後にくる演算子は、 シンボリックリンクが指されているファイルではなく、 シンボリックリンクそのものに適用されます。 たとえば `\-lLo' は 呼び出しユーザが所有しているリンクに対しては真です。 \fBLr\fR, \fBLw\fR, \fBLx\fR は リンクに対しては常に真で、 リンクでないものに対しては偽です。 \fBL\fR は 多重演算子の中で最後の演算子になった場合、 異なった意味を持ちます。 以下を参照してください。 .PP s \fIfile\fR に渡すべき演算子と、そうでない演算子 (たとえば \fBX\fR と \fBt\fR) を連結することは可能ですが、 実用的ではなく、しばしば間違いの元になります。 特に、ファイルでない演算子に \fBL\fR をつけると、 妙な結果になります。 .PP 他の演算子は他の情報、つまり単なる `0' や `1' だけ ではない情報を返します。(+) これらは前に示したのと同じ書式になります。 \fIop\fR は次のうちのどれか 1 つです。 .PP .PD 0 .RS +4 .TP 8 .B A エポックからの秒数で表した、最後にファイルにアクセスした時間 .TP 8 .B A: \fBA\fR と同じで、タイムスタンプの書式。 例: `Fri May 14 16:36:10 1993' .TP 8 .B M 最後にファイルを変更した時間 .TP 8 .B M: \fBM\fR と同じで、タイムスタンプの書式 .TP 8 .B C 最後に inode を変更した時間 .TP 8 .B C: \fBC\fR と同じで、タイムスタンプの書式 .TP 8 .B D デバイス番号 .TP 8 .B I inode 番号 .TP 8 .B F \fIdevice\fR:\fIinode\fR の形式で表した 複合 \fBf\fRile 識別子 .TP 8 .B L シンボリックリンクが指しているファイルの名前 .TP 8 .B N (ハード) リンクの数 .TP 8 .B P 先頭に 0 がついていない 8 進数で表したパーミッション .TP 8 .B P: \fBP\fR と同じで、先頭に 0 がつく .TP 8 .B P\fImode `\-P \fIfile\fR & \fImode\fR' と等価。 たとえば、`\-P22 \fIfile\fR' は \fIfile\fR のグループと他者が書き込み可であれば `22' を、 グループのみであれば `20' を、何もなければ `0' を返す。 .TP 8 .B P\fImode\fB: \fBP\fImode\fB:\fR と同じで、先頭に 0 がつく .TP 8 .B U 数値で表したユーザ ID .TP 8 .B U: ユーザ名、ユーザ名が見つからなかった場合は数値で表したユーザ ID .TP 8 .B G 数値で表したグループ ID .TP 8 .B G: グループ名、グループ名が見つからなかった場合は数値で表したグループ ID .TP 8 .B Z バイト数で表したサイズ .RE .PD .PP これらの演算子のうち 1 つだけ多重演算子の中に 現れることを許されていますが、必ず最後につける必要があります。 ただし、\fBL\fR は多重演算子の中の 最後とそれ以外の箇所では違った意味になるので注意してください。 なぜなら、`0' はこれらの演算子の多くにとって正当な返り値のためです。 これらが失敗した場合、`0' を返しません。 たいていの場合、`\-1' を返し、\fBF\fR は `:' を返します。 .PP このシェルが POSIX を定義してコンパイルされている (シェル変数 \fBversion\fR を参照) 場合、ファイル問い合わせの結果は、 \fIaccess\fR(2) システムコールの結果に基づいたものではなく、 ファイルの許可ビットに基づいたものになります。 たとえば、 通常は書き込み可であるが 読み取り専用でマウントされたファイルシステム上にある ファイルを \fB\-w\fR で検査した場合、 POSIX シェルでは成功し、 非 POSIX シェルでは失敗することになります。 .PP ファイル問い合わせ演算子は \fIfiletest\fR 組み込みコマンド (そちらも参照) と等価になり得ます。(+) .SS ジョブ シェルはパイプラインの各々に対し\fIジョブ\fRを 1 つずつ関連付けます。 シェルは、現在実行中のジョブの一覧表を保持しており、 これは、\fIjobs\fR コマンドによって表示することができます。 ジョブには整数の番号が割り当てられます。 ジョブが `&' を用いて非同期に起動された場合、 シェルは以下のような出力を行います: .IP "" 4 [1] 1234 .PP これは、非同期に起動したジョブがジョブ番号 1 であり、 プロセス ID が 1234 である (トップレベルの) プロセスを 1 つ持っていることを示します。 .PP もし、あるジョブを実行中に他のことをしたくなった場合、サスペンドキー (通常 ^Z) を押すことにより実行中のジョブに STOP シグナルを送信することができます。 通常、シェルはそのジョブが一時停止した (Suspended) ことを出力し、 プロンプトを表示します。 シェル変数の \fBlistjobs\fR が設定されていると、 組み込みコマンドの \fIjobs\fR のようにすべてのジョブがリストされます。 もしそれが `long' と設定されているとリストは `jobs \-l' のような 長い形式になります。 ここで、一時停止したジョブの状態を操作することができます。 つまり、\fIbg\fR コマンドにより停止したプロセスを ``バックグラウンド'' で走行させたり、他のコマンドを実行してから、 停止していたジョブを \fIfg\fR コマンドにより ``フォアグラウンド'' で再実行させることなどができます。 (編集コマンドの \fIrun-fg-editor\fR も参照してください。) `^Z' は即座に効力を発揮し、割り込みと同様に、それまで待たされていた 出力とまだ読み込まれていない入力は捨てられます。 組み込みコマンドの \fIwait\fR はすべてのバックグラウンドのジョブが 終了するまでシェルを待機状態にさせます。 .PP `^]' キーは遅延サスペンドシグナルを現在のジョブに送信します。 この場合はプログラムが \fIread\fR(2) によって読み込もうとした時点で STOP シグナルが送信されます。 これは、実行中のジョブに対していくつかの入力を先に入力しておき、 先行入力を読み終えた時点でジョブを停止させたいときに便利です。 \fIcsh\fR(1) ではこの機能は `^Y' キーに割り当てられていました。 \fItcsh\fR では `^Y' は編集コマンドです。(+) .PP バックグラウンドで実行しているジョブが端末からの入力を試みた場合、 そのジョブは停止します。通常、バックグラウンドジョブが端末に 出力することは可能ですが、これはコマンド `stty tostop' により 禁止することができます。もしこの tty オプションを指定したなら、 バックグラウンドで実行しているジョブは、端末から入力を試みたときと 同様に、端末に出力を試みたときに停止します。 .PP シェルでジョブを参照するにはいくつかの方法があります。文字 `%' は ジョブ名を表すのに用いられます。番号 1 のジョブを参照する場合は `%1' とします。単にジョブ名を入力した場合、そのジョブは フォアグラウンドに移動されます。すなわち `%1' は `fg %1' と等価で、 ジョブ 1 をフォアグラウンドに移行します。同様に `%1 &' は、 ちょうど `bg %1' と同じようにのジョブ 1 をバックグラウンドで 再開させます。ジョブはそのジョブを起動したときにタイプされた文字列の 先頭部分によって参照することもできます。ただしこの先頭部分は あいまいでない必要があります。すなわち `%ex' は、`ex' という文字列で 始まる名前のサスペンドされたジョブが 1 つしかない場合に限り、 サスペンドされた \fIex\fR(1) のジョブを再開します。 文字列 \fIstring\fR を含むジョブが 1 つしかない場合、`%?\fIstring\fR' と 入力することでそれを指定することもできます。 .PP シェルは現在のジョブと直前のジョブを覚えています。 ジョブに関係する出力で、`+' 記号が付加されているのが現在のジョブ、 `\-' 記号が付加されているのが直前のジョブです。 `%+', `%' と (\fIヒストリ\fR機構の文法との類似から) `%%' は すべて現在のジョブ、`%\-' は直前のジョブを参照するための省略形です。 .PP ある種のシステムではジョブ制御機構を利用するために \fIstty\fR(1) の オプション `new' を設定しておく必要があります。 ジョブ制御機構は `新型の' 端末ドライバの実装の上に構築されているからで、 新型の端末ドライバによりジョブを停止させるための割り込み文字を キーボードから入力できるようになるからです。 新型の端末ドライバのオプション設定については \fIstty\fR(1) と 組み込みコマンドの \fIsetty\fR を参照してください。 .SS "状態通知" シェルは、プロセスが状態の変化を起こすとすぐにそれを検知します。 通常はプロンプトが表示される直前にのみ、あるジョブが停止して それ以上処理が進まなくなったことを通知します。これはユーザの仕事を 邪魔しないようにするためです。しかしながら、シェル変数 \fBnotify\fR を 設定することにより、シェルにバックグラウンドジョブの状態が 変化したことをただちに通知させることができます。また、 シェルコマンド \fInotify\fR により、特定のジョブの状態の変化をただちに 通知させるようにマークすることもできます。引数なしの \fInotify\fR は 現在のプロセスに対してマークをつけます。バックグラウンドジョブの 開始直後に単に `notify' と打つとそのジョブをマークします。 .PP 停止したジョブが存在する状態でシェルを終了しようとすると `You have stopped jobs.' という警告を受けます。このとき \fIjobs\fR コマンドによりどのジョブが停止中であるのかを 確認することができます。警告を受けた直後に \fIjobs\fR コマンドで 確認した場合と、警告を受けた直後に再度シェルを終了させようとした 場合には、シェルは 2 度目の警告を行わずに停止中のジョブを 終了させてからシェルを終了します。 .SS "自動イベント、定期イベント、時刻指定イベント (+)" シェルの ``ライフサイクル'' において、いろいろな時間に自動的に コマンドの実行と他のアクションを行うさまざまな方法が用意されています。 それらをここに要約し、詳しくは \fB組み込みコマンド\fR、\fB特別なシェル変数\fR、\fB特別なエイリアス\fRの 適切な場所で説明します。 .PP 組み込みコマンドの \fIsched\fR はコマンドをイベントの予定表に置き、 指定された時刻にシェルによって実行されるようにします。 .PP \fB特別なエイリアス\fRとして \fIbeepcmd\fR, \fIcwdcmd\fR, \fIperiodic\fR, \fIprecmd\fR, \fIpostcmd\fR, \fIjobcmd\fR があり、それぞれ シェルがベルを鳴らす時、作業ディレクトリが変わる時、 \fBtperiod\fR 分毎、各プロンプトの前、各コマンドの実行前、 各コマンドの実行後、ジョブの起動時またはフォアグラウンド移行時に 実行させたいコマンドを設定できます。 .PP シェル変数の \fBautologout\fR を使って、指定した分数の休止後に ログアウトまたはシェルをロックするように設定できます。 .PP シェル変数の \fBmail\fR を使って、定期的に新しいメールを チェックするように設定できます。 .PP シェル変数の \fBprintexitvalue\fR を使って、0 以外のステータスで 終了したコマンドの終了ステータスを表示するように指定できます。 .PP シェル変数の \fBrmstar\fR を使って、`rm *' が入力されたときに ユーザに間違いないかどうか確認を求めるように指定できます。 .PP シェル変数の \fBtime\fR を使って、指定した秒数より多く CPU 時間を 使ったプロセスの終了後に組み込みコマンドの \fItime\fR を実行するように 設定できます。 .PP シェル変数の \fBwatch\fR と \fBwho\fR を使って、指定したユーザが ログインまたはログアウトした時にレポートするように設定できます。 また組み込みコマンドの \fIlog\fR でいつでもそれらのユーザに ついてのレポートを得られます。 .SS "固有言語システムのサポート (+)" シェルは 8 ビットクリーンなので (そのようにコンパイルされていれば。シェル変数の \fBversion\fR を 参照)、それを必要とする文字セットをサポートします。 NLS サポートはシェルがシステムの NLS を使うようにコンパイルされているか どうかによって異なります (再び、\fBversion\fR を参照)。 どちらの場合でも 7 ビット ASCII がデフォルトの文字分類 (たとえばそれらの文字は表示可能) であり、そして順序づけです。 環境変数の \fBLANG\fR または \fBLC_CTYPE\fR を変更すると、 これらの点について変化の有無がチェックされます。 .PP システムの NLS を使う場合には、文字の適切な分類と順序づけを決定するために \fIsetlocale\fR(3) 関数が呼び出されます。この関数は典型的には 環境変数の \fBLANG\fR と \fBLC_CTYPE\fR を調べます。 より詳細についてはシステムのドキュメントを参照してください。 システムの NLS を使わない場合には、シェルは ISO 8859-1 文字セットが 使われていると仮定することでシミュレートします。 変数 \fBLANG\fR と \fBLC_CTYPE\fR のいずれかが設定されていても、 それらの値を無視します。 シミュレートされた NLS では順序づけに影響しません。 .PP 加えて、本物とシミュレートされた NLS の両方で、\e200\-\e377 の範囲、 つまり M-\fIchar\fR でバインドされているすべての表示可能文字は、 自動的に \fIself-insert-command\fR に再バインドされます。 対応する escape-\fIchar\fR へのバインドは、もしあればそのまま残ります。 これらの文字は環境変数の \fBNOREBIND\fR が設定されていれば 再バインドされません。この機能はシミュレートされた NLS や すべてが ISO 8859-1 であると仮定した原始的な本物の NLS で有効でしょう。 そうでなければ、\e240\-\e377 の範囲の M-\fIchar\fR へのバインドは 事実上解除されます。この場合でも、もちろん \fIbindkey\fR で明示的に 関連するキーに再バインドする事は可能です。 .PP 未知の文字 (つまり表示可能でも制御文字でもないような文字) は \ennn のような形式で表示されます。tty が 8 ビットモードになっていない 場合は、ASCII に変換して強調表示モードを使うことで別の 8 ビット文字が 表示されます。シェルは tty の 7/8 ビットモードを変更することはなく、 ユーザによる 7/8 ビットモードの変更に従います。NLS 利用者 (または メタキーを利用したい利用者) は、たとえば \fI~/.login\fR ファイルで 適切に \fIstty\fR(1) コマンドを呼び出すことで、 明示的に tty を 8 ビットモードに設定する必要があるかもしれません。 .SS "OS 固有機能のサポート (+)" 個々のオペレーティングシステムで提供されている機能をサポートするために、 多くの新しい組み込みコマンドが提供されています。すべて \fB組み込みコマンド\fRセクションで詳細に説明されています。 .PP TCF をサポートするシステム (aix-ibm370, aix-ps2) では、 \fIgetspath\fR と \fIsetspath\fR でシステム実行パスを取得、設定し、 \fIgetxvers\fR と \fIsetxvers\fR で試験バージョンプリフィックスを取得、 設定して、\fImigrate\fR でプロセスをサイト間で移動させます。 組み込みコマンドの \fIjobs\fR は各ジョブが実行されているサイトを表示します。 .PP Domain/OS では、\fIinlib\fR で共有ライブラリを現環境に追加し、 \fIrootnode\fR で rootnode を変更し、\fIver\fR で systype を変更します。 .PP Mach では、\fIsetpath\fR が Mach の \fIsetpath\fR(1) と等価です。 .PP Masscomp/RTU と Harris CX/UX では、\fIuniverse\fR で universe を設定します。 .PP Harris CX/UX では、\fIucb\fR か \fIatt\fR によって指定した universe で コマンドを走らせます。 .PP Convex/OS では、\fIwarp\fR で universe を表示または設定します。 .PP 環境変数の \fBVENDOR\fR, \fBOSTYPE\fR, \fBMACHTYPE\fR は、 シェルが自身が実行されていると考えているシステムの、それぞれ ベンダー、オペレーティングシステム、マシンタイプ (マイクロプロセッサのクラスまたはマシンのモデル) を表示します。 これはいろいろなタイプのマシン間でホームディレクトリを共有する場合に 特に便利です。利用者はたとえば各自の \fI~/.login\fR 中で .IP "" 4 set path = (~/bin.$MACHTYPE /usr/ucb /bin /usr/bin .) .PP とし、各マシン用にコンパイルされた実行形式を適切なディレクトリに 置くことができます。 .PP シェル変数の \fBversion\fR は、どのオプションを選択して シェルがコンパイルされたかを表示します。 .PP 組み込みの \fInewgrp\fR、シェル変数の \fBafsuser\fR と \fBecho_style\fR、そしてシステムに依存するシェルの入力ファイル (\fBファイル\fRを参照) の位置にも注意してください。 .SS "シグナル処理" ログインシェルは \fI~/.logout\fR ファイルを読んでいる間は 割り込みを無視します。 シェルは起動時に \fB\-q\fR の指定が無ければ QUIT シグナルを無視します。 ログインシェルは TERM シグナルを捕捉しますが、非ログインシェルは TERM シグナルへの挙動を親から継承します。 他のシグナルについては親からシェルに継承された値を持っています。 .PP シェルスクリプトでは、シェルの INT と TERM シグナルの扱いを \fIonintr\fR で制御できます。そして HUP の扱いを \fIhup\fR と \fInohup\fR で制御できます。 .PP シェルは HUP で終了します (シェル変数の \fBlogout\fR も参照)。 デフォルトでは、シェルの子供たちもそうしますが、シェルは終了時に HUP を子供たちに送りません。\fIhup\fR はシェルが終了時に 子供に HUP を送るようにし、\fInohup\fR は子供が HUP を無視するように 設定します。 .SS "端末管理 (+)" シェルは 3 つの異なる端末 (``tty'') モードの設定を使います。それらは 編集時に使う `edit'、文字リテラルをクォートする場合に使う `quote'、 コマンド実行時に使う `execute' です。 シェルは各モードでいくつかの設定を一定に保つので、 tty を混乱状態にして終了するコマンドがシェルに干渉することはありません。 シェルは tty のスピードとパディングの変更にも対応します。 一定に保たれる tty モードのリストは組み込みの \fIsetty\fR で 取得、設定できます。エディタは CBREAK モード (または同等のモード) を 使いますが、先行入力された文字はいつでも受け付けられます。 .PP \fIechotc\fR, \fIsettc\fR, \fItelltc\fR コマンドを使って、 コマンドラインから端末のケーパビリティを操作、デバッグすることができます。 .PP SIGWINCH か SIGWINDOW をサポートするシステムでは、シェルは ウィンドウのリサイズに自動的に適応して、環境変数の \fBLINES\fR と \fBCOLUMNS\fR が設定されていれば値を補正します。 環境変数の \fBTERMCAP\fR が li# と co# のフィールドを含んでいると、 シェルは新しいウィンドウサイズを反映するようにそれらを補正します。 .SH 参照 このマニュアルの以下のセクションでは使用可能なすべての \fB組み込みコマンド\fR、\fB特別なエイリアス\fR、 \fB特別なシェル変数\fRについて説明します。 .SS "組み込みコマンド" .TP 8 .B %\fIjob 組み込みコマンド \fIfg\fR と同義です。 .TP 8 .B %\fIjob \fB& 組み込みコマンド \fIbg\fR と同義です。 .TP 8 .B : 何もしません。常に成功します。 .PP .B @ .br .B @ \fIname\fB = \fIexpr .br .B @ \fIname\fR[\fIindex\fR]\fB = \fIexpr .br .B @ \fIname\fB++\fR|\fB-- .PD 0 .TP 8 .B @ \fIname\fR[\fIindex\fR]\fB++\fR|\fB-- 最初の形式は、すべてのシェル変数の値を表示します。 .PD .RS +8 .PP 2 番目の書式は、\fIname\fR に値 \fIexpr\fR を設定します。 3 番目の書式は、値 \fIexpr\fR を \fIname\fR の \fIindex\fR 番目の要素に 定義します。 \fIname\fR とその \fIindex\fR 番目の要素の両方が既に存在していなければ なりません。 .PP \fIexpr\fR は C と同様に、`*', `+'のような演算子を含むことがあります。 もし \fIexpr\fR が `<', `>', `&', `' を含むのであれば、少なくとも \fIexpr\fR のその部分は `()' の中に書かれる必要があります。 \fIexpr\fR の書式は、以下の \fBExpressions\fR で説明されるものとは 一切関係がないことに注意してください。 .PP 4 番目、5 番目の書式は \fIname\fR またはその \fIindex\fR 番目の要素を インクリメント (`++') またはデクリメント (`\-\-') します。 .PP `@' と \fIname\fR の間の空白は必須です。\fIname\fR と `=' の間、また `=' と \fIexpr\fR の間の空白はオプションです。\fIexpr\fR の要素は空白によって 区切られていなければなりません。 .RE .PD .TP 8 .B alias \fR[\fIname \fR[\fIwordlist\fR]] 引数がなければ、すべてのエイリアスを表示します。 \fIname\fR を与えると、そのエイリアスの内容を表示します。 \fIname\fR と \fIwordlist\fR を与えると、 \fIwordlist\fR を \fIname\fR のエイリアスとして定義します。 \fIwordlist\fR は、エイリアスされるコマンドとファイル名です。 \fIname\fR は `alias' または `unalias' であってはなりません。 組み込みコマンド \fIunalias\fR についても参照してください。 .ig \" Obsolete tcsh command .TP 8 .B aliases \fR[\fIfile\fR] (+) 引数がなければ、すべてのエイリアスを表示します。 \fIfile\fR を与えると、エイリアスのリストを \fIfile\fR から 1 行に ひとつずつ読み込みます。 後方互換性のためだけに残されています。 .. .TP 8 .B alloc 動的に取得しているメモリのうちの使用量と空き容量を表示します。 何らかの引数を与えるとブロックサイズごとの使用中 / 空きブロックの数を 表示します。このコマンドの出力はシステムによって大きく異なります。 VAX 以外のシステムでは、異なるメモリ管理を行っているかもしれない からです。 .TP 8 .B bg \fR[\fB%\fIjob\fR ...] 指定したジョブ (引数がなければ現在のジョブ) をバックグラウンドに 移動します。もしそれらが停止していれば再開されます。\fIjob\fR は 以下の \fBJobs\fR で説明するように番号、 文字列、`', `%', `+', `\-' で構成されます。 .ig \" Obsolete tcsh command .TP 8 .B bind \fR[\fBdefaults\fR|\fBemacs\fR|\fBvi\fR|\fIkey\fR|\fIkey command\fR] (+) An older version of \fIbindkey\fR, retained for only downward compatibility. Without arguments, lists all bound keys and the editor command to which each is bound. `bind defaults', `bind emacs' and `bind vi' are equivalent to `bindkey \-d', `bindkey \-e' and `bindkey \-v'. With \fIkey\fR, lists the editor command to which \fIkey\fR is bound. With \fIkey\fR and \fIcommand\fR, binds the editor command \fIcommand\fR to \fIkey\fR. .IP "" 8 \fIkey\fR may be a literal character, a control character written ^\fIcharacter\fR (e.g., `^A'), a meta character written M-\fIcharacter\fR (e.g., `M-A') or a function key written F-\fIstring\fR (e.g., `F-foo'). For the function key form to work, the function key prefix must be bound to \fIsequence-lead-in\fR and \fIstring\fR must not contain that prefix. \fIbindkey\fR の古いバージョンで、後方互換性のためだけに 残されています。引数がなければ、バインドされているキーと、 その編集コマンドの一覧を表示します。 `bind defaults', `bind emacs', `bind vi' は `bindkey \-d', `bindkey \-e', `bindkey \-v' と同じ意味を持ちます。 引数に \fIkey\fR を与えると、\fIkey\fR にバインドされている 編集コマンドの一覧を表示します。 引数に \fIkey\fR と \fIcommand\fR を与えると、編集コマンド \fIcommand\fR を \fIkey\fR にバインドします。 .IP "" 8 \fIkey\fR は通常の文字、 ^\fIcharacter\fR (たとえば `^A')のように表記される コントロールキャラクタ、M-\fIcharacter\fR (たとえば `M-A') の ように表記されるメタキャラクタ、F-\fIstring\fR (たとえば `F-foo') のように表記されるファンクションキャラクタのいずれかです。 ファンクションキーを動作するようにするには、 ファンクションキープリフィックスが \fIsequence-lead-in\fR にバインドされていて、 \fIstring\fR がそのプリフィックスを含んでいないことが必要です。 .. .PP .B bindkey \fR[\fB\-l\fR|\fB\-d\fR|\fB\-e\fR|\fB\-v\fR|\fB\-u\fR] (+) .br \fBbindkey \fR[\fB\-a\fR] [\fB\-b\fR] [\fB\-k\fR] [\fB\-r\fR] [\fB\-\-\fR] \fIkey \fR(+) .PD 0 .TP 8 \fBbindkey \fR[\fB\-a\fR] [\fB\-b\fR] [\fB\-k\fR] [\fB\-c\fR|\fB\-s\fR] [\fB\-\-\fR] \fIkey command \fR(+) .\" .B macro can't take too many words, so I used \fB in the previous tags .\" .B マクロは多くの単語を扱えないので、ここまでの部分で \fB を .\" 使っています。 オプション無しでは、第 1 の形式ではバインドされているすべてのキーと 編集コマンドを表示し、第 2 の形式では \fIkey\fR にバインドされている 編集コマンドを表示し、第 3 の形式では 編集コマンド \fIcommand\fR を \fIkey\fR にバインドします。 オプションは以下のものを含みます。 .PD .PP .PD 0 .RS +8 .TP 4 .B \-l すべての編集コマンドの一覧と、それぞれの簡単な解説を表示します。 .TP 4 .B \-d デフォルトのエディタの標準キーバインドをすべてのキーに適用します。 .TP 4 .B \-e GNU Emacs に似たキーバインドをすべてのキーに適用します。 .TP 4 .B \-v 標準の \fIvi\fR(1) に似たキーバインドをすべてのキーに適用します。 .TP 4 .B \-a 代替キーマップを表示またはそのキーバインドを変更します。 代替キーマップは \fIvi\fR コマンドモードのものです。 .TP 4 .B \-b \fIkey\fR を次のように解釈します。 ^\fIcharacter\fR (たとえば `^A')、C-\fIcharacter\fR (たとえば `C-A') のようなものはコントロールキャラクタ、 M-\fIcharacter\fR (たとえば `M-A')のようなものはメタキャラクタ、 F-\fIstring\fR (たとえば `F-string')のようなものは ファンクションキー、X-\fIcharacter\fR (たとえば `X-A') のような ものは拡張プリフィックスキーです。 .TP 4 .B \-k \fIkey\fR は矢印キーの名前、`down', `up', `left', `right' の いずれかとして解釈されます。 .TP 4 .B \-r \fIkey\fR のバインドを解除します。 `bindkey \-r' は \fIkey\fR を \fIself-insert-command\fR にバインドする のでは\fIなく\fR、そのキーのバインドを完全に解除してしまうことに 注意してください。 .TP 4 .B \-c \fIcommand\fR は編集コマンドでなく、組み込みコマンドか 外部コマンドの名前として解釈されます。 .TP 4 .B \-s \fIcommand\fR は通常の文字列として解釈され、\fIkey\fR がタイプされた 時に端末から入力されたように扱われます。\fIcommand\fR で バインドされたキー自体も再び解釈が行われ、10 レベルまで繰り返し 解釈が行われます。 .TP 4 .B \-\- オプション処理の中断を行います。したがって、次の単語が '\-' で 始まっていたとしても、\fIkey\fR として解釈されます。 .TP 4 .B \-u \fR (または何らかの無効なオプション) 使い方を表示します。 .PD .PP \fIkey\fR は 1 文字であっても、文字列であっても構いません。 もしコマンドが文字列にバインドされているならば、文字列の最初の 文字は \fIsequence-lead-in\fR にバインドされ、文字列全体が コマンドにバインドされます。 .PP \fIkey\fR に含まれるコントロール文字はコントロール文字そのもの (通常 `^V' にバインドされているエディタの \fIquoted-insert\fR コマンドで入力できるもの) であっても、`^A' のような キャレット-文字形式であっても構いません。削除文字は `^?' (キャレット-疑問符) のように表します。\fIkey\fR と \fIcommand\fR は下に示す、バックスラッシュで始まる エスケープシーケンスを含むことができます (System V の \fIecho\fR(1) で用いられる形式です)。 .RS +4 .TP 8 .PD 0 .B \ea ベル .TP 8 .B \eb バックスペース .TP 8 .B \ee エスケープ .TP 8 .B \ef 改ページ (フォームフィード) .TP 8 .B \en 改行 .TP 8 .B \er キャリッジリターン .TP 8 .B \et 水平タブ .TP 8 .B \ev 垂直タブ .TP 8 .B \e\fInnn 8 進数 \fInnn\fR で表されるアスキー文字 .PD .RE .PP `\e' は後に続く文字に特別な意味があればそれを無効にします。 特に `\\' や `^' の場合です。 .RE .TP 8 .B break 実行を一番近い \fIforeach\fR または \fIwhile\fR と \fIend\fR の 組の、\fIend\fR の後から再開します。現在の行の残りのコマンドは 実行されます。したがって、複数のレベルのブレークは、1 行にそれらを 並べることで可能になります。 .TP 8 .B breaksw \fIswitch\fR からのブレークで、\fIendsw\fR の後から 実行が開始されます。 .TP 8 .B builtins \fR(+) すべての組み込みコマンドの名前を表示します。 .TP 8 .B bye \fR(+) 組み込みコマンド \fIlogout\fR の別名です。 これが使えるようにコンパイルされている場合にのみ有効です。 シェル変数 \fBversion\fR を参照してください。 .TP 8 .B case \fIlabel\fB: 下で説明する \fIswitch\fR 文で用いられるラベルです。 .TP 8 .B cd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] [\fIname\fR] もしディレクトリ名 \fIname\fR が与えられれば、シェルの 作業ディレクトリを \fIname\fR に変更します。与えられなければ \fBhome\fR に変更します。もし \fIname\fR が `\-' であれば、 ひとつ前の作業ディレクトリとして解釈されます (\fBOther substitutions\fR を参照)。\fIname\fR が 現在のディレクトリのサブディレクトリでなく、 `/', `./' , `../' のいずれかで始まるものでもない場合、 変数 \fBcdpath\fR の要素がひとつひとつチェックされ、 サブディレクトリ \fIname\fR が探されます。最後に、そのどれもが 失敗した場合に \fIname\fR が `/' ではじまる値をもつシェル変数で あれば、その変数が指すディレクトリが探されます。 .RS +8 .PP \fB\-p\fR を付けると、\fIdirs\fR と同じように最終的な ディレクトリスタックの内容を表示します。\fIcd\fR の \fB\-l\fR, \fB\-n\fR, \fB\-v\fR フラグは \fIdirs\fR のそれと同じ意味を持ち、 \fB\-p\fR の動作を含んでいます (+)。 .PP シェル変数 \fBimplicitcd\fR についても参照してください。 .RE .TP 8 .B chdir 組み込みコマンド \fIcd\fR の別名です。 .TP 8 .B complete \fR[\fIcommand\fR [\fIword\fB/\fIpattern\fB/\fIlist\fR[\fB:\fIselect\fR]\fB/\fR[[\fIsuffix\fR] \fB/\fR] ...]] (+) 引数なしの場合は、すべての補完の候補を表示します。 \fIcommand\fR をつけると、\fIcommand\fR の補完候補を表示します。 \fIcommand\fR と \fIword\fR などをつけると、補完を定義します。 .RS +8 .PP \fIcommand\fR はコマンドのフルネームでも、何らかのパターンでも 構いません (\fBファイル名置換\fRを参照)。 補完候補がひとつでないことを示すために、`-' ではじめることができます。 .PP \fIword\fR は現在の語の補完にどの単語が関係するのかを指定する もので、以下のうちどれか 1 つです。 .PP .PD 0 .RS +4 .TP 4 .B c 現在の語の補完。 \fIpattern\fR は、コマンドライン上の現在の語にマッチするパターンで なければなりません。 \fIpattern\fR は現在の語の補完が完了すると無視されます。 .TP 4 .B C \fBc\fR に似ていますが、現在の語の補完後に \fIpattern\fR を含みます。 .TP 4 .B n 次の語の補完。 \fIpattern\fR はコマンドライン上のひとつ前の語にマッチする パターンでなければなりません。 .TP 4 .B N \fBn\fR に似ていますが、現在の語のふたつ前の語に マッチするパターンでなければなりません。 .TP 4 .B p 位置に依存した補完。 \fIpattern\fR は数値の範囲を指定するものであり、シェル変数の インデックスと同じ文法が用いられます。 現在の語を含むものでなければなりません。 .PD .RE .ig \" No longer true in 6.05.04 .PP When \fIpattern\fR is a glob-pattern (for \fBc\fR, \fBC\fR, \fBn\fR and \fBN\fR-type completion), a \fIpattern\fR of `*' does not match an empty word. 6.05.04 ではもう有効ではありません。 \fIpattern\fR がグローバルなパターンである場合 (\fBc\fR, \fBC\fR, \fBn\fR, \fBN\fR 型の補完の場合)、\fIpattern\fR の `*' は空の語には マッチしません。 .. .PP \fIlist\fR は以下のリストの中から可能な補完のリストを示します。 .PP .PD 0 .RS +4 .TP 8 .B a エイリアス .TP 8 .B b バインディング (編集コマンド) .TP 8 .B c コマンド (組み込みコマンドも外部コマンドも含みます) .TP 8 .B C 指定されたパスではじまる外部コマンド .TP 8 .B d ディレクトリ .TP 8 .B D 指定されたパスではじまるディレクトリ .TP 8 .B e 環境変数 .TP 8 .B f ファイル名 .TP 8 .B F 指定されたパスではじまるファイル名 .TP 8 .B g グループ名 .TP 8 .B j ジョブ .TP 8 .B l 制限値 .TP 8 .B n 何にも補完しません .TP 8 .B s シェル変数 .TP 8 .B S シグナル .TP 8 .B t プレイン (``テキスト'') ファイル .TP 8 .B T プレイン (``テキスト'') ファイルで、指定されたパスではじまるもの .TP 8 .B v すべての変数 .TP 8 .B u ユーザ名 .TP 8 .B x \fBn\fR に似ていますが、\fIlist-choices\fR が使われている時には \fIselect\fR を表示します。 .TP 8 .B X 補完 .TP 8 $\fIvar\fR 変数 \fIvar\fR に格納されている語 .TP 8 (...) リスト中の語 .TP 8 `...` コマンドの出力に含まれる語 .PD .RE .PP \fIselect\fR は glob パターンです (省略可能)。 これを指定すると、\fIlist\fR にある単語のうち \fIselect\fR にマッチするものだけが対象となり、 シェル変数 \fBfignore\fR は無視されます。 最後の 3 つの補完形式には \fIselect\fR パターンを与えることはできません。 また \fBx\fR は \fIlist-choices\fR 編集コマンドが用いられた時には \fIselect\fR を説明メッセージとして扱います。 .PP \fIsuffix\fR は単一の文字で、補完が成功するとそのあとに追加されます。 空の場合は何も追加されません。省略されると (この場合 4 番目のデリミタも省略できます) ディレクトリにはスラッシュ文字が、 その他の文字にはスペース文字が追加されます。 .PP ではいくつか例を示します。 コマンドによっては、ディレクトリのみを引数として取るものがあります。 (そのようなコマンドに対して) 通常ファイルを補完することは、的外れです。 .IP "" 4 > complete cd 'p/1/d/' .PP `cd' に続く最初の単語のみ (`p/1') をディレクトリで補完します。 コマンド補完を絞りこむために \fBp\fR-形式の補完を用いることもできます。 `cd' に続く最初の単語のみ (`p/1') をディレクトリで補完します。 .IP "" 4 > co[^D] .br complete compress .br > complete \-co* 'p/0/(compress)/' .br > co[^D] .br > compress .PP これは `co' で始まる (すなわち `co*' にマッチする) コマンド (位置 0 にある単語 `p/0') を補完して、 `compress' (リストにある唯一の単語) を与えたものです。 先頭にある `\-' は、 この補完がコマンドを確定できない場合にのみ用いられることを意味します。 .IP "" 4 > complete find 'n/\-user/u/' .PP これは \fBn\fR-形式の補完の例です。 `find' の後で、かつ `\-user' の直後にある単語を、 ユーザーのリストで補完します。 .IP "" 4 > complete cc 'c/\-I/d/' .PP \fBc\fR-形式の補完の例です。`cc' の後にあり、 かつ `\-I' ではじまる単語をディレクトリで補完します。 ここでは小文字の \fBc\fR を用いているので、 `\-I' はディレクトリの一部とはみなされません。 .PP コマンドに応じて、便利な \fIlist\fR も異なります。 .IP "" 4 > complete alias 'p/1/a/' .br > complete man 'p/*/c/' .br > complete set 'p/1/s/' .br > complete true 'p/1/x:Truth has no options./' .PP これらでは、 `alias' に続く単語をエイリアスで、 `man' に続く単語をコマンドで、 `set' に続く単語をシェル変数で置き換えています。 `true' はオプションを取らないので、 補完が試みられたときに何も行わず、 補完リストの選択画面には `Truth has no options.' を表示する \fBx\fR を指定しています。 .PP .ig \" Changed in 6.05.04 The \fIman\fR example, and several other examples below, use \fBp\fR-type completion, rather than \fBC\fR- or \fBn\fR-type, so that `*' will match an empty word. .. \fIman\fR の例や、以下に示すいくつかの例では、 `p/*' の代わりに `c/*' や `n/*' を用いることもできます。 .PP 単語の補完を変数で行うこともできます。これらの変数は補完の際に評価されます。 .IP "" 4 > complete ftp 'p/1/$hostnames/' .br > set hostnames = (rtfm.mit.edu tesla.ee.cornell.edu) .br > ftp [^D] .br rtfm.mit.edu tesla.ee.cornell.edu .br > ftp [^C] .br > set hostnames = (rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net) .br > ftp [^D] .br rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net .PP また補完の際にコマンドを実行し、そこから補完を行うこともできます。 .IP "" 4 > complete kill 'p/*/`ps | awk \\{print\\ \\$1\\}`/' .br > kill \-9 [^D] .br 23113 23377 23380 23406 23429 23529 23530 PID .PP \fIcomplete\fR コマンド自身は、その引数をクォートしません。 したがって `{print $1}' にある括弧、スペース、`$' は 明示的にクォートしなければなりません。 .PP 1 つのコマンドに複数の補完を指定することもできます。 .IP "" 4 > complete dbx 'p/2/(core)/' 'p/*/c/' .PP これは `dbx' の第 2 引数を `core' という単語で補完し、 他のすべての引数をコマンドで補完します。 位置指定タイプの補完は、逐次補完より前に指定することに注意してください。 補完は左から右に評価されるので、 (常にマッチする) 逐次補完が先に指定されていると、 位置指定補完は決して行われなくなってしまいます。 これは補完定義の際によくやるミスなので注意してください。 .PP \fIselect\fR パターンは、 コマンドが特定の形式を持ったファイルだけを引数にとるような場合に便利です。 以下に例を示します。 .IP "" 4 > complete cc 'p/*/f:*.[cao]/' .PP これは `cc' の引数を、`.c', `.a', `.o' で終わるファイルだけから補完します。 以下の\fBファイル名置換\fRで述べるようなやり方で グロブパターンの否定を指定すれば、 \fIselect\fR で特定のファイルを排除することもできます。 .IP "" 4 > complete rm 'p/*/f:^*.{c,h,cc,C,tex,1,man,l,y}/' .PP これは大事なソースコードを `rm' の補完に現れないようにします。 もちろんこの排除された名前を手で打ったり、 \fIcomplete-word-raw\fR や \fIlist-choices-raw\fR などの編集コマンドを用いて補完の仕組みを変更することもできます (それぞれ該当の部分を参照)。 .PP `C', `D', `F', `T' 各\fIリスト\fRは、 それぞれ `c', `d', `f', `t' と似ていますが、 \fIselect\fR の引数の解釈の仕方が異なり、 補完対象のファイルを前置パス名が特定のものに限ります。 たとえば、メールプログラム Elm は `=' を ユーザのメールディレクトリの省略名として用います。 この場合 `elm \-f =' を `elm \-f ~/Mail/' であるかのように補完するには .IP "" 4 > complete elm c@=@F:$HOME/Mail/@ .PP とすべきです。ここでは `/' の代わりに `@' を用い、 \fIselect\fR 引数を見やすくしています。 またホームディレクトリの置換は単語の先頭でのみ動作するので、 `~' の代わりに `$HOME' を用いています。 .PP \fIsuffix\fR は標準では用意されていないサフィックス (スペースやディレクトリに対する `/' 以外) を単語補完用に追加するために用います。 .IP "" 4 > complete finger 'c/*@/$hostnames/' 'p/1/u/@' .PP これは `finger' の引数を、まずユーザのリストから補完し、 それに `@' を追加し、さらに `@' の後を変数 `hostnames' のリストから 補完します。ここでも補完指定の順序に注意してください。 .PP 最後に、示唆に富む複雑な例を示しましょう。 .IP "" 4 > complete find \\ .br \'n/\-name/f/' 'n/\-newer/f/' 'n/\-{,n}cpio/f/' \e .br \'n/\-exec/c/' 'n/\-ok/c/' 'n/\-user/u/' \e .br \'n/\-group/g/' 'n/\-fstype/(nfs 4.2)/' \e .br \'n/\-type/(b c d f l p s)/' \e .br \'c/\-/(name newer cpio ncpio exec ok user \e .br group fstype type atime ctime depth inum \e .br ls mtime nogroup nouser perm print prune \e .br size xdev)/' \e .br \'p/*/d/' .PP これは `\-name', `\-newer', `\-cpio', `ncpio' に続く単語を ファイルで補完し (最後の両者にマッチするパターンに注意)、 `\-exec', `\-ok' に続く単語をコマンドで補完し、 `user' の後をユーザ名で、`group' の後をグループ名で補完し、 `\-fstype' と `\-type' の後をそれぞれに与えたリストのメンバーで補完します。 また find に与えるスイッチ達も与えたリストから補完し (\fBc\fR-型の補完を用いていることに注意)、 それ以外のものすべてをディレクトリで補完します。ふぅ。 .PP 補完指定は、対象となる単語がチルダ置換 (`~' ではじまる) や 変数 (`$' ではじまる) の場合は無視されることに留意してください。 \fIcomplete\fR は実験的な機能であり、 文法はこのシェルの将来のバージョンでは変更されるかもしれません。 組み込みコマンド \fIuncomplete\fR の説明も見てください。 .RE .TP 8 .B continue もっとも近い \fIwhile\fR または \fIforeach\fR ループの実行を継続します。 現在の行にある残りのコマンドは実行されます。 .TP 8 .B default: \fIswitch\fR 文のデフォルトの場合のラベルです。 これはすべての \fIcase\fR ラベルの後に置くべきです。 .PP .B dirs \fR[\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] .br .B dirs \-S\fR|\fB\-L \fR[\fIfilename\fR] (+) .PD 0 .TP 8 .B dirs \-c \fR(+) 最初の形式はディレクトリスタックを表示します。 スタックの上が左に来て、 スタック先頭のディレクトリは現在のディレクトリになります。 \fB\-l\fR を指定すると、出力の `~' や `~\fIname\fP' は、 \fBhome\fR や、ユーザ \fIname\fP のホームディレクトリのパス名に 明示的に展開されます。 (+) \fB\-n\fR を指定すると、エントリはスクリーンの終端に達する前に 桁折りされます。 (+) \fB\-v\fR を指定すると、各エントリが 1 行に 1 つずつ表示され、 スタック内部での位置がエントリの前に表示されます。 (+) \fB\-n\fR や \fB\-v\fR がひとつ以上指定されると \fB\-v\fR が優先されます。 .PD .RS +8 .PP \fB\-S\fR を指定した 2 番目の形式では、 ディレクトリスタックを \fIcd\fR と \fIpushd\fR からなるコマンド列として \fIfilename\fR に保存します。 \fB\-L\fR を指定すると、このシェルは \fIfilename\fR を source します。 このファイルは、以前に \fB\-S\fR オプションや \fBsavedirs\fR 機構で保存されたディレクトリスタックです。 いずれの場合でも、 \fIfilename\fR が与えられなければ \fBdirsfile\fR を用います。 \fBdirsfile\fR も指定されていなければ \fI~/.cshdirs\fR を用います。 .PP ログインシェルは `dirs \-L' と同様のことを起動時に行っており、 また \fBsavedirs\fR が設定されていれば終了前に `dirs \-S' と同様のことを行います。 通常 \fI~/.tcshrc\fR だけが \fI~/.cshdirs\fR の前に source されるので、 \fBdirsfile\fR は \fI~/.login\fR ではなく \fI~/.tcshrc\fR で設定すべきです。 .PP 最後の形式はディレクトリスタックをクリアします。 .RE .TP 8 .B echo \fR[\fB\-n\fR] \fIword\fR ... 各 \fIword\fR をスペースで区切り、改行で終端させて シェルの標準出力に書き出します。 シェル変数 \fBecho_style\fR を指定すると、 BSD や System V の \fIecho\fR のフラグやエスケープシーケンスを エミュレートする (しない) ようにできます。 詳細は \fIecho\fR(1) を見てください。 .TP 8 .B echotc \fR[\fB\-sv\fR] \fIarg\fR ... (+) \fIarg\fR で与えられた端末の機能 (\fItermcap\fR(5) を参照) を実行します。 たとえば `echotc home' はカーソルをホームポジションに移動し、 `echotc cm 3 10' はカーソルを 3 列 10 行に移動し、 `echotc ts 0; echo "This is a test."; echotc fs' は "This is a test." をステータス行に表示します。 .RS +8 .PP \fIarg\fR が `baud', `cols', `lines', `meta', `tabs' の いずれかであった場合は、その機能の値を表示します ("yes" または "no" は、端末がその機能を持っているかいないかを示します)。 遅い端末でシェルスクリプトの出力をより寡黙にしたり、 コマンドの出力をスクリーンの行数に制限したりするような場合には、 以下のコマンドを使うと良いでしょう。 .IP "" 4 > set history=`echotc lines` .br > @ history\-\- .PP termcap 文字列はワイルドカードを含むことができますが、 これは正しく echo されません。 シェル変数に端末機能文字列を設定するときには、 以下の例のようにダブルクォートを用いてください。 この例では日付をステータス行に表示しています。 .IP "" 4 > set tosl="`echotc ts 0`" .br > set frsl="`echotc fs`" .br > echo \-n "$tosl";date; echo \-n "$frsl" .PP \fB\-s\fR を指定すると、存在しない機能を指定したとき、 エラーをおこさずに空文字列を返します。 \fB\-v\fR を指定するとメッセージが冗長になります。 .RE .PP .B else .br .B end .br .B endif .PD 0 .TP 8 .B endsw 以下の \fIforeach\fR, \fIif\fR, \fIswitch\fR, \fIwhile\fI 文の説明を見てください。 .PD .TP 8 .B eval \fIarg\fR ... 引数をシェルへの入力として扱い、 残りのコマンドを現在のシェルのコンテキストで実行します。 これは通常、コマンド置換や変数置換の結果として生成されたコマンド列を 実行する場合に用いられます。 これはそれらの置換に先立って文法解析が行われてしまうためです。 \fIeval\fR の利用例は \fItset\fR(1) を見てください。 .TP 8 .B exec \fIcommand\fR 指定したコマンドを現在のシェルの代わりに実行します。 .TP 8 .B exit \fR[\fIexpr\fR] 指定した \fIexpr\fR (\fB式\fRで解説した式) の値で (\fIexpr\fR が指定されていなければ \fBstatus\fR 変数の値で) シェルを終了します。 .TP 8 .B fg \fR[\fB%\fIjob\fR ...] 指定したジョブ (あるいは引数がなければ現在のジョブ) をフォアグラウンドに移動します。停止状態にあるものは再開します。 \fIjob\fR には\fBジョブ\fRで解説されているように、 数値、文字列、`', `%', `+', `\-' のどれかを指定できます。 \fIrun-fg-editor\fI 編集コマンドも見てください。 .TP 8 .B filetest \-\fIop file\fR ... (+) (\fBファイル問合わせ演算子\fRで解説されている) ファイル問合わせ演算子 \fIop\fR を各 \fIfile\fR に適用し、 結果をスペース区切りのリストで返します。 .PP .B foreach \fIname \fB(\fIwordlist\fB) .br \&... .PD 0 .TP 8 .B end \fIwordlist\fR のメンバーを \fIname\fR に順々に代入し、 これと対応する \fIend\fR に挟まれた範囲の コマンドシーケンスを実行します。 (\fIforeach\fR と \fIend\fR は 1 行に単独で現れなければなりません。) 組み込みコマンド \fIcontinue\fR を用いると ループを途中で継続することができ、 組み込みコマンド \fIbreak\fR を用いると ループを途中で終了させることができます。 このコマンドが端末から読み込まれると、 一度ループを `foreach?' プロンプト (あるいは \fBprompt2\fR) で読み込み、全体を読み終えてからループの各文を実行します。 端末からの入力時にループの途中でタイプミスをした場合は 修正できます。 .PD .TP 8 .B getspath \fR(+) システムの実行パスを表示します。 (TCF のみ) .TP 8 .B getxvers \fR(+) 実験的バージョンのプレフィックスを表示します。 (TCF のみ) .TP 8 .B glob \fIwordlist \fIecho\fR と似ていますが、`\\' でのエスケープを認識せず、 また出力での単語区切りをヌル文字にします。 単語リストをファイル名に展開するために プログラムからシェルを利用したいような場合に便利です。 .TP 8 .B goto \fIword \fIword\fR はファイル名と `label' 形式の文字列を出力するコマンド置換です。 シェルは入力を可能なかぎりさかのぼり、 `label:' 形式の行 (空白やタブが前置されていても良い) を検索し、 その行の次から実行を継続します。 .TP 8 .B hashstat 内部のハッシュテーブルが、 これまでのコマンド探索にどの程度効率的であったか (そして \fIexec\fR 類を使わずに済んだか) を示す統計行を表示します。 \fBpath\fR の各成分のうち、 ハッシュ関数がヒットの可能性があるとしたものや、 `/' で始まらないものに対して \fIexec\fR が試みられます。 .IP \fIvfork\fR(2) のないマシンでは、 単にハッシュバケツのサイズを表示します。 .PP .B history \fR[\fB\-hTr\fR] [\fIn\fR] .br .B history \-S\fR|\fB\-L|\fB\-M \fR[\fIfilename\fR] (+) .PD 0 .TP 8 .B history \-c \fR(+) 最初の形式はイベントリストの履歴を表示します。 \fIn\fR を与えると、新しい方最大 \fIn\fR 個のイベントを 表示または保存します。 \fB\-h\fR を指定すると、行頭の数字抜きでリストを表示します。 \fB\-T\fR を指定すると、タイムスタンプもコメントのかたちで表示されます。 (これを用いると、 `history \-L' や `source \-h' でのロードに適したファイルが作成できます。) \fB\-r\fR を指定すると、 表示の順番がデフォルトの古い順ではなく新しい順になります。 .PD .RS +8 .PP 2 番目の形式で \fB\-S\fR を指定すると、履歴リストを \fIfilename\fR に保存します。シェル変数 \fBsavehist\fR の最初の単語が 数値に設定されていると、最大でその数値までの行数が保存されます。 \fBsavehist\fR の 2 番目の単語が `merge' だった場合には、 履歴リストが現存の履歴ファイルにマージされ、タイムスタンプ順にソートされます (デフォルトでは現存のファイルを置き換えます)。 (+) マージは X Window System のように、 複数のシェルを同時に用いるような場合向けのものです。 現在は、シェルが行儀良く順々に終了するような場合でないと、 マージは成功しません。 .PP \fB\-L\fR を指定すると、シェルは \fIfilename\fR を 履歴リストに追加します。\fIfilename\fR は以前に \fB\-S\fR オプションや \fBsavehist\fR 機構で保存された履歴リストファイルです。 \fB\-M\fR は \fB\-L\fR と似ていますが、 \fIfilename\fR の内容は履歴リストにマージされ、 タイムスタンプの順にソートされます。 いずれの場合でも、\fIfilename\fR が与えられなければ \fBhistfile\fR を用い、 \fBhistfile\fR も設定されていなければ \fI~/.history\fR を用います。 `history \-L' はほとんど `source \-h' と同じですが、 前者ではファイル名を省略できます。 .PP ログインシェルは `history \-L' と同様のことを起動時に行っており、 また \fBsavehist\fR が設定されていれば終了前に `history \-S' と同様のことを行います。 通常 \fI~/.tcshrc\fR だけが \fI~/.history\fR の前に source されるので、 \fBhistfile\fR は \fI~/.login\fR ではなく \fI~/.tcshrc\fR で設定すべきです。 .PP \fBhistlit\fR が設定されていると、 最初の形式と 2 番目の形式は履歴リストを 文字通りの (展開されない) かたちで表示、保存します。 .PP 最後の形式は履歴リストをクリアします。 .RE .TP 8 .B hup \fR[\fIcommand\fR] \fR(+) \fIcommand\fR を指定すると、 hangup シグナルが送られたときに終了するようにして \fIcommand\fR を実行し、 シェルが終了するときにそのコマンドに hangup シグナルを送るようにします。 コマンドによっては hangup に対するそれぞれ独自の反応を設定することがあり、 これは \fIhup\fR より優先されるかもしれません。 引数を設定しないと (シェルスクリプト内部のみで許されます)、 そのシェルは残りのスクリプトの途中で hangup シグナルを受け取ると終了するようになります。 \fBシグナル処理\fRと組み込みコマンド \fInohup\fR の部分も見てください。 .TP 8 .B if (\fIexpr\fB) \fIcommand \fIexpr\fR (\fB式\fRで解説した式) の評価結果が真なら、 \fIcommand\fR が実行されます。 \fIcommand\fR に対する変数置換は、実行に先だって \fIif\fR コマンドの残りの部分と同時に行われます。 \fIcommand\fR は単純なコマンドでなければならず、 エイリアス、パイプライン、(括弧で括られた / ていない) コマンドリストは指定できません。ただし引数は指定できます。 \fIexpr\fR が偽で、 \fIcommand\fR が\fI実行されない\fR場合でも 入出力リダイレクションは行われてしまいます。 これはバグです。 .PP .B if (\fIexpr\fB) then .br \&... .br .B else if (\fIexpr2\fB) then .br \&... .br .B else .br \&... .PD 0 .TP 8 .B endif 指定した \fIexpr\fR が真の場合、 最初の \fIelse\fI までのコマンド群が実行されます。 \fIexpr\fR が偽で \fIexpr2\fR が真の場合は、 2 番目の \fIelse\fR までのコマンド群が実行されます。以下同じです。 \fIelse-if\fR のペアはいくつでも指定できますが、 \fIendif\fR はひとつしかいりません。 また \fIelse\fR 部は省略可能です。 (\fIelse\fR と \fIendif\fR の各単語は入力行の先頭にしか置けません。 \fIif\fR は入力行の先頭に単独で置くか、 \fIelse\fR の後に置くかしなければなりません。) .PD .TP 8 .B inlib \fIshared-library\fR ... (+) 各 \fIshared-library\fR を現在の環境に追加します。 共有ライブラリを削除する方法はありません。 (Domain/OS のみ) .TP 8 .B jobs \fR[\fB\-l\fR] アクティブなジョブをリストします。 \fB\-l\fR を指定すると、 通常の情報に加えてプロセス ID もリストします。 TCF システムでは、各ジョブが実行されているサイトも表示します。 .PP .PD 0 .TP 8 .B kill \fR[\fB\-s \fIsignal\fR] \fB%\fIjob\fR|\fIpid\fR ... .PD 0 .TP 8 .B kill \-l 1 番目または 2 番目の形式は \fIsignal\fR を (何も指定されなければ TERM (terminate) シグナルを) 指定したジョブやプロセスに送ります。 \fIjob\fR には\fBジョブ\fRで解説されているように、 数値、文字列、`', `%', `+', `\-' のどれかを指定できます。 シグナルは数値または名前 (\fI/usr/include/signal.h\fR にあるものから前の `SIG' を取り除いたもの) のいずれかで与えます。 デフォルトの \fIjob\fR はありません。 単に `kill' としても、現在のジョブへはシグナルを送りません。 TERM (terminate) または HUP (hangup) シグナルを送った場合は、 そのジョブやプロセスには CONT (continue) シグナルも送信されます。 3 番目の形式はシグナルの名前をリストします。 .PD .ig \" Obsolete tcsh command .TP 8 .B linedit \fR(+) A synonym for the \fIecho\fR builtin command. .. .TP 8 .B limit \fR[\fB\-h\fR] [\fIresource\fR [\fImaximum-use\fR]] 現在のプロセスと、 現在のプロセスが生成するプロセスが消費する資源が、 指定した \fIresource\fR に対してプロセスひとつにつき \fImaximum-use\fR を越えないようにします。 \fImaximum-use\fR を指定しないと、current limit が表示されます。 \fIresource\fI を指定しないと、すべての制限値を表示します。 \fB\-h\fR フラグを指定すると、 current limit の代わりに hard limit を用います。 hard limit は current limit の限度を与えます。 hard limit はスーパーユーザーしか増やすことができませんが、 current limit は一般ユーザも可能な範囲内で増減できます。 .RS +8 .PP -現在制御できる資源は、 -\fIcputime\fR (プロセスひとつにつき利用できる cpu 秒)、 -\fIfilesize\fR (作成できる単一ファイルの最大サイズ)、 -\fIdatasize\fR (プログラムテキストの終端を越えて sbrk(2) で増やせる -データ領域+スタック領域の最大サイズ)、 -\fIstacksize\fR (自動的に拡張されるスタック領域の最大サイズ)、 -\fIcoredumpsize\fR (生成されるコアダンプの最大サイズ)、 +現在制御できる資源 (OS がサポートしている場合) は次の通りです: +.TP +\fIcputime\fR +プロセスひとつにつき利用できる cpu 秒 +.TP +\fIfilesize\fR +作成できる単一ファイルの最大サイズ +.TP +\fIdatasize\fR +プログラムテキストの終端を越えて sbrk(2) で増やせる +データ領域+スタック領域の最大サイズ +.TP +\fIstacksize\fR +自動的に拡張されるスタック領域の最大サイズ +.TP +\fIcoredumpsize\fR +生成されるコアダンプの最大サイズ +.TP \fImemoryuse\fR -(プロセスひとつにいちどきに割り当てることのできる物理メモリの最大サイズ)、 -です。 +プロセスひとつにいちどきに割り当てることのできる物理メモリの最大サイズ +.TP +\fIdescriptors\fR or \fIopenfiles\fR +このプロセスが開ける最大ファイル数 +.TP +\fIconcurrency\fR +このプロセスの最大スレッド数 +.TP +\fImemorylocked\fR +プロセスが mlock(2) を使用してロック可能なメモリの最大サイズ +.TP +\fImaxproc\fR +このユーザ ID が同時に使用可能な最大プロセス数 +.TP +\fIsbsize\fR +このユーザが使用可能な最大ソケットバッファサイズ .PP \fImaximum-use\fR は浮動小数点値または整数値に、 単位をつけて指定します。 \fIcputime\fR 以外の制限値は、`k' または `kilobytes' (1024 バイト) をデフォルトの単位としています。 単位として `m' または `megabytes' を用いることもできます。 \fIcputime\fR のデフォルトの単位は `seconds' です。 分を表す `m', 時間を表す `h', 分 + 秒を表す `mm:ss' の形式などを用いることもできます。 .PP \fIresource\fR も単位も、他と区別がつく範囲で後半部を省略可能です。 .RE .TP 8 .B log \fR(+) シェル変数 \fBwatch\fR を表示し、そこにリストアップされている ユーザがログインしていればログインした時刻に関わらず報告します。 \fIwatchlog\fR についても参照してください。 .TP 8 .B login ログインシェルを終了して、\fI/bin/login\fR (訳注: FreeBSD では /usr/bin/login です) のインスタンスで置き換えます。これはログオフする 方法のひとつであり、\fIsh\fR(1) との互換性を保つ意味もあります。 .TP 8 .B logout ログインシェルを終了します。\fBignoreeof\fR がセットされている場合に 特に役立つでしょう。 .TP 8 .B ls\-F \fR[\-\fIswitch\fR ...] [\fIfile\fR ...] (+) `ls \-F' と同じようにファイルのリストを表示しますが、ずっと高速です。 各種の特別なファイル形式は特殊文字を用いて以下のように示されます。 .PP .RS +8 .PD 0 .TP 4 / ディレクトリ .TP 4 * 実行可能 .TP 4 # ブロック型デバイス .TP 4 % キャラクタ型デバイス .TP 4 | 名前付きパイプ (名前付きパイプのあるシステムでのみ) .TP 4 = ソケット (ソケットのあるシステムでのみ) .TP 4 @ シンボリックリンク (シンボリックリンクのあるシステムでのみ) .TP 4 + 隠しディレクトリ (AIX のみ) またはコンテキスト依存 (HP/UX のみ) .TP 4 : ネットワーク特殊型 (HP/UX のみ) .PD .PP シェル変数 \fBlistlinks\fR がセットされている場合は、 シンボリックリンクに関してより詳しく表示されます (もちろん、シンボリックリンクを持つシステムでだけです)。 .PP .PD 0 .TP 4 @ ディレクトリでないものへのシンボリックリンク .TP 4 > ディレクトリへのシンボリックリンク .TP 4 & どこへのリンクでもないシンボリックリンク .PD .PP \fBlistlinks\fR はシンボリックリンクの指し示すファイルが 存在するパーティションのマウントを引き起こすため、\fIls\-F\fR を 遅くしてしまいます。 .PP もしシェル変数 \fBlistfrags\fR が `x', `a', `A' のいずれかに セットされているか、それらの組合せ (たとえば `xA') に セットされている場合は、これが `ls \-xF' や `ls \-Fa'、 もしくは組み合わせて `ls \-FxA' のように \fIls\-F\fR の フラグとして使われます。`ls \-C' がデフォルトでないマシンでは \fBlistflags\fR が `x' を含む場合には \fIls \-xF' のように、 そうでなければ \fIls \-F\fR は `ls \-CF' のように振舞います。 \fIls \-F\fR は、何らかのスイッチが与えられた場合には \fIls\fR(1) に引数を渡すので、`alias ls ls\-F' は通常、正しく動作します。 .PP 組み込みの \fBls\-F\fR はファイルタイプや拡張子によってファイル名を 色分けすることができます。シェル変数 \fBcolor\fR \fItcsh\fR と 環境変数 \fBLS_COLORS\fR を参照してください。 .RE .PP .B migrate \fR[\fB\-\fIsite\fR] \fIpid\fR|\fB%\fIjobid\fR ... (+) .PD 0 .TP 8 .B migrate \-\fIsite\fR (+) 最初の形式では指定したプロセスまたはジョブを、指定した場所もしくは システムパスによって決定されるデフォルトの場所に移動します。 2 番目の形式は `migrate \-\fIsite\fR $$' と同じ意味を持ちます。 これは現在のプロセスを指定した場所に移動します。シェルは その tty を失わないことになっているので、シェル自身を移動することは 予期しない動作の原因となります。(TCF のみ) .PD .TP 8 .B newgrp \fR[\fB\-\fR] \fIgroup\fR (+) `exec newgrp' と同じ意味をもちます。\fInewgrp\fR(1) を 参照してください。 シェルがこれを使うことができるようにコンパイルされている場合に のみ使用可能です。シェル変数 \fBversion\fR を参照してください。 .TP 8 .B nice \fR[\fB+\fInumber\fR] [\fIcommand\fR] シェルのスケジューリング優先度を \fInumber\fR に設定するか、 \fInumber\fR が指定されていない場合は 4 に設定します。\fIcommand\fR をつけると、コマンド \fIcommand\fR を適切な優先度で実行します。 \fInumber\fR が大きいほど、そのプロセスが獲得する CPU 時間は短くなります。 スーパーユーザは `nice \-number ...' とすることにより負の値を 設定することができます。コマンドは常にサブシェルから実行され、 コマンドには単純な \fIif\fR 文の場合と同じ制限が課されます。 .TP 8 .B nohup \fR[\fIcommand\fR] \fIcommand\fR をつけると、コマンド \fIcommand\fR を ハングアップシグナルを無視して実行するようにします。 これらのコマンドが \fInohup\fR をオーバーライドして ハングアップシグナルに対して自分自身で応答するようにすることが あることに注意してください。引数のない場合 (シェルスクリプト中で のみ許されます)、スクリプトのそれ以降の部分でシェルは ハングアップシグナルを無視するようになります。 \fBシグナル処理\fRと、組み込みコマンド \fIhup\fR についても 参照してください。 .TP 8 .B notify \fR[\fB%\fIjob\fR ...] ユーザに非同期的に指定したジョブ (%\fIjob\fR が省略された場合は カレントジョブ) の状態に何らかの変化があった場合に非同期的に、 通知するようにします。この場合は通常と異なり、次のプロンプトが 出力されるまで待ちません。 \fIjob\fR は \fBJobs\fR に記述されているように番号、文字列、`', `%', `+', `\-' のどれでも許されます。 シェル変数 \fBnotify\fR も参照してください。 .TP 8 .B onintr \fR[\fB\-\fR|\fIlabel\fR] 割り込み時のシェルの動作を制御します。 引数がなければ、シェルのデフォルトの割り込み時の動作に設定されます。 この場合は、シェルスクリプトは割り込みで中断され、 コマンド実行時はコマンドの実行を中断してコマンド入力待ちに戻ります。 `-' が指定された場合はすべての割り込みが無視されます。 \fIlabel\fR を指定すると、割り込みが発生したり子プロセスが 割り込みで中断したりした場合に `goto \fIlabel\fR' を実行します。 .IP "" 8 \fIonintr\fR は、システムのスタートアップファイル (\fBFILES\fR を参照) で割り込みが禁止されている場合には無視されます。 .TP 8 .B popd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] \fR[\fB+\fIn\fR] 引数がなければ、ディレクトリスタックからひとつ値を取り出して、 そこに移動します。`+\fIn\fR' のように数値を与えると、 ディレクトリスタックの \fIn\fR' 番目のエントリを破棄します。 .IP "" 8 また、すべての形式の \fIpopd\fR は \fIdirs\fR のように ディレクトリスタックの最後のエントリを表示します。 シェル変数 \fBpushdsilent\fR はこれを抑制し、 \fB-p\fR フラグによって \fBpushdsilent\fR の動作を オーバーライドすることができます。 \fB\-l\fR, \fB\-n\fR, \fB\-v\fR フラグは \fIpopd\fR でも、\fIdirs\fR と同じ意味をもちます。 .TP 8 .B printenv \fR[\fIname\fR] (+) すべての環境変数の名前と値を表示するか、\fIname\fR を与えた場合には 環境変数 \fIname\fR の値を表示します。 .TP 8 .B pushd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] [\fIname\fR|\fB+\fIn\fR] 引数がなければ、ディレクトリスタックの一番上にあるふたつの エントリを入れ換えます。もし \fBpushdtohome\fR がセットされていれば、 引数なしの \fIpushd\fR は \fIcd\fR のように `pushd ~' を行います。 (+) \fIname\fR をつけると、現在の作業ディレクトリを ディレクトリスタックに積んで \fIname\fR に移動します。 もし \fIname\fR が `\-' であれば、ひとつ前の作業ディレクトリとして 解釈されます (\fBファイル名置換\fRを参照)。 (+) \fBdunique\fR がセットされていれば、\fIpushd\fR は、スタックに \fIname\fR を積む前にすべてのそれと同じものを指すエントリを スタックから除去します。(+) `+\fIn\fR' として番号をつけると、ディレクトリスタックの \fIn\fR 番目のエントリがトップにくるようにスタックを回転します。 \fBdextract\fR がセットされている場合、`pushd +\fIn\fR' を行うと \fIn\fR 番目のディレクトリが展開されて、 スタックのトップに移動されます。(+) .IP "" 8 また、すべての形式の \fIpushd\fR は \fIdirs\fR と同じように ディレクトリスタックの最終的な内容を表示します。シェル変数 \fBpushdsilent\fR をセットすることでこれをやめることができ、 またさらにこれは \fB-p\fR フラグによってオーバーライドすることが 可能です。\fIpushd\fR に対する \fB\-l\fR, \fB\-n\fR, \fB\-v\fR フラグの意味は \fIdirs\fR のものと同様です。(+) .TP 8 .B rehash \fBpath\fR 変数の示すディレクトリの内容を保持する 内部ハッシュテーブルを再構成します。これはログインしている間に 新しいコマンドが \fBpath\fR の示すディレクトリに追加された場合に 必要です。これはあなたが自分の個人的なディレクトリにコマンドを 追加した場合か、システム管理者がシステムディレクトリの内容を変更した 場合にのみ行われるべきです。このコマンドはまた、チルダ記号を 用いたホームディレクトリ記述のキャッシュもフラッシュします。 .TP 8 .B repeat \fIcount command\fR 指定されたコマンド \fIcommand\fR を \fIcount\fR 回 繰り返し実行します。\fIcommand\fR に指定するものは 一行 \fIif\fR 文で指定する \fIcommand\fR と同様の制限を受けます。 入出力リダイレクションは \fIcount\fR が 0 であっても、 必ず一回だけ処理されます。 .TP 8 .B rootnode //\fInodename \fR(+) ルートノードを //\fInodename\fR に変更します。結果として `/' は `//\fInodename\fR' として解釈されます。 (Domain/OS のみ) .PP .B sched \fR(+) .br .B sched \fR[\fB+\fR]\fIhh:mm command\fR \fR(+) .PD 0 .TP 8 .B sched \-\fIn\fR (+) 最初の形式は、予定されているイベントのリストを表示します。 シェル変数 \fBsched\fR は予定されているイベントのリストを 表示する形式を設定するためにセットされます。 3 番目の形式は \fIcommand\fR を予定されているイベントのリストに 追加します。たとえば、 .PD .RS +8 .IP "" 4 > sched 11:00 echo It\\'s eleven o\\'clock. .PP は、午前 11 時に `It's eleven o'clock.' を表示させます。 時間は 12 時間制の AM/PM を指定する書式でも構いません。 .IP "" 4 > sched 5pm set prompt='[%h] It\\'s after 5; go home: >' .PP また、現在時刻からの相対的な時間でも構いません。 .IP "" 4 > sched +2:15 /usr/lib/uucp/uucico \-r1 \-sother .PP 相対的な指定では AM/PM を使うべきではありません。 3 番目の書式では \fIn\fR 番のイベントをリストから削除します。 .IP "" 4 > sched .br 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico \-r1 \-sother .br 2 Wed Apr 4 17:00 set prompt=[%h] It's after 5; go home: > .br > sched \-2 .br > sched .br 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico \-r1 \-sother .PP 予定イベントのリストにあるコマンドは、コマンドがリストに 入れられてから最初のプロンプトが出たあとで実行されます。 実行の正確な時間を過ぎてしまうことはありますが、 次のプロンプトでは遅れたコマンドが実行されます。 シェルがユーザのコマンド入力を待っている間に実行予定時間が来た コマンドは直ちに実行されます。しかし、既に実行されているコマンドの 実行に割り込むことはできませんし、 予定されていたコマンドの実行についても同様です。 .PP この仕組みはいくつかの Unix システムに実装されている \fIat\fR(1) に 似ていますが同じではありません。 指定した時刻通りにコマンドが実行できないことがあるのは非常に大きな 短所です。しかしこの仕組みの長所は、\fIsched\fR はシェルから 直接実行でき、シェル変数やその他の資源へのアクセスが できるということです。これは時刻によってユーザの作業環境を 変化させることを可能にします。 .RE .PP .B set .br .B set \fIname\fR ... .br .B set \fIname\fR\fB=\fIword\fR ... .br .B set [\-r] [\-f|\-l] \fIname\fR\fB=(\fIwordlist\fB)\fR ... (+) .br .B set \fIname[index]\fR\fB=\fIword\fR ... .br .B set \-r \fR(+) .br .B set \-r \fIname\fR ... (+) .PD 0 .TP 8 .B set \-r \fIname\fR\fB=\fIword\fR ... (+) 1 番目の形式ではすべてのシェル変数の値を表示します。 複数の単語からなる値を持つ変数は括弧で囲まれた値のリストとして表示します。 2 番目の形式では \fIname\fR に空文字列をセットします。 3 番目の形式では \fIname\fR に単一の単語 \fIword\fR をセットします。 4 番目の形式では \fIname\fR に \fIwordlist\fR で示した単語の リストをセットします。すべての場合においてコマンド置換や ファイル名置換が値に対して行われます。\-r が指定された場合には、 値は読み取り専用でセットされます。\-f または \-l が 指定された場合には、単語リストの中での順番を保ちながら 重複した単語が取り除かれます。 \-f は最初に出てきたものをリストに残し、\-l は最後に出てきたものを リストに残します。 5 番目の書式では変数 name の \fIindex\fR 番目の要素に \fIword\fR を セットします。この場合この要素は既に存在していなければなりません。 6 番目の書式は読み取り専用にセットされているシェル変数の 名前の一覧を表示します。 7 番目の書式は \fIname\fR を、値の有無に関わらず読み取り専用に セットします。 8 番目の書式は 3 番目の書式と同じですが、同時に \fIname\fR を 読み取り専用にセットします。 .PD .IP "" 8 複数の変数をセットしたり、読み取り専用にセットするために ひとつの set コマンドへの引数を繰り返すことができます。 しかし、変数への代入処理を開始する前に変数展開処理が一度に 行われることに注意してください。また、`=' は \fIname\fR と \fIword\fRの両方と接しているか、空白で区切られているかの どちらかであり、片方だけと接してはいけないことに注意してください。 組み込みコマンド \fIunset\fR についても参照してください。 .TP 8 .B setenv \fR[\fIname \fR[\fIvalue\fR]] 引数がなければ、すべての環境変数の名前と値を表示します。 \fIname\fR を与えられた場合は、環境変数 \fIname\fR の値を \fIvalue\fR に セットするか、\fIvalue\fR がなければ空文字列にセットします。 .TP 8 .B setpath \fIpath \fR(+) \fIsetpath\fR(1) と同様です。(Mach のみ) .TP 8 .B setspath\fR LOCAL|\fIsite\fR|\fIcpu\fR ... (+) システム実行パスを設定します。(TCF のみ) .TP 8 .B settc \fIcap value \fR(+) シェルに端末ケーパビリティ \fIcap\fR (\fItermcap\fR(5) で定義されたもの) は 値 \fIvalue\fR を持つことを教えます。 妥当性のチェックは行われません。 Concept 端末のユーザは、一番右の桁で適切な折り返しを行うために `settc xn no' を行う必要があるかもしれません。 .TP 8 .B setty \fR[\fB\-d\fR|\fB\-q\fR|\fB\-x\fR] [\fB\-a\fR] [[\fB+\fR|\fB\-\fR]\fImode\fR] (+) シェルが変更してはならない tty モード (\fB端末管理\fRを参照) を制御します。 \fB\-d\fR, \fB\-q\fR, \fB\-x\fR は \fIsetty\fR に、 それぞれ `edit', `quote', `execute' 時の tty モードをセットします。 \fB\-d\fR, \fB\-q\fR, \fB\-x\fR が指定されない場合、 `execute' が使用されます。 .IP "" 8 他の引数がなければ、\fIsetty\fR はオン (`+mode') または オフ (`-mode') に固定されているモードを一覧表示します。 使用可能なモードはシステムごとに異なるため、表示も異なります。 \fB\-a\fR をつけると、固定されているかどうかにかかわらず すべての tty モードを一覧表示します。 \fB+\fImode\fR, \fB\-\fImode\fR, \fImode\fR は、それぞれモード \fImode\fR をオンに固定、オフに固定、非固定にします。 たとえば、`setty +echok echoe' は `echok' をオンに固定し、 シェルがコマンドを実行する際に `echoe' モードを オンにしたりオフにしたりできるようにします。 .TP 8 .B setxvers\fR [\fIstring\fR] (+) \fIstring\fR に試験的なバージョンプリフィックスをセットし、 \fIstring\fR が省略された場合にはそれを削除します。(TCF のみ) .TP 8 .B shift \fR[\fIvariable\fR] 引数がなければ、\fBargv\fR[1] を破棄してメンバを左にずらします。 \fBargv\fR がセットされていなかったり、 値が 1 つもなかった場合にはエラーになります。 変数名 \fIvariable\fR を指定すると、 変数 \fIvariable\fR に対して同じ動作を行います。 .TP 8 .B source \fR[\fB\-h\fR] \fIname\fR [\fIargs\fR ...] \fIname\fR からコマンドを読み取って実行します。 コマンドはヒストリリストには残されません。 もし引数 \fIargs\fR が与えられればそれは \fBargv\fR に 入れられます。(+) \fIsource\fR コマンドは入れ子にすることができます。 もし入れ子のレベルがあまりに深くなり過ぎると、 シェルはファイル記述子の不足を起こすでしょう。 \fIsource\fR でのエラーはすべての入れ子になっている \fIsource\fR の 実行を停止します。 \fB\-h\fR を付けると、コマンドを実行するかわりに `history \-L' の ようにヒストリリストに入力されます。 .TP 8 .B stop \fB%\fIjob\fR|\fIpid\fR ... 指定したバックグラウンドで実行されているジョブまたはプロセスを 停止します。\fIjob\fR は番号か、文字列か、あるいは\fBジョブ\fRに 示されている `', `%', `+', `\-' のいずれかを指定します。 デフォルトの \fIjob\fR は存在しないので、 ただ `stop' を実行するだけではカレントジョブを 停止することにはなりません。 .TP 8 .B suspend \fB^Z\fR で送られるような stop シグナルが送られたかのように、 その場でシェルを停止させます。 これは多くの場合 \fIsu\fR(1) で起動したシェルを停止するのに用いられます。 .PP .B switch (\fIstring\fB) .br .B case \fIstr1\fB: .PD 0 .IP "" 4 \&... .br .B breaksw .PP \&... .PP .B default: .IP "" 4 \&... .br .B breaksw .TP 8 .B endsw 指定された文字列 \fIstring\fR に対して、各 case ラベルを連続的に マッチさせます。\fIstring\fR にはそれに先だってコマンド置換と ファイル名置換が行われます。case ラベルには変数置換が行われ、 ファイル名メタキャラクタの `*', `?', `[...]' を用いることができます。 `default' ラベルが出てくるまでにどの case ラベルとも マッチしなかった場合、default ラベルの後から実行が開始されます。 各 case ラベルと default ラベルは行の最初になければなりません。 \fIbreaksw\fR コマンドは実行を中断して \fIendsw\fR の後から 再開させます。 \fIbreaksw\fR を使用しない場合は C 言語と同様に case ラベルや default ラベルを通過して実行が続けられます。 もしマッチするラベルも default ラベルも存在しない場合は、 実行は \fIendsw\fR の後から再開されます。 .PD .TP 8 .B telltc \fR(+) 端末ケーパビリティのすべての値を一覧表示します (\fItermcap\fR(5) を参照)。 .TP 8 .B time \fR[\fIcommand\fR] コマンド \fIcommand\fR (エイリアスやパイプライン、コマンドリストや 括弧でくくったコマンドリストでない単純なものでなければなりません) を実行し、変数 \fBtime\fR の項で説明する形式で、実行所用時間に 関する要約を表示します。必要ならば、コマンド終了時に時間を 表示するための追加のシェルが生成されます。\fIcommand\fR を 指定しなかった場合は、現在のシェルとその子プロセスが使用した時間に 関する要約が表示されます。 .TP 8 .B umask \fR[\fIvalue\fR] 8 進数で指定されたファイル作成マスクを \fIvalue\fR に設定します。 一般的なマスクの値としては、グループにすべての権限を与え、 その他には読み取りと実行のみを許可する 002 や、グループとその他に 読み取りと実行を許可する 022 があります。 \fIvalue\fR を省略すると、現在のファイル作成マスクを表示します。 .TP 8 .B unalias \fIpattern .br パターン \fIpattern\fR にマッチするすべてのエイリアスを削除します。 したがって `unalias *' とすることですべてのエイリアスを 削除できます。 \fIunalias\fR するものがなかった場合もエラーにはなりません。 .TP 8 .B uncomplete \fIpattern\fR (+) パターン \fIpattern\fR にマッチするすべての補完対象を削除します。 したがって `uncomplete *' とすることですべての補完対象を 削除します。 \fIuncomplete\fR するものがなかった場合もエラーにはなりません。 .TP 8 .B unhash 実行プログラムの検索を高速化する内部ハッシュテーブルの使用を 禁止します。 .TP 8 .B universe \fIuniverse\fR (+) universe を \fIuniverse\fR に設定します。(Masscomp/RTU のみ) .TP 8 .B unlimit \fR[\fB\-h\fR] [\fIresource\fR] リソース \fIresource\fR の制限を解除します。\fIresource\fR が 指定されない場合は、すべてのリソースに関する制限が解除されます。 \fB\-h\fR が指定されると、対応するハードリミットが解除されます。 これはスーパーユーザのみが行うことができます。 .TP 8 .B unset \fIpattern パターン \fIpattern\fR にマッチするすべての変数を、読み取り専用の 場合も含めて削除します。したがって `unset *' とすることによって 読み取り専用のものも含めてすべての変数が削除されますが、 これは良いことではありません。 \fIunset\fR するものがなかった場合もエラーにはなりません。 .TP 8 .B unsetenv \fIpattern パターン \fIpattern\fR にマッチするすべての環境変数を削除します。 したがって `unsetenv *' とすることによってすべての環境変数を 削除することができますが、これは良いことではありません。 \fIunsetenv\fR する環境変数がなかった場合もエラーにはなりません。 .TP 8 .B ver \fR[\fIsystype\fR [\fIcommand\fR]] (+) 引数が与えられなかった場合は \fBSYSTYPE\fR を表示します。 \fIsystype\fR を指定した場合は、\fBSYSTYPE\fR を \fIsystype\fR に設定します。\fIsystype\fR とコマンド \fIcommand\fR を指定した場合は、\fIsystype\fR で \fIcommand\fR を 実行します。\fIsystype\fR は `bsd4.3' か `sys5.3' のいずれかです。 (Domain/OS のみ) .TP 8 .B wait すべてのバックグラウンドジョブの終了を待ちます。対話的にシェルが 実行されている場合、割り込みにより wait を停止することが できます。この際シェルはまだ終了していないすべてのジョブの名前と その番号を表示します。 .TP 8 .B warp \fIuniverse\fR (+) universe を \fIuniverse\fR に設定します。(Convex/OS のみ) .TP 8 .B watchlog \fR(+) 組み込みコマンド \fIlog\fR の別名です (そちらも参照)。 コンパイル時に使用できるように設定されている場合にのみ使用可能です。 シェル変数 \fBversion\fR を参照してください。 .TP 8 .B where \fIcommand\fR (+) コマンド \fIcommand\fR について、エイリアスや組み込みコマンド、 \fBpath\fR にある実行可能ファイルを含めてシェルの知っている すべての実体を一覧表示します。 .TP 8 .B which\fR \fIcommand\fR (+) コマンド \fIcommand\fR が、\fBpath\fR の検索などの処理のあとで、 実際に実行されるコマンドを表示します。組み込みのものは \fIwhich\fR(1) とほとんど同じですが、 \fItcsh\fR のエイリアスや組み込みコマンドついても正しく報告し、 また 10 から 100 倍高速です。 編集コマンド \fIwhich-command\fR についても参照してください。 .PP .B while (\fIexpr\fB)\fR .br \&... .PD 0 .TP 8 .B end 指定された式 \fIexpr\fR (\fB式\fRで述べられている式) の評価結果が 0 でない限り、\fIwhile\fR とそれに対応する \fIend\fR の間のコマンド を繰り返し実行します。 \fIwhile\fR と \fIend\fR はその行に単独で書かれなければなりません。 \fIbreak\fR と \fIcontinue\fR は、ループを途中で中断したり再開する 場合に使用します。 入力が端末の場合は、\fIforeach\fR の場合と同じように、 ループの内容を一通り入力するまでユーザにプロンプトが出力されます。 .PD .SS "特別なエイリアス (+)" これらのエイリアスは、設定されている場合それぞれ指示された時刻に 自動的に実行されます。これらのエイリアスは、初期状態ではすべて 未定義です。 .TP 8 .B beepcmd シェルが端末ベルを鳴らしたいときに実行されます。 .TP 8 .B cwdcmd 作業ディレクトリが変更されるたびに実行されます。たとえば、 ユーザが X Window System 上で作業していて、 \fIxterm\fR(1) および \fItwm\fR(1) のように、 タイトルバーをサポートしている リペアレントウインドウマネージャを使用していて、 .RS +8 .IP "" 4 > alias cwdcmd 'echo \-n "^[]2;${HOST}:$cwd ^G"' .PP を実行すると、シェルは、動作中の \fIxterm\fR(1) のタイトルを ホスト名、コロン、そしてカレント作業ディレクトリのフルパスに 変更します。 これをもっと面白く実行するには、次のようにします。 .IP "" 4 > alias cwdcmd 'echo \-n "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"' .PP こうすると、ホスト名および作業ディレクトリはタイトルバーに 変更されますが、アイコンマネージャのメニューにはホスト名しか 表示されなくなります。 .PP \fIcwdcmd\fR 中に \fIcd\fR, \fIpushd\fR あるいは \fIpopd\fR を置くと、 無限ループを引き起こす可能性があることに注意してください。 そういうことをする人は、そうしてしまった代償は受けるものだというのが 作者の見解です。 .RE .TP 8 .B jobcmd 各コマンドが実行される前またはコマンドが状態を変える前に実行します。 \fIpostcmd\fR と似ていますが、組み込みコマンドでは表示しません。 .RS +8 .IP "" 4 > alias jobcmd 'echo \-n "^[]2\e;\e!#^G"' .PP として \fIvi foo.c\fR を実行すると、 コマンド文字列が xterm タイトルバーに表示されます。 .RE .TP 8 .B helpcommand \fBrun-help\fR 編集コマンドが実行します。ヘルプが探すコマンド名は、 単一の引数として渡されます。 たとえば、 .RS +8 .IP "" 4 > alias helpcommand '\e!:1 --help' .PP とすると、GNU のヘルプ呼び出し方法を使った、 コマンドそのもののヘルプ表示が実行されます。 現在のところ、たくさんのコマンドを書いたテーブルを使う以外には、 いろいろな呼び出し方法 (たとえば、Unix の `-h' オプション)を 使い分ける簡単な方法はありません。 .RE .TP 8 .B periodic \fBtperiod\fR 分おきに実行されます。このエイリアスは、 たとえば新しいメールが届いたというような、 日常的ではあってもそれほど頻繁には起こらない変更点を チェックするのに便利な手段を提供します。 たとえば、 .RS +8 .IP "" 4 > set tperiod = 30 .br > alias periodic checknews .PP とすると、30 分おきに \fIchecknews\fR(1) プログラムが起動します。 \fIperiodic\fR が設定されているが、\fBtperiod\fR が設定されていないか あるいは 0 に設定されている場合、\fIperiodic\fR は \fIprecmd\fR のように振る舞います。 .RE .TP 8 .B precmd プロンプトが表示される直前に実行されます。たとえば、 .RS +8 .IP "" 4 > alias precmd date .PP とすると、各コマンド用にシェルプロンプトが表示される直前に \fIdate\fR(1) が起動します。 \fIprecmd\fR に何を設定できるかには制限はありませんが、 慎重に選んでください。 .RE .TP 8 .B postcmd 各コマンドが実行される前に実行されます。 .RS +8 .IP "" 4 > alias postcmd 'echo \-n "^[]2\e;\e!#^G"' .PP とすると、\fIvi foo.c\fR を実行すると xterm のタイトルバーに このコマンド文字列が書かれます。 .RE .TP 8 .B shell スクリプト中でインタプリタを指定していない実行可能スクリプト用の インタプリタを指定します。 最初の単語は、使用したいインタプリタへのフルパスでなくてはなりません (たとえば、`/bin/csh' や `/usr/local/bin/tcsh')。 .SS "特別なシェル変数" このセクションで述べる変数は、シェルにとっては特別な意味のあるものです。 .PP シェルは、起動時に次の変数を設定します。\fBaddsuffix\fR, \fBargv\fR, \fBautologout\fR, \fBcommand\fR, \fBecho_style\fR, \fBedit\fR, \fBgid\fR, \fBgroup\fR, \fBhome\fR, \fBloginsh\fR, \fBoid\fR, \fBpath\fR, \fBprompt\fR, \fBprompt2\fR, \fBprompt3\fR, \fBshell\fR, \fBshlvl\fR, \fBtcsh\fR, \fBterm\fR, \fBtty\fR, \fBuid\fR, \fBuser\fR そして \fBversion\fR です。 これらの変数は、起動後はユーザが変更しない限り変更されません。 シェルは、必要があれば、\fBcwd\fR, \fBdirstack\fR, \fBowd\fR および \fBstatus\fR を更新し、ログアウト時に \fBlogout\fR を設定します。 .PP シェルは、シェル変数 \fBafsuser\fR, \fBgroup\fR, \fBhome\fR, \fBpath\fR, \fBshlvl\fR, \fBterm\fR および \fBuser\fR と同名の 環境変数との同期を取ります。 つまり、環境変数が変更されると、シェルは対応するシェル変数を合致するように 変更するのです (シェル変数が読み込み専用でない場合です)。また、その逆も 行います。ここで、\fBcwd\fR と \fBPWD\fR は同じ意味を持ちますが、 この方法では同期は行われないということに注意してください。 また、シェルは、自動的に \fBpath\fR と \fBPATH\fR の違った形式を 相互変換するということにも注意してください。 .TP 8 .B addsuffix \fR(+) これが設定されている場合、ファイル名が補完の際に完全に一致するときに、 一致したものがディレクトリの場合には末尾に `/' を付け加え、 通常のファイルの場合には末尾にスペースを加えます。 デフォルトで設定されています。 .TP 8 .B afsuser \fR(+) これが設定されている場合、\fBautologout\fR の autolock 機能は、 ローカルのユーザ名の代わりにこの値を kerberos 認証用に使います。 .TP 8 .B ampm \fR(+) これが設定されている場合、時刻が 12 時間単位の AM/PM フォーマットで すべて表示されます。 .TP 8 .B argv シェルへの引数です。位置パラメータは \fBargv\fR から取られます。 すなわち、`$1' は `$argv[1]' に置き換えられるといった具合です。 デフォルトで設定されていますが、通常対話型シェルでは空です。 .TP 8 .B autocorrect \fR(+) これが設定されている場合は、補完を試みる前に 自動的に \fIspell-word\fR 編集コマンドが実行されます。 .TP 8 .B autoexpand \fR(+) これが設定されている場合は、補完を試みる前に自動的に \fIexpand-history\fR 編集コマンドが実行されます。 .TP 8 .B autolist \fR(+) これが設定されている場合は、あいまいな補完を行った後、 可能性のあるものをリストします。 `ambiguous' が設定されている場合、可能性のあるものを リストするのは、補完によって何の文字も 追加されなかった場合に限られます。 .TP 8 .B autologout \fR(+) 1 番目の単語は、時間を分単位で表しており、 この時間以上の間、何の処理もしていなければ 自動的にログアウトされます。2 番目の単語はオプションであり、 ここで指定された時間以上の間、何の処理もしていなければ 自動ロックがかかります。 シェルが自動的にログアウトする際には、 シェルは `auto-logout' と出力し、logout 変数を `automatic' に 設定し、そして終了します。 シェルが自動的にロックされたユーザは、作業を続けたいなら 自分のパスワードを入力することが必要になります。5 回入力に 失敗すると、自動的にログアウトします。 ログインシェルおよびスーパユーザのシェルでは、デフォルトで `60'(60 分後自動的にログアウトし、ロックはかけない) に 設定されています。しかし、シェルがウインドウシステムの もとで動いていると認識した場合 (すなわち、\fBDISPLAY\fR 環境変数が設定されている) や、 tty が疑似 tty(pty) である場合、あるいは、シェルがそのようには コンパイルされていない場合 (\fBversion\fR シェル変数を参照) には設定されません。 \fBafsuser\fR および \fBlogout\fR シェル変数も 参照してください。 .TP 8 .B backslash_quote \fR(+) これが設定されている場合、バックスラッシュ (`\\') は 常に `\\', `'', および `"' でクォートされます。これによって、 複雑なクォートをする手間が緩和されますが、 \fIcsh\fR(1) スクリプト中で文法エラーをひき起こす 可能性が出てきます。 .TP 8 .B catalog メッセージカタログのファイル名です。 これが設定されている場合、 デフォルトの `tcsh' の代りに `tcsh.${catalog}' を、 メッセージカタログとして tcsh は使用します。 .TP 8 .B cdpath カレントディレクトリ中にサブディレクトリが見つからなかった場合に、 \fIcd\fR が探索すべきディレクトリのリストです。 .TP 8 .B color これが設定されている場合、組み込みコマンド \fBls\-F\fR 用の カラー表示を有効にし、\fB\-\-color=auto\fR を \fBls\fR に渡します。あるいは、ただ 1 つのコマンドに 対してカラー表示を有効にするため、\fBls\-F\fR または \fBls\fR のみに設定することができます。 何に対しても設定しない場合は、\fB(ls\-F ls)\fR に対して 設定したのと等価です。 .TP 8 .B colorcat これが設定されている場合は、NLS メッセージファイルに対して カラー用エスケープシーケンスを有効にします。これによって、 色のついた NLS メッセージが表示されます。 .TP 8 .B command \fR(+) これが設定されている場合、シェルに渡されたコマンドは、 \fB-c\fR フラグ (そちらも参照) をつけたものに なります。 .TP 8 .B complete \fR(+) これが `enhance' に設定されている場合、補完は、 1) 大文字小文字を無視し、2) ピリオド、ハイフン、および アンダスコア (`.', `-', `_') を単語の区切り文字と みなし、ハイフンとアンダスコアを等価なものとみなします。 .TP 8 .B continue \fR(+) コマンドリストに対してこれが設定されている場合、シェルは リストされているコマンドを継続実行し、新たにコマンドを 開始しません。 .TP 8 .B continue_args \fR(+) continue と同じですが、シェルは次のコマンドを実行します: .RS +8 .IP "" 4 echo `pwd` $argv > ~/._pause; % .RE .TP 8 .B correct \fR(+) `cmd' に設定されている場合、コマンドは自動的にスペル訂正されます。 `complete' に設定されている場合、コマンドは自動的に補完されます。 `all' に設定されている場合、コマンドライン全体が訂正されます。 .TP 8 .B cwd カレントディレクトリのフルパス名です。 シェル変数 \fBdirstack\fR および \fBowd\fR も参照してください。 .TP 8 .B dextract \fR(+) これが設定されている場合、`pushd +\fIn\fR' はディレクトリを先頭に 持っていくのではなく、ディレクトリスタックから \fIn\fR 番目の ディレクトリを取り出します。 .TP 8 .B dirsfile \fR(+) `dirs \-S' および `dirs \-L' がヒストリファイルを探すデフォルトの 場所です。設定していない場合は、\fI~/.cshdirs\fR が使われます。 通常、\fI~/.tcshrc\fR の方が \fI~/.cshdirs\fR よりも先に ソースとして使われるため、\fBdirsfile\fR は、\fI~/.login\fR ではなく \fI~/.tcshrc\fR 中で設定すべきです。 .TP 8 .B dirstack \fR(+) ディレクトリスタック上の全ディレクトリの配列です。 `$dirstack[1]' はカレントディレクトリであり、`$dirstack[2]' は スタック上の最初のディレクトリといった具合です。 カレントディレクトリは `$dirstack[1]' ですが、 ディレクトリスタックの置換では `=0' であるなどということに 注意してください。\fBdirstack\fR を設定することでスタックを 任意に変更することができますが、最初の要素 (カレント ディレクトリ) は常に正しいものになります。 シェル変数 \fBcwd\fR および \fBowd\fR も参照してください。 .TP 8 .B dspmbyte \fR(+) `euc' に設定されている場合、EUC-kanji(Japanese) コードで 表示および編集ができるようになります。 `sjis' に設定されている場合、Shift-JIS(Japanese) コードで 表示および編集ができるようになります。 `big5' に設定されている場合、Big5(Chinese) コードで 表示および編集ができるようになります。 +`utf8' に設定されている場合、Utf8(Unicode) コードで +表示および編集ができるようになります。 次のようなフォーマットに設定されている場合、 独自のマルチバイトコードフォーマットで 表示および編集ができるようになります: .RS +8 .IP "" 4 > set dspmbyte = 0000....(256 bytes)....0000 .PP テーブルには\fBちょうど\fR 256 バイト必要です。 256 文字それぞれは、ASCII コード 0x00, 0x01, ... 0xff に (左から右に向かって) 対応しています。 各キャラクタは、 .\" (position in this table?) 数値 0, 1, 2, 3 に設定されます。各数字には次のような意味があります: .br 0 ... マルチバイト文字に対しては使われません。 .br 1 ... マルチバイト文字の最初の 1 バイトに対して使われます。 .br 2 ... マルチバイト文字の 2 バイト目に対して使われます。 .br 3 ... マルチバイト文字の 1, 2 バイト両方に対して使われます。 .\" SHK: I tried my best to get the following to be grammatically correct. .\" However, I still don't understand what's going on here. In the .\" following example, there are three bytes, but the text seems to refer to .\" each nybble as a character. What's going on here? It this 3-byte code .\" in the table? The text above seems to imply that there are 256 .\" characters/bytes in the table. If I get some more info on this (perhaps .\" a complete example), I could fix the text to be grammatically correct. .\" (steve.kelem@xilinx.com 1999/09/13) .\" SHK: 私は、次の例が文法的に正しいものになるように全力を尽くしました。 .\" しかし、いまだに何が起こっているのか理解できていません。次の例では .\" 3 バイトありますが、テキストは各ニブル (半バイト) を 1 文字とみなして .\" いるようです。ここでは何が起こっているのでしょう?テーブル中にあるのは、 .\" この 3 バイトのコードなのですか?上のテキストでは、テーブル中には .\" 256 文字/バイトあるのだと暗に言っているように思えるのです。 .\" この件についてもっと情報が得られたら (おそらくそれは完全な .\" 使用例でしょう)、このテキストを文法的に正しいものにできるでしょう。 .PP 使用例: .br `001322' に設定した場合、最初の文字 (すなわち、ASCII コードで 0x00) と 2 番目の文字 (すなわち、ASCII コードで 0x01) は `0' に設定されます。 つまり、マルチバイト文字に対してはこれらの文字は使用しません。 3 番目の文字 (0x02) は `2' に設定されます。これは、マルチバイト文字の 最初の 1 バイトにこの文字が使用されることを表しています。 4 番目の文字 (0x03) は `3' に設定されます。この文字は、 マルチバイト文字の 1 バイト目にも 2 バイト目にも使用されます。 5 番目および 6 番目の文字 (0x04, 0x05) は `2' に設定されます。 これは、これらの文字がマルチバイト文字の 2 バイト目に使用されることを 表しています。 .PP GNU fileutils バージョンの ls では、-N ( --literal ) オプションが ついていないとマルチバイト文字のファイル名を表示できません。 もし、fileutils バージョンを使っている場合は、dspmbyte の 2 番目の文字を "ls" に設定してください。そうしないと、 たとえば "ls-F -l" でマルチバイト文字のファイル名が表示できません。 +.PP + 注: +.br +この変数が使用可能であるのは、 +KANJI と DSPMBYTE がコンパイル時に定義された場合だけです。 .RE .TP 8 .B dunique \fR(+) これが設定されている場合、\fIpushd\fR は、ディレクトリ名を スタックに置く前に \fIname\fR である任意の要素をスタックから削除します。 .TP 8 .B echo これが設定されている場合、各コマンドは、実行される直前に 引数と一緒にエコーされます。組み込みコマンド以外のコマンドについては、 展開がすべて行われた後にエコーされます。組み込みコマンドについては、 コマンドおよびファイル名の置換が行われるよりも前にエコーされます。 これは、置換がユーザの選択によって行われるものだからです。 このシェル変数は、コマンドラインオプション \fB-x\fR で設定されます。 .TP 8 .B echo_style \fR(+) echo 組み込みコマンドのスタイルです。次のように設定できます。 .PP .RS +8 .PD 0 .TP 8 bsd 第 1 引数が `-n' である場合、改行をエコーしません。 .TP 8 sysv echo 中の文字列のバックスラッシュで始まるエスケープシーケンスを 認識します。 .TP 8 both `-n' フラグとバックスラッシュで始まるエスケープシーケンスの 両方ともを認識します。これがデフォルトです。 .TP 8 none どちらも認識しません。 .PD .PP デフォルトでは、ローカルシステムのデフォルトに設定されます。 BSD ならびに System V オプションは、適当なシステムの \fIecho\fR(1) マニュアルページに解説があります。 .RE .TP 8 .B edit \fR(+) これが設定されている場合、コマンドラインエディタが使われます。 対話型シェルではデフォルトで設定されています。 .TP 8 .B ellipsis \fR(+) これが設定されている場合、`%c'/`%.' および `%C' プロンプトシーケンス (\fBprompt\fR シェル変数を参照) は、`/' の代わりに 省略記号 (`...') つきのスキップディレクトリを示すようになります。 .TP 8 .B fignore \fR(+) 補完する際に無視されるファイル名のサフィックスリストです。 .TP 8 .B filec +デフォルトでは \fItcsh\fR では補完は常に行われますので、この変数は無視されます。 +.B edit +が未設定である場合、伝統的な \fIcsh\fR の補完が使用されます。 \fIcsh\fR で設定されている場合は、ファイル名の補完が使われる ようになります。 .TP 8 .B gid \fR(+) ユーザの実グループ ID です。 .TP 8 .B group \fR(+) ユーザのグループ名です。 .TP 8 .B histchars \fBヒストリ置換\fR (そちらも参照) で使われる文字を 決定する文字列です。この値の最初の文字は、デフォルトの `!' の 代わりにヒストリ置換文字として使われます。2 番目の文字は、 クイック置換の際の文字 `^' の代わりをします。 .TP 8 .B histdup \fR(+) ヒストリリスト中の重複エントリの扱いを制御します。 この値が `all' に設定されている場合、単一のヒストリイベントが ヒストリリストに入力されます。`prev' に設定されている場合、 最後のヒストリイベントは現在のコマンドと同じとなり、そのため、 現在のコマンドはヒストリには入力されません。`erase' に設定されて いる場合、ヒストリリスト中に同じイベントが見つかったときには、 古い方のイベントは消去され、現在のものが挿入されます。 `prev' および `all' オプションはヒストリイベントの番号づけを やり直しますので、すき間はあかないのだということに注意してください。 .TP 8 .B histfile \fR(+) `history \-S' および `history \-L' が探すヒストリファイルの デフォルトの場所です。これが設定されていない場合、\fI~/.history\fR が 使われます。別々のマシン間で同じホームディレクトリを共有していたり、 端末ごとにヒストリを分けて保存していたりする場合、\fBhistfile\fR は 便利なものです。通常、\fI~/.history\fR ファイルよりも前に読み込まれる のは \fI~/.tcshrc\fR だけなので、\fBhistfile\fR は\fI~/.login\fR ではなく、\fI~/.tcshrc\fR で設定してください。 .TP 8 .B histlit \fR(+) これが設定されている場合、組み込みコマンド、編集コマンド および \fBsavehist\fR 機構はヒストリリスト中のコマンド行を 文字通りの (展開しない) 形式で使用します。\fItoggle-literal-history\fR 編集コマンドも参照してください。 .TP 8 .B history 最初の単語は、記録しておくべきヒストリイベント数を表します。 オプションである 2 番目の単語 (+) は、ヒストリが どういう形式で表示されるかを示しています。 これが与えられていなければ、 `%h\\t%T\\t%R\\n' が使われます。 フォーマットシーケンスは、\fBprompt\fR 下に記述されており、 そこでは、`%R' の意味が変わることの注意がされています。 デフォルトでは `100' です。 .TP 8 .B home 起動したユーザのホームディレクトリに初期化されます。 ファイル名での `\fI~\fR の展開には、この変数が参照されています。 .TP 8 .B ignoreeof これが空文字列あるいは `0' に設定されており、 入力デバイスが端末である場合には、 \fIend-of-file\fR コマンド (通常は、ユーザが空行に `~D' を打つことで 生成されます) を入力すると、シェルは終了してしまう代わりに `Use "exit" to leave tcsh.' と表示します。 これによって、シェルがうっかり kill されてしまうのを防ぐことができます。 番号 \fIn\fR を設定している場合には、 シェルは \fIn\fR - 1 回連続した \fIend-of-file\fR を無視し、 \fIn\fR 回目の \fIend-of-file\fR があればそのときに終了します。(+) これが設定されていない場合には、`1' が使われます。 つまり、シェルは `^D' 1 回で終了します。 .TP 8 .B implicitcd \fR(+) これが設定されている場合、シェルは、コマンドとして入力された ディレクトリ名を、あたかもそのディレクトリへ移動する要求であるものと 解釈します。\fIverbose\fR に設定されている場合、ディレクトリの移動が 行われることが標準出力にエコーされるようになります。 この振る舞いは、非対話的なシェルスクリプト、あるいは 2 語以上あるコマンド行では禁止されています。 ディレクトリを移動するのは、ディレクトリ名のような名前を持ったコマンドを 実行するよりも優先されますが、エイリアスの置換よりは後になります。 チルダおよび変数の展開も動作します。 .TP 8 .B inputmode \fR(+) `insert' あるいは `overwrite' に設定されている場合、 各行の先頭でエディタが入力モードに入るようになります。 .TP 8 .B killdup \fR(+) キルリング中の重複エントリの扱いを制御します。 `all' にセットすると、一意なエントリのみがキルリングに登録されます。 `prev' にセットすると、 最後にキルされた文字列が現在のキル文字列にマッチする場合、 現在の文字列はリングに登録されません。 `erase' にセットすると、同じ文字列がキルリング中に見付かった場合、 古い文字列が削除されて現在の文字列が挿入されます。 .TP 8 .B killring \fR(+) 何個のキルされた字列をメモリ中に保持するかを示します。 デフォルトで `30' にセットされます。 セットしないか、`2' より小さい値を設定すると、 最近キルした文字列のみをシェルは保持します。 .TP 8 .B listflags \fR(+) `x', `a', `A' あるいはこれらの組合せ (たとえば、`xA') に設定されている場合、 これらの値は、\fIls\-F\fR へのフラグとして使われ、`ls \-xF', `ls \-Fa', `ls \-FA' あるいはこれらの組合せ (たとえば、`ls \-FxA') のように振る舞うようになります。 `a' はすべてのファイルを表示します (たとえ、`.' で始まるファイルで あっても)。`A' は `.' および `..' 以外のファイルすべてを表示し、 `x' は上から下に向かってではなく、左から右に向かってソートします。 \fBlistflags\fR に 2 番目の単語が設定されていれば、 それは `ls(1)' へのパスとして使われます。 .TP 8 .B listjobs \fR(+) これが設定されていれば、ジョブが一時停止したときにすべての ジョブがリストされます。`long' に設定されていれば、 リストは長い形式のものになります。 .TP 8 .B listlinks \fR(+) これが設定されていれば、組み込みコマンド \fIls\-F\fR は 各シンボリックリンクが指しているファイルの種類を表示します。 .TP 8 .B listmax \fR(+) \fIlist-choices\fR 編集コマンドがユーザに最初に尋ねてこないで リストする最大要素数です。 .TP 8 .B listmaxrows \fR(+) \fIlist-choices\fR 編集コマンドがユーザに最初に尋ねてこないで リストする要素の最大行数です。 .TP 8 .B loginsh \fR(+) シェルがログインシェルである場合に設定されます。 シェル中でこの変数を設定したり設定を解除したりしても 何の効力もありません。\fBshlvl\fR も参照してください。 .TP 8 .B logout \fR(+) 通常のログアウトの前には、シェルによって `normal' が、 自動ログアウトの前には `automatic' が、そして、 シェルがハングアップシグナルによって終了させられた場合 (\fBシグナルの扱い\fRを参照) には `hangup' が設定されます。 \fBautologout\fR シェル変数も参照してください。 .TP 8 .B mail 届けられるメールをチェックするためのファイルあるいは ディレクトリ名です。これは、スペースで区切られ、 オプションで数字を前につけます。 プロンプトを出す前に、最後にメールチェックをしてから 10 分経っていた場合、シェルは各ファイルをチェックし、 もしファイルサイズが 0 より大きいか、あるいはアクセス時刻よりも 変更時刻の方が大きかった場合には `You have new mail.' (あるいは、\fBmail\fR に複数のファイルが含まれていた場合、 `You have new mail in \fIname\fR.') と表示します。 .PP .RS +8 .PD .PP ログインシェルにいる場合には、シェルの起動時刻後にファイルが 変更されない限り、どのメールファイルも報告されません。 これは、余計に通知しないようにするためです。 大部分の login プログラムでは、ログイン時にメールが届いているかどうかを 教えてくれるものです。 .PP \fBmail\fR で指定されたファイルがディレクトリである場合、 シェルは、ディレクトリ中の各ファイルを別々のメッセージとして計算し、 `You have \fIn\fR mails.' とか `You have \fIn\fR mails in \fIname\fR.' とかと適切に報告します。この機能は、主に Andrew Mail System のように、 メールをこの方式で保存するシステム用に提供されたものです。 .PP \fBmail\fR の最初の単語が数値である場合、それはメールチェックの 間隔を変えるものとして受け取られます。秒単位です。 .PP とても稀な状況下ですが、シェルが `You have new mail.' ではなく `You have mail.' と報告することがあります。 .RE .TP 8 .B matchbeep \fR(+) これが `never' に設定されている場合、補完が行われてもビープ音は 鳴りません。 `nomatch' に設定されている場合、マッチするものがないときにのみ ビープ音が鳴ります。 `ambiguous' に設定されている場合、マッチするものが複数あるときに ビープ音が鳴ります。 `notunique' に設定されている場合、完全にマッチするものが 1 つあり、 また、それとは別にもっと長くマッチするものがあったときにビープ音が 鳴ります。 これが設定されていない場合、`ambiguous' が使われます。 .TP 8 .B nobeep \fR(+) これが設定されている場合、ビープ音は完全に無効になります。 \fBvisiblebell\fR も参照してください。 .TP 8 .B noclobber これが設定されている場合、出力リダイレクションに制限がおかれるようになり、 \fB入出力\fRセクションで述べているように、 ファイルをうっかり壊さないように、また、`>>' リダイレクションが存在する ファイルを指すように保証できます。 .TP 8 .B noding \fBprompt\fR の時刻指定子において、時間の変わり目に `DING!' と 表示するのを無効にします。 .TP 8 .B noglob これが設定されている場合、\fBファイル名置換\fRおよび、 \fBディレクトリスタック置換\fR (そちらも参照) が 禁止されます。この機能は、ファイル名を扱わないシェルスクリプトや、 ファイル名のリストを取得した後、さらに展開をされたくない スクリプトには最も有効なものです。 .TP 8 .B nokanji \fR(+) これが設定されており、シェルが漢字をサポートしている場合 (シェル変数 \fBversion\fR を参照)、漢字のサポートを無効にし、 メタキーが使えるようにします。 .TP 8 .B nonomatch これが設定されている場合、\fBファイル名置換\fRおよび \fBディレクトリスタック置換\fR (そちらも参照) の際に、 存在するファイルにマッチしなかったときに、エラーを出さずに そのまま放置するようになります。置換が機能しないときには 相変わらずエラーになります。 たとえば、`echo [' は相変わらずエラーとなります。 .TP 8 .B nostat \fR(+) 補完処理が行われている間に \fIstat\fR(2) をかけるべきではない ディレクトリのリスト (あるいは、ディレクトリにマッチする グロブパターンです。\fBファイル名置換\fRを参照) です。 この機能は、\fIstat\fR(2) を実行するととてつもない時間が かかってしまうようなディレクトリ、 たとえば \fI/afs\fR などを除外するのに通常使われます。 .TP 8 .B notify これが設定されている場合、シェルはジョブが完了したことを非同期に 通知します。デフォルトは、プロンプトが表示される直前に ジョブの完了を提示します。 .TP 8 .B oid \fR(+) ユーザの実組織 ID です (Domain/OS のみです)。 .TP 8 .B owd \fR(+) 前の作業ディレクトリで、\fIcd\fR が使う `\-' および \fIpushd\fR と等価です。 \fBcwd\fR および \fBdirstack\fR シェル変数も参照してください。 .TP 8 .B path 実行可能なコマンドを探すディレクトリのリストです。 null 文字はカレントディレクトリを示します。 \fBpath\fR 変数がない場合、フルパス名での指定のみ実行されます。 \fBpath\fR は、起動時にシェルが環境変数 \fBPATH\fR から設定するか、 あるいは \fBPATH\fR が存在しなかった場合には、システム依存の デフォルト、たとえば `(/usr/local/bin /usr/bsd /bin /usr/bin .)' のようなものに 設定します。 シェルは、`.' を \fBpath\fR の先頭あるいは末尾に置くことができ、 また、コンパイルの仕方に依存しますが、 `.' を完全に省いてしまうことも できます。\fB\-c\fR, \fB\-t\fR オプションのどちらも与えられていない シェルは、\fI~/.tcshrc\fR を読み込んだ後および \fBpath\fR が リセットされるたびにディレクトリの中身をハッシュに格納します。 シェルがアクティブである間に、ユーザが \fBpath\fR 中の ディレクトリに新しいコマンドを追加した場合、 シェルがそのコマンドを見つけられるように \fIrehash\fR を実行する必要があるかもしれません。 .TP 8 .B printexitvalue \fR(+) これが設定されており、対話型のプログラムが 0 以外のステータスで 終了した場合、シェルは `Exit \fBstatus\fR' と表示します。 .TP 8 .B prompt 端末からコマンドを読み込む前に表示される文字列です。 \fBprompt\fR には、次のフォーマット列 (+) のどれを含んでも構いません。 このフォーマット列は、与えられた情報で書き換えられます。 .PP .RS +8 .PD 0 .TP 4 %/ カレント作業ディレクトリです。 .TP 4 %~ カレント作業ディレクトリですが、`~' で表現される ユーザのホームディレクトリおよび `~user' で表現される 他のユーザのホームディレクトリを \fBファイル名置換\fRします。 `~user' の置換は、現在のセッションにおいて、 シェルがパス名に `~\fIuser\fR' を使っている場合にのみ起こります。 .TP 4 %c[[0]\fIn\fR], %.[[0]\fIn\fR] 現在の作業ディレクトリの、末尾の要素です。 数字 \fIn\fR が指定されている場合、末尾の \fIn\fR 個の要素です。 \fIn\fR が `0' で開始する場合、スキップされた要素数が 末尾要素の前に付き、次の書式となります `/<\fIスキップされた数\fR>末尾要素'。 シェル変数 \fBellipsis\fR が設定されている場合、 スキップされた要素は省略記号で置換されますので、 全体的には `...末尾要素' となります。 `~' 置換は、前述の `%~' と同様に行われますが、 `~' 要素は、末尾要素数を数える対象からは除外されます。 .TP 4 %C %c に似ていますが、`~' の置換を行いません。 .TP 4 %h, %!, ! 現在のヒストリイベント番号です。 .TP 4 %M 完全なホスト名です。 .TP 4 %m 最初の `.' までのホスト名です。 .TP 4 %S (%s) 強調表示モードを開始 (終了) します。 .TP 4 %B (%b) ボールド体表示モードを開始 (終了) します。 .TP 4 %U (%u) アンダラインモードを開始 (終了) します。 .TP 4 %t, %@ AM/PM の 12 時間表記での時刻です。 .TP 4 %T `%t' に似ていますが、こちらは 24 時間表記です (ただし、シェル変数 \fBampm\fR も参照)。 .TP 4 %p 秒まで含めた、AM/PM の 12 時間表記での `正確な' 時刻です。 .TP 4 %P `%p' に似ていますが、こちらは 24 時間表記です (ただし、シェル変数 \fBampm\fR も参照)。 .TP 4 \e\fIc\fR \fIc\fR は \fIbindkey\fR 中にあるものとしてパースされます。 .TP 4 ^\fIc\fR \fIc\fR は \fIbindkey\fR 中にあるものとしてパースされます。 .TP 4 %% `%' 1 つです。 .TP 4 %n ユーザ名です。 .TP 4 +%j +ジョブ数です。 +.TP 4 %d `Day' 形式の曜日。 .TP 4 %D `dd' 形式の日にち。 .TP 4 %w `Mon' 形式の月。 .TP 4 %W `mm' 形式の月。 .TP 4 %y `yy' 形式の年。 .TP 4 %Y `yyyy' 形式の年。 .TP 4 %l シェルの tty。 .TP 4 %L プロンプトの終わりから、 ディスプレイの終わりまたは行末までクリアします。 .TP 4 %$ `$' の直後のシェル変数または環境変数を展開します。 .TP 4 %# 普通のユーザは `>' (または \fBpromptchars\fR シェル変数の最初の文字)、 スーパーユーザは `#' (または \fBpromptchars\fR の 2 番目の文字)。 .TP 4 %{\fIstring\fR%} \fIstring\fR を文字通りのエスケープシーケンスとして取り込みます。 これは端末属性を変更するためにのみ使うべきで、 カーソル位置の移動をこれで行ってはいけません。 これは \fBprompt\fR の最後のシーケンスであってはいけません。 .TP 4 %? プロンプトの直前で実行されたコマンドの戻り値。 .TP 4 %R \fBprompt2\fR の中ではパーザの状態。 \fBprompt3\fR の中では修正された文字列。 \fBhistory\fR の中では履歴文字列。 .PD .PP `%B', `%S', `%U', `%{\fIstring\fR%}' は、 8bit クリーンなシェルでのみ利用できます。 \fBversion\fR シェル変数を参照してください。 .PP ボールド、スタンドアウト、下線といったシーケンスは、 スーパーユーザのシェルを区別するために使われることが多いです。 たとえば、 .IP "" 4 > set prompt = "%m [%h] %B[%@]%b [%/] you rang? " .br tut [37] \fB[2:54pm]\fR [/usr/accts/sys] you rang? _ .PP `%t', `%@', `%T', `%p', `%P' のどれかが使われていて、 かつ \fBnoding\fR が設定されていなければ、 毎正時 (`:00' 分) には実際の時刻の代わりに `DING!' を表示します。 .PP 対話的シェルでのデフォルトは `%# ' です。 .RE .TP 8 .B prompt2 \fR(+) \fIwhile\fR ループや \fIforeach\fR ループの中で、 また `\\' で終った行の次の行で、 プロンプトとして用いられる文字列。 \fBprompt\fR (そちらも参照) と同じ フォーマットシーケンスが使えます。 `%R' の意味が変わることに注意してください。 対話的シェルでのデフォルトは `%R?' です。 .TP 8 .B prompt3 \fR(+) 自動スペル訂正の確定時のプロンプト文字列。 \fBprompt\fR (そちらも参照) と同じ フォーマットシーケンスが使えます。 `%R' の意味が変わることに注意してください。 対話的シェルでのデフォルトは `CORRECT>%R (y|n|e|a)?' です。 .TP 8 .B promptchars \fR(+) (2 文字の文字列に) 設定すると、\fBprompt\fR シェル変数中の `%#' フォーマットシーケンスが、普通のユーザでは最初の文字で、 スーパーユーザでは 2 番目の文字で置き換えられます。 .TP 8 .B pushdtohome \fR(+) 設定すると、引数をとらない \fIpushd\fR は、 \fIcd\fR のように `pushd ~' を実行します。 .TP 8 .B pushdsilent \fR(+) 設定すると、\fIpushd\fR と \fIpopd\fR の際に ディレクトリスタックが表示されなくなります。 .TP 8 .B recexact \fR(+) 設定すると、補完の際に正確なマッチがあれば、 より長いマッチが可能な場合でも、正確なほうに補完します。 .TP 8 .B recognize_only_executables \fR(+) 設定すると、コマンドリストは パス中にある実行可能なファイルのみを表示します。遅いです。 .TP 8 .B rmstar \fR(+) 設定すると、ユーザは `rm *' を実行する前に確認を受けます。 .TP 8 .B rprompt \fR(+) (コマンド入力後) prompt が左に表示される際に、 スクリーンの右側 (コマンド入力の後ろ側) に表示される文字列。 prompt と同じフォーマット文字列が使えます。 この文字列は、コマンド入力を邪魔しないように自動的に隠れたり、 また再度現れたりします。 (左側の) プロンプト、コマンド入力、この文字列が 最初の 1 行に収まる場合に限り、この文字列は表示されます。 \fBedit\fR が設定されていなければ、 \fBrprompt\fR はプロンプトの後、コマンド入力の前に表示されます。 .TP 8 .B savedirs \fR(+) 設定すると、シェルは終了する前に `dirs \-S' を行います。 最初の単語を数字に設定すると、 その個数までディレクトリスタックのエントリを保存します。 .TP 8 .B savehist 設定すると、シェルは終了する前に `history \-S' を行います。 最初の単語を数字に設定すると、その個数までの行が保存されます。 (個数は \fBhistory\fR 以下でなければなりません。) 2 番目の単語を `merge' にすると、 履歴ファイルが存在する場合に、置換ではなく追加を行います。 そしてタイムスタンプによってソートを行い、 最近のイベントを残します。(+) .TP 8 .B sched \fR(+) \fIsched\fR 組み込みコマンドがスケジュールイベントを表示する書式。 特に指定しなければ `%h\\t%T\\t%R\\n' が使われます。 フォーマットシーケンスは上記の \fBprompt\fR 以下に書いてあります。 `%R' の意味が変わることに注意してください。 .TP 8 .B shell シェルのファイル。これはシェルをフォークして、 実行ビットが設定されているがシステムによる実行が不可能なファイルを 実行するために用いられます (\fB組み込みコマンド、非組み込みコマンドの実行\fRを参照)。 初期値は、(システム依存の) シェルの置き場所です。 .TP 8 .B shlvl \fR(+) 入れ子になったシェルの数。ログインシェルでは 1 にリセットされます。 \fBloginsh\fR も参照してください。 .TP 8 .B status 最後のコマンドによって返された状態。 コマンドが異常終了した場合には 0200 が加えられます。 組み込みコマンドは、失敗すると終了状態 `1' を返します。 その他の場合は、すべての組み込みコマンドは状態 `0' を返します。 .TP 8 .B symlinks \fR(+) いくつか異なった値に設定でき、 シンボリックリンク (`symlink') の解決を制御できます。 .RS +8 .PP `chase' に設定すると、 カレントディレクトリがシンボリックリンクを含むディレクトリになったら、 リンクをそれが指しているディレクトリの実名に展開します。 この機能はユーザのホームディレクトリでは働きません。これはバグです。 .PP `ignore' にすると、 このシェルはリンクを通ってカレントディレクトリを移動する場合、 移動先のディレクトリを現在のディレクトリに対する 相対位置として構築しようとします。 これはすなわち、シンボリックリンクを通して cd を行い、 続いて `cd ..' を行うと、 元のディレクトリに戻る、ということを意味します。 これは組み込みコマンドとファイル名補完にのみ影響します。 .PP `expand' に設定すると、シェルはパス名のように見える引き数を 実際に展開して、シンボリックリンクを元に戻そうとします。 これは組み込みコマンドのみならず、すべてのコマンドに影響します。 残念ながら、これは認識しにくいファイル名 (たとえばコマンドオプションに埋めこまれたものなど) には動作しません。 クォートすれば展開は行われません。 たいていの場合はこの設定が便利ですが、 展開すべき引き数を認識できないと、誤解や混乱の元になるかもしれません。 妥協案として、 `ignore' にしておいて、 必要な場合には編集コマンド \fInormalize-path\fR (デフォルトでは ^X-n にバインドされています) を使うのがいいかもしれません。 .PP 順にいくつか例を示します。 まずは遊び場となるディレクトリを準備しましょう。 .IP "" 4 > cd /tmp .br > mkdir from from/src to .br > ln \-s from/src to/dst .PP \fBsymlinks\fR が設定されていない場合の動作: .IP "" 4 > cd /tmp/to/dst; echo $cwd .br /tmp/to/dst .br > cd ..; echo $cwd .br /tmp/from .PP \fBsymlinks\fR が `chase' に設定されている場合の動作: .IP "" 4 > cd /tmp/to/dst; echo $cwd .br /tmp/from/src .br > cd ..; echo $cwd .br /tmp/from .PP \fBsymlinks\fR が `ignore' に設定されている場合の動作: .IP "" 4 > cd /tmp/to/dst; echo $cwd .br /tmp/to/dst .br > cd ..; echo $cwd .br /tmp/to .PP \fBsymlinks\fR が `expand' に設定されている場合の動作: .IP "" 4 > cd /tmp/to/dst; echo $cwd .br /tmp/to/dst .br > cd ..; echo $cwd .br /tmp/to .br > cd /tmp/to/dst; echo $cwd .br /tmp/to/dst .br > cd ".."; echo $cwd .br /tmp/from .br > /bin/echo .. .br /tmp/to .br > /bin/echo ".." .br \&.. .PP いくつか注意しますと、`expand' による展開は、 1) \fIcd\fR のような組み込みコマンドに対しては `ignore' のように働きます。 2) クォートすれば行われません。 3) 非組み込みコマンドの場合は、ファイル名を渡す前に行われます。 .RE .TP 8 .B tcsh \fR(+) `R.VV.PP' 形式のシェルのバージョン番号です。 `R' はメジャーリリース番号、 `VV' はカレントバージョン、 `PP' はパッチレベルです。 .TP 8 .B term 端末の種類。 \fBスタートアップとシャットダウン\fR で述べているように、通常は \fI~/.login\fR で設定されます。 .TP 8 .B time 数値を設定すると、それ以上の CPU 時間 (秒) を消費したコマンドの実行後に、 自動的に組み込みコマンド \fItime\fR (そちらも参照) を実行します。2 番目の単語があれば、 \fItime\fR 組み込みコマンドの出力フォーマット文字列として 使われます。 (u) 以下のシーケンスがフォーマット文字列で使えます。 .PP .RS +8 .PD 0 .TP 4 %U プロセスがユーザモードで消費した CPU 時間 (秒)。 .TP 4 %S プロセスがカーネルモードで消費した CPU 時間 (秒)。 .TP 4 %E (壁時計での) 経過時間 (秒)。 .TP 4 %P (%U + %S) / %E として計算される CPU 使用率。 .TP 4 %W プロセスがスワップされた回数。 .TP 4 %X (共有) テキスト空間の平均使用量。 Kbyte 単位。 .TP 4 %D (非共有) データ/スタック空間の平均使用量。 Kbyte 単位。 .TP 4 %K (%X + %D) の総使用量。 Kbyte 単位。 .TP 4 %M プロセスが使用したメモリの瞬間最大値。 Kbyte 単位。 .TP 4 %F メジャーページフォールトの回数 (ディスクから取って来る必要があったページ数)。 .TP 4 %R マイナーページフォールトの回数。 .TP 4 %I 入力操作の回数。 .TP 4 %O 出力操作の回数。 .TP 4 %r ソケットメッセージを受け取った回数。 .TP 4 %s ソケットメッセージを送った回数。 .TP 4 %k シグナルを受け取った回数。 .TP 4 %w 自発的なコンテキストスイッチの回数 (wait の回数)。 .TP 4 %c 非自発的なコンテキストスイッチの回数。 .PD .PP BSD 資源制限機能の無いシステムでは、 最初の 4 つのシーケンスだけがサポートされています。 デフォルトの時間フォーマットは、 資源使用報告をサポートしているシステムでは `%Uu %Ss %E %P %X+%Dk %I+%Oio %Fpf+%Ww' で、 そうでないシステムでは `%Uu %Ss %E %P' です。 .PP Sequent の DYNIX/ptx では、 %X, %D, %K, %r, %s が使えませんが、 以下の追加シーケンスが利用できます。 .PP .PD 0 .TP 4 %Y システムコールが実行された回数。 .TP 4 %Z 要求に応じてゼロで埋められたページ数。 .TP 4 %i プロセスの常駐サイズがカーネルによって増加させられた回数。 .TP 4 %d プロセスの常駐サイズがカーネルによって減少させられた回数。 .TP 4 %l read システムコールが実行された回数。 .TP 4 %m write システムコールが実行された回数。 .TP 4 %p raw ディスク装置から読み込んだ回数。 .TP 4 %q raw ディスク装置へ書き込んだ回数。 .PD .PP デフォルトの時間フォーマットは `%Uu %Ss $E %P %I+%Oio %Fpf+%Ww' です。 マルチプロセッサでは CPU 使用率が 100% より高くなることがあります。 .RE .TP 8 .B tperiod \fR(+) 特別なエイリアス \fIperiodic\fR の実行される周期 (分単位)。 .TP 8 .B tty \fR(+) tty の名前。端末にアタッチされていない場合は空。 .TP 8 .B uid \fR(+) ユーザの実ユーザ ID。 .TP 8 .B user ユーザのログイン名。 .TP 8 .B verbose 設定すると、ヒストリ置換後に、 各コマンドの単語を (あれば) 表示します。 コマンドラインオプション \fB\-v\fR によって設定されます。 .TP 8 .B version \fR(+) バージョン ID スタンプ。 シェルのバージョン番号 (\fBtcsh\fR を参照)、 配布元、リリース日、ベンダー、オペレーティングシステム、 マシン (\fBVENDOR\fR, \fBOSTYPE\fR, \fBMACHTYPE\fR を参照)、 コンパイル時に設定されたオプションをカンマで区切ったリストからなります。 ディストリビューションのデフォルトとして セットされたオプションが記録されています。 .PP .RS +8 .PD 0 .TP 4 8b シェルは 8bit クリーン。デフォルト。 .TP 4 7b シェルは 8bit クリーンでない。 .TP 4 nls システムの NLS を使う。 NLS のあるシステムではデフォルト。 .TP 4 lf ログインシェルは \fI/etc/csh.cshrc\fR の後ではなく先に \fI/etc/csh.login\fR を実行し、 \fI~/.tcshrc\fR と \fI~/.history\fR の後ではなく先に \fI~/.login\fR を実行する。 .TP 4 dl セキュリティ上の理由から `.' を \fBpath\fR の最後に置く。デフォルト。 .TP 4 nd セキュリティ上の理由から `.' を \fBpath\fR に含めない。 .TP 4 vi \fIemacs\fR-形式ではなく \fIvi\fR-形式の編集をデフォルトにする。 .TP 4 dtr ログインシェルは終了時に DTR を落とす。 .TP 4 bye \fIbye\fR を \fIlogout\fR の同義語とし、 \fIlog\fR を \fIwatchlog\fR の別名として扱う。 .TP 4 al \fBautologout\fR を有効にする。デフォルト。 .TP 4 kan \fBnokanji\fR シェル変数が設定されない限り、 ロケール設定が適切であれば、漢字を使う。 .TP 4 sm システムの \fImalloc\fR(3) を使う。 .TP 4 hb シェルスクリプトの実行時に `#! ' 方式をエミュレートする。 .TP 4 ng \fInewgrp\fR 組み込みコマンドが利用可能。 .TP 4 rh シェルは \fBREMOTEHOST\fR 環境変数を設定しようとする。 .TP 4 afs シェルはもしローカルな認証が失敗したら、 kerberos サーバにパスワードを確認する。 \fBafsuser\fR シェル変数か \fBAFSUSER\fR 環境変数が 設定されていたら、その内容でローカルユーザ名を上書きする。 .PD .PP システム管理者は、文字列を追加して ローカルバージョンでの違いを示すようにできます。 .RE .TP 8 .B visiblebell \fR(+) 設定すると、音声ベルの代わりに画面をフラッシュします。 \fBnobeep\fR も参照してください。 .TP 8 .B watch \fR(+) ログイン / ログアウトの監視対象とする、「ユーザ / 端末」ペアのリスト。 ユーザに対する端末が `any' なら、指定したユーザをすべての端末で監視します。 逆にユーザが `any' なら、指定した端末ですべてのユーザを監視します。 \fBwatch\fR を `(any any)' に設定すると、 すべてのユーザと端末を監視します。 たとえば、 .RS +8 .IP "" 4 set watch = (george ttyd1 any console $user any) .PP は、ユーザ `george' の ttyd1 での行動を、 そしてあらゆるユーザのコンソールでの行動を、 そして自分自身 (または不法侵入者) のすべての端末での行動を報告します。 .PP デフォルトでは、ログインとログアウトは 10 分毎に調べられますが、 \fBwatch\fR の最初の単語に、調べる間隔を分単位で書くこともできます。 たとえば、 .IP "" 4 set watch = (1 any any) .PP は 1 分おきにあらゆるログイン / ログアウトを報告します。 我慢の効かない人は、\fIlog\fR 組み込みコマンドを用いれば、 いつでも \fBwatch\fR のレポートを見ることができます。 \fBwatch\fR が最初に設定された時には、 現在ログインしているユーザリストが (\fIlog\fR 組み込みコマンドによって) 報告されます。 .PP \fBwatch\fR の報告形式は \fBwho\fR シェル変数で制御します。 .RE .TP 8 .B who \fR(+) \fBwatch\fR メッセージのフォーマット文字列。 以下のシーケンスが得られた情報で置換されます。 .PP .RS +8 .PD 0 .TP 4 %n ログイン / ログアウトしたユーザの名前。 .TP 4 %a 観察された行動: `logged on', `logged off', `replaced \fIolduser\fR on' のいずれか。 .TP 4 %l ユーザがログイン / ログアウトした端末 (tty)。 .TP 4 %M リモートホストの完全なホスト名。 ローカルホストでのログイン / ログアウトの場合は `local'。 .TP 4 %m リモートホストの、最初の `.' までのホスト名。 IP アドレスや X Window System ディスプレイの場合は名前全体。 .PD .PP %M と %m は \fI/etc/utmp\fR にリモートホスト名を 格納するシステムでのみ利用できます。 設定しなければ `%n has %a %l from %m.' が用いられます。 ただしリモートホスト名を格納しないシステムでは `%n has %a %l.' が用いられます。 .RE .TP 8 .B wordchars \fR(+) \fIforward-word\fR, \fIbackward-word\fR 等の編集コマンドで、 単語の一部とみなされる非英数文字のリスト。 設定されなければ `*?_\-.[]~=' が使われます。 .SH 環境変数 .TP 8 .B AFSUSER \fR(+) \fBafsuser\fR シェル変数と同じです。 .TP 8 .B COLUMNS 端末の桁数です (\fB端末管理\fR を参照)。 .TP 8 .B DISPLAY X Window System によって使われます (\fIX\fR(1) を参照)。 設定されると、このシェルは \fBautologout\fR (そちらも参照) を設定しません。 .TP 8 .B EDITOR デフォルトのエディタのパス名です。 \fBVISUAL\fR 環境変数と \fIrun-fg-editor\fR 編集コマンドも参照してください。 .TP 8 .B GROUP \fR(+) \fBgroup\fR シェル変数と同じです。 .TP 8 .B HOME \fBhome\fR シェル変数と同じです。 .TP 8 .B HOST \fR(+) シェルが実行されているマシンの名前で初期化されます。 これは \fIgethostname\fR(2) システムコールで決定されます。 .TP 8 .B HOSTTYPE \fR(+) シェルが実行されているマシンのタイプで初期化されます。 これはコンパイル時に決定されます。 この変数は廃止される予定であり、将来のバージョンで削除されるでしょう。 .TP 8 .B HPATH \fR(+) \fIrun-help\fR 編集コマンドがコマンドの解説文書を探す ディレクトリのリストです。区切り文字はコロンです。 .TP 8 .B LANG 優先的に使用される文字環境を与えます。 \fB固有言語システムのサポート\fRを参照してください。 .TP 8 .B LC_CTYPE 設定されていると、ctype キャラクタの扱いだけが変更されます。 \fB固有言語システムのサポート\fRを参照してください。 .TP 8 .B LINES 端末の行数です。 \fB端末管理\fRを参照してください。 .TP 8 .B LS_COLORS この変数のフォーマットは \fBtermcap\fR(5) ファイルのフォーマットと 似ています。"\fIxx=string\fR" の形をした式をコロンで区切って並べた リストです。"\fIxx\fR" は 2 文字の変数名です。 変数とそれらのデフォルト値は以下の通りです。 .PP .RS +8 .RS +4 .PD 0 .TP 12 no 0 Normal (non-filename) text: ファイル名を除く通常のテキスト .TP 12 fi 0 Regular file: 通常のファイル .TP 12 di 01;34 Directory: ディレクトリ .TP 12 ln 01;36 Symbolic link: シンボリックリンク .TP 12 pi 33 Named pipe (FIFO): 名前付きパイプ .TP 12 so 01;35 Socket: ソケット .TP 12 +do 01;35 +Door: ドア +.TP 12 bd 01;33 Block device: ブロック型デバイス .TP 12 cd 01;32 Character device: キャラクタ型デバイス .TP 12 ex 01;32 Executable file: 実行可能ファイル .TP 12 mi (none) Missing file (defaults to fi): 行方不明のファイル .TP 12 or (none) Orphaned symbolic link (defaults to ln): リンク先のないシンボリックリンク .TP 12 lc ^[[ Left code: 色指定シーケンス開始コード .TP 12 rc m Right code: 色指定シーケンス終了コード .TP 12 ec (none) End code (replaces lc+no+rc): 色出力を終えるシーケンス .PD .RE .PP デフォルトから変更したい変数だけを指定すれば OK です。 .PP ファイルの名前を、ファイル名の拡張子をもとに色づけすることもできます。 これの指定は、\fBLS_COLORS\fR 変数に \fB"*ext=string"\fR のシンタックスを用いて行います。 たとえば、ISO 6429 のコードを使いすべての C 言語のソースファイルを ブルーに色づけするには \fB"*.c=34"\fR と指定すればよいでしょう。 これは \fB.c\fR で終わるすべてのファイルをブルー (34) に色づけします。 .PP コントロールキャラクタは C スタイルのエスケープ表記か stty のような ^\- 表記のどちらかで書くことができます。C スタイルの表記では エスケープコードの記述に \fB^[\fR, スペースコードの記述に \fB\_\fR, デリートコードの記述に \fB?\fR を追加します。 さらに、\fB^[\fR エスケープキャラクタを用いると、 \fB^[\fR, \fB^\fR, \fB:\fR, \fB=\fR のデフォルトの解釈を 変更することができます。 .PP それぞれのファイルは \fB\fR \fB\fR \fB\fR \fB\fR \fB\fR のように書かれます。 \fB\fR が未定義ならば、\fB\fR \fB \fB\fR のシーケンスが代わりに使われます。 こちらの方が通常便利に使えますが、あまり一般的ではありません。 left, right, end のコードを用意した理由は、 同じシーケンスを繰り返し入力しなくてもいいように、また、 妙な端末に対応できるようにするためです。 通常は、ISO 6429 カラーシーケンスと異なるシステムを使っていない 限り、これらを変更する必要はほとんどありません。 .PP 端末が ISO 6429 color コードを使っていれば、(\fBlc\fR, \fBrc\fR, \fBec\fR コードを全く使わずに) セミコロンで区切られた数字のコマンドで タイプコードを構成することができます。 良く用いられるコマンドは以下の通りです。 .PP .RS +8 .PD 0 .TP 4 0 デフォルトの色に戻します。 .TP 4 1 高輝度色 .TP 4 4 アンダライン付きテキスト .TP 4 5 点滅テキスト .TP 4 30 前景色黒 .TP 4 31 前景色赤 .TP 4 32 前景色グリーン .TP 4 33 前景色黄 (ブラウン) .TP 4 34 前景色ブルー .TP 4 35 前景色紫 .TP 4 36 前景色シアン .TP 4 37 前景色白 (グレー) .TP 4 40 背景色黒 .TP 4 41 背景色赤 .TP 4 42 背景色グリーン .TP 4 43 背景色黄 (ブラウン) .TP 4 44 背景色ブルー .TP 4 45 背景色紫 .TP 4 46 背景色シアン .TP 4 47 背景色白 (グレー) .PD .RE .PP すべてのコマンドがすべてのシステムや表示装置で 動作するわけではありません。 .PP 少なからぬ端末プログラムではデフォルトの終了コードを正しく 認識しません。ディレクトリのリストをした後ですべてのテキストに 色を付けるためには、\fBno\fR コードと \fBfi\fR コードを、 それぞれ 0 から前景色、背景色の数値コードへ変更してみてください。 .RE .TP 8 .B MACHTYPE \fR(+) コンパイル時に決定されたマシンタイプ (マイクロプロセッサまたは、 マシンモデル) です。 .TP 8 .B NOREBIND \fR(+) 設定されていると、印刷可能文字は \fIself-insert-command\fR を 繰り返し実行されません。 \fB固有言語システムのサポート\fRを参照してください。 .TP 8 .B OSTYPE \fR(+) コンパイル時に決定されたオペレーションシステムです。 .TP 8 .B PATH 実行可能ファイルを探すディレクトリの、コロン区切り形式のリスト。 シェル変数 \fBpath\fR によく似ていますがフォーマットに違いがあります。 .TP 8 .B PWD \fR(+) シェル変数 \fBcwd\fR に似ていますが、シェル変数とは同期していません。 実際のディレクトリ変更が行われたあとでだけアップデートされます。 .TP 8 .B REMOTEHOST \fR(+) ユーザがどのホストからログインしているかを示します (リモートからのログインで、 かつこのシェルがこれらの情報を決定できる場合)。 シェルがそのようにコンパイルされている場合だけに設定されます。 \fBversion\fR シェル変数を参照してください。 .TP 8 .B SHLVL \fR(+) \fBshlvl\fR と同じです。 .TP 8 .B SYSTYPE \fR(+) 現在のシステムタイプです。 (Domain/OS のみ) .TP 8 .B TERM \fBterm\fR シェル変数と同じです。 .TP 8 .B TERMCAP 端末のケーパビリティ文字列です。 \fB端末管理\fRを参照してください。 .TP 8 .B USER \fBuser\fR シェル変数と同じです。 .TP 8 .B VENDOR \fR(+) コンパイル時に決定されたベンダ名です。 .TP 8 .B VISUAL デフォルトのフルスクリーンエディタへのパス名です。 \fBEDITOR\fR 環境変数と \fIrun-fg-editor\fR 編集コマンドも参照してください。 .SH 関連ファイル .PD 0 .TP 16 .I /etc/csh.cshrc すべてのシェルで最初に読み込まれます。 ConvexOS, Stellix, Intel では \fI/etc/cshrc\fR を使います。 NeXTs では \fI/etc/cshrc.std\fR を使います。 A/UX, AMIX, Cray, IRIX の \fIcsh\fR(1) はこのファイルを読みませんが、 いずれにせよ \fItcsh\fR ではこのファイルが読み込まれます。 Solaris 2.x もこのファイルを持ちませんが、\fItcsh\fR は \fI/etc/.cshrc\fR を読み込みます。(+) .TP 16 .I /etc/csh.login \fI/etc/csh.cshrc\fR の後にログインシェルによって読み込まれます。 ConvexOS, Stellix, Intel では \fI/etc/login\fR を使います。 NeXTs では \fI/etc/login.std\fR を使用します。 Solaris 2.x では \fI/etc/.login\fR を使います。 A/UX, AMIX, Cray, IRIX では \fI/etc/cshrc\fR を使います。 .TP 16 .I ~/.tcshrc \fR(+) \fI/etc/csh.cshrc\fR かそれに相当するファイルの後に、 すべてのシェルで読み込まれます。 .TP 16 .I ~/.cshrc \fI~/.tcshrc\fR が存在しなければ、 \fI/etc/csh.cshrc\fR かそれに相当するファイルの後に、 すべてのシェルで読み込まれます。 このマニュアルでは `\fI~/.tcshrc\fR' を 「`\fI~/.tcshrc\fR' か `\fI~/.tcshrc\fR' が見つからなかった場合の \fI~/.cshrc\fR'」 の意味で使用します。 .TP 16 .I ~/.history \fBsavehist\fR が設定されている場合は \fI~/.tcshrc\fR の後にログインシェルによって読み込まれます。 ただし \fBhistfile\fR の部分も参照してください。 .TP 16 .I ~/.login \fI~/.tcshrc\fR または \fI~/.history\fR の後にログインシェルによって 読み込まれます。シェルは\fI~/.login\fR を \fI~/.tcshrc\fR と \fI~/.history\fR の後にではなく、前に読み込むように コンパイルされているかもしれません。 \fBversion\fR シェル変数を参照してください。 .TP 16 .I ~/.cshdirs \fR(+) \fBsavedirs\fR が設定されている場合には、 \fI~/.login\fR の後にログインシェルによって読み込まれます。 ただし \fBdirsfile\fR も参照してください。 .TP 16 .I /etc/csh.logout ログアウト時にログインシェルによって読み込まれます。 ConvexOS, Stellix, Intel では、 \fI/etc/logout\fR を使います。 A/UX, AMIX, Cray, IRIX では、 \fIcsh\fR(1) はこれに対応するファイルを持ちませんが、 いずれにしても \fItcsh\fR はこのファイルを読みます。 Solaris 2.x も \fI/etc/logout\fR を持っていませんが、 \fItcsh\fR は \fI/etc/.logout\fR を読み込みます。 (+) .TP 16 .I ~/.logout \fI/etc/csh.logout\fR またはその相当ファイルが実行された後に、 ログインシェルによって読み込まれます。 .TP 16 .I /bin/sh `#' で始まらないシェルスクリプトを解釈実行するために使われます。 .TP 16 .I /tmp/sh* `<<' 用の一時ファイルです。 .TP 16 .I /etc/passwd ホームディレクトリ `~name' を代入するための情報源です。 .PD .PP スタートアップファイルの読み込みの順番は、 シェルのコンパイル時に変更されているかもしれません。 \fBスタートアップとシャットダウン\fRと \fBversion\fR を参照してください。 .SH "新規機能 (+)" このマニュアルでは、\fItcsh\fR をひとつの対象として記述してきました。 しかし \fIcsh\fR(1) の経験者は、 \fItcsh\fR の新しい機能に特に興味があるでしょう。 .PP コマンド行編集: GNU Emacs スタイルや \fIvi\fR(1)-スタイルの キーバインディングをサポートしています。 \fBコマンド行エディタ\fRと\fB編集コマンド\fRを参照してください。 .PP プログラマブルで対話的な単語補完と一覧表示。 \fB補完と一覧\fRと、組み込みコマンド \fIcomplete\fR, \fIuncomplete\fR の記述を見てください。 .PP ファイル名、コマンド、変数名の\fBスペル訂正\fR (そちらも参照)。 .PP \fBエディタ編集コマンド\fR (そちらも参照) で、 コマンドのタイプ中に他の便利な機能を実行できます。 ヘルプファイルの参照してください (\fIrun-help\fR)、 手軽にエディタの再起動 (\fIrun-fg-editor\fR)、 コマンド解決 (\fIwhich-command\fR) などができます。 .PP 高性能化されたヒストリ機能。 ヒストリリストのイベントにタイムスタンプをつけられます。 \fIhistory\fR コマンドおよびそれに関連するシェル変数、 \fBヒストリ置換\fRに記述されている、 以前には文書化されていなかった `#' イベント記述子と新しい修正子、 \fI*-history\fR, \fIhistory-search-*\fR, \fIi-search-*\fR, \fIvi-search-*\fR, \fItoggle-literal-history\fR 各編集コマンド、 シェル変数 \fBhistlit\fR なども参照してください。 .PP 高性能化されたディレクトリ解釈 (parsing) とディレクトリスタック操作。 \fIcd\fR, \fIpushd\fR, \fIpopd\fR and \fIdirs\fR コマンドとそれらに 関連するシェル変数、\fBディレクトリスタック置換\fRでの説明、 \fBdirstack\fR, \fBowd\fR, \fBsymlinks\fR シェル変数、 \fInormalize-command\fR, \fInormalize-path\fR 編集コマンドなどを参照してください。 .PP グロブパターンの否定。 \fBファイル名置換\fRを見てください。 .PP 新しいファイル問い合わせ演算子 (そちらも参照) とそれらを用いる組み込みコマンド \fIfiletest\fR。 .PP スケージューリングされたイベント、特別なエイリアス、自動ログアウト、 端末のロック、コマンド待ち、ログインとログアウトの監視などなどを含む、 各種の\fB自動イベント、定期イベント、時刻指定イベント\fR (それぞれの項目を参照)。 .PP 固有言語システムのサポート (\fB固有言語システムのサポート\fRを見てください)、 OS 固有の各種機能のサポート (\fBOS 固有機能のサポート\fRと \fBecho_style\fR シェル変数を参照)、 システム依存のファイル配置 (\fB関連ファイル\fRを参照) .PP 拡張された端末管理能力 (\fB端末管理\fRを参照)。 .PP \fIbuiltins\fR, \fIhup\fR, \fIls\-F\fR, \fInewgrp\fR, \fIprintenv\fR, \fIwhich\fR, \fIwhere\fR などの新しい 組み込みコマンド (それぞれの項目を参照)。 .PP 新しい変数。シェルから便利な情報を簡単に入手できます。 \fBgid\fR, \fBloginsh\fR, \fBoid\fR, \fBshlvl\fR, \fBtcsh\fR, \fBtty\fR, \fBuid\fR, \fBversion\fR シェル変数と、 \fBHOST\fR, \fBREMOTEHOST\fR, \fBVENDOR\fR, \fBOSTYPE\fR, \fBMACHTYPE\fR 環境変数。 それぞれの説明を見てください。 .PP 有用な情報をプロンプト文字列に埋めこむための新しいシンタックス (\fBprompt\fR を参照)。 ループとスペル訂正用の特別なプロンプト (\fBprompt2\fR と \fBprompt3\fR を参照)。 .PP 読み取り専用の変数 (\fB変数置換\fRを参照)。 .SH バグ サスペンドされたコマンドが再開されたときに、 カレントディレクトリが起動されたときと違っている場合には、 起動時のディレクトリを表示します。 ジョブが内部でディレクトリを変更することもあり得るので、 これは間違った情報を与えてしまうかもしれません。 .PP シェルの組み込み機能は停止、再開できません。 `a ; b ; c' のような形のコマンド列を停止させるときの処理も あまり上品なものではありません。 `b' コマンドをサスペンドさせると、 シェルは即座に `c' コマンドを実行してしまいます。 \fIalias\fR での展開結果を実行しているときには、 特にこの点に注意が必要です。 コマンド列を () の中に入れて、 サブシェルに押し込めてしまうのがいいでしょう。 つまり `( a ; b ; c )' のようにするのです。 .PP プロセス開始後の端末出力の制御が原始的です。 誰かが仮想端末の良いインタフェースを作ってくれるといいのですが。 仮想端末インターフェースの分野では、 出力制御に関して面白いことがたくさん行えるはずです。 .PP エイリアス置換がシェル手続きのシミュレートに大変良く用いられますが、 これはあまり気のきいたものではありません。 エイリアスよりもシェル手続きを提供すべきです。 .PP ループの中のコマンドは、ヒストリリストに追加されません。 制御構造は、組み込みコマンドとしては認識されず、単に解釈されます。 したがって制御コマンドはどこにでも置くことができ、 パイプ `|' といっしょにも、 `&' と `;' のようなメタシンタックスといっしょにも使えます。 .PP \fIforeach\fR は \fIend\fR を探しているとき ヒアドキュメントを無視しません。 .PP `:' 修飾子は、 コマンド置換の出力に使えるべきです。 .PP ダム端末のように、端末がカーソルを上に移動できない場合には、 スクリーン幅より長い行の更新が大変貧弱です。 .PP \fBHPATH\fR と \fBNOREBIND\fR は環境変数である必要はありません。 .PP `?' や `*' や `[]' を使わないグロブパターンや、 `{}' や `~' を使うグロブパターンは、否定が正しく扱われません。 .PP \fIif\fR の単一コマンド形式では、たとえ式が偽で、 コマンドが実行されなかったとしても、リダイレクト出力をしてしまいます。 .PP \fIls\-F\fR はファイル名をソートするとき、 ファイル識別キャラクタを勘定に入れてしまいます。 またファイル名の中の制御文字を正しく扱うことができません。 中断させることもできません。 .PP バグレポートは tcsh-bugs@mx.gw.com まで送ってください。 修正もいっしょに送っていただけるとありがたいです。 もし tcsh のメンテナンスとテストを手伝って下さる場合には、 本文に "subscribe tcsh " と一行書いたメールを listserv@mx.gw.com に送ってください。 "subscribe tcsh-bugs " を講読すれば すべてのバグレポートが取得できます。 "subscribe tcsh-diffs " を講読すれば 開発 ML に参加でき、各パッチレベルでの diff を入手できます。 .SH tcsh の T の由来 1964 年 DEC は PDP-6 を開発しました。 のちに PDP-10 が再実装されました。 1970 年前後に DEC がそのセカンドモデル KI10 を発表したとき、 これには DECsystem-10 という新しい名前がつけられました。 .PP TENEX は 1972 年に Bolt, Beranek & Newman (Massachusetts 州 Cambridge のシンクタンク) において、 実験的なデマンドページ型仮想記憶 OS として作られました。 彼らは DEC PDP-10 用の新しいページャを構築し、 それを使った OS を作りました。 これは学術分野で非常に大きな成功を収めました。 .PP 1975 年 DEC は PDP-10 の新しいモデル KL10 を発表しました。 DEC は BBN から TENEX のライセンスを受け、 KL10 は TENEX 版のみにするつもりでした。 DEC はそれらのバージョンを TOPS-20 と呼んでいました (大文字化は商標です)。 多くの TOPS-10 ("The OPerating System for PDP-10" の頭文字です) ユーザが これに反対しました。 こうして DEC は同じハードウエアにふたつの互換性のないシステムを サポートしなければならないことになりました。 --でもそのとき PDP-11 には 6 つの OS があったのですが! .PP TENEX の TOPS-20 はバージョン 3 までに、 ULTCMD と呼ばれるユーザコードレベルのコマンド補完機能サブルーチンを 備えていました。バージョン 3 で DEC は、 これらの機能すべてと、さらにそれ以上とをモニタ (Unix でいうところのカーネル) に追加し、 COMND& JSYS (`Jump to SYStem' 命令; スーパーバイザーを呼び出す機能 [私が IBM 上がりだってバレちゃった?]) でアクセスできるようにしました .PP tcsh の作者たちは TENEX と TOPS-20 における これらの機能に影響を受け、これを模倣した版の csh を作成したのです。 .SH 制限 単語は 1024 文字より長くできません。 .PP システムは引数並びを 10240 文字までに制限しています。 .PP コマンドに与える引き数の数 (ファイル名展開を含む) は、 引き数リストに許された文字数の 1/6 までに制限されています。 .PP コマンド置換では、 引数リストに許された文字数より多くの文字数に置換できません。 .PP シェルはループを検出するために、 \fIalias\fR 置換の回数を 1 行当たり 20 に制限しています。 .SH 関連項目 csh(1), emacs(1), ls(1), newgrp(1), sh(1), setpath(1), stty(1), su(1), tset(1), vi(1), x(1), access(2), execve(2), fork(2), killpg(2), pipe(2), setrlimit(2), sigvec(2), stat(2), umask(2), vfork(2), wait(2), malloc(3), setlocale(3), tty(4), a.out(5), termcap(5), environ(7), termio(7), Introduction to the C Shell .SH バージョン このマニュアルは tcsh 6.11.00 (Astron) 2001-09-02 に関するドキュメントです。 .SH 作者 .PD 0 .TP 2 William Joy \fIcsh\fR(1) のオリジナル作者 .TP 2 J.E. Kulp, IIASA, Laxenburg, Austria ジョブコントロールとディレクトリスタック機能 .TP 2 Ken Greer, HP Labs, 1981 ファイル名補完 .TP 2 Mike Ellis, Fairchild, 1983 コマンド名認識 / 補完 .TP 2 Paul Placeway, Ohio State CIS Dept., 1983-1993 コマンドラインエディタ、プロンプトルーチン、新しいグロブの文法、 たくさんの修正とスピードアップ .TP 2 Karl Kleinpaste, CCI 1983-4 特別なエイリアス、ディレクトリスタックの取出し機能、 ログイン / ログアウト監視、スケジュールイベント、 新しいプロンプト書式のアイデア .TP 2 Rayan Zachariassen, University of Toronto, 1984 \fIls\-F\fR と \fIwhich\fR の組み込み、たくさんのバクフィックス、 修正とスピードアップ .TP 2 Chris Kingsley, Caltech 高速ストレージアロケータルーチン .TP 2 Chris Grevstad, TRW, 1987 4.3BSD \fIcsh\fR の \fItcsh\fR へのマージ .TP 2 Christos S. Zoulas, Cornell U. EE Dept., 1987-94 HPUX, SVR2, SVR3 に移植、SysV 版 getwd.c, SHORT_STRINGS をサポート、 sh.glob.c の新バージョン .TP 2 James J Dempsey, BBN, and Paul Placeway, OSU, 1988 A/UX に移植 .TP 2 Daniel Long, NNSC, 1988 \fBwordchars\fR .TP 2 Patrick Wolfe, Kuck and Associates, Inc., 1988 \fIvi\fR モードのクリーンアップ .TP 2 David C Lawrence, Rensselaer Polytechnic Institute, 1989 \fBautolist\fR と、あいまい補完の一覧 .TP 2 Alec Wolman, DEC, 1989 プロンプト中の改行 .TP 2 Matt Landau, BBN, 1989 ファイル \fI~/.tcshrc\fR .TP 2 Ray Moody, Purdue Physics, 1989 スペースバーの魔法によるヒストリ展開 .TP 2 Mordechai ????, Intel, 1989 printprompt() の修正と追加 .TP 2 Kazuhiro Honda, Dept. of Computer Science, Keio University, 1989 自動スペル訂正と \fBprompt3\fR .TP 2 Per Hedeland, Ellemtel, Sweden, 1990- さまざまなバグフィックス、改良とマニュアルのアップデート .TP 2 Hans J. Albertsson (Sun Sweden) \fBampm\fR, \fIsettc\fR, \fItelltc\fR .TP 2 Michael Bloom 割り込みハンドリングの修正 .TP 2 Michael Fine, Digital Equipment Corp 拡張キーのサポート .TP 2 Eric Schnoebelen, Convex, 1990 Convex サポート、\fIcsh\fR の多数のバグフィックス、 ディレクトリスタックの保存と復帰 .TP 2 Ron Flax, Apple, 1990 A/UX 2.0 への (再) 移植 .TP 2 Dan Oscarsson, LTH Sweden, 1990 NLS サポートと非 NLS サイト用の NLS シミュレート機能、修正 .TP 2 Johan Widen, SICS Sweden, 1990 \fBshlvl\fR, Mach サポート、\fIcorrect-line\fR, 8 ビット表示 .TP 2 Matt Day, Sanyo Icon, 1990 POSIX termio サポート、SysV limit 修正 .TP 2 Jaap Vermeulen, Sequent, 1990-91 vi モード修正、expand-line, ウインドウ変更の修正、Symmetry 移植 .TP 2 Martin Boyer, Institut de recherche d'Hydro-Quebec, 1991 \fBautolist\fR beeping オプション、 行の先頭からカーソルまでのすべてを対象とするヒストリ検索の修正 .TP 2 Scott Krotz, Motorola, 1991 Minix に移植 .TP 2 David Dawes, Sydney U. Australia, Physics Dept., 1991 SVR4 ジョブコントロールの修正 .TP 2 Jose Sousa, Interactive Systems Corp., 1991 拡張 \fIvi\fR の修正、\fIvi\fR デリートコマンド .TP 2 Marc Horowitz, MIT, 1991 ANSIfication の修正、新しい exec ハッシュコード、 imake の修正、\fIwhere\fR .TP 2 Bruce Sterling Woodcock, sterling@netcom.com, 1991-1995 ETA と Pyramid への移植、 Makefile と lint の修正、\fBignoreeof\fR=n 追加、 その他のさまざまな移植性向上のための変更、およびバグ修正 .TP 2 Jeff Fink, 1992 \fIcomplete-word-fwd\fR と \fIcomplete-word-back\fR .TP 2 Harry C. Pulley, 1992 Coherent に移植 .TP 2 Andy Phillips, Mullard Space Science Lab U.K., 1992 VMS-POSIX に移植 .TP 2 Beto Appleton, IBM Corp., 1992 移動プロセスグループの修正、\fIcsh\fR バグ修正、 POSIX file tests, POSIX SIGHUP .TP 2 Scott Bolte, Cray Computer Corp., 1992 CSOS に移植 .TP 2 Kaveh R. Ghazi, Rutgers University, 1992 Tek, m88k, Titan と Masscomp への移植と修正、 autoconf サポートの追加 .TP 2 Mark Linderman, Cornell University, 1992 OS/2 に移植 .TP 2 Mika Liljeberg, liljeber@kruuna.Helsinki.FI, 1992 Linux に移植 .TP 2 Tim P. Starrin, NASA Langley Research Center Operations, 1993 読み取り専用変数 .TP 2 Dave Schweisguth, Yale University, 1993-4 新しいマニュアルページと tcsh.man2html .TP 2 Larry Schwimmer, Stanford University, 1993 AFS と HESIOD パッチ .TP 2 Luke Mewburn, RMIT University, 1994-6 プロンプトの中でのディレクトリ表示の拡張、 \fBellipsis\fR と \fBrprompt\fR .TP 2 Edward Hutchins, Silicon Graphics Inc., 1996 暗黙的な cd の追加。 .TP 2 Martin Kraemer, 1997 Siemens Nixdorf EBCDIC machine に移植 .TP 2 Amol Deshpande, Microsoft, 1997 WIN32 (Windows/95 and Windows/NT) に移植、 足りないライブラリすべてと、 メッセージカタログコードのすべてを作成し、 Windows と通信できるようにした .TP 2 Taga Nayuta, 1998 色つき ls の追加 .PD .PP .SH 謝辞 以下のみなさんに感謝します。 .br Bryan Dunlap, Clayton Elwell, Karl Kleinpaste, Bob Manson, Steve Romig, Diana Smetters, Bob Sutterfield, Mark Verber, Elizabeth Zwicky そして提案と応援をしてくれたオハイオ州のすべてのみなさん。 .PP あらゆるバージョンに耐え、バグレポートを送ってくれ、 提案と新規追加をしてくれたネット上のすべてのみなさん。 .PP "tcsh の T の由来" の章を執筆してくれた Richard M. Alderson III。 .SH 翻訳 t_ogawa .br おさな .br ゆ〜こ .br 森浩二 .br NOKUBI Hirotaka .br 中野武雄 (JM プロジェクト) .br 蔭山 .br 中村和志@神戸 .br 大澤千敏@岐阜 .br 熊谷典大 .br (順不同) .PP 翻訳にあたり、JM プロジェクトの方々の御協力を頂きました。 diff --git a/ja_JP.eucJP/man/man1/top.1 b/ja_JP.eucJP/man/man1/top.1 index 2a74870775..e5880d11a0 100644 --- a/ja_JP.eucJP/man/man1/top.1 +++ b/ja_JP.eucJP/man/man1/top.1 @@ -1,383 +1,397 @@ .\" NOTE: changes to the manual page for "top" should be made in the .\" file "top.X" and NOT in the file "top.1". -.\" %FreeBSD: src/contrib/top/top.X,v 1.6.6.1 2000/07/20 13:29:20 phantom Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/top.1,v 1.9 2001/07/29 05:14:53 horikawa Exp $ +.\" %FreeBSD: src/contrib/top/top.X,v 1.6.6.2 2002/08/11 17:09:25 dwmalone Exp % +.\" $FreeBSD$ .nr N -1 .nr D 2 .TH TOP 1 Local .UC 4 .SH 名称 top \- CPU プロセスの上位リストに関する情報を表示/更新する .SH 書式 .B top [ -.B \-SbiInqut +.B \-SbiInqutv ] [ .BI \-d count ] [ .BI \-s time ] [ .BI \-o field ] [ .BI \-U username ] [ .I number ] .SH 解説 .\" This defines appropriate quote strings for nroff and troff .ds lq \&" .ds rq \&" .if t .ds lq `` .if t .ds rq '' .\" Just in case these number registers aren't set yet... .if \nN==0 .nr N 10 .if \nD==0 .nr D 2 .I top はシステム内の上位 .if !\nN==-1 \nN プロセスを表示し、その情報を定期的に更新します。 .if \nN==-1 \ \{\ 標準出力がインテリジェント端末 (以下を参照) なら、 デフォルトでは端末画面に合わせて表示プロセス数を決定します。 それ以外の場合、適切な数のプロセス (約 20 プロセス) が表示されます。 .\} 生の CPU パーセンテージを用いてプロセス順位を決めます。もし .I number が指定されると、デフォルト値に代えて、上位 .I number プロセスが表示されます。 .PP .I top の動作は高機能端末とそうでない端末とで異なります。 この差異によって、いくつかのオプションのデフォルト値も変わってきます。 以下の部分では、\*(lqインテリジェント\*(rq 端末とは、 カーソルアドレシング、画面クリアおよび行末までのクリアをサポートしている 端末のことを指します。 逆に \*(lqダム\*(rq 端末とは、そのような機能をサポートしていないものを いいます。 .I top の出力をファイルにリダイレクトすると、 あたかもダム端末上で動作しているように振る舞います。 .SH オプション .TP .B \-S システムプロセスも画面に表示します。 pager や swapper といったシステムプロセスは通常、表示されませんが、 このオプションによりそれらも見えるようになります。 .TP .B \-b \*(lqバッチ\*(rq モードにします。 バッチモードでは、端末からの入力は全て無視されます。 ただし割り込みキャラクタ (^C や ^\e など) は有効です。 ダム端末上で実行する場合や出力先が端末以外の場合は、これがデフォルトです。 .TP .B \-i \*(lq対話的実行\*(rq モードにします。 対話的実行モードでは、あらゆる入力は直ちに読み込んで処理されます。 どのキーがどういう機能をもっているかについては、 \*(lq対話的実行モード\*(rq のセクションを参照して下さい。 コマンドが処理されると、そのコマンドが理解されなかった場合でも、 画面は直ちに更新されます。 出力先がインテリジェント端末の場合は、これがデフォルトです。 .TP .B \-I アイドル状態のプロセスを表示しません。 デフォルトでは、 top はアクティブプロセスもアイドルプロセスも両方とも表示します。 .TP .B \-t .I top プロセスを表示しないようにします。 .TP .B \-n \*(lq非対話的実行\*(rq モードにします。 これは \*(lqバッチ\*(rq モードと同じです。 .TP .B \-q .I top を -20 に renice し、より高速に実行されるようにします。 この機能は、システムが大変重い場合に、問題箇所を発見する可能性を高めるために 用いられます。 このオプションは root のみ使用可能です。 .TP .B \-u uid 値をユーザ名に変換する時間を割かないようにします。 通常、 .I top は必要に応じてファイル \*(lq/etc/passwd\*(rq を読み、 出現する全てのユーザ id 値をログイン名に変換します。 このオプションはその変換を全て止め、できるだけ実行時間を低減させます。 ログイン名の代わりに uid 値が表示されます。 .TP +.B \-v +バージョン番号情報を標準エラー出力へ書き出し、即座に終了します。 +このオプションが使用された場合、他の処理は行われません。 +top 実行中に現在のリビジョン情報を閲覧したい場合、 +ヘルプコマンド \*(lq?\*(rq を使用してください。 +.TP .BI \-d count .I count 回だけ表示し、その後終了します。 1 回の表示とは、1 回の画面更新のことです。 このオプションにより、ユーザは希望する回数だけ状況を表示し、 その後自動的に .I top を終了させることができます。 インテリジェント端末では、表示回数の上限は設定されていません。 ダム端末ではデフォルト値は 1 回です。 .TP .BI \-s time 画面更新間隔を .I time 秒に設定します。デフォルトの画面更新間隔は \nD 秒です。 .TP .BI \-o field プロセス表示領域を指定したフィールドによってソートします。 フィールド名には出力で示されているカラム名を用いますが、小文字で指定します。 しばしば用いられる値は \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, \*(lqtime\*(rq ですが、これは OS によっても異なります。 必ずしも全ての OS でこのオプションがサポートされているわけではないことに 注意して下さい。 .TP .BI \-U username ユーザ .IR username が所有しているプロセスのみ表示します。 現在のところ、このオプションはユーザ名指定のみ可能で、uid 値は指定できません。 .PP .I count と .I number はいずれも \*(lq無限\*(rq を指定でき、 その場合、それらは可能な限り引き延ばされます。 これは、キーワード \*(lqinfinity\*(rq, \*(lqmaximum\*(rq, \*(lqall\*(rq のいずれかの、 一意に識別可能な先頭からの部分文字列を指定することで行われます。 実際、インテリジェント端末での .I count のデフォルト値は .BI infinity となっています。 .PP コマンドラインのオプションを調べる前に、 環境変数 .B TOP が調べられます。これによりユーザ自身のデフォルト値を設定できます。 表示プロセス数も環境変数 .BR TOP で指定可能です。 オプション .BR \-I , .BR \-S , .BR \-u , .B \-t は実際はトグルオプションです。これらのオプションを 2 回指定すると、 最初の指定を無効にします。 ですから、環境変数 .B TOP を \*(lq\-I\*(rq と設定しているユーザは、 \*(lqtop \-I\*(rq とすることでアイドルプロセスの状況を見ることができます。 .SH 対話的実行モード \*(lq対話的実行モード\*(rq で動作している場合、 .I top は端末からコマンドを読み込み、それに応じて動作を行います。 このモードでは端末は \*(lqCBREAK\*(rq モードに設定され、 入力文字が速やかに処理されるようになります。 .I top の表示と表示の間、 つまり .I top が .I time 秒が経過するのを待っている間、ほとんどいつでもキー入力可能です。 実際キーが押されると、そのコマンドは直ちに処理され、 画面が更新されます (そのコマンドが指示した変更も反映されます)。 これはコマンドが正しくない場合にも行われます。 画面を更新している最中にキーが押されると、 .I top は画面更新を終らせて、そのコマンドを処理します。 コマンドによっては更に情報の指定が必要になるものもありますが、 その場合、それに応じてユーザに入力が求められます。 その情報を入力する間、ユーザの削除キーと行削除キー ( .IR stty コマンドで設定される) が利用でき、改行により入力が完了します。 .PP 現在のところ、以下のコマンドが利用可能です (^L は control-L を表します): .TP .B ^L 画面を再描画します。 .IP "\fBh\fP\ or\ \fB?\fP" コマンド一覧 (ヘルプ画面) を表示します。 +バージョン情報がこの画面に含まれます。 .TP .B q .I top を終了します。 .TP .B d 表示する画面数を変更します (新しい数値入力が求められます)。 次回の表示が 1 回目となります。ですから .B d1 と入力すると、 .I top は 1 回表示して直ちに終了します。 .TP .B n or # 表示するプロセス数を変更します (新しい数値入力が求められます)。 .TP .B s 表示間隔の秒数を変更します (新しい数値入力が求められます)。 .TP .B k プロセスリストにシグナル (デフォルトでは \*(lqkill\*(rq) を送ります。 .IR kill (1) コマンドと同様の働きをします。 .TP .B r プロセスリストの優先度 (\*(lqnice\*(rq 値) を変更します。 .IR renice (8) コマンドと同様の働きをします。 .TP .B u 指定したユーザ名のユーザが所有するプロセスのみ表示します (ユーザ名入力 が求められます)。 ユーザ名として単に \*(lq+\*(rq が指定された場合、 全ユーザのプロセスが表示されます。 .TP +.B o +表示のソート順序を変更します。 +必ずしも全ての OS でこのオプションがサポートされているわけではありません。 +ソートキーはシステムによって異なりますが、通常は次のものが含まれます: +\*(lqcpu\*(rq, \*(lqres\*(rq, \*(lqsize\*(rq, \*(lqtime\*(rq。 +デフォルトは cpu です。 +.TP .B e 前回の .BR k ill または .BR r enice コマンドで生じたシステムエラーがあれば、そのリストを表示します。 .TP .B i (または .BR I ) アイドルプロセスの表示有無を切り替えます。 .TP .B t .I top の表示有無を切り替えます。 .SH 表示 実際の表示画面は、そのマシンで動作している Unix の種類によって異なります。 ここでの説明は、この特定マシンで動作する top コマンドの出力と 厳密には合っていないかもしれません。 相違点はこのマニュアルの終りに示してあります。 .PP 表示画面の先頭数行にはシステム状態に関する情報として、 プロセスに割り当てられた最終プロセス ID (ほとんどのシステム)、 3 種のロードアベレージ、現在時刻、存在するプロセス数、 各状態 (sleep 中、実行中、実行開始中、ゾンビ、停止中) のプロセス数、 各プロセッサ状態 (ユーザ, nice, システム, アイドル) で消費した時間の割合 等が表示されます。 物理メモリおよび仮想メモリの割り当てに関する情報も表示されます。 .PP 画面の残りの部分には各プロセスに関する情報が表示されます。 表示項目は、内容的には .IR ps (1) に似ていますが、正確には同じではありません。 PID はプロセス id、USERNAME はプロセス所有者名 ( .B \-u 指定時は UID カラムが USERNAME に取って替わる)、 PRI は現在のプロセス優先度、 NICE は nice 値 (\-20 から 20 までの範囲)、 SIZE はプロセスサイズの合計 (text, data, stack)、 RES は現在のメモリ常駐量 (SIZE と RES はいずれもキロバイト単位)、 STATE は現在の状態 (\*(lqsleep\*(rq, \*(lqWAIT\*(rq, \*(lqrun\*(rq, \*(lqidl\*(rq, \*(lqzomb\*(rq, \*(lqstop\*(rq のいずれか)、 TIME はプロセスが消費したシステム時間およびユーザ時間の秒数、 WCPU は (もしあれば) 重み付き CPU パーセンテージ (これは .IR ps (1) が CPU として表示するものと同じ)、 CPU は生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの、 そして COMMAND はプロセスが現在実行しているコマンド名です (もしプロセスが スワップアウト中なら、このカラムには \*(lq\*(rq という印がつく)。 .SH 注意 \*(lqABANDONED\*(rq 状態 (カーネル中では \*(lqSWAIT\*(rq 状態として 知られています) は捨て去られたものゆえ、この名称がついています。 プロセスはこの状態で終るべきではありません。 .SH 作者 William LeFebvre, EECS Department, Northwestern University .SH 環境変数 .DT TOP ユーザが設定できるオプションのデフォルト値 .SH 関連ファイル .DT /dev/kmem カーネルメモリ .br /dev/mem 物理メモリ .br /etc/passwd uid 値をユーザ名に変換するのに使用 .br /kernel システムイメージ .SH バグ .B \-I のデフォルト値が もう一度変更されましたが、私を責めないで下さい。 .I top が全プロセスを表示するわけではないことで大変多くの人が混乱したため、 バージョン 2 の頃と同様、デフォルトでアイドルプロセスも表示することに 決めました。 しかしこの動作に耐えられない人々のために、環境変数 .B TOP に \*(lqデフォルト\*(rq オプションを設定しておく機能を 追加しました (オプションのセクションを参照)。 バージョン 3.0 が持っている振る舞いが必要な人は、環境変数 .B TOP に値 \*(lq\-I\*(rq を設定するだけで OK です。 .PP スワップされたプロセスに対するコマンド名は追跡すべきですが、 それを行うとプログラムの動作が遅くなるでしょう。 .PP .IR ps (1) と同様、 .I top が更新情報を収集している間に事態が変化する可能性があります。 表示内容は現実に近い近似値に過ぎません。 .SH 関連項目 kill(1), ps(1), stty(1), mem(4), renice(8) .SH FreeBSD に関する注 .SH メモリに関する説明 Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out .B K: キロバイト。 .TP .B M: メガバイト。 .TP .B %: 1/100。 .TP .B Active: アクティブなページ数。 .TP .B Inact: アクティブでないページ数。 .TP .B Wired: 固定されているページ数。キャッシュされたファイルデータページを含む。 .TP .B Cache: VM レベルのディスクキャッシュに使用しているページ数。 .TP .B Buf: BIO レベルのディスクキャッシュに使用しているページ数。 .TP .B Free: 未使用ページ数。 .TP .B Total: 使用可能なスワップ合計。 .TP .B Free: 未使用スワップ合計。 .TP .B Inuse: 使用中スワップ。 .TP .B In: (直前の表示間隔において) スワップデバイスからページインしたページ数 .TP .B Out: (直前の表示間隔において) スワップデバイスにページアウトしたページ数 diff --git a/ja_JP.eucJP/man/man5/termcap.5 b/ja_JP.eucJP/man/man5/termcap.5 index 4488a3e382..a37fefe042 100644 --- a/ja_JP.eucJP/man/man5/termcap.5 +++ b/ja_JP.eucJP/man/man5/termcap.5 @@ -1,2081 +1,2083 @@ .\" Copyright (c) 1985, 1991, 1993, 1994 .\" 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. .\" .\" @(#)termcap.5 8.3 (Berkeley) 4/16/94 .\" .\" /*************************************************************************** .\" * COPYRIGHT NOTICE * .\" **************************************************************************** .\" * ncurses is copyright (C) 1992-1995 * .\" * Zeyd M. Ben-Halim * .\" * zmbenhal@netcom.com * .\" * Eric S. Raymond * .\" * esr@snark.thyrsus.com * .\" * * .\" * Permission is hereby granted to reproduce and distribute ncurses * .\" * by any means and for any fee, whether alone or as part of a * .\" * larger distribution, in source or in binary form, PROVIDED * .\" * this notice is included with any such distribution, and is not * .\" * removed from any of its header files. Mention of ncurses in any * .\" * applications linked with it is highly appreciated. * .\" * * .\" * ncurses comes AS IS with no warranty, implied or expressed. * .\" * * .\" ***************************************************************************/ .\" -.\" %FreeBSD: src/share/termcap/termcap.5,v 1.12.2.5 2001/08/17 13:08:58 ru Exp % +.\" %FreeBSD: src/share/termcap/termcap.5,v 1.12.2.6 2002/08/15 08:30:27 ru Exp % .\" .\" $FreeBSD$ .\" FreeBSD jpman project 訳語表 .\" WORD: terminal 端末 .\" WORD: text テキスト .\" WORD: convention 約束 .\" WORD: virtual terminal 仮想端末 .\" WORD: print 印字 .\" WORD: display 描画 .\" WORD: screen 画面 .\" WORD: CRT CRT .\" WORD: attribute 属性 .\" WORD: underline 下線 .\" WORD: standout 強調表示 .\" WORD: column 桁 .\" WORD: row 行 .\" WORD: carriage return キャリッジリターン .\" WORD: home など ホーム(ホームポジション)、home(home キー) .\" など、キーそのものについては英語のままとした .\" WORD: foreground color 前景色 .\" WORD: background color 背景色 .\" WORD: bottom margin 下マージン .\" WORD: top margin 上マージン .\" WORD: bold mode ボールドモード .\" WORD: scroll forward 前進スクロール .\" WORD: scroll backward 後退スクロール .\" WORD: glitch グリッチ (他の端末と不整合な機能) .\" その他 Beehive はメーカ名です(.Ss Glitches and Braindamages 参照)。 .Dd April 16, 1994 .Dt TERMCAP 5 .Os .Sh 名称 .Nm termcap .Nd 端末ケーパビリティのデータベース .Sh 書式 .Nm .Sh 解説 .Nm ファイルは端末に関するデータベースであり、例えば .Xr \&vi 1 や .Xr ncurses 3 が使用します。 .Nm には、端末が持つケーパビリティと、 操作がどのように行われるのかが記述されています。 パディングの必要性および初期化シーケンスも .Nm に記述されています。 .Pp .Nm のエントリは `:' で区切られた複数個のフィールドからなります。 各端末の最初のエントリは、`|' 文字で区切った端末名です。 最初の名前は、その端末の最も一般的な省略形です。 最後の名前は端末を完全に識別するための長い名前であり、 その他は端末名の類義語です。 最後以外の名前は小文字を使い、空白を含まないようにしてください; 最後の名前は、可読性のために大文字や空白を含んでかまいません。 .Pp 端末名 (最後の冗長なエントリを除く) は次の約束に従い選んでください。 端末を構成するハードウェアの特定の一部を、 .Dq hp2621 のように根幹の名前として選びます。 この名前はハイフンを含んではなりません。 ハードウェアのモードやユーザのプリファレンスは、 ハイフンとモード指示子を追加して示します。 ですから、132 桁モードの .Dq vt100 は .Dq vt100-w になります。可能ならば、以下の接尾辞を使用してください: .Pp .Bl -column indent "With automatic margins (usually default)xx" -offset indent .Sy "接尾辞 意味 例" -w 広いモード (80 桁超) vt100-w -am 自動マージン付 (通常はデフォルト) vt100-am -nam 自動マージン無し vt100-nam .Pf \- Ar n Ta No "画面上の行数 aaa-60" -na 矢印キー無し (ローカルのままにする) concept100-na .Pf \- Ar \&np Ta No "メモリページ数 concept100-4p" -rv 反転表示 concept100-rv .El .Sh ケーパビリティ 記述フィールドに、ケーパビリティの意味を示そうとしています。 記述フィールドには次のようなコードが書いてあることがあります: .Pp .Bl -tag -width #[1-9] .It (P) パディングが指定されるかもしれないことを表します。 .It #[1-9] 記述フィールドでは、文字列が (#\fIi\fP) として与えられる引数として .Xr tparm や .Xr tgoto を介して渡されることを示します。 .It (P*) 影響を受ける行数に従いパディングが変化することを示します。 .It (#\d\fIi\fP\u) \fIi\fP 番目のパラメータを表します。 .El .Pp 以下、ブール値のケーパビリティです: .Bd -literal \fBブール値 TCap 記述\fR \fB変数 コード\fR auto_left_margin bw cursor_left は桁 0 から最後の桁に回り込む auto_right_margin am 端末は自動マージンを持つ no_esc_ctlc xb beehive (f1=escape, f2=ctrl C) ceol_standout_glitch xs 強調表示は上書きによって消去されない (hp) eat_newline_glitch xn 80 桁より後の改行は無視される (concept) erase_overstrike eo 空白を上打ちすることで消去可能 generic_type gn 一般的な行タイプ hard_copy hc ハードコピー端末 has_meta_key km メタキーを持ち、最上位ビットをセットする has_status_line hs 追加のステータス行を持つ insert_null_glitch in 挿入モードはナルを区別する memory_above da 画面より上の描画が保存される memory_below db 画面より下の描画が保存される move_insert_mode mi 挿入モードでの移動が安全 move_standout_mode ms 強調表示モードでの移動が安全 over_strike os 端末は上打ちが可能 status_line_esc_ok es ステータス行でエスケープを使用可能 dest_tabs_magic_smso xt 破壊的タブ、強調文字の奇妙な動作 (t1061) tilde_glitch hz ~ を印字できない (hazeltine) transparent_underline ul 下線文字の上打ち xon_xoff xo 端末は xon/xoff のハンドシェークを使用 needs_xon_xoff nx パディングは動作しないので xon/xoff が必要 prtr_silent 5i プリンタ出力は画面にエコーしない hard_cursor HC カーソルが見にくい non_rev_rmcup NR enter_ca_mode は exit_ca_mode を反転しない no_pad_char NP パディング文字が存在しない non_dest_scroll_region ND スクロール領域が非破壊的 can_change cc 端末は既存の色を再定義可能 back_color_erase ut 画面は背景色で消される hue_lightness_saturation hl 端末は HLS カラー表現のみ使用 (tektronix) col_addr_glitch YA 桁位置指定および micro_column_address ケーパビリティは正方向の動きのみ cr_cancels_micro_mode YB cr を使用するとマイクロモードがオフになる has_print_wheel YC オペレータが文字セットを変更する必要がある プリンタ row_addr_glitch YD row_address および micro_row_address は 正方向の動きのみ semi_auto_right_margin YE 最終桁で印字すると cr となる cpi_changes_res YF 文字ピッチを変えると解像度が変わる lpi_changes_res YG 行ピッチを変えると解像度が変わる .Ed .Pp 以下、数値のケーパビリティです: .Bd -literal \fB数値 TCap 記述\fR \fB変数 コード\fR columns co 1 行の桁数 init_tabs it タブの初期設定は # 個の空白ごと lines li 画面もしくはページの行数 lines_of_memory lm 行より大きい場合はメモリの行数、 0 の場合はさまざま .\" => は大小関係を表すのではない See .Sh その他 magic_cookie_glitch sg enter_standout_mode や exit_standout_mode が残す空白文字数 padding_baud_rate pb パディングが必要な最低ボーレート virtual_terminal vt 仮想端末番号 (CB/unix) width_status_line ws ステータス行の桁数 num_labels Nl 画面上のラベル数 label_height lh 各ラベルの行数 label_width lw 各ラベルの桁数 max_attributes ma 端末が扱える属性の最大の組み合わせ maximum_windows MW 定義可能なウィンドウ数の最大 magic_cookie_glitch_ul ug 下線により残される空白数 # # 以下は SVr4 のカラーサポートにより導入 # max_colors Co 画面上の最大色数 max_pairs pa 画面上の色の組の最大数 no_color_video NC 色付きでは使用できないビデオ属性 # # 以下の数値ケーパビリティは SVr4.0 の term 構造体に存在しますが、 # マニュアルには記述されていません。 # これらは SVr4 のプリンタサポートにより追加されました。 # buffer_capacity Ya 印字前にバッファされるバイト数 dot_vert_spacing Yb 1 インチあたりのピン数で表した垂直ピン間隔 dot_horz_spacing Yc 1 インチあたりのドット数で表した水平 ドット間隔 max_micro_address Yd micro_..._address での最大値 max_micro_jump Ye parm_..._micro での最大値 micro_char_size Yf マイクロモードでの文字サイズ micro_line_size Yg マイクロモードでの行サイズ number_of_pins Yh プリントヘッドのピン数 output_res_char Yi 行あたりのユニット数による水平解像度 output_res_line Yj 行あたりのユニット数による垂直解像度 output_res_horz_inch Yk インチあたりのユニット数による水平解像度 output_res_vert_inch Yl インチあたりのユニット数による垂直解像度 print_rate Ym 1 秒あたりの文字数による印字レート wide_char_size Yn 倍幅モードでの文字ステップサイズ buttons BT マウスのボタン数 bit_image_entwining Yo 各ビットイメージ行として渡される数 bit_image_type Yp ビットイメージデバイスのタイプ .Ed .Pp 以下、文字列ケーパビリティです: .Bd -literal \fB文字列 TCap 記述\fR \fB変数 コード\fR back_tab bt 後退タブ (P) bell bl 可聴シグナル (ベル) (P) carriage_return cr キャリッジリターン (P*) change_scroll_region cs 領域を行 #1 から行 #2 までに変更 (P) clear_all_tabs ct 全タブストップをクリア (P) clear_screen cl 画面を消去しカーソルをホームに移動 (P*) clr_eol ce 行末までクリア (P) clr_eos cd 画面末までクリア (P*) column_address ch 絶対指定での水平位置 #1 (P) command_character CC 端末がプロトタイプで設定可能なコマンド文字 cursor_address cm 行 #1 桁 #2 に移動 cursor_down do 1 行下に移動 cursor_home ho カーソルをホームに移動 cursor_invisible vi カーソルを見えなくする cursor_left le 1 つ左に移動 cursor_mem_address CM メモリ相対のカーソル位置指定 cursor_normal ve 通常のカーソル表示にする (cursor_invisible/cursor_visible の無効化) cursor_right nd 1 つ右に移動 cursor_to_ll ll 最終行の最初の桁 cursor_up up 1 行上に移動 cursor_visible vs カーソルを非常に見易くする delete_character dc 文字削除 (P*) delete_line dl 行削除 (P*) dis_status_line ds ステータス行を無効にする down_half_line hd 半行下に移動 enter_alt_charset_mode as 別の文字セット開始 (P) enter_blink_mode mb 点滅オン enter_bold_mode md ボールド (さらに明るい) モードオン enter_ca_mode ti cursor_address を使用するプログラムを開始 する文字列 enter_delete_mode dm 削除モードへ入る enter_dim_mode mh 半輝度モードオン enter_insert_mode im 挿入モードへ入る enter_secure_mode mk ブランクモードオン (文字が見えません) enter_protected_mode mp 保護モードオン enter_reverse_mode mr 反転表示モードオン enter_standout_mode so 強調表示モード開始 enter_underline_mode us 下線モード開始 erase_chars ec #1 個文字を削除 (P) exit_alt_charset_mode ae 別の文字セット終了 (P) exit_attribute_mode me 全属性をオフ exit_ca_mode te cup 使用のプログラムを終了する文字列 exit_delete_mode ed 削除モード終了 exit_insert_mode ei 挿入モードから抜ける exit_standout_mode se 強調表示モードから抜ける exit_underline_mode ue 下線モードから抜ける flash_screen vb 可視ベル (カーソルは移動しません) form_feed ff ハードコピー端末でのページ排出 (P*) from_status_line fs ステータス行からの復帰 init_1string i1 初期化文字列 init_2string is 初期化文字列 init_3string i3 初期化文字列 init_file if 初期化ファイルの名前 insert_character ic 文字挿入 (P) insert_line al 行挿入 (P*) insert_padding ip 挿入された文字の後にパディングを挿入 key_backspace kb backspace キー key_catab ka clear-all-tabs キー key_clear kC clear-screen または erase キー key_ctab kt clear-tab キー key_dc kD delete-character キー key_dl kL delete-line キー key_down kd down-arrow キー key_eic kM 挿入モードで mir や smir により送られる key_eol kE clear-to-end-of-line キー key_eos kS clear-to-end-of-screen キー key_f0 k0 F0 ファンクションキー key_f1 k1 F1 ファンクションキー key_f10 k; F10 ファンクションキー key_f2 k2 F2 ファンクションキー key_f3 k3 F3 ファンクションキー key_f4 k4 F4 ファンクションキー key_f5 k5 F5 ファンクションキー key_f6 k6 F6 ファンクションキー key_f7 k7 F7 ファンクションキー key_f8 k8 F8 ファンクションキー key_f9 k9 F9 ファンクションキー key_home kh home キー key_ic kI insert-character キー key_il kA insert-line キー key_left kl left-arrow キー key_ll kH last-line キー key_npage kN next-page キー key_ppage kP prev-page キー key_right kr right-arrow キー key_sf kF scroll-forward キー key_sr kR scroll-backward キー key_stab kT set-tab キー key_up ku up-arrow キー keypad_local ke 'キーボード送出' モードから抜ける keypad_xmit ks 'キーボード送出' モードに入る lab_f0 l0 非 f0 の時、ファンクションキー f0 のラベル lab_f1 l1 非 f1 の時、ファンクションキー f1 のラベル lab_f10 la 非 f10 の時、ファンクションキー f10 の ラベル lab_f2 l2 非 f2 の時、ファンクションキー f2 のラベル lab_f3 l3 非 f3 の時、ファンクションキー f3 のラベル lab_f4 l4 非 f4 の時、ファンクションキー f4 のラベル lab_f5 l5 非 f5 の時、ファンクションキー f5 のラベル lab_f6 l6 非 f6 の時、ファンクションキー f6 のラベル lab_f7 l7 非 f7 の時、ファンクションキー f7 のラベル lab_f8 l8 非 f8 の時、ファンクションキー f8 のラベル lab_f9 l9 非 f9 の時、ファンクションキー f9 のラベル meta_off mo メタモードオフ meta_on mm メタモードオン (8 ビット目をオン) newline nw 改行 (cr の後に lf が来たように振舞います) pad_char pc パディング文字 (ナルの代り) parm_dch DC #1 文字を削除 (P*) parm_delete_line DL #1 行を削除 (P*) parm_down_cursor DO #1 行下に移動 (P*) parm_ich IC #1 文字を挿入 (P*) parm_index SF #1 行の前進スクロール (P) parm_insert_line AL #1 行を挿入 (P*) parm_left_cursor LE #1 文字左に移動 (P) parm_right_cursor RI #1 文字右に移動 (P*) parm_rindex SR #1 行の後退スクロール (P) parm_up_cursor UP #1 行上に移動 (P*) pkey_key pk 文字列 #2 をタイプする プログラムファンクションキー #1 pkey_local pl 文字列 #2 を実行する プログラムファンクションキー #1 pkey_xmit px 文字列 #2 を転送する プログラムファンクションキー #1 print_screen ps 画面の内容を印字 prtr_off pf プリンタオフ prtr_on po プリンタオン repeat_char rp 文字 #1 を #2 回繰り返す (P*) reset_1string r1 リセット文字列 reset_2string r2 リセット文字列 reset_3string r3 リセット文字列 reset_file rf リセットファイルの名前 restore_cursor rc save_cursor の最後の位置へカーソルを戻す row_address cv 絶対指定での垂直位置 #1 (P) save_cursor sc 現在のカーソル位置を保存 (P) scroll_forward sf テキストを上にスクロール (P) scroll_reverse sr テキストを下にスクロール (P) set_attributes sa ビデオ属性 #1-#9 を定義 (PG9) set_tab st 全ての行において今いる桁にタブを設定 set_window wi 現在のウィンドウを、行 #1-#2 桁 #3-#4 に 設定 tab ta 次の 8 スペースハードウェアタブストップへ タブ to_status_line ts ステータス行へ移動 underline_char uc 文字に下線を引きその後に移動 up_half_line hu 半行上に移動 init_prog iP 初期化プログラムのパス名 key_a1 K1 キーパッドの左上キー key_a3 K3 キーパッドの右上キー key_b2 K2 キーパッドの中央キー key_c1 K4 キーパッドの左下キー key_c3 K5 キーパッドの右下キー prtr_non pO #1 バイトだけプリンタをオンする termcap_init2 i2 2 番目の初期化文字列 termcap_reset rs 端末リセット文字 # # SVr1 のケーパビリティはここまでです。 # IBM の terminfo はここまでは SVr4 と同じですが、ここから先は異なります。 # char_padding rP insert_padding と似ていますが挿入モード時 に使用 acs_chars ac 図形文字セットの組 - def=vt100 plab_norm pn プログラムラベル #1 は文字列 #2 を表示 key_btab kB back-tab キー enter_xon_mode SX xon/xoff ハンドシェークオン exit_xon_mode RX xon/xoff ハンドシェークオフ enter_am_mode SA 自動マージンオン exit_am_mode RA 自動マージンオフ xon_character XN XON 文字 xoff_character XF XOFF 文字 ena_acs eA 別の文字セットを有効にする label_on LO ソフトラベルオン label_off LF ソフトラベルオフ key_beg @1 begin キー key_cancel @2 cancel キー key_close @3 close キー key_command @4 command キー key_copy @5 copy キー key_create @6 create キー key_end @7 end キー key_enter @8 enter/send キー key_exit @9 exit キー key_find @0 find キー key_help %1 help キー key_mark %2 mark キー key_message %3 message キー key_move %4 move キー key_next %5 next キー key_open %6 open キー key_options %7 options キー key_previous %8 previous キー key_print %9 print キー key_redo %0 redo キー key_reference &1 reference キー key_refresh &2 refresh キー key_replace &3 replace キー key_restart &4 restart キー key_resume &5 resume キー key_save &6 save キー key_suspend &7 suspend キー key_undo &8 undo キー key_sbeg &9 シフト状態の begin キー key_scancel &0 シフト状態の cancel キー key_scommand *1 シフト状態の command キー key_scopy *2 シフト状態の copy キー key_screate *3 シフト状態の create キー key_sdc *4 シフト状態の delete char キー key_sdl *5 シフト状態の delete line キー key_select *6 select キー key_send *7 シフト状態の end キー key_seol *8 シフト状態の end-of-line キー key_sexit *9 シフト状態の exit キー key_sfind *0 シフト状態の find キー key_shelp #1 シフト状態の help キー key_shome #2 シフト状態の home キー key_sic #3 シフト状態の insert char キー key_sleft #4 シフト状態の left キー key_smessage %a シフト状態の message キー key_smove %b シフト状態の move キー key_snext %c シフト状態の next キー key_soptions %d シフト状態の options キー key_sprevious %e シフト状態の previous キー key_sprint %f シフト状態の print キー key_sredo %g シフト状態の redo キー key_sreplace %h シフト状態の replace キー key_sright %i シフト状態の right キー key_srsume %j シフト状態の resume キー key_ssave !1 シフト状態の save キー key_ssuspend !2 シフト状態の suspend キー key_sundo !3 シフト状態の undo キー req_for_input RF 次の入力文字を送る (pty で使用) key_f11 F1 F11 ファンクションキー key_f12 F2 F12 ファンクションキー key_f13 F3 F13 ファンクションキー key_f14 F4 F14 ファンクションキー key_f15 F5 F15 ファンクションキー key_f16 F6 F16 ファンクションキー key_f17 F7 F17 ファンクションキー key_f18 F8 F18 ファンクションキー key_f19 F9 F19 ファンクションキー key_f20 FA F20 ファンクションキー key_f21 FB F21 ファンクションキー key_f22 FC F22 ファンクションキー key_f23 FD F23 ファンクションキー key_f24 FE F24 ファンクションキー key_f25 FF F25 ファンクションキー key_f26 FG F26 ファンクションキー key_f27 FH F27 ファンクションキー key_f28 FI F28 ファンクションキー key_f29 FJ F29 ファンクションキー key_f30 FK F30 ファンクションキー key_f31 FL F31 ファンクションキー key_f32 FM F32 ファンクションキー key_f33 FN F33 ファンクションキー key_f34 FO F34 ファンクションキー key_f35 FP F35 ファンクションキー key_f36 FQ F36 ファンクションキー key_f37 FR F37 ファンクションキー key_f38 FS F38 ファンクションキー key_f39 FT F39 ファンクションキー key_f40 FU F40 ファンクションキー key_f41 FV F41 ファンクションキー key_f42 FW F42 ファンクションキー key_f43 FX F43 ファンクションキー key_f44 FY F44 ファンクションキー key_f45 FZ F45 ファンクションキー key_f46 Fa F46 ファンクションキー key_f47 Fb F47 ファンクションキー key_f48 Fc F48 ファンクションキー key_f49 Fd F49 ファンクションキー key_f50 Fe F50 ファンクションキー key_f51 Ff F51 ファンクションキー key_f52 Fg F52 ファンクションキー key_f53 Fh F53 ファンクションキー key_f54 Fi F54 ファンクションキー key_f55 Fj F55 ファンクションキー key_f56 Fk F56 ファンクションキー key_f57 Fl F57 ファンクションキー key_f58 Fm F58 ファンクションキー key_f59 Fn F59 ファンクションキー key_f60 Fo F60 ファンクションキー key_f61 Fp F61 ファンクションキー key_f62 Fq F62 ファンクションキー key_f63 Fr F63 ファンクションキー clr_bol cb 行頭までクリア clear_margins MC 左右のソフトマージンをクリア set_left_margin ML 左のソフトマージンを設定 set_right_margin MR 右のソフトマージンを設定 label_format Lf ラベルフォーマット set_clock SC 時刻を #1 時 #2 分 #3 秒に設定 display_clock DK 位置 (#1,#2) に時計を表示 remove_clock RC 時計を取り除く create_window CW ウィンドウ #1 を #2, #3 から #4, #5 までと 定義 goto_window WG ウィンドウ #1 に移動 hangup HU 電話をハングアップする dial_phone DI 番号 #1 にダイヤルする quick_dial QD チェックせずに番号 #1 にダイヤルする tone TO タッチトーンダイヤルを選択 pulse PU パルスダイヤルを選択 flash_hook fh スイッチフックをフラッシュする fixed_pause PA 2-3 秒待つ wait_tone WA ダイヤルトーンを待つ user0 u0 ユーザ文字列 #0 user1 u1 ユーザ文字列 #1 user2 u2 ユーザ文字列 #2 user3 u3 ユーザ文字列 #3 user4 u4 ユーザ文字列 #4 user5 u5 ユーザ文字列 #5 user6 u6 ユーザ文字列 #6 user7 u7 ユーザ文字列 #7 user8 u8 ユーザ文字列 #8 user9 u9 ユーザ文字列 #9 # # SVr4 は以下のケーパビリティを追加してカラーをサポートしました # orig_pair op デフォルトのペアを元の値に戻す orig_colors oc 色のペア全てを元に戻す initialize_color Ic 色 #1 を (#2,#3,#4) に設定 initialize_pair Ip 色のペア #1 を fg=(#2,#3,#4), bg=(#5,#6,#7) に設定 set_color_pair sp 現在の色のペアを #1 に設定 set_foreground Sf 前景色を #1 に設定 set_background Sb 背景色を #1 に設定 # # SVr4 は以下のケーパビリティを追加してプリンタをサポートしました # change_char_pitch ZA 1 インチあたりの文字数を変更 change_line_pitch ZB 1 インチあたりの行数を変更 change_res_horz ZC 水平解像度を変更 change_res_vert ZD 垂直解像度を変更 define_char ZE 文字を定義 enter_doublewide_mode ZF 倍幅モードに入る enter_draft_quality ZG ドラフト印字モードに入る enter_italics_mode ZH イタリックモードに入る enter_leftward_mode ZI キャリッジの左向き移動開始 enter_micro_mode ZJ マイクロ移動モードに入る enter_near_letter_quality ZK NLQ 印字モードに入る enter_normal_quality ZL 通常品質印字モードに入る enter_shadow_mode ZM シャドウプリントモード開始 enter_subscript_mode ZN 下付き文字モード enter_superscript_mode ZO 上付き文字モード enter_upward_mode ZP キャリッジの上向き移動開始 exit_doublewide_mode ZQ 倍幅印字モード終了 exit_italics_mode ZR イタリックモード終了 exit_leftward_mode ZS 左向き移動モード終了 exit_micro_mode ZT マイクロ移動モード終了 exit_shadow_mode ZU シャドウプリントモード終了 exit_subscript_mode ZV 下付き文字モード終了 exit_superscript_mode ZW 上付き文字モード終了 exit_upward_mode ZX 逆向き文字移動終了 micro_column_address ZY マイクロモードの column_address micro_down ZZ マイクロモードの cursor_down micro_left Za マイクロモードの cursor_left micro_right Zb マイクロモードの cursor_right micro_row_address Zc マイクロモードの row_address micro_up Zd マイクロモードの cursor_up order_of_pins Ze ソフトウェアビットを印字ヘッドピンに あわせる .\" Match software bits to print-head pins ? parm_down_micro Zf マイクロモードの parm_down_cursor parm_left_micro Zg マイクロモードの parm_left_cursor parm_right_micro Zh マイクロモードの parm_right_cursor parm_up_micro Zi マイクロモードの parm_up_cursor select_char_set Zj 文字セットの選択 set_bottom_margin Zk 現在の行を下マージンに設定 set_bottom_margin_parm Zl 下マージンを行 #1 または下から #2 行に設定 set_left_margin_parm Zm 左 (右) マージンを桁 #1 (#2) に設定 set_right_margin_parm Zn 右マージンを桁 #1 に設定 set_top_margin Zo 上マージンを現在の行に設定 set_top_margin_parm Zp 上 (下) マージンを行 #1 (#2) に設定 start_bit_image Zq ビットイメージグラフィクスの印刷開始 start_char_set_def Zr 文字セットの定義開始 stop_bit_image Zs ビットイメージグラフィクスの印刷停止 stop_char_set_def Zt 文字セットの定義終了 subscript_characters Zu 下付き文字となりうる文字のリスト superscript_characters Zv 上付き文字となりうる文字のリスト these_cause_cr Zw 印字すると CR となる文字 zero_motion Zx 次の文字表示では移動しない # # 以下の文字列ケーパビリティは SVr4.0 の term 構造体にありますが、 # マニュアルページには記述されていません。 # char_set_names Zy 文字セット名のリスト key_mouse Km マウスイベントが発生した mouse_info Mi マウス状態の情報 req_mouse_pos RQ マウス位置の要求 get_mouse Gm curses がボタンイベントを取得すべき set_a_foreground AF ANSI 前景色を設定 set_a_background AB ANSI 背景色を設定 pkey_plab xl 文字列 #2 をタイプし、文字列 #3 を表示する プログラムファンクションキー device_type dv 言語/コードセットサポートの表示 code_set_init ci 複数コードセットシーケンスの初期化 set0_des_seq s0 コードセット 0 へシフト (EUC セット 0, ASCII) set1_des_seq s1 コードセット 1 へシフト set2_des_seq s2 コードセット 2 へシフト set3_des_seq s3 コードセット 3 へシフト set_lr_margin ML 左右マージンをそれぞれ #1, #2 に設定 set_tb_margin MT 上下マージンをそれぞれ #1, #2 に設定 bit_image_repeat Xy ビットイメージセル #1 を #2 回繰り返す bit_image_newline Zz ビットイメージの次の行に移動 bit_image_carriage_return Yv 同一行の先頭に移動 color_names Yw 色 #1 の名前を与える define_bit_image_region Yx 長方形のビットイメージ領域を定義 end_bit_image_region Yy ビットイメージ領域の終了 set_color_band Yz 色リボン #1 に変更 set_page_length YZ ページ長を #1 行に設定 # # SVr4 は以下のケーパビリティを追加し、直接 PC クローンをサポートしました # display_pc_char S1 PC 文字を表示 enter_pc_charset_mode S2 PC 文字表示モードに入る exit_pc_charset_mode S3 PC 文字表示モード終了 enter_scancode_mode S4 PC スキャンコードモードに入る exit_scancode_mode S5 PC スキャンコードモードから抜ける pc_term_options S6 PC 端末オプション scancode_escape S7 スキャンコードエミュレーションのための エスケープ alt_scancode_esc S8 スキャンコードエミュレーションのための 別のエスケープ # # XSI curses 標準は、以下のケーパビリティを追加しました。 # enter_horizontal_hl_mode Xh 水平ハイライトモードに入る enter_left_hl_mode Xl 左ハイライトモードに入る enter_low_hl_mode Xo 下ハイライトモードに入る enter_right_hl_mode Xr 右ハイライトモードに入る enter_top_hl_mode Xt 上ハイライトモードに入る enter_vertical_hl_mode Xv 垂直ハイライトモードに入る .Ed .Pp 以下は廃れた termcap ケーパビリティです。 新しいソフトウェアはどれにも依存しないようにしてください。 .Bd -literal \fBブール値 TCap 記述\fR \fB変数 コード\fR linefeed_is_newline NL ^J で下に移動 even_parity EP 端末は偶数パリティを要求 odd_parity OP 端末は奇数パリティを要求 half_duplex HD 端末は半 2 重 lower_case_only LC 端末は小文字のみ持つ upper_case_only UC 端末は大文字のみ持つ has_hardware_tabs pt ^I で起動される 8 文字タブがある return_does_clr_eol xr リターンは行をクリアする tek_4025_insert_line xx Tektronix 4025 の insert-line グリッチ backspaces_with_bs bs 左に移動するために ^H を使用 crt_no_scrolling ns crt はスクロールできない no_correctly_working_cr nc 行頭に行く手段が無い .Ed .Bd -literal \fB数値 TCap 記述\fR \fB変数 コード\fR backspace_delay dB ^H に必要なパディング form_feed_delay dF ^L に必要なパディング horizontal_tab_delay dT ^I に必要なパディング vertical_tab_delay dV ^V に必要なパディング number_of_function_keys kn ファンクションキーの数 carriage_return_delay dC CR に必要なパディング new_line_delay dN LF に必要なパディング .Ed .Bd -literal \fB文字列 TCap 記述\fR \fB変数 コード\fR other_non_function_keys ko 自己にマップされたキーのリスト arrow_key_map ma 矢印キーをマップ memory_lock_above ml 現在の行より上の画面で見える部分のメモリを ロック memory_unlock mu 現在の行より上の画面で見える部分のメモリの ロックを解除 linefeed_if_not_lf nl 下に移動するために使用 backspace_if_not_bs bc ^H でない場合に左に移動 .Ed .Ss エントリのサンプル 以下のエントリは Concept\-100 について記述しており、 本書の中でも最も複雑なエントリの 1 つです。 .Pp .Bd -literal ca\||\|concept100\||\|c100\||\|concept\||\|c104\||\|concept100-4p\||\|HDS Concept\-100:\e :al=3*\eE^R:am:bl=^G:cd=16*\eE^C:ce=16\eE^U:cl=2*^L:cm=\eEa%+ %+ :\e :co#80:.cr=9^M:db:dc=16\eE^A:dl=3*\eE^B:do=^J:ei=\eE\e200:eo:im=\eE^P:in:\e :ip=16*:is=\eEU\eEf\eE7\eE5\eE8\eEl\eENH\eEK\eE\e200\eEo&\e200\eEo\e47\eE:k1=\eE5:\e :k2=\eE6:k3=\eE7:kb=^h:kd=\eE<:ke=\eEx:kh=\eE?:kl=\eE>:kr=\eE=:ks=\eEX:\e :ku=\eE;:le=^H:li#24:mb=\eEC:me=\eEN\e200:mh=\eEE:mi:mk=\eEH:mp=\eEI:\e :mr=\eED:nd=\eE=:pb#9600:rp=0.2*\eEr%.%+ :se=\eEd\eEe:sf=^J:so=\eEE\eED:\e :.ta=8\et:te=\eEv \e200\e200\e200\e200\e200\e200\eEp\er\en:\e :ti=\eEU\eEv 8p\eEp\er:ue=\eEg:ul:up=\eE;:us=\eEG:\e :vb=\eEk\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\e200\eEK:\e :ve=\eEw:vs=\eEW:vt#8:xn:\e :bs:cr=^M:dC#9:dT#8:nl=^J:ta=^I:pt: .Ed .Pp 行末文字に \e を使用すれば、複数行にエントリを続けることができます。 また空のフィールドを含めて可読性を上げることもできます (ある行の最後のフィールドから次の行の最初のフィールドまでです)。 コメントは .Dq # で始まる行に含めることができます。 .Ss ケーパビリティの型 .Nm のケーパビリティには次の 3 種類があります: 特定の機能を端末が持つかどうかを示す、ブール値ケーパビリテイ; 画面の大きさや他の属性の大きさを与える、数値ケーパビリティ; そして特定の端末操作を行うために使用可能な文字列を与える、 文字列ケーパビリティです。 全てのケーバビリティが 2 文字のコードを持ちます。 例えば、Concept が .Em 自動マージン (行末に到達すると、自動的にリターンおよびラインフィードする機能) を持つという事実は、ブール値ケーパビリティ .Sy \&am で示されます。 それゆえ Concept の記述は .Sy \&am を含みます。 .Pp 数値ケーパビリティの後には文字 `#' が続き、そして値が続きます。 上の例では、画面の桁数を示す .Sy \&co は Concept に対しては値 `80' を与えます。 .Pp 最後に、文字列値のケーパビリティ、例えば .Sy \&ce (行末までクリアのシーケンス) は、2 文字のコード、単一の `='、 そして次の `:' までの文字列で与えられます。 このケーパビリティにおいては、ミリ秒指定の遅延を `=' の後に指定可能です。 この場合、残りの文字列が送られた後、パディング文字が .Xr tputs により与えられ、この遅延を発生させます。 遅延は `20' のような数値または `3*' のような `*' が続く数値です。 `*' は、 この操作により影響を受ける行数に必要なパディングが比例すること、 そして指定量は影響を受ける各行に必要なパディングであることを示します。 (insert-character の場合でも、係数は影響を受ける .Em 行 数です; ただし、端末が .Sy \&in を持っていてソフトウェアがこれを使用する場合以外は、この値は常に 1 です。) `*' が指定される時、`3.5' のような形式により 1/10 ミリ秒単位で 行あたりの遅延を指定するのが便利な場合があります。 (10 進数 1 桁分のみ許されます。) .Pp 多くのエスケープシーケンスが文字列値のケーパビリティで提供されますので、 ここでは容易に制御文字をエンコードできます。 .Sy \&\eE は .Dv ESC 文字にマップし、 .Sy \&^X は適切な X に対して control-X にマップし、シーケンス .Sy \&\en .Sy \&\er .Sy \&\et .Sy \&\eb .Sy \&\ef はそれぞれ、ラインフィード、リターン、タブ、バックスペース、フォームフィード にマップします。 最後に、文字は .Sy \&\e の後に 3 桁 8 進数として指定可能ですし、 .Sy \&^ と .Sy \&\e の文字は .Sy \&\e^ と .Sy \&\e\e として与えられます。 ケーパビリティ中に .Sy \&: -を入れる必要がある場合、8 進数で +を入れる必要がある場合、 +.Sy \e: +とエスケープするか、8 進数で .Sy \&\e072 とエスケープする必要があります。 文字列ケーパビリティ中に .Dv NUL 文字を入れる必要がある場合、 .Sy \&\e200 とエンコードする必要があります。( .Nm を扱うルーチンは C の文字列を使用し、 出力の最上位ビットをかなり遅い段階で取り除くので、 .Sy \&\e200 は .Sy \&\e000 として出力されます。) .Pp 個々のケーパビリティをコメントアウトする必要があるかもしれません。 その場合には、ケーパビリティ名の前にピリオドを付けます。 例えば、例における最初の .Sy \&cr と .Sy \&ta を見てください。 .Ss 記述の準備 端末記述を準備する最も効果的な方法は、 .Nm 中の似た端末の記述を真似し、 .Xr \&vi を使用して部分記述の正しさを確認することにより、 徐々に記述を構築するというものです。 非常に稀なことですが、端末によっては、 .Nm ファイルの記述能力不足や .Xr \&vi のバグが露呈することがありますので注意してください。 あなたが新しく作った端末記述を簡単にテストするには、 あなたのホームディレクトリに .Pa .termcap という名前のファイルとして置き、 プログラムが .Pa /usr/share/misc/termcap の前にこれを見るようにします。 環境変数 .Ev TERMPATH をあなたが作成した記述を含む絶対ファイルパス名のリスト (空白もしくはコロンで区切ります) に設定することにより、 プログラムはこれらをリスト順に検索し、他は検索しないようになります。 .Xr termcap 3 を参照してください。 .Ev TERMCAP 環境変数は、通常 .Nm エントリ自身に設定され、プログラム起動時にファイルを読むことを避けます。 .Pp 行挿入に対する適切なパディングを得るためには (端末製造元が記述しなかった場合には)、 .Xr \&vi を使用して .Pa /etc/passwd を 9600 ボーで編集し、およそ 16 行を画面中央から削除し、 それから `u' キーを何度か素早く押すという、厳しいテストを行います。 画面がぐちゃぐちゃになった場合には、 通常はより多くのパディングが必要となります。 同様のテストを文字挿入に対しても行うことが可能です。 .Ss 基本ケーパビリティ 表示の各行の桁数は .Sy \&co 数値ケーパビリティで与えられます。 表示が .Tn CRT になされる場合、画面の行数は .Sy \&li ケーパビリティで与えられます。 カーソルが右マージンに到達した時に、表示が次の行の先頭に回り込む場合には、 .Sy \&am ケーパビリティを持ちます。 端末が画面をクリア可能な場合には、そうするためのコードが .Sy \&cl 文字列ケーパビリティで与えられます。 端末が (上書きされる文字の位置をクリアするのではなく) 上打ちする場合には、 .Sy \&os ケーパビリティがあります。 端末がプリント端末でソフトコピーユニットを持たない場合、 .Sy \&hc と .Sy \&os を指定してください。 .Pf ( Sy \&os があてはまるのは Tektronix 4010 シリーズのようなストレージスコープ端末、 ハードコピー端末、そして .Tn APL 端末です。) カーソルを直ちに左端に移動するためのコードがある場合には、それを .Sy \&cr で指定します。 (通常これは復帰文字(キャリッジリターン)、すなわち .Sy \&^M です。) 可聴シグナル (ベルやビープなど) を発生するコードがある場合には、それを .Sy \&bl で指定します。 .Pp (バックスペースのように) カーソルを 1 つ左に移動するコードがある場合には、 このケーパビリテイは .Sy \&le で指定します。 同様に、右上下に移動するコードはそれぞれ .Sy \&nd , .Sy \&up , .Sy \&do で指定します。 これらの .Em ローカルなカーソル移動 は、カーソルが通過する文字を変化させてはなりません; 例えば、通常は .Dq nd=\ \& を使用してはなりません。例外は 端末が .Sy \&os ケーパビリティを持つ場合です。 この理由は、通過する文字を空白が消してしまうからです。 .Pp ここで非常に重要なポイントは、 .Nm でエンコードされるローカルなカーソル移動は、 .Tn CRT 表示の左端および上端では動作が未定義だということです。 ローカルなカーソル移動を使用している場合には、 左端においては .Sy \&bw が与えられているのでなければ、 プログラムはバックスペースを試してはなりませんし、 上端においては上への移動を試してはなりません。 .Pp テキストを上にスクロールするには、プログラムは画面左下角に移動して、 .Sy \&sf (インデックス) 文字列を送ります。 テキストを下にスクロールするには、プログラムは画面左上角に移動して、 .Sy \&sr (逆インデックス) 文字列を送ります。 期待された角以外での .Sy \&sf および .Sy \&sr 文字列の動作は未定義です。 パラメータ化したバージョンのスクロールシーケンスは .Sy \&SF および .Sy \&SR で、 .Sy \&sf および .Sy \&sr と同様の意味ですが、 1 つパラメータを取ってその行数だけスクロールさせるというところが違います。 これらもまた、画面上の適切な角以外での動作は未定義です。 .Pp .Sy \&am ケーパビリティは、画面の右端にてテキスト出力を行った時に、 カーソルがその位置に留まるか否かを示します。 しかしこれは、最後の桁での .Sy \&nd を必ずしも意味しません。 左端らかの左向きのローカル移動は、 .Sy \&bw が与えられている場合のみ定義されます; この場合、左端における .Sy \&le は、直前行の右端へ移動します。 例えば、画面の周囲に箱を描画する場合に便利です。 端末が切り替え選択式の自動マージンを持つ場合には、 .Nm 記述は通常この機能、 .Em すなわち .Sy \&am がオンであることを仮定します。 次行の先頭桁への移動コマンドを端末が持つ場合、このコマンドは .Sy \&nw (改行) で与えることができます。 これを使用して現在の行の残りの部分をクリアすることができますので、 正しく動作する .Tn \&CR および .Tn \&LF を持たない場合には、これらの代りに使用することができます。 .Pp これらの機能で、ハードコピー端末および .Dq ガラスの tty 端末を記述するためには十分です。 Teletype model 33 は以下のように記述されています .Bd -literal -offset indent T3\||\|tty33\||\|33\||\|tty\||\|Teletype model 33:\e :bl=^G:co#72:cr=^M:do=^J:hc:os: .Ed .Pp また Lear Siegler .Tn ADM Ns \-3 は以下のように記述されています .Bd -literal -offset indent l3\||\|adm3\||\|3\||\|LSI \s-1ADM\s0-3:\e :am:bl=^G:cl=^Z:co#80:cr=^M:do=^J:le=^H:li#24:sf=^J: .Ed .Ss パラメータ化された文字列 カーソル位置設定などのパラメータを要求する文字列は、 パラメータ化された文字列ケーパビリティで記述します。 ここでは .Xr printf 3 に似たエスケープ .Sy \&%x を使用します。その他の文字は変更されずに渡されます。 例えば、カーソル位置設定のために .Sy \&cm ケーパビリティが与えられますが、これは 2 つのパラメータを使用します: それぞれ移動先の行と桁です。 (行と桁は 0 から番号が振られ、ユーザから見える物理画面を参照します。 見えないメモリは参照しません。 端末がメモリ相対のカーソル位置設定機能を持つ場合には、 .Sy \&CM という似たケーパビリティで指定されます。) .Pp .Sy \&% エンコードは以下の意味を持ちます: .Bl -column xxxxx .It %% Ta No `%' を出力 .It "%d 値を" .Xr printf %d のように出力 .It "%2 値を" .Xr printf %2d のように出力 .It "%3 値を" .Xr printf %3d のように出力 .It "%. 値を" .Xr printf %c のように出力 .It "%+" Ns Em x Ta No 値に .Em x を加え、% を実行 .It "%>" Ns Em \&xy Ta No もし 値 \&> .Em x の場合には .Em y を加える。無出力 .It "%r 2 つのパラメータの順を逆転。無出力" .It "%i 1 増加。無出力" .It "%n 全パラメータに関した 0140 との排他的論理和 (Datamedia 2500)" .It "\&%B" Ta Tn BCD No "(16*(value/10)) + (value%10) を実行。無出力" .It "%D 逆コーディング (value \- 2*(value%16))。無出力 (Delta Data)" .El .Pp Hewlett-Packard 2645 において第 3 行第 12 桁に移動する場合、 .Dq \eE&a12c03Y を送って 6 ミリ秒パディングする必要があります。 行と桁の関係がここでは逆であり、行および桁は 2 桁の整数として送る ことに注意してください。 よって、この端末の .Sy \&cm ケーパビリティは .Dq Li cm=6\eE&%r%2c%2Y となります。 .Pp Datamedia 2500 は現在の行と桁を .Dq %.\& でバイナリエンコードして送る必要があります。 .Dq %.\& を使用する端末は、カーソルをバックスペース .Pq Sy \&le させる機能と画面上で 1 行カーソルを上に移動 .Pq Sy \&up する機能を持つ必要があります。 なぜなら .Sy \&\en , .Sy \&^D , .Sy \&\er を送出するのは常に安全というわけではなく、 システムがこれらに変更を加えたり捨てたりする場合があるからです。( .Nm を使用するプログラムは、タブが展開されないように端末モードを設定し、 .Sy \&\et が安全に送られるようにしなければなりません。 これは Ann Arbor 4080 において本質的です。) .Pp 最後の例は Lear Siegler .Tn ADM Ns \-3a です。この端末では行と桁は空白文字で与えますので、 .Dq Li cm=\eE=%+ %+\ となります。 .Pp 絶対値での行や桁のカーソル位置設定は、単一パラメータのケーパビリティ .Sy \&ch (水平絶対位置) および .Sy \&cv (垂直絶対位置) で与えられます。 一般的な 2 パラメータシーケンスよりもこれらを使用する方が短かいことがあり (Hewlett-Packard 2645 の場合)、 .Sy \&cm よりも好んで使用され得ます。 パラメータ化されたローカル移動 .Pf ( Em 例えば 、 .Ar n 個右に移動) の機能がある場合、 .Sy \&DO , .Sy \&LE , .Sy \&RI , .Sy \&UP として与えられます。これらは単一パラメータを取り、 いくつ移動するのかを示します。 第 1 に Tektronix 4025 のような .Sy \&cm を持たない端末で有用です。 .Ss カーソル移動 .Pp 端末が高速にカーソルをホーム (画面の左上角) に移動する方法がある場合、これは .Sy \&ho として与えられます。 同様に、高速に左下角に移動する方法は、 .Sy \&ll で与えられます; これには、ホームポジションにて .Sy \&up を使用することによる上への移動を含みますが、 プログラム自身がこれを実行してはなりません (ただし .Sy \&ll が実行する場合を除く)。 なぜならプログラムはホームポジションでの上への移動の効果を 仮定できないからです。) ホームポジションは、カーソル位置 (0,0) と同じです: 画面の左上角であり、メモリは無関係です。 (それゆえ、Hewlett-Packard 端末の .Dq \eEH シーケンスは、 .Sy \&ho としては使用できません。) .Ss 領域クリア 端末が、現在位置に留まりつつ、現在位置から行末までクリア可能である場合には、 この機能は .Sy \&ce として与えられます。 端末が、現在位置から描画終端までをクリア可能である場合には、この機能は .Sy \&cd として与えられます。 .Sy \&cd は行の最初の桁においてのみ起動可能です。(よって、真の .Sy \&cd が利用できない場合、この機能は多数の行を削除する要求にてシミュレート可能です。) .Ss 行の挿入および削除 端末が、カーソルがいる行の前に新しい空行を開けることが可能な場合、この機能は .Sy \&al として与えられます; この機能を起動するには行頭にいる必要があります。 行を開けると、カーソルは新しい空行の左端に移動します。 端末が、カーソルがいる行を削除可能な場合、この機能は .Sy \&dl として与えられます; この機能を起動するには削除する行の先頭にいる必要があります。 1 つパラメータを取ってその数だけ行を挿入および削除する .Sy \&al および .Sy \&dl の変形は、 .Sy \&AL および .Sy \&DL として与えられます。 端末が、(VT100 のように) 設定可能なスクロール領域を持つ場合、 設定コマンドは 2 つのパラメータを取る .Sy \&cs ケーパビリティとして記述されます: パラメータはスクロール領域の上端行および下端行です。 なんとしたことか、このコマンド使用後のカーソル位置は未定義です。 行挿入および行削除の効果はこのコマンドを使用することで得られます \(em .Sy \&sc および .Sy \&rc (カーソルの保存と回復) コマンドもまた有用です。 画面の上端または下端における行挿入は、 真の行挿入/削除を持たない多くの端末において、 .Sy \&sr または .Sy \&sf にて実行できます。 また、真の行挿入/削除機能を持つ端末においても、 こちらの方が高速な場合が多いです。 .Pp メモリの一部を、 全コマンドが影響するウィンドウとして定義する能力を端末が持つ場合、 これはパラメータ化された文字列 .Sy \&wi で与えられます。 4 つのパラメータは順番に、メモリにおける開始行・終了行・開始桁・終了桁です。 (この .Xr terminfo 5 ケーパビリティは完全性のために記述しています。 .Nm を使用するプログラムはこの機能を使ってはいないでしょう。) .Pp 端末が画面より上方の表示メモリを保存する場合、 .Sy \&da ケーパビリティが与えられます; 下方の表示メモリが保存される場合、 .Sy \&db が与えられます。 これらの機能は、 行削除やスクロールにより非空白行が下から現れることや、 .Sy \&sr による後退スクロールにより非空白行が上から現れることを示します。 .Ss 文字の挿入および削除 .Nm にて記述可能な文字挿入および削除に関しては、 基本的に 2 種類のインテリジェント端末があります。 最も一般的な文字の挿入/削除操作は現在行の文字にのみ作用し、 行末までの文字を厳格にシフトします。 他の端末、Concept\-100 や Perkin Elmer Owl では、 タイプされた空白とタイプされたものではない空白を区別し、 挿入/削除に際するシフトは 画面上のタイプされたものではない空白にのみ適用されます。 タイプされたものではない空白は、削除されるか、 2 つのタイプされたものではない空白に拡張されます。 使用している端末の種類を判別するためには、 画面をクリアし、カーソル移動を含めてテキストをタイプします。例えば .Dq Li abc\ \ \ \ def を、 .Dq abc と .Dq def の間でローカルなカーソル移動 (空白ではありません) を行ってタイプします。 その後、カーソルを .Dq abc の前に移動し、端末を挿入モードにします。 そこで文字をタイプすると 行の残りの部分が厳密にシフトされ終端から出て行く場合、 あなたの端末は空白とタイプされたものではない位置とを区別しません。 もし挿入に際して、 .Dq abc が .Dq def のところまでシフトし、 それから一緒に現在の行の終端まで移動して次行に移動する場合、 あなたの端末は 2 番目の種類の端末を持っていますので、 .Dq ナル挿入 を表すケーパビリティ .Sy \&in を指定します。 これら 2 つは論理的に別の属性 (1 行 .Em 対 複数行の挿入モードでタイプされたものではない空白を特別に扱う) ですが、 挿入モードをどちらかで記述できない端末を我々は見たことがありません。 .Pp .Nm エントリは、挿入モードを持つ端末も、 単純なシーケンスを送って現在の行に空白位置を開ける端末も、両方記述可能です。 .Sy \&im は挿入モードに入るシーケンスを表します。 .Sy \&ei は挿入モードから抜けるシーケンスを表します。そして、 .Sy \&ic は、挿入する文字を送る直前に送る必要があるシーケンスを表します。 真の挿入モードを持つほとんどの端末は、 .Sy \&ic を指定しません; 一方、画面上の位置を開けるためにシーケンスを使用する端末は、 これを指定する必要があります。 (端末が両方の機能を持つ場合には、挿入モードは通常 .Sy \&ic が好まれます。実際に両機能を組み合せる必要がある端末の場合以外は、 両方を指定しないでください。) 挿入後にパディングが必要な場合、ミリ秒数にて .Sy \&ip (文字列オプション) で与えます。 1 文字挿入後に送る必要があるシーケンスもまた .Sy \&ip で指定します。`挿入モード' である必要があり、 なおかつ挿入文字の前に特別のコードを送る必要がある端末の場合、 .Sy \&im Ns / Sy \&ei と .Sy \&ic が与えられ、両方を使用します。 単一のパラメータ .Em n を取る .Sy \&IC ケーパビリティは、 .Sy \&ic の効果を .Em n 回繰り返します。 .Pp 挿入モード中で同一行の文字を削除するために、時々移動が必要になります .Pf ( Em 例えば 挿入位置の後にタブがある場合)。 挿入モード中で移動を許す端末の場合、ケーパビリティ .Sy \&mi を指定して、このような場合の挿入を高速化できます。 .Sy \&mi を省略しても速度に影響するだけです。 端末によっては (特に Datamedia のものでは)、挿入モードの動作方法の理由により、 .Sy \&mi を指定してはなりません。 .Pp 最後に、1 文字削除のために .Sy \&dc を指定可能です。 .Sy \&DC は単一パラメータ .Em n を取り .Em n 文字削除します。 そして削除モードは、 .Sy \&dm および .Sy \&ed で、削除モードの入り方および抜け方を示します (削除モードとは、 .Sy \&dc が動作するために端末がいるべきモードです)。 .Ss ハイライト・下線・可視ベル 端末が 1 つまたはそれ以上の種類の表示属性を持つ場合、 これらは様々な方法で表現されていることでしょう。 1 つの表示形式を .Em 強調表示モード として選択してください。このモードは十分高いコントラストで見易く、 エラーメッセージや注意を引く表示のハイライトに適します。 (選択可能ならば、反転表示に半分の明るさ、もしくは反転表示のみが良いでしょう。) 強調表示モードに入るシーケンスおよび出るシーケンスは、それぞれ .Sy \&so および .Sy \&se で与えられます。 .Tn TVI 912 や Teleray 1061 のように、 強調表示モードの出入りのコードが、 1 つ 2 つの空白やごみの文字を画面上に残す場合、 .Sy \&sg を指定して、何文字残されるのかを指定してください。 .Pp 下線の開始および下線の終了は、それぞれ .Sy \&us および .Sy \&ue で指定します。 下線モード変更によるごみは、 .Sy \&sg 同様 .Sy \&ug として指定します。 Microterm Mime のように、現在位置の文字に下線を引き、 カーソルをひとつ右の位置に移動するコードを端末が持つ場合、 このコードは .Sy \&uc で指定します。 .Pp その他もろもろのハイライトモードに入るケーパビリティには、 .Sy \&mb (点滅)、 .Sy \&md (ボールドまたは更に明るい)、 .Sy \&mh (暗いまたは半輝度)、 .Sy \&mk (空白または見えないテキスト)、 .Sy \&mp (保護状態)、 .Sy \&mr (反転表示)、 .Sy \&me .Pf ( Em 全て の属性モードをオフ)、 .Sy \&as (別の文字セットモードに入る) そして .Sy \&ae (別の文字セットモードから抜ける) があります。 これらのモードを単独でオンにした場合、 他のモードをオフにする場合もありますし、オフにしない場合もあります。 .Pp モードの任意の組み合わせを設定するシーケンスがある場合、 これは 9 個のパラメータを取る .Sy \&sa (属性設定) で指定します。 それぞれのパラメータは 0 または 1 であり、 対応する属性がオンまたはオフされます。 9 個のパラメータは順番に次の通りです: 強調表示・下線・反転・点滅・ 暗い・ボールド・空白・保護・別の文字セット。 全モードが .Sy \&sa によりサポートされている必要は無く、 サポートされているものに対応するコマンドが存在することのみ必要です。( .Nm を使用するプログラムはこのケーパビリティをサポートしていないでしょう。 このケーパビリティは .Xr terminfo 5 との互換性のために定義しています。) .Pp 各文字セルに追加された属性ビットを管理するのではなく、 .Dq マジッククッキー グリッチ .Pf ( Sy \&sg および .Sy \&ug ) を持つ端末では、 描画アルゴリズムに影響するモード設定シーケンスを受信した時に、 特別な .Dq クッキー または .Dq ごみ文字 を画面に残します。 .Pp Hewlett-Packard 2621 のように、 新しい行へ移動した時やカーソル位置を設定した時に 自動的に強調表示モードから抜ける端末があります。 このような端末においては、強調表示モードを使用するプログラムは、 カーソル移動や改行送信前に強調表示モードから抜ける必要があります。 このような問題が無い端末では、 .Sy \&ms ケーパビリティが存在し、このオーバヘッドが不要であることを示します。 .Pp エラーを静かに伝えるために端末が画面をフラッシュさせる方法を持つ場合 (ベルの代りです)、これは .Sy \&vb として指定します; この機能はカーソルを移動してはなりません。 .Pp カーソルが最下行になくても、 通常時よりも見易くする必要がある場合 (例えば、点滅していない下線を、 より見付け易いブロックや点滅する下線に変更する場合)、このシーケンスは .Sy \&vs で与えます。 カーソルを完全に見えなくする方法がある場合には、これは .Sy \&vi ケーパビリティで指定します。 これらのモードの効果を打ち消すケーパビリティ .Sy \&ve も指定する必要があります。 .Pp (特別なコードを必要とせずに) 下線を引かれた文字を端末が正しく表示する場合、 しかもその機能が上打ちではない場合、 このケーパビリティを .Sy \&ul で示します。 上打ちを空白にて消去可能な場合、これは .Sy \&eo で示します。 .Ss キーパッド キーを押した時にコードを送出するキーパッドを持つ端末では、 この情報を指定することができます。 キーパッドがローカルモードにおいてのみ動作する端末は 扱うことができないことに注意してください。 (これは例えば Hewlett-Packard 2621 でシフト状態でないキーにあてはまります)。 キーコードの送出 / 非送出をキーパッドに設定できる場合は、 設定のためのコードは .Sy \&ks および .Sy \&ke で指定します。 そうでない場合はキーパッドは常にコードを送出するものと仮定されます。 left-arrow, right-arrow, up-arrow, down-arrow, home のキーで送出されるコードは それぞれ .Sy \&kl , .Sy \&kr , .Sy \&ku , .Sy \&kd , .Sy \&kh , で指定します。 f0, f1, ..., f9 のようなファンクションキーがある場合には、 これらのキーが送るコードは .Sy \&k0 , .Sy \&k1 , \&..., .Sy \&k9 で指定します。 これらのキーがデフォルトの f0 から f9 以外のラベルを持つ場合、このラベルは .Sy \&l0 , .Sy \&l1 , \&..., .Sy \&l9 で指定します。 その他の特殊キーで送出されるコードは次のように与えられます: .Sy \&kH (ホームダウン)、 .Sy \&kb (バックスペース)、 .Sy \&ka (全タブクリア)、 .Sy \&kt (この桁のタブストップをクリア)、 .Sy \&kC (画面クリアまたは消去)、 .Sy \&kD (文字削除)、 .Sy \&kL (行削除)、 .Sy \&kM (挿入モードから抜ける)、 .Sy \&kE (行末までクリア)、 .Sy \&kS (画面の終りまでクリア)、 .Sy \&kI (文字挿入または挿入モードに入る)、 .Sy \&kA (行挿入)、 .Sy \&kN (次のページ)、 .Sy \&kP (前のページ)、 .Sy \&kF (前進/下降スクロール)、 .Sy \&kR (後退/上昇スクロール)、 .Sy \&kT (この桁にタブストップを設定)。 更に、キーパッドが 4 つの矢印キーを含む 3 × 3 のキー配列を持つ場合、 他の 5 つのキーは .Sy \&K1 , .Sy \&K2 , .Sy \&K3 , .Sy \&K4 , .Sy \&K5 で指定します。 3 × 3 の方向パッドが必要な時、これらのキーは有用です。 以前 .Dq その他 のファンクションキーを記述するために使用された、廃れた .Sy \&ko ケーパビリティは、上記のケーパビリティにより完全に置き換えられました。 .Pp .Sy \&ma エントリはまた、 端末の矢印キーが 1 文字矢印キーであることを示すためにも使用されます。 これは廃れた方法ですが、 .Sy \&vi のバージョン 2 で未だ使用されています。 メモリ制約の理由で、このコマンドを使用しているミニコンピュータがあるでしょう。 このフィールドは .Sy \&kl , .Sy \&kr , .Sy \&ku , .Sy \&kd , .Sy \&kh と冗長関係にあります。 このフィールドは 2 文字の複数グループから構成されます。 各グループにおいては、最初の文字は矢印キーが何を送るかを表し、 2 番目の文字は対応する .Sy \&vi のコマンドを表します。 コマンドは、 .Ar h が .Sy \&kl に、 .Ar j が .Sy \&kd に、 .Ar k が .Sy \&ku に、 .Ar l が .Sy \&kr に、 .Ar H が .Sy \&kh に対応します。 例えば Mime では .Dq Li ma=^Hh^Kj^Zk^Xl となり、矢印キーの left (^H), down (^K), up (^Z), down (^X) を示します。 (Mime には home キーはありません。) .Ss タブおよび初期化 これらのケーパビリティを使用するプログラムを実行する時に 端末を特別なモードにすることが必要な場合、 このモードに入るコードおよび出るコードは .Sy \&ti と .Sy \&te で指定します。 これが関係あるのは、例えば Concept のようなメモリページを複数持つ端末です。 端末がメモリ相対のカーソル位置設定のみ持ち、 画面相対のカーソル位置設定を持たない場合には、 画面サイズのウィンドウに表示を固定し、 カーソル位置設定が正しく動作するようにする必要があります。 これは Tektronix 4025 でも使用され、 .Sy \&ti はコマンド文字を .Nm が使うように設定します。 .Pp 他のケーパビリティとしては、端末初期化文字列 .Sy \&is や、長い初期化文字列を格納するファイル名 .Sy \&if があります。 これらの文字列は、端末を .Nm 記述と矛盾がないモードに設定するものと期待されています。 これらは通常、ユーザがログインするたびに、 .Xr tset プログラムによって端末に送られます。 印字は次の順に行われます: まず .Sy \&is ; 次に .Sy \&ct と .Sy \&st によるタブ設定; そして最後に .Sy \&if です。 .Pf ( Xr terminfo 5 では .Sy \&is の代りに .Sy \&i\&1-i2 を使用し、プログラム .Sy \&iP を実行し、他の初期化の後 .Sy "\&i\&3" を印字します。) まったくわけがわからない状態から回復するためのよりハードな リセットシーケンスの組が、類推できる名前 .Sy \&rs および .Sy \&rf で与えられます。 これらの文字列は、端末がはまった状態に陥いった時に使用される .Xr reset プログラムにより出力されます。 .Pf ( Xr terminfo 5 は .Sy \&rs の代りに .Sy "\&r1-r3" を使用します。) これらのコマンドが画面上を騒がせ、 なおかつログイン時に必ずしも必要ではない場合に限り、 通常これらは .Sy \&rs および .Sy \&rf に格納します。 例えば、VT100 を 80 桁モードに設定するコマンドは、普通に考えると .Sy \&is の一部に入れるでしょうが、これは画面に困ったゴミを生じさせますし、 端末は普段既に 80 桁モードですので、実際は入れる必要はありません。 .Pp 端末がハードウェアタブを持つ場合、 次のタブストップまで進むコマンドは .Sy \&ta で指定します (通常は .Sy \&^I です)。 直前のタブストップへ左向きに移動する .Dq バックタブ コマンドは、 .Sy \&bt で指定します。 タブストップが端末には送られずに計算機により展開されることを 端末ドライバモードが示す場合、 .Sy \&ta や .Sy \&bt が存在するとしても、プログラムでこれらを使用しないというのが約束になって います。 なぜなら、ユーザがタブストップを正しく設定していないかもしれないからです。 端末電源オン時に各 .Ar n 位置ごとにハードウェアタブが初期設定される端末の場合、 数値パラメータ .Sy \&it を使用し、タブストップ間隔を示します。 このコマンドは通常 .Xr tset コマンドが使用し、ドライバモードをハードウェアタブ展開に設定するか否か、 およびタブストップを設定するか否かを決定します。 端末が不揮発性メモリにタブストップを保存可能な場合、 .Nm 記述はタブストップが正しく設定されるものと仮定できます。 .Pp タブストップを設定およびクリアするコマンドが存在する場合、 これらのコマンドは .Sy \&ct (全タブストップをクリア) および .Sy \&st (全ての行における現在の桁にタブストップを設定) で指定します。 タブ設定のために、ここで示した方法より複雑なシーケンスが必要な場合、 このシーケンスは .Sy \&is や .Sy \&if で指定します。 .Ss 遅延 端末ドライバのパディングを制御するケーパビリティもあります。 これらのケーパビリティは、第 1 にハードコピー端末にて必要とされ、 .Xr tset プログラムにより端末ドライバのモードを適切に設定するために使用されます。 ケーパビリティ .Sy \&cr , .Sy \&sf , .Sy \&le , .Sy \&ff , .Sy \&ta に埋め込まれる遅延は、端末ドライバの適切な遅延ビットを設定する効果があります。 .Sy \&pb (パディングボーレート) を指定した場合、 この値より低いボーレートにおいては、これらの値は無視されます。 .Bx 4.2 の .Xr tset では、遅延は別の数値ケーパビリティ .Sy \&dC , .Sy \&dN , .Sy \&dB , .Sy \&dF , .Sy \&dT で与えられます。 .Ss その他 端末が .Dv NUL (0) 文字以外のパディング文字を必要とする場合には、 .Sy \&pc で指定します。 .Sy \&pc 文字列の最初の文字のみが使用されます。 .Pp 端末がカーソル位置を保存および回復するコマンドを持つ場合には、これらは .Sy \&sc および .Sy \&rc で指定します。 .Pp 通常はソフトウェアが使用しない追加の .Dq ステータス行 を端末が持つ場合、この事実を示すことができます。 ステータス行が最下行の下に追加の行として見える場合には、ケーパビリティ .Sy \&hs を指定します。 ステータス行の位置への移動およびステータス行からの復帰のための特別な文字列は、 .Sy \&ts および .Sy \&fs で指定します。 .Pf ( Sy \&ts の前にカーソルが存在した位置に、 .Sy \&fs はカーソルを戻す必要があります。必要ならば、 .Sy \&sc および .Sy \&rc の文字列を .Sy \&ts および .Sy \&fs に含めてこの効果を得ることができます。) ケーパビリティ .Sy \&ts は、ステータス行の何桁目にカーソルが移動すべきを示すパラメータを 1 つ取ります。 エスケープシーケンスや他の特殊コマンド、 例えばタブがステータス行でも動作するならば、フラグ .Sy \&es を指定します。 ステータス行をオフにする (または内容を消去する) 文字列は、 .Sy \&ds で指定します。 通常、ステータス行の幅は画面の他の部分、 .Em すなわち .Sy \&co と同じであると仮定されます。(端末が行全体の使用を許さない等の理由で) ステータス行の幅が異なる場合には、その幅を桁数で数値パラメータ .Sy \&ws で指定します。 .Pp 端末が半行上下に移動可能な場合、 .Sy \&hu (半行上) および .Sy \&hd (半行下) で指定します。 これは、ハードコピー端末で上付き文字および下付き文字を使用するために有用です。 ハードコピー端末がページを排出して次のページに移動 (フォームフィード) する ことができる場合、これは .Sy \&ff (通常 .Sy \&^L です) で指定します。 .Pp 指定した文字を指定した回数繰り返すコマンド (同一文字を何度も送出する時間を節約します) がある場合、 パラメータ化された文字列 .Sy \&rp で指定します。 最初のパラメータは繰り返される文字であり、2 番目のパラメータは 繰り返す回数です。(これは .Xr terminfo 5 の機能であり、 .Nm を使用するプログラムはこの機能をサポートしていないでしょう。) .Pp Tektronix 4025 のように端末が設定可能なコマンド文字を持つ場合、 .Sy \&CC で指定します。 全ケーパビリティで使用されるプロトタイプコマンド文字が選択されます。 この文字を識別するために、この文字が .Sy \&CC ケーパビリティにより与えられます。 次の約束をサポートしている .Ux システムがあります: すなわち、 .Ev \&CC 環境変数を検査し、もし設定されている場合には、 プロトタイプ文字を環境変数で設定されているものと置き換えるという約束です。 このように .Ev \&CC 環境変数を使用することは、 .Xr make 1 との衝突が発生しますので、非常に悪い考えです。 .Pp 特定の既知の端末を表現するものではない端末記述、 .Em switch , .Em dialup , .Em patch , .Xr network では .Sy \&gn (一般) ケーパビリティを設定し、 端末に対してどのように話しかければよいのか分らないと プログラムが文句を言えるようにします。 (このケーパビリティは、エスケープシーケンスが既知である .Em 仮想 端末記述にはあてはまりません。 .Pp 端末が xoff/xon .Pq Tn DC3 Ns / Ns Tn DC1 ハンドシェークを使用してフロー制御する場合、 .Sy \&xo を指定します。 コストに関するより良い判定を可能とするために 依然としてパディング情報を指定する必要がありますが、 実際にパディング文字が送出されるということはありません。 .Pp シフトキーのように動作し、送出される文字の 8 ビット目をセットする .Dq メタキー を端末が備える場合、 .Sy \&km を設定してこの事実を示すことができます。 これが指定されない場合は、ソフトウェアは 8 ビット目はパリティであると仮定し、 通常これをクリアしてしまいます。 .Dq メタモード をオンおよびオフする文字列が存在する場合、これらは .Sy \&mm および .Sy \&mo で指定します。 .Pp 画面 1 枚分より多くのメモリ行を端末が備える場合、 メモリの行数を .Sy \&lm で指定します。 明示的に値 0 を指定すると、行数は固定ではないものの 画面分より多くのメモリがあることを示します。 .Pp .Ux システムの仮想端末プロトコルにてサポートされる端末である場合、 端末番号は .Sy \&vt で与えられます。 .Pp 端末に接続された外部プリンタを制御するメディアコピー文字列は、 次のように与えられます。すなわち .Sy \&ps : 画面内容の印字; .Sy \&pf : プリンタオフ; および .Sy \&po : プリンタオンです。 プリンタオン時には、端末に送られる全てのテキストはプリンタに送られます。 プリンタオン時に端末画面にもテキストが表示されるか否かは未定義です。 このバリエーションである .Sy \&pO は単一のパラメータを取り、 パラメータ値で指定される文字数だけプリンタをオンにし、 その後プリンタをオフにします。 このパラメータは 255 を越えてはなりません。 .Sy \&pf を含む全テキストは、 .Sy \&pO が有効である間、透過的にプリンタに渡されます。 .Pp プログラムファンクションキーへの文字列は .Sy \&pk , .Sy \&pl , .Sy \&px で指定します。 これらの文字列は次の 2 つのパラメータを取ります: それぞれ、プログラム対象のファンクションキー番号 (0 から 9 まで) と、 プログラムの文字列です。 この範囲外のファンクションキー番号を指定すると、 ここでは定義できないキーを端末依存の方式でプログラムするかもしれません。 これらのケーパビリティの差異は、 .Sy \&pk は指定したキーを押すと指定した文字列を ユーザがタイプしたものとして扱うものであり; .Sy \&pl はローカルモードの端末にて指定した文字列を実行させるものであり; .Sy \&px は指定した文字列を計算機に送出させるものである点です。 不幸なことに、 .Nm では文字列パラメータが定義されていないため、 .Xr terminfo 5 のみがこれらのケーパビリティをサポートします。 .Ss グリッチと不良 文字 `~' を表示できない Hazeltine 端末は .Sy \&hz を指定する必要があります。 .Pp .Sy \&nc ケーパビリティは現在廃れていますが、 以前は Datamedia 端末を表すために使用していました。 この端末では、キャリッジリターンに対して .Sy \&\er \en をエコーし、続くラインフィードを無視します。 .Pp Concept のように .Sy \&am による折り返しの直後のラインフィードを無視する端末では、 .Sy \&xn を指定します。 .Pp 強調表示を取り除くために (単に通常のテキストを上書きするだけで済まず) .Sy \&ce が必要な場合、 .Sy \&xs を指定します。 .Pp タブによって移動された全ての文字が空白にされてしまう Teleray 端末では、 .Sy \&xt (破壊的なタブ) を指定する必要があります。 このグリッチは、 .Dq マジッククッキー の先頭に カーソル位置を設定できないことと、 強調表示を消すためには行削除と行挿入が必要であることも表現します。 .Pp .Dv ESC や .Sy \&^C の文字を正しく送出できない Beehive Superbee は .Sy \&xb を指定し、 .Dq \&f\&1 キーが .Dv ESC として使用され、 .Dq \&f\&2 キーが ^C として使用されることを示します。( 特定の Superbee のみがこの問題を持ち、これは .Tn ROM に依存します。) .Pp ある特定の端末に他の問題がある場合、 .Sy x Ns Em x の形式のケーパビリティを追加することにより正しく動作するようにしても 構いません。 .Ss 似た端末 2 つの非常によく似た端末がある場合、 例外はあるもののもう一方にそっくりであると、 一方を定義することができます。 文字列ケーパビリティ .Sy \&tc には似た端末の名前を与えます。 このケーパビリティは .Em 最後 である必要があり、組み合わせたエントリの長さは 1024 を越えてはなりません。 .Sy \&tc の前に指定したケーパビリティは .Sy \&tc により呼び出される端末タイプの記述に優先します。 ケーパビリティのキャンセルのためには .Sy \&xx@ を .Sy \&tc の呼び出しの左に置きます。 .Sy \&xx はキャンセルされるケーパビリティです。 例えば、エントリ .Bd -literal -offset indent hn\||\|2621\-nl:ks@:ke@:tc=2621: .Ed .Pp は、ビジュアルモードでファンクションキーラベルをオンにしないために .Sy \&ks と .Sy \&ke のケーパビリティを持たない .Dq 2621\-nl を定義します。 端末の種々のモードやユーザの種々のプリファレンスを記述するために有用です。 .Sh 関連ファイル .Bl -tag -width /usr/share/misc/termcap.db -compact .It Pa /usr/share/misc/termcap 端末記述を格納するファイル .It Pa /usr/share/misc/termcap.db 端末記述を格納するハッシュデータベースファイル .Pf ( Xr cap_mkdb 1 を参照)。 .El .Sh 関連項目 .Xr cap_mkdb 1 , .Xr ex 1 , .Xr more 1 , .Xr tset 1 , .Xr ul 1 , .Xr vi 1 , .Xr ncurses 3 , .Xr printf 3 , .Xr termcap 3 , .Xr term 5 .Sh 警告およびバグ .Em 注 : .Nm の機能は .At V Release 2.0 の .Xr terminfo 5 に置き換えられました。 .Dq 廃れた とされるケーパビリティを使用していなければ、 移行のための苦痛は比較的少ないです。 .Pp 現在、行数および桁数は、 termcap エントリに格納するものと同様に、カーネルが格納します。 現在、ほとんどのプログラムはカーネルの情報を最初に使用します; このファイルに記述されている情報は、 カーネルが情報を持たない時のみ使用されます。 .Pp .Xr \&vi 1 プログラムは文字列ケーパビリティには 256 文字しか許しませんが、 .Xr termlib 3 のルーチンはこのバッファの溢れをチェックしません。 単一エントリの総計の長さは 1024 を越えてはなりません (エスケープされた改行は除きます)。 .Pp 全てのプログラムが全てのエントリをサポートしているわけではありません。 .Sh 歴史 .Nm ファイルフォーマットは .Bx 3 に登場しました。 diff --git a/ja_JP.eucJP/man/man8/comsat.8 b/ja_JP.eucJP/man/man8/comsat.8 index cf4939621e..8b3bdcc0cf 100644 --- a/ja_JP.eucJP/man/man8/comsat.8 +++ b/ja_JP.eucJP/man/man8/comsat.8 @@ -1,99 +1,107 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)comsat.8 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/libexec/comsat/comsat.8,v 1.6.2.2 2001/08/16 10:44:14 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/comsat.8,v 1.8 2001/05/14 01:09:46 horikawa Exp $ +.\" %FreeBSD: src/libexec/comsat/comsat.8,v 1.6.2.3 2002/08/09 02:56:30 johan Exp % +.\" $FreeBSD$ .\" .Dd June 4, 1993 .Dt COMSAT 8 .Os .Sh 名称 .Nm comsat .Nd biff サーバ .Sh 書式 .Nm .Sh 解説 .Nm は受信メールのレポートを受け取り、 サービスを要求しているユーザに対して通知を行なうサーバプロセスです。 .Nm は、 .Dq biff サービス仕様 ( .Xr services 5 および .Xr inetd 8 を参照) に関連するデータグラムポートのメッセージを受信します。 1 行メッセージは次の形式です: .Pp .Dl user@mailbox-offset[:mailbox-name] .Pp もし、この .Em user がシステムにログインしていて、割り当てられた端末の所有者実行ビットが ( .Dq Li biff y によって) ON になっていれば、 .Em offset はメールボックスのシークオフセットとして使用され、 メッセージの先頭 7 行か、もしくは 560 文字がユーザの端末に表示されます。 .Dq From , .Dq \&To , .Dq Date , .Dq Subject 以外のメッセージヘッダの一部とみなされる行は、 表示されるメッセージに含まれません。 .Pp +指定された +.Em user +がこのシステムにログインしていて、 +そのユーザに結び付けられている端末のグループ実行ビットが ( +.Dq Li biff b +によって) オンにされている場合、 +2 個のベル文字 (ASCII \\007) がそのユーザの端末に表示されます。 +.Pp mailbox-name を省略した場合, システム標準のメールボックスを監視します。 .Sh 関連ファイル .Bl -tag -width /var/mail/user -compact .It Pa /var/run/utmp 誰がどの端末でログオンしたかを識別します。 .It Pa /var/mail/user システム標準のメールボックスです。 .El .Sh 関連項目 .Xr biff 1 , .Xr inetd 8 .Sh バグ メッセージヘッダのフィルタリングは誤りがちです。 表示される情報は、最低限のものです。 .Pp 現在ログインしているマシン以外のマシンへのメールの到着は、 ユーザに通知されるべきです。 .Pp スクリーン表示を分かりやすくするために、通知は別のウィンドウに 表示されるべきです。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/ftpd.8 b/ja_JP.eucJP/man/man8/ftpd.8 index ae5aaec22c..df1916661f 100644 --- a/ja_JP.eucJP/man/man8/ftpd.8 +++ b/ja_JP.eucJP/man/man8/ftpd.8 @@ -1,493 +1,506 @@ .\" Copyright (c) 1985, 1988, 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. .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/libexec/ftpd/ftpd.8,v 1.31.2.9 2002/02/16 14:02:01 dwmalone Exp % +.\" %FreeBSD: src/libexec/ftpd/ftpd.8,v 1.31.2.10 2002/08/09 15:36:26 yar Exp % .\" .\" $FreeBSD$ .Dd January 27, 2000 .Dt FTPD 8 .Os .Sh 名称 .Nm ftpd .Nd インターネットファイル転送プロトコルサーバ .Sh 書式 .Nm -.Op Fl 46ADEORSUdro +.Op Fl 46AdDEoOrRSUv .Op Fl l Op Fl l -.Op Fl T Ar maxtimeout .Op Fl a Ar address .Op Fl p Ar file .Op Fl t Ar timeout +.Op Fl T Ar maxtimeout +.Op Fl u Ar umask .Sh 解説 .Nm は、インターネットファイル転送プロトコルサーバプロセスです。 このサーバは .Tn TCP プロトコルを用いて、 .Dq ftp サービスに割り当てられたポートを listen() します。 .Dq ftp サービスについては、 .Xr services 5 を参照して下さい。 .Pp 利用可能なオプションは以下の通りです: .Bl -tag -width indent .It Fl 4 .Fl D が指定されている場合、IPv4 接続を受け付けます。 .Fl 6 もまた指定されている場合、IPv4 接続を AF_INET6 ソケット経由で受け付けます。 .Fl 6 が指定されていない場合、IPv4 接続を AF_INET ソケット経由で受け付けます。 .It Fl 6 .Fl D が指定されている場合、AF_INET6 ソケット経由の接続を受け付けます。 +.It Fl a +.Fl D +オプションが指定されている場合、 +.Ar address +で指定されたアドレスに対する接続のみを許可します。 .It Fl A 匿名 ftp アクセスのみ許可します。 +.It Fl d +syslog の +.Dv LOG_FTP +のファシリティ (facility) を用いてデバッグ情報を出力します。 .It Fl D このオプションがセットされると、 .Nm は制御端末を切り離してデーモンとなり、 FTP ポートへの接続要求を待ち、 子プロセスを生成して接続要求に対応します。 この方式は .Nm を .Xr inetd 8 から起動するよりオーバヘッドが少ないため、 処理量の多いサーバで負荷を低減するのに役立ちます。 .It Fl E EPSV コマンドを無効化します。 古いファイアウォールの後ろにサーバがある場合に有用です。 +.It Fl l +.Xr ftp 1 +セッションそれぞれの結果を、成功も失敗もともども +syslog の +.Dv LOG_FTP +のファシリティを用いて +ログに残します。 +このオプションが 2 回指定されると、 +retrieve (get), store (put), append, delete, +make directory, remove directory, rename の各操作およびそれらの引数で指定された +ファイル名も記録されます。 +注意: +.Dv LOG_FTP +メッセージはデフォルトでは +.Xr syslogd 8 +によって表示されません。場合によっては +.Xr syslogd 8 +の設定ファイルでそれを有効にしなければなりません。 +.It Fl o +サーバを書き込み専用モードにします。 +RETR が無効化され、 +ダウンロードを禁止します。 .It Fl O 匿名ユーザのみに対し、サーバを書き込み専用モードにします。 匿名ユーザに対しては、RETR が無効化され、 匿名ダウンロードを禁止します。 本オプションは、 .Fl o も設定されている場合には、効果がありません。 +.It Fl p +.Fl D +オプションが指定されている場合、 +デーモンのプロセス ID を +.Ar file +に書き出します。 +.It Fl r +サーバを、読み取り専用モードにします。 +ローカルファイルを修正し得る全コマンドは、無効化されます。 .It Fl R このオプションがセットされると、 .Nm は、ユーザ操作のセキュリティチェックや PORT 要求の制限に関して 古き良き時代の振る舞いに戻ります。 現在では、 .Nm はリモートユーザのホストの非特権ポートに向けられた PORT コマンド だけを用います (これは FTP プロトコルの仕様に違反していますが、 いくつかのセキュリティホールを閉じることができます)。 .It Fl S このオプションがセットされると、 .Nm は匿名 (anonymous) によるファイルダウンロードの全てについてのログを、ファイル .Pa /var/log/ftpd が存在する場合に限り、このファイルに残します。 +.It Fl t +何も操作しないで放置した場合のタイムアウト時間を +.Ar timeout +秒に設定します (デフォルトは 15 分)。 +.It Fl T +クライアントは異なったタイムアウト秒数を要求することもできます。 +.Fl T +オプションにより、 +.Ar タイムアウト +までの最大待ち時間を設定できます。 +デフォルトは 2 時間です。 +.It Fl u +デフォルトのファイル生成マスクをを +.Ar umask +にします。 +この数値は 8 進数値であることを期待されます。 +詳細は +.Xr umask 2 +を参照してください。 .It Fl U 以前のバージョンの .Nm では、パッシブモードのクライアントがサーバにデータ接続を要求すると、 サーバは 1024 〜 4999 の範囲のデータポートを使用していました。 現在のバージョンでは、サーバはデフォルトでは 49152 〜 65535 の範囲の データポートを使用しますが、 このオプションを指定することにより、以前の振る舞いに戻ります。 -.It Fl d -syslog の -.Dv LOG_FTP -のファシリティ (facility) を用いてデバッグ情報を出力します。 -.It Fl r -サーバを、読み取り専用モードにします。 -ローカルファイルを修正し得る全コマンドは、無効化されます。 -.It Fl o -サーバを書き込み専用モードにします。 -RETR が無効化され、 -ダウンロードを禁止します。 -.It Fl l -.Xr ftp 1 -セッションそれぞれの結果を、成功も失敗もともども -syslog の -.Dv LOG_FTP -のファシリティを用いて -ログに残します。 -このオプションが 2 回指定されると、 -retrieve (get), store (put), append, delete, -make directory, remove directory, rename の各操作およびそれらの引数で指定された -ファイル名も記録されます。 -注意: -.Dv LOG_FTP -メッセージはデフォルトでは -.Xr syslogd 8 -によって表示されません。場合によっては -.Xr syslogd 8 -の設定ファイルでそれを有効にしなければなりません。 -.It Fl T -クライアントは異なったタイムアウト秒数を要求することもできます。 -.Fl T -オプションにより、 -.Ar タイムアウト -までの最大待ち時間を設定できます。 -デフォルトは 2 時間です。 -.It Fl a -.Fl D -オプションが指定されている場合、 -.Ar address -で指定されたアドレスに対する接続のみを許可します。 -.It Fl p -.Fl D -オプションが指定されている場合、 -デーモンのプロセス ID を -.Ar file -に書き出します。 -.It Fl t -何も操作しないで放置した場合のタイムアウト時間を -.Ar timeout -秒に設定します (デフォルトは 15 分)。 +.It Fl v +.Fl d +と同じ意味です。 .El .Pp ファイル .Pa /var/run/nologin は、ftp アクセスを拒否するのに使うことができます。 このファイルが存在する場合、 .Nm はそのファイルの内容を表示して終了します。 .Pa /etc/ftpwelcome ファイルが存在する場合、 .Nm は .Dq ready メッセージを表示する前にその内容を表示します。 もし .Pa /etc/ftpmotd ファイルが存在する場合、 ログイン成功後に .Nm はその内容を出力します。 使用される motd ファイルはログイン環境に対して相対であることに 注意してください。 つまり、匿名ユーザの場合には、 .Pa ~ftp/etc に存在することを意味じます。 .Pp この ftp サーバは、現在、以下の ftp リクエストをサポートしています。 リクエストの文字の大文字小文字の区別は無視されます。 印 [RW] が付いているリクエストは、 .Fl r が指定されると無効化されます。 .Bl -column "Request" -offset indent .It Sy リクエスト Ta Sy "説明" .It ABOR Ta "abort previous command" .It ACCT Ta "specify account (ignored)" .It ALLO Ta "allocate storage (vacuously)" .It APPE Ta "append to a file [RW]" .It CDUP Ta "change to parent of current working directory" .It CWD Ta "change working directory" .It DELE Ta "delete a file [RW]" .It EPRT Ta "specify data connection port, multiprotocol" .It EPSV Ta "prepare for server-to-server transfer, multiprotocol" .It HELP Ta "give help information" .It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA" .It LPRT Ta "specify data connection port, multiprotocol" .It LPSV Ta "prepare for server-to-server transfer, multiprotocol" .It MDTM Ta "show last modification time of file" .It MKD Ta "make a directory" .It MODE Ta "specify data transfer" Em mode .It NLST Ta "give name list of files in directory" .It NOOP Ta "do nothing" .It PASS Ta "specify password" .It PASV Ta "prepare for server-to-server transfer" .It PORT Ta "specify data connection port" .It PWD Ta "print the current working directory" .It QUIT Ta "terminate session" .It REST Ta "restart incomplete transfer" .It RETR Ta "retrieve a file" .It RMD Ta "remove a directory [RW]" .It RNFR Ta "specify rename-from file name [RW]" .It RNTO Ta "specify rename-to file name [RW]" .It SITE Ta "non-standard commands (see next section)" .It SIZE Ta "return size of file" .It STAT Ta "return status of server" .It STOR Ta "store a file [RW]" .It STOU Ta "store a file with a unique name [RW]" .It STRU Ta "specify data transfer" Em structure .It SYST Ta "show operating system type of server system" .It TYPE Ta "specify data transfer" Em type .It USER Ta "specify user name" .It XCUP Ta "change to parent of current working directory (deprecated)" .It XCWD Ta "change working directory (deprecated)" .It XMKD Ta "make a directory (deprecated) [RW]" .It XPWD Ta "print the current working directory (deprecated)" .It XRMD Ta "remove a directory (deprecated) [RW]" .El .Pp 以下に示した非標準コマンドあるいは .Tn UNIX に特有のコマンドが、SITE リクエストでサポートされています。 .Pp .Bl -column Request -offset indent .It Sy リクエスト Ta Sy 説明 .It UMASK Ta change umask, e.g. ``SITE UMASK 002'' .It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60'' .It CHMOD Ta "change mode of a file [RW], e.g. ``SITE CHMOD 755 filename''" .It MD5 Ta "report the files MD5 checksum, e.g. ``SITE MD5 filename''" .It HELP Ta give help information. .El .Pp 注: 匿名ログインの場合、SITE リクエストは無効化されています。 .Pp Internet RFC 959 で規定されている ftp リクエストのうちの、これ以外のものは 解釈はされますがインプリメントされていません。 MDTM および SIZE は RFC 959 では規定されていませんが、次に改訂される FTP RFC には登場するでしょう。 .Pp ftp サーバがアクティブなファイル転送を中断するのは、ABOR コマンドの前に、 Telnet "Interrupt Process" (IP) シグナルと Telnet "Synch" シグナルが Telnet ストリーム内にある場合だけです。 これは Internet RFC 959 に記述されています。 もし、データの転送中に STAT コマンドを受けとり、その前に Telnet IP と Synch があった場合、転送ステータスが返されます。 .Pp .Nm は、 .Xr csh 1 で使われているファイル名展開を解釈します。これにより、 ユーザはメタキャラクタ .Dq Li \&*?[]{}~ を利用できます。 .Pp .Nm は、6 つのルールに従ってユーザの認証を行います。 .Pp .Bl -enum -offset indent .It ログイン名はパスワードデータベース になければならず、空のパスワードであってはいけません。 この場合、あらゆるファイルの操作に先だって、クライアント側からパスワードが 提供されていなければなりません。ユーザが S/Key のキーを持っている場合は、 USER コマンドが成功した際の応答には S/Key チャレンジを含めて送られます。 クライアントは、それに対して PASS コマンドを使って応答する際に、 通常のパスワードか S/Key のワンタイムパスワードのどちらをつけて応答 するかを選択できます。サーバはどちらのパスワードを受け取ったかを自動的に 判定し、それに応じて認証を試みます。S/Key の認証に関する詳細は .Xr key 1 を参照して下さい。S/Key は Bellcore 社の商標です。 .It ログイン名はファイル .Pa /etc/ftpusers に載っていてはいけません。 .It ログイン名はファイル .Pa /etc/ftpusers で指定されているグループのメンバであってはいけません。 このファイルでグループ名として解釈されるエントリの先頭には アットマーク .Ql \&@ が付きます。 .It ユーザは .Xr getusershell 3 が返す標準のシェルを持っていなければなりません。 .It ユーザ名がファイル .Pa /etc/ftpchroot に載っているか、そのファイルにあるグループエントリ (つまり .Ql \&@ で始まるエントリ) のメンバである場合、アカウント .Dq anonymous や .Dq ftp と同様、 .Xr chroot 2 によって、 そのセッションのルートディレクトリが ユーザのログインディレクトリに変ります (次の項目を参照して下さい)。 この機能は、 .Xr login.conf 5 でブール型フラグ "ftp-chroot" をオンにしても有効になります。 しかし、ユーザは依然、パスワードを与える必要があります。 この特徴は、完全に匿名 (anonymous) なアカウントと 完全な特権のあるアカウントの間での妥協的な利用のためのものです。 このアカウントは匿名アカウントで設定するのと同様に設定されていなければ なりません。 .It もしユーザ名が .Dq anonymous または .Dq ftp の場合は、匿名の ftp アカウントがパスワードファイル (ユーザ .Dq ftp ) で提供されていなければなりません。 この場合、ユーザはどのようなパスワードでもログインを許可されます (慣習としては ユーザの email アドレスをパスワードとして用いることになっています)。 .Fl S オプションがセットされていると、全ての転送操作も記録されます。 .El .Pp 最後のケースの場合、 .Nm は特別な手段でクライアントのアクセス権を制限します。 サーバは .Dq ftp ユーザのホームディレクトリへ .Xr chroot 2 します。 システムのセキュリティが侵害されないために、 .Dq ftp サブツリーは、以下の規則に従って慎重に構築することを推奨します。 .Bl -tag -width "~ftp/pub" -offset indent .It Pa ~ftp ホームディレクトリは .Dq root の所有とし、誰も書き込みできないようにします。 .It Pa ~ftp/etc このディレクトリは .Dq root の所有とし、誰も書き込みできないようにします (モード 555)。 .Xr ls が所有者を数字でなく名前で表示できるようにするために、 ファイル pwd.db ( .Xr passwd 5 参照) 及び .Xr group 5 が必要です。 ファイル .Xr passwd 中のパスワードは使用されませんので、本当のパスワードを入れてはいけません。 ファイル .Pa ftpmotd が存在すると、ログイン成功後、その内容が表示されます。 このファイルのモードは 444 とすべきです。 .It Pa ~ftp/pub 本ディレクトリおよびそれ以下のサブディレクトリは、 ここにファイルを置くことに対して責任のあるユーザおよびグループにより 所有されるべきであり、彼等によってのみ書き込み可能であるべきです (モード 755 または 775)。 .Dq ftp またはそのグループが所有したり書き込み可能であるべきではありません。 そのようにしてしまうと、 ゲストユーザが、望まないファイルでディスクを一杯にできてしまいます。 .El .Pp システムに複数の IP アドレスがある場合、 .Nm は仮想ホストの概念をサポートします。 仮想ホストは、複数の匿名 ftp 領域それぞれを別々のインターネットアドレス に割り当てる機能を提供します。 ファイル .Pa /etc/ftphosts は各仮想ホストに関連した情報を保持します。 各ホストはそれぞれの行で定義され、 各行は空白で区切ったいくつかのフィールドからなります: .Bl -tag -offset indent -width hostname .It hostname 仮想ホストのホスト名あるいは IP アドレス。 .It user システムのパスワードファイル中のユーザレコードを含みます。 普通の匿名 ftp と同様に、このユーザのアクセス UID, GID および グループによって匿名 ftp 領域のファイルアクセス権が決まります。 匿名 ftp 領域 (ログイン時にユーザが chroot するディレクトリ) は、 そのアカウントに対するホームディレクトリとして決定されます。 他の ftp アカウントのユーザ ID およびグループも、 標準 ftp ユーザと同じであって構いません。 .It statfile 全てのファイル転送のログが記録されるファイル。デフォルトでは .Pa /var/log/ftpd です。 .It welcome サーバがプロンプトを出す前に表示される welcome メッセージ。デフォルトでは .Pa /etc/ftpwelcome です。 .It motd このファイル内容はユーザがログインした後に表示されます。デフォルトでは .Pa /etc/ftpmotd です。 .El .Pp 文字 '#' で開始する行は無視されますので、コメントを含むことが可能です。 .Pp プライマリ IP アドレスあるいはホスト名に対する仮想ホストを定義すると、 そのアドレスへの ftp ログインのデフォルト値が変更されます。 \&'user', 'statfile', 'welcome', 'motd' の各フィールドは デフォルト値を用いる場合、ブランクのままもしくはハイフン一つ \&'-' と しても構いません。 .Pp いかなる匿名ログインの設定についても言えることですが、 設定と保守には十分に注意を払い、セキュリティ上の問題をきたさないよう 防御しなければなりません。 .Pp .Nm は、リモートからのファイル一覧表示要求に対応するための内部サポートを持ち、 chroot された環境でもそれ以外でも .Pa /bin/ls を実行しなくなります。 .Pa ~/bin/ls の実行形式ファイルは chroot されたディレクトリになくてよく、 .Pa ~/bin ディレクトリも存在する必要はありません。 .Sh 関連ファイル .Bl -tag -width /etc/ftpwelcome -compact .It Pa /etc/ftpusers 歓迎されない/制限を受けるユーザのリスト。 .It Pa /etc/ftpchroot chroot される一般ユーザのリスト。 .It Pa /etc/ftphosts 仮想ホストのための設定ファイル .It Pa /etc/ftpwelcome welcome メッセージ。 .It Pa /etc/ftpmotd login 後の welcome メッセージ。 .It Pa /var/run/nologin 内容を表示し、アクセスを拒否します。 .It Pa /var/log/ftpd 匿名による転送のログファイル。 .El .Sh 関連項目 .Xr ftp 1 , .Xr key 1 , +.Xr umask 2 , .Xr getusershell 3 , .Xr login.conf 5 , .Xr inetd 8 , .Xr syslogd 8 .Sh バグ 特権ポート番号を用いてソケットを作成するために、 ftpd はスーパユーザの権限で実行させて下さい。 サーバはログインユーザの実効ユーザ ID を保持しておき、 アドレスをソケットにバインドする場合にのみスーパユーザの権限を使います。 考えられるセキュリティホールについてはかなり詳細にわたって調べ込みをおこないましたが、 それでも不完全かもしれません。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 IPv6 サポートは WIDE Hydrangea IPv6 スタックキットで追加されました。 diff --git a/ja_JP.eucJP/man/man8/revnetgroup.8 b/ja_JP.eucJP/man/man8/revnetgroup.8 index 28e31e346f..703e069141 100644 --- a/ja_JP.eucJP/man/man8/revnetgroup.8 +++ b/ja_JP.eucJP/man/man8/revnetgroup.8 @@ -1,152 +1,152 @@ .\" Copyright (c) 1995 .\" Bill Paul . 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 Bill Paul. .\" 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 Bill Paul 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 Bill Paul 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. .\" -.\" %FreeBSD: src/libexec/revnetgroup/revnetgroup.8,v 1.7.2.3 2002/02/01 15:51:17 ru Exp % +.\" %FreeBSD: src/libexec/revnetgroup/revnetgroup.8,v 1.7.2.4 2002/08/15 18:53:16 schweikh Exp % .\" $FreeBSD$ .\" .Dd October 24, 1995 .Dt REVNETGROUP 8 .Os .Sh 名称 .Nm revnetgroup .Nd "逆ネットグループデータを生成する" .Sh 書式 .Nm .Fl u .Op Fl f Ar netgroup_file .Nm .Fl h .Op Fl f Ar netgroup_file .Sh 解説 .Nm は .Xr netgroup 5 フォーマットのファイル内容を処理し、 .Pa 逆ネットグループ と呼ばれる形式に変換します。 元のファイルでは、あるグループが含むメンバを示す形式で ネットグループのメンバが示されます。 逆ネットグループフォーマットでは、 あるメンバが属するグループを示します。 この情報は .Pa netgroup.byuser と .Pa netgroup.byhosts の .Tn NIS マップを作成するために使用します。 これらの逆ネットグループマップは、ネットグループの参照、 特に .Fn innetgr ライブラリ関数を高速化するために使用されます。 .Pp 例えば、標準の .Pa /etc/netgroup ファイルはネットグループとそのメンバリストを列挙します。 ここで、ネットグループは .Em キー であるとし、メンバ名を .Em データ であるとします。 これに対し、逆の .Pa netgroup.byusers データベースは、ユニークなメンバをキーとし、 メンバが属するネットグループをデータとします。 ユーザとホストに属する情報を保持する別々のデータベースを作成します; これにより、ネットグループユーザ名参照とネットグループホスト名参照が 独立のキー空間にて実行されます。 .Pp あらかじめ逆ネットグループデータベース (およびこれに対応する .Tn NIS マップ)を構築することにより、 要求ごとに .Xr getnetgrent 3 ライブラリ関数が依存関係を処理しなくても良くなります。 これは、ユーザ数及びホスト数が多いネットワークでは重要です。 なぜなら、巨大なネットグループデータベースの処理は多大な時間を要するからです。 .Pp .Nm コマンドは結果を標準出力に表示します。 通常は .Pa /var/yp/Makefile から呼ばれるだけであり、 これは .Tn NIS ネットグループマップを構築する時です。 .Sh オプション .Nm コマンドは以下のオプションをサポートします: .Bl -tag -width indent .It Fl u .Pa netgroup.byuser を生成します; 元のネットグループファイルのユーザ名情報のみが処理されます。 .It Fl h .Pa netgroup.byhost を生成します; 元のネットグループファイルのホスト名情報のみが処理されます。( .Fl u か .Fl h のいずれかを指定する必要が有ります。) .It Op Fl f Ar netgroup_file .Nm コマンドは .Pa /etc/netgroup をデフォルトの入力ファイルとします。 .Fl f フラグにて、ユーザは別の入力ファイルを指定できます。``-'' を 入力ファイルとして指定すると、 .Nm は標準入力を読みます。 .El .Sh 関連ファイル .Bl -tag -width /var/yp/Makefile -compact .It Pa /var/yp/Makefile .Tn NIS データベースを構築するために .Nm yp_mkdb と .Nm を呼び出す Makefile。 .It Pa /etc/netgroup デフォルトのネットグループデータベースファイル。 ほとんどの場合、 .Tn NIS マスタサーバにだけ有ります。 .El .Sh 関連項目 .Xr getnetgrent 3 , .Xr netgroup 5 , .Xr yp 8 , .Xr yp_mkdb 8 .Sh 作者 .An Bill Paul Aq wpaul@ctr.columbia.edu diff --git a/ja_JP.eucJP/man/man8/sync.8 b/ja_JP.eucJP/man/man8/sync.8 index 8c18b06a6f..85e5eafcde 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 -.\" %FreeBSD: src/bin/sync/sync.8,v 1.8.2.4 2001/08/16 10:01:10 ru Exp % +.\" %FreeBSD: src/bin/sync/sync.8,v 1.8.2.5 2002/08/16 04:34:05 trhodes Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/sync.8,v 1.11 2001/07/29 05:15:30 horikawa Exp $ +.\" $FreeBSD$ .Dd May 31, 1993 .Dt SYNC 8 .Os .Sh 名称 .Nm sync .Nd 未実行のディスク書き込みを強制実行する ( キャッシュのフラッシュ ) .Sh 書式 .Nm .Sh 解説 .Xr reboot 8 または .Xr halt 8 を使わずにプロセッサを停止する場合、全てのディスク書き込みが 適切に完了することを保証するため、停止に先だって .Nm -を呼ぶことができます。 +ユーティリティを呼ぶことができます。 一般的には、システムをシャットダウンするには .Xr reboot 8 もしくは .Xr halt 8 を使うことが好ましいでしょう。 なぜならこれらのプログラムは、最終的な .Nm を実行する前に、内蔵時計の再同期や内部キャッシュの フラッシュなどの追加動作を実行する場合があるからです。 .Pp .Nm -は、 +ユーティリティは、 .Xr sync 2 ファンクションコールを利用します。 .Sh 関連項目 .Xr fsync 2 , .Xr sync 2 , .Xr syncer 4 , .Xr halt 8 , .Xr reboot 8 .Sh 歴史 .Nm -コマンドは -.At v6 +ユーティリティは +.At v4 から実装されました。