csh(1) FreeBSD 一般コマンドマニュアル

csh

前のページ 上に戻る 次のページ

csh



書式

       tcsh [-bcdefFimnqstvVxX] [-Dname[=value]] [arg ...]
       tcsh -l


解説

       tcsh は、バークレイ版 UNIX の C シェル csh(1) と完全に互換
       性があり、さらに機能強化したシェルです。対話的なログ イ ン
       シェル、またシェルスクリプトのコマンドプロセッサの両方の用
       途で使われるコマンドインタプリタです。 tcsh には、コマンド
       行 編集 (B>コB>マB>ンB>ドB>行B>編B>集の項を参照)、プログラム可能な単語の
       補完 (B>補B>完B>とB>一B>覧の項を参照)、スペル訂正 (B>スB>ペB>ルB>訂B>正の項 を
       参照)、履歴 (B>ヒB>スB>トB>リB>置B>換の項を参照)、ジョブ制御 (B>ジB>ョB>ブの
       項を参照)、 C 言語風の文法があり ま す。 B>新 B>機 B>能 の 章 で
       はB>Acsh(1) には存在しない、tcsh の主な追加機能について説明
       しています。このマニュアルを通じ、tcsh の 機 能 の う ち、
       csh(1)  のほとんどの実装 (特に 4.4BSD の csh) にない機能に
       ついて、ラベル (+) をつけてあります。そしてB>Acsh(1) にあっ
       た けれども文書化されていなかった機能にラベル (u) をつけて
       あります。

   B>引B>数B>リB>スB>トB>処B>理
       シェルへの 1 番目の引数 (引数 0 番) が `-' の場合、シェ ル
       はログインシェルになります。シェルを -l フラグを指定して起
       動することでもログインシェルにできます。

       残りのフラグは以下のように解釈されます。

       -b  このフラグは、オプションの処理を強制的に中断させる場合
           に使用します。このフラグ以降の引数はすべて、オプション
           ではないものとして処理されます。これにより、混乱 を 避
           け、小細工をしなくても、シェルスクリプトにオプションを
           渡すことが可能になります。 set-user ID スクリプトは 本
           オプションなしでは実行できません。

       -c  コマンドを、本フラグの次にくる引数 (この引数は省略でき
           ません。また、1 つだけである必要があります) から読み込
           み、 実 行します。この引数は、あとで参照できるように、
           シェル変数 command に格納されます。残りの引数は、 シェ
           ル変数 argv に代入されます。

       -d  ログインシェルであるかどうかにかかわらず、B>スB>タB>ーB>トB>アB>ッ
           B>プB>とB>シB>ャB>ッB>トI</I>ダB>ウB>ンの項で 解 説 さ れ て い る よ う に
           ~/.cshdirs   か ら、 ディ レクトリスタックを読み込みま
           す。(+)

       -Dname[=value]
           環境変数 name に値 value を設定します。(Domain/OS   の
           み) (+)

       -e  起動したコマンドが異常終了したり、0 でない終了ステータ
           スを返したときに、ただちにシェルを終了します。

       -m  実効ユーザに属していなくても ~/.tcshrc をロー ド し ま
           す。 新しいバージョンの su(1)-m をシェルに渡すこと
           ができます。(+)

       -n  コマンドの解析は行いますが、実行はしません。シェルスク
           リプトのデバッグに役立ちます。

       -q  SIGQUIT  ( B>シ B>グB>ナB>ルB>処B>理の項を参照) を受け付けるように
           し、デバッガのもとで使われても作動するようになります。
           ジョブ制御は無効になります。(u)

       -s  標準入力からコマンドを読み込みます。

       -t   入力から 1 行だけ読み込み、それを実行します。入力行の
           改行の直前に `\' を置くことで、次の行への継続を行う こ
           とができます。

       -v   シェル変数 verbose を設定します。これにより、ヒストリ
           置換された状態のコマンド行を表示するようになります。

       -x  シェル変数 echo を設定します。これにより、実行直前に、
           実行するコマンドを表示するようになります。

       -V  ~/.tcshrc  を実行する前に、シェル変数 verbose を設定し
           ます。

       -X  ~/.tcshrc を実行する前に、シェル変数 echo を設定 し ま
           す。

       -X   に対する -x の関係は、-V に対する -v の関係に相当しま
           す。

       フラグ引数の処理のあと、もし引数が残っていて、か つ、  -c,
       -i,  -s, -t のいずれのフラグも指定されていなければ、残って
       いる引数のうち最初のものはコマンドファイル、つまり「スクリ
       プト」の名前とみなされます。シェルはこのファイルをオープン
       し、`$0' による置換に備えてファイル名を保存します。多く の
       シ ス テムは、スクリプトが本シェルと互換性のない version 6
       または version 7 の標準のシェルを使っているため、スクリ プ
       ト の先頭の文字が `#' でない場合、つまりスクリプトがコメン
       トから始まらない場合、本シェルはそれらの「標準」のシェルを
       起動して実行します。

       残りの引数はシェル変数 argv に設定されます。

   B>スB>タB>ーB>トB>アB>ッB>プB>とB>シB>ャB>ッB>トI</I>ダB>ウB>ン
       ログインシェルの場合は、実行開始に際し、まずシステムファイ
       ル /etc/csh.cshrc/etc/csh.login を読み込んで実行 し ま
       す。そしてシェルを起動したユーザのB>ホB>ーB>ムディレクトリの中か
       ら、まずはじめに ~/.tcshrc (+) を読み込んで実行します。 も
       し、~/.tcshrc  が見つからない場合は、~/.cshrc を読み込んで
       実行します。次に、~/.history (もしくは、シェル変 数  hist-
       同 じファイルのセットを使う必要があるユーザは、~/.cshrc だ
       けを使い、その中でシェル変数 tcsh (値は任意) があるかど う
       か チェッ ク してから、tcsh 特有のコマンドを使うようにしま
       す。または、  ~/.cshrc~/.tcshrc   の 両 方 を 使 う
       が、~/.tcshrc で、 source コマンド (組み込みコマンドの項を
       参照) を使い ~/.cshrc を読み込むようにします。以下、このマ
       ニュ ア ル の 残 りの部分で `~/.tcshrc' と表現したときは、
       「~/.tcshrc、または ~/.tcshrc が見 つ か ら な い 場 合 は
       ~/.cshrc」という意味で使います。

       通常、シェルはプロンプト `> ' を表示し、端末からコマンドの
       読み込みを開始します (引数処理と、コマンドスクリプトを含む
       ファイルの処理のためのシェルの使用については、後で説明しま
       す)。シェルは、入力されたコマンド行の読み込み、読み込ん だ
       コマンド行を単語に分解、およびコマンド履歴への格納、コマン
       ド行の解析、コマンド行の中のコマンドそれぞれの実行を繰り返
       します。

       ログアウトするには、空の行で `^D' とタイプするか、`logout'
       するか、 `login' するか、シェルの自動ログアウト機構 ( シェ
       ル変数 autologout を参照) を使います。ログインシェルが実行
       終了する際には、ログアウトの状況に応じてシェル変数  logout
       を `normal' か `automatic' に設定し、 /etc/csh.logout ファ
       イルと ~/.logout ファイルにあるコマンドを実行します。コ ン
       パ イルの仕方によっては、シェルは、ログアウト時に DTR を落
       とすことがあります。これについてはシェル変数 version を 参
       照してください。

       システムのログインファイル名、ログアウトファイル名は、異な
       る csh(1) 間での互換性を保つために、システムごとにファイル
       が 違 います。これについては、B>関B>連B>フB>ァB>イB>ルを参照してくださ
       い。

   B>編B>集
       はじめに、B>コB>マB>ンB>ドB>行B>エB>デB>ィB>タについて説明します。B>補B>完B>とB>一B>覧
       と、 B>スB>ペB>ルB>訂B>正の 2 つの機能は、編集コマンドとして実装され
       ていますが、特に分けて説明する必要があるため、項を改めて説
       明します。最後に、B>編B>集B>コB>マB>ンB>ドの項で、シェルに特有の編集コ
       マンドについて、一覧をあげ、デフォルトのバインドとともに説
       明します。

   B>コB>マB>ンB>ドB>行B>編B>集 (+)
       コ マンド行の入力データは、GNU Emacs や vi(1) で使われてい
       るものと、よく似たキーシーケンスを使って編集できます。シェ
       ル 変 数 edit がセットされているときのみ、編集できるように
       なっています。対話的なシェルでは、この値はデフォルトで設定
       さ れています。組み込みコマンド bindkey で、キーバインドを
       変更したり、表示したりできます。デフォルトでは、Emacs 形式
       のキーバインドが使われています (違う方法でコンパイルしなけ
       ればそうなります。シェル変数 version を参照)。しかし、コマ
       ン ド bindkey で、キーバインドを vi 形式に一括して変更でき
       ます。

       そ の他のキーバインドは、そのほとんどは、EmacsB>Avi(1) ユー
       ザが予想できるものです。また、簡単に bindkey コマンドで 表
       示させることもできるので、ここで、それらのバインドを並べあ
       げる必要はないでしょう。同じく、bindkey コマンドは、それぞ
       れの編集コマンドを簡単な説明付きで、表示させることができま
       す。

       注意: 「単語」という概念に関して、編集コマンドは、シェルと
       同じ概念を持たないことに注意してください。エディタは、シェ
       ル変数 wordchars の中にはない非英数文字 (英文字、数字の ど
       ち ら でもない文字) によって単語の区切りを決めます。一方、
       シェルは、ホワイトスペース (空白、タブ、改行) と、B>字B>句B>構B>造
       の項で列挙する特殊な意味を持つ文字のいくつかを識別します。

   B>補B>完B>とB>一B>覧 (+)
       シェルは、一意に決まる短縮形を与えられると、しばしば単語の
       補 完 を 行 う こ と が できます。単語の一部 (たとえば `ls
       /usr/lost') をタイプして、タブキーを押すと、編集コマ ン ド
       complete-word   が 実 行 し ま す。 シェ ル は、ファイル名
       `/usr/lost' を補完して `/usr/lost+found/' にします。このと
       き、入力バッファの中で、不完全な単語を完全な単語で置き換え
       ます。 (注意: 末端の `/' について: 補完では、ディレクト リ
       名 を補完すると最後に `/' を付け加えます。そして、ディレク
       トリ名以外の単語を補完すると、末尾に空白文字を付け加 え ま
       す。こうすることで、タイプ入力が速くなり、また、補完が成功
       したことが一目で分かります。シェル変数 addsuffix のセッ ト
       をはずせば、これらを付け加えなくすることもできます。) 合致
       するものが見当たらない場合 (おそらく `/usr/lost+found'  が
       存 在しない場合でしょう)、端末のベルが鳴ります。単語がすで
       に補完されている場合 (システムに `/usr/lost' が存在する 場
       合か、あるいは、ユーザがはるか先まで考えて、すべてを入力し
       てしまっていた場合でしょう)、`/' または空白文字が末尾に ま
       だなければ、付け加えられます。

       補完は、行の一番最後でなくても、途中どこででも機能します。
       そして、テキストの補完によって、その分、行の残りは右方向へ
       押されます。単語の中間で補完された場合、しばしばカーソルの
       右側に文字が残り、それを消すはめになることもあります。

       コマンドと変数は、ほとんど同じ方法で補完できます。た と え
       ば、`em[tab]'  とタイプした時、使用しているシステムで `em'
       から始まるコマンドが唯一 emacs だ け な ら ば、  `em'   は
       `emacs'  と補完されます。補完は、path 中のディレクトリにあ
       るコマンドか、フルパスが与えられれば、そこにあるコマンドを
       見 つ け 出すことができます。 `echo $ar[tab]' とタイプした
       時、他に `ar' から始まる変数がなければ、 `$ar' は  `$argv'
       と補完されます。

       シェルは、入力バッファを解析して、補完したい単語を、ファイ
       ル名としてか、コマンドとしてか、変数としてか、どのように補
       完 す べ き かを決めます。バッファの中の最初の単語と、`;',
           > ls /usr/l

       シェル変数 autolist をセットしていれば、シェルは、補完に失
       敗したときはいつでも残りの選択肢を表示します。

           > set autolist
           > nm /usr/lib/libt[tab]
           libtermcap.a@ libtermlib.a@
           > nm /usr/lib/libterm

       シェル変数 autolist を `ambiguous (あいまいな)' にセットし
       た場合は、補完に失敗して補完される単語へ新しい文字をそれ以
       上追加できなくなったときに限り、選択肢を表示します。

       補完するファイル名には、変数、自分もしくは他人のホームディ
       レクトリ (`~' で短縮したもの。B>フB>ァB>イB>ルB>名B>置B>換の項を参 照)、
       ディレクトリスタックエントリ (`=' で短縮したもの。B>デB>ィB>レB>ク
       B>トB>リB>スB>タB>ッB>クB>置B>換の項を参照) を含めることができます。たとえ
       ば、次のようになります。

           > ls ~k[^D]
           kahn    kas    kellogg
           > ls ~ke[tab]
           > ls ~kellogg/

       あるいは、

           > set local = /usr/local
           > ls $lo[tab]
           > ls $local/[^D]
           bin/ etc/ lib/ man/ src/
           > ls $local/

       変 数 については、編集コマンド expand-variables を指定して
       使っても展開できることに注意してください。

       コマンド delete-char-or-list-or-eof は、行の最後でのみリス
       トを表示します。行の中間の場合、カーソル位置の文字を消去し
       ます。空行の場合、ログアウトします。ただし、ignoreeof   が
       セットされていれば、何もしません。 `M-^D' は、編集コマンド
       list-choices にバインドされていますが、これは行中のどこ で
       も、 補 完 の候補のリストを表示します。 list-choices (また
       は、delete-char-or-list-or-eof のところで列挙するコマン ド
       で、消去するコマンド、しないコマンド、リスト表示するコマン
       ド、ログアウトするコマンドのどれでも) は、そうしたい場合、
       組 み込みコマンド bindkey で `^D' にバインドすることもでき
       ます。

       編集コマンド complete-word-fwdcomplete-word-back  ( デ
       フォルトでは、どのキーにも割り付けられていません) を使うこ
       とで、補完候補のリストを上または下に順に巡り、リスト上の現
       在 の単語を、次の単語または 1 つ前の単語に置き換えることが

       `main.c~' と `main.o' は、fignore にサフィックスが登録され
       ているために、補完では無視されます (しかしリスト上には表示
       されます)。B>フB>ァB>イB>ルB>名B>置B>換の項で解説しているように、home に
       拡 張されないようにするために、`~' の前に `\' が必要なこと
       に注意してください。補完の候補が1 つしかない場合は、  fig-
       nore の設定は無視されます。

       シェ ル変数 complete が `enhance(拡張)' にセットされていた
       場合、補完は 1) 大文字小文字の区別を無視し、 2) ピリオド、
       ハイフン、アンダスコア (`.', `-', `_')を、単語を分ける記号
       であるとみなし、ハイフンとアンダスコアは同等なものとみなし
       ます。次のようなファイルがある場合、

           comp.lang.c     comp.lang.perl   comp.std.c++
           comp.lang.c++    comp.std.c

       `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]' とタイプした場合、

           A_silly_file                         a-hyphenated-file
           another_silly_file

       の  3 つのファイルすべてが一覧表示されます。なぜならば、大
       文字小文字の区別は無視されて、ハイフンとアンダスコアは同等
       と解釈されるからです。しかしながら、ピリオドは、ハイフンや
       アンダスコアと同等ではありません。

       補完と一覧は、他にもいくつかのシェル変数の影響を受けます。
       そ のひとつ、recexact をセットすると、続けてタイプすればよ
       り長い単語に合致するような場合でさえも、最短で一意に一致す
       る単語に合致するようになります。たとえば、

           > ls
           fodder   foo      food     foonly
           > set recexact
           > rm fo[tab]

       こ の場合はベルが鳴るだけです。なぜなら、`fo' は、`fod' ま
       たは `foo' に展開できるからです。しかし、さらに `o' とタイ
       プすると、

           > rm foo[tab]
           > rm foo

       `food'  や `foonly' も合致するにもかかわらず、補完は `foo'
       で完了します。 autoexpand をセットすると、補完を試み る 前
       に、毎回、編集コマンド expand-history を実行するようになり
       うにさせることができます。ただし、動作はきわめて遅くなりま
       す。

       最後に、組み込みコマンド complete を使って、ファイル名、コ
       マンド、変数以外の単語を補完する方法をシェルに教えることが
       できます。補完と一覧は、グロブパターン (B>フB>ァB>イB>ルB>名B>置B>換の項
       を参照) 上では機能しませんが、編集コマンド  list-globexpand-glob はグロブパターンに対し同等の機能として実行され
       ます。

   B>スB>ペB>ルB>訂B>正 (+)
       シェルは、補完したり一覧表示するのと同様に、ファイル名、コ
       マ ン ド、変数名のスペルを訂正することができることがありま
       す。

       個々の単語は、編集コマンド spell-word (普通は M-s  と  M-S
       にバインドされています) でスペル訂正できます。入力バッファ
       全体は spell-line  (普通は M-$ に割り付けられています)  で
       スペル訂正できます。シェル変数 correct に `cmd' を設定され
       ておけば、コマンド名がスペル訂正されます。`all' を設定して
       おけば、リターンがタイプされるたびに行全体がスペル訂正され
       ます。 autocorrect がセットされていれば、単語に補完を試 み
       る前にその単語をスペル訂正します。

       ス ペ ル訂正が、ここで説明した方法のいずれかにより呼び出さ
       れ、コマンド行のどこかにスペル誤りがあると判断すると、シェ
       ル は、 次のように訂正済みのコマンド行を表示し入力を待ちま
       す。

           > set correct = cmd
           > lz /usr/bin
           CORRECT>ls /usr/bin (y|n|e|a)?

       これに対し、`y' または空白文字で答えると、訂正済み行を実行
       し、  `e'   で答えると、入力バッファに訂正前のコマンドを残
       し、 `a' で答えると、`^C' が押された場合と同様にコマンドを
       中止し、それ以外の場合は、元のままの行を変えないで実行しま
       す。

       スペル訂正は、ユーザ定義の補完を識別します (組み込みコマン
       ド  complete を参照)。もし、補完が実行される位置で、入力さ
       れた単語が補完リストの中の単語に似ていたとき、スペル 訂 正
       は、ミススペル記録して、見つかった単語を訂正候補として提案
       します。しかし、入力された単語がその位置で、どの補完候補に
       も合致しなかった時、スペル訂正は、ミススペルを示しません。

       補完と同様、スペル訂正は行のどこでも機能します。行の残りを
       右に押し出したり、残りの余分な文字をカーソルの右に残したり
       します。

       注意: スペル訂正は、意図どおりに動作する保証はありません。
       そして、ほとんど実験的な機能として提供されています。提案、
       るコマンドは、便宜上、大文字、小文字の両方にキーバインドさ
       れています。

       complete-word (tab)
               B>補B>完B>とB>一B>覧の項で解説しているとおり、単語を補完しま
               す。

       complete-word-back (not bound)
               complete-word-fwd と同様ですが、単語リストの終わり
               から、上へあがって行きます。

       complete-word-fwd (not bound)
               現在の単語を、補完可能単語リスト上の始めの単語で置
               き換えます。本コマンドを繰り返すことで、単語リスト
               上を下へ降りていくことができます。単語リストの最後
               までいくと、ベルが鳴り、未補完の単語へ戻ります。

       complete-word-raw (^X-tab)
               complete-word と同様ですが、ユーザ定義した補完は無
               視されます。

       copy-prev-word (M-^_)
               現在の行で、1 つ前の単語を入力バッファへコピーしま
               す。 insert-last-word も参照してください。

       dabbrev-expand (M-/)
               以前入力した単語の中で、現在の単語が先頭部分文字列
               であり、しかも最近のものを見つけて、それで展開しま
               す。必要ならば、ヒストリリストを一周回って元に戻っ
               て探します。 dabbrev-expand を中断せず繰り返すこと
               で、 そ の 次 の単語に変わります。 history-search-
               backward と同様に、同一のマッチングはスキップし ま
               す。

       delete-char (割り付けなし)
               カ ー ソ ル 下の文字を削除します。 delete-char-or-
               list-or-eof も参照してください。

       delete-char-or-eof (割り付けなし)
               カーソル下に文字があれば delete-char を実行し、 空
               行 では end-of-file を実行します。 delete-char-or-
               list-or-eof も参照してください。

       delete-char-or-list (割り付けなし)
               カーソル下に文字があれば delete-char を実行し、 行
               の 末 尾 で は list-choices を実行します。 delete-
               char-or-list-or-eof も参照してください。

       delete-char-or-list-or-eof (^D)
               カーソル下に文字があれば delete-char を実行し、 行
               の末尾では list-choices を実行し、空行では end-of-
               file を実行します。これらの 3 つのコマンドも参照し

       expand-history (M-space)
               現在の単語のヒストリ置換を展開します。B>ヒB>スB>トB>リB>置B>換
               を 参照してください。 magic-space, toggle-literal-
               history と、シェル変数 autoexpand も参照してくださ
               い。

       expand-glob (^X-*)
               カーソルの左にグロブパターンを展開します。B>フB>ァB>イB>ル
               B>名B>置B>換を参照してください。

       expand-line (割り付けなし)
               expand-history と同様ですが、入力バッファのそれ ぞ
               れの単語のヒストリ置換を展開します。

       expand-variables (^X-$)
               カーソルの左に変数を展開します。B>変B>数B>置B>換を参照して
               ください。

       history-search-backward (M-p, M-P)
               ヒストリリストを後方へ向かって、入力バッファの現在
               の 中 身 (カーソル位置まで) で始まるコマンドを検索
               し、それを入力バッファへコピーします。検索文 字 列
               は、`*',  `?', `[]', `{}' を含んだグロブパターン (
               B>フB>ァB>イB>ルB>名B>置B>換を参照) であってもかまいません。 up-
               historydown-history は、ヒストリリストの該当す
               る地点から始める事ができます。 Emacs モードのみ で
               す。  history-search-forwardi-search-back も参
               照してください。

       history-search-forward (M-n, M-N)
               history-search-backward と同様ですが、前方へ検索し
               ます。

       i-search-back (割り付けなし)
               後方へ、history-search-backward のように検索して、
               最初に合致したものを入力バッファへコピーし、カーソ
               ル をパターンの最後に位置させます。そして、`bck: '
               プロンプトと最初に合致したものを表示します。追加の
               文 字 をタイプして、その検索を延長することができま
               す。 i-search-back をタイプして、同じパターンで 検
               索を延長することもできます。必要があれば、ヒストリ
               リストを一周回って元に戻って検索を続けます。 (これ
               を行うためには、i-search-back は、1 文字にバインド
               されていなければなりません。) あるいは、以下の特殊
               文字をタイプすることもできます。

                   ^W      カーソル下の単語の残りを検索パターンに
                           加えます。
                   delete (あるいは backward-delete-char にバイン
                   ドされた文字)
                           最後にタイプされた文字の効果をと り け

               search-backward も参照してください。

       i-search-fwd (割り付けなし)
               i-search-back と同様ですが、前方へ検索します。

       insert-last-word (M-_)
               1 つ前の入力行 (`!$') の最後の単語を入力バッファに
               挿入します。 copy-prev-word も参照してください。

       list-choices (M-^D)
               B>補B>完B>とB>一B>覧で解説しているように、補完の可能性を一覧
               表 示 します。 delete-char-or-list-or-eoflist-
               choices-raw も参照してください。

       list-choices-raw (^X-^D)
               list-choices と同様ですが、ユーザ定義された補完 を
               無視します。

       list-glob (^X-g, ^X-G)
               カーソルの左側のグロブパターン (B>フB>ァB>イB>ルB>名B>置B>換を参
               照) に合致したものを (組み込みコマンド ls-F を用い
               て) 一覧表示します。

       list-or-eof (割り付けなし)
               list-choices を実行するか、または、空行の場合 end-
               of-file を実行し ま す。delete-char-or-list-or-eof
               も参照してください。

       magic-space (割り付けなし)
               まず expand-history と同様に、現在の行のヒストリ置
               換を展開して、その後で空白を 1 つ付け加 え ま す。
               magic-space はスペースキーにバインドするように設計
               されていますが、デフォルトではバインドされていませ
               ん。

       normalize-command (^X-?)
               パスの中の現在の単語を検索します。そして、見つかっ
               た場合、実行可能ファイルを指すフルパスで置き換えま
               す。特殊文字はクォートされます。エイリアスは展開さ
               れて、クォートされますが、エイリアス中のコマンドは
               展 開 / クォートされません。このコマンドは、たとえ
               ば、`dbx' や `sh -x' などのように、コマンドが引 数
               を取得する場合に役立ちます。

       normalize-path (^X-n, ^X-N)
               シェル変数 symlinks の設定 `expand' の項で説明され
               ているように、現在の単語を展開します。

       overwrite-mode (割り付けられていません)
               入力モードと上書きモードの間で切り替えます。

       run-fg-editor (M-^Z)
               ー ジャを使う方法はありません。run-help は短いヘル
               プファイルとのために設計されているためです。特別な
               エ イリアス helpcommand が定義されていた場合、コマ
               ンド名を唯一の引数としてその値が実行されます。ほか
               に、 ド キュメントのファイル名は、コマンド名.help,
               コマンド名.1, コマンド名.6, コマンド名.8, コマンド
               名のいずれかでなければなりません。また、そのファイ
               ルは、環境変数 HPATH の中で、一覧にあがっ て い る
               ディ レクトリのうちの 1 つに入っていなければなりま
               せん。もし、1 つ以上のヘルプファイルがある場合は、
               最初の 1 つのみがプリントされます。

       self-insert-command (テキスト文字)
               挿入モード (デフォルト) では、タイプした文字を、カ
               ーソル下の文字の後に挿入します。上書きモードでは、
               タイプした文字で、カーソル下の文字を置き換えます。
               入力モードは、通常、各行の間で維持されていますが、
               シェ ル変数 inputmode を `insert(挿入)' あるいは、
               `overwrite(上書き)' にセットしておくと、エ ディ タ
               を、 各 行の始まりで、そのモードにすることができま
               す。 overwrite-mode も参照してください。

       sequence-lead-in (矢印接頭辞、メタ接頭辞、^X)
               次に続く文字がマルチキーシーケンス (複数文字 の 連
               続) であることを表します。マルチキーシーケンスをコ
               マンドにバインドする場合、実際には、次の 2 つの バ
               イ ン ド を 作ります。まず、最初の文字を sequence-
               lead-in とします。そして、シーケンス全体をそのコマ
               ンドにバインドします。 sequence-lead-in にバインド
               された文字で始まるすべてのシーケンスは、他のコマン
               ド に バ イ ンドされていなければ、実質的には unde-
               fined-key にバインドされたのと同じことになります。

       spell-line (M-$)
               spell-word  と同様に、入力バッファ中の各単語のスペ
               ル訂正を試みます。しかし、単語の最初 の 文 字 が、
               `-',  `!', `^', `%' のうちのどれかの場合と、単語中
               に `\', `*', `?' のいずれかを含んでいる場合は、 ス
               イッチや、置換などの問題を避けるために、これらの単
               語を無視します。B>スB>ペB>ルB>訂B>正を参照してください。

       spell-word (M-s, M-S)
               B>スB>ペB>ルB>訂B>正の項で説明されているのと同じやり方で、現
               在の単語のスペルの訂正を試みます。パス名として現れ
               る単語の部分をそれぞれにチェックします。

       toggle-literal-history (M-r, M-R)
               入力バッファのヒストリ置換を展開したり、`しな かっ
               たり' します。 expand-history と、シェル変数 auto-
               expand も参照してください。

       undefined-key (割り付けのコマンドが無いキー)
               らなければ、ベルが鳴ります。リターンキー (enter キ
               ー) を押すと、検索を終了して、入力バッファ中に最後
               に合致した単語を残します。 escape キーを押すと、検
               索を終了して、合致したものを実行します。 vi モード
               のみです。

       vi-search-fwd (/)
               vi-search-back と同様ですが、前方へ検索します。

       which-command (M-?)
               入力バッファの最初の単語に対して、which (組み込 み
               コマンドの解説を参照) を実行します。

   B>字B>句B>構B>造
       シェルは入力された行をタブや空白で単語に分割します。特殊文
       字 `&', `|', `;', `<', `>', `(', `)', 2 文字繰 り 返 し の
       `&&', `||', `<<' , `>>' は、空白で囲まれているかどうかにか
       かわらず、常に単語の区切りになります。

       シェルの入力が端末からではないとき、文字 `#' は、コメン ト
       の始まりとして扱われます。`#' とその後ろの入力行の残りはコ
       メントと解釈され、文法解析されずに捨てられます。

       特殊文字 (空白、タブ含む) は、その文字の直前にバックスラッ
       シュ  `\' を置くことで、または、単一引用符 `''、二重引用符
       `"'、逆引用符 ``' で囲むことで、特殊な意味合いを持たないよ
       うにしたり、場合によっては、他の単語の一部分にすることもで
       きます。他に引用がなされない限り、`\' の直後に改行文字を置
       くと、改行文字は空白扱いになります。しかし、引用中では、こ
       の文字の並びは改行文字になります。

       さらに、B>ヒB>スB>トB>リB>置B>換を除く、すべてのB>置B>換 (次項を参照) は、
       置換を含む文字列 (あるいは文字列の一部) を単一引用符で囲む
       ことで防ぐことができます。あるいは、重大な文字 (たとえば、
       B>変 B>数 B>置B>換ならば `$' や、B>コB>マB>ンB>ドB>置B>換ならば ``') を `\' で
       クォートすることで防ぐことができます。(B>エB>イB>リB>アB>スB>置B>換も 例
       外 ではありません。一度定義された alias に対して、何らかの
       方法でその単語のどれかの文字をクォートすることで、そのエイ
       リアスの置換を防ぐことができます。エイリアスをクォートする
       普通の方法は、そのエイリアスの前にバックスラッシュを置くこ
       とです。) B>ヒB>スB>トB>リB>置B>換は、バックスラッシュを用いることで防
       ぐことができますが、単一引用符では防ぐことができません。。
       二重引用符、逆引用符でクォートされた文字列は、B>変B>数B>置B>換とB>コ
       B>マB>ンB>ドB>置B>換は受けますが、その他の置換は受けません。

       単一引用符、二重引用符で囲まれたテキストは 1 つの単語 ( ま
       た は その一部) となります。それらの文字列中のメタ文字 (空
       白、タブを含む) は、単語を分割しません。ひとつだけ特殊な場
       合 (次のB>コB>マB>ンB>ドB>置B>換を参照) として、二重引用符で囲まれた文
       字列を 1 つ以上の単語に分けることができます。これは、単 一
       引用符で囲まれた文字列では決してできません。逆引用符は特殊
       で、B>コB>マB>ンB>ドB>置B>換 (そちらも参照) に、影響を与え、その結果が
       ーの原因になります。

   B>置B>換
       ここで、シェルが入力に対して行うさまざまな変換を、処理が行
       われる順に記述します。同時に、処理に関わるデータ構造と、デ
       ータ構造に影響を与えるコマンドと変数とにも触れておきます。
       B>字B>句B>構B>造のところで説明する引用により、置換を抑制できること
       を覚えておいてください。

   B>ヒB>スB>トB>リB>置B>換
       端末から入力したコマンドひとつひとつ (イベント) は、ヒスト
       リリストに保存されます。直前のコマンドは常に保存されます。
       さ らに、保存するコマンド数を、シェル変数 history に設定す
       ることができます。重複するイベントを保存するかどうか、同じ
       イ ベ ン ト の連続をそのまま保存するかどうかを、シェル変数
       histdup に設定することができます。

       保存されたコマンドには、1 から始まる連続した番号が振られ、
       タイムスタンプが打たれます。普通イベント番号を用いる必要は
       ありませんが、シェル変数 prompt の中に `!' を置くこと で、
       現在のイベント番号をプロンプトの一部にすることができます。

       実際のところ、シェルは、ヒストリを展開形式と文字どおり (未
       展 開) の形式とで保存しています。シェル変数 histlit を設定
       しておくと、ヒストリを表示する / ヒストリに保存するコマ ン
       ドで文字どおりの形式を用いるようになります。

       組 み 込 みコマンド history により、ヒストリリストの表示、
       ファイルに保存、ファイルからの読み込み、クリアをいつでも行
       えます。シェル変数 savehisthistfile により、ヒストリリ
       ストのログアウト時の自動保存と、ログイン時の自動読み込みを
       設定することができます。

       ヒストリ置換により、ヒストリリストから単語の列を入力ストリ
       ームに持ち込みます。これにより、前のコマンドの繰り返し、前
       のコマンドで使った引数の繰り返し、前のコマンドで間違えたス
       ペルの修正をわずかなキー入力で、かなり確実に容易に行うこと
       ができるようになります。

       ヒ ストリ置換は、文字 `!' で始まります。ヒストリ置換は、入
       力ストリームのどこから開始してもかまいませんが、入れ子には
       できません。文字 `!' の前に `\' を置くことで、`!' の特殊な
       意味を打ち消すことができます。文字 `!' が、空白文字、タ ブ
       文 字、改行文字、`='、`(' の前にある場合は、そうした方が便
       利なので、無変更のまま渡されます。入力行が `^' で始まる 場
       合にも、ヒストリ置換が生じます。この省略表現については後で
       説明します。ヒストリ置換を示すための文字 (`!' と `^') は、
       シェ ル変数 histchars を設定することにより変更することがで
       きます。入力行がヒストリ置換を含む場合、実行前に置換結果が
       常に表示されます。

       ヒ ストリ置換には「イベント指定」、「単語指定子 (word des-
                   す。tcsh では、再帰呼び出しは 10 レベルまで 許
                   されています。(+)
           !       1 つ前のイベントを指定します (`-1' と等価)。
           s        先頭の単語が s で始まるイベントのうち、最も新
                   しいものを指定します。
           ?s?     文字列 s を含むイベントのうち、最も新しいも の
                   を指定します。直後が改行文字の場合は、2 番目の
                   `?' は省略可能です。

       たとえば、次のようなヒストリリストがあるとします。

            9  8:30    nroff -man wumpus.man
           10  8:31    cp wumpus.man wumpus.man.old
           11  8:36    vi wumpus.man
           12  8:37    diff wumpus.man.old wumpus.man

       コマンドが、イベント番号とタイムスタンプ付きで表示されてい
       ま す。 現在のイベントは、まだ入力していませんが、イベント
       13 です。 `!11' と `!-2' は、イベント 11 を指しま す。`!!'
       は、 直前のイベントであるイベント 12 を指します。`!!' は、
       後ろに `:' が付いている場合、`!' と省略することができま す
       (`:'  は後で説明します)。`!n' は、`n' から始まっている、イ
       ベント 9 を指します。`!?old?' は、`old' を含んでいるイベン
       ト 12 を指します。単語指示子も単語修飾子もどちらも含まない
       場合、ヒストリ参照はそのイベント全体を展開するだけです。で
       す から、コピーコマンドを再実行したいときは `!cp' と入力し
       ますし、`diff' の出力が画面上端からスクロールして消えて し
       まう場合、`!!|more' と入力します。

       必要に応じ、中括弧で囲むことで、ヒストリ置換を前後のテキス
       トから分離することができます。たとえば、`!vdoc'   と す る
       と、`vdoc'  で始まるコマンドを探しますが、この例で見つから
       ないにしても、`!{v}doc' では、あいまいさもな く  `vi  wum-
       pus.mandoc' に展開されます。中括弧の中でも、ヒストリ置換は
       入れ子になりません。

       (+) csh(1) では、たとえば `!3d' は、イベント 3 の後ろに 英
       文字 `d' を付加して展開しますが、tcsh では、これを `3d' で
       始まるイベントのうち最新のものに展開します。つまり、完全な
       数値引数だけをイベント番号と見なします。これにより、数字か
       ら始まるイベントを呼び出すことが可能となります。`!3d'   を
       csh(1) のように展開させるには、`!\3d' と指定してください。

       イベントから単語を選択する場合、`:' と選択する単語を表す指
       示子を使い、イベント指定を行うことができます。入力行の単語
       には、0 から始まる番号が振られています。最初の単語 (普通、
       コ マ ンドです) は 0 で、 2 番目の単語 (第 1 引数) は 1 と
       いった具合です。基本的な単語指示子は次のようになります。

           0       最初の単語 (コマンド)
           n       n 番目の引数
           ^       最初の引数、`1' と等価

       数を選択し、入れ換えることができます。 `diff' コマンドの引
       数 の順番を気にしなければ、`diff !-2:1-2' と打ち込んでも構
       いませんし、単に `diff !-2:*' でも構いません。 `cp' コマン
       ド は、 現 在 のイベントを指す `#' を使い、 `cp wumpus.man
       !#:1.old' と書くことができま す。`!n:-  hurkle.man'   は、
       `nroff'  コマンドから最初の 2 単語を再利用し、 `nroff -man
       hurkle.man' とすることになります。

       文字 `:' は単語指定からイベント指定を分離しますが、引数 選
       択 子が `^', `$', `*', `%', `-' で始まるとき、この文字 `:'
       は省略可能です。たとえば、先ほどの `diff' コマンドは `diff
       !!^.old  !!^' もしくは `diff !!$.old !!$' でも構わなかった
       のです。しかし、`!!' が `!' に省略可能である場合、`-' で始
       まる引数選択子はイベント指定として解釈されます。

       ヒストリ参照に、イベント指定のない単語指示子があっても構い
       ません。その場合、直前のコマンドを参照します。 `diff' の例
       を続けるなら、単純に `diff !^.old !^' と入力することができ
       ます。もしくは、逆順の引数を得るだけならば、単に `diff !*'
       でいいです。

       ヒストリ参照の中の単語は編集可能です。つまり、単語の後ろに
       1 つまたは複数の修飾子 (修飾子それぞれは `:' で始まります)
       を付けることで「修飾」可能です。

           h        先頭のもの 1 つを残し、パス名の構成要素の後ろ
                   の部分を削除します。
           t       末尾のもの 1 つを残し、パス名の構成要素の先 頭
                   の部分を削除します。
           r       ファイル名拡張子 `.xxx' を削除し、名前の基本部
                   分だけを残します。
           e       拡張子だけを残し、他をすべて削除します。
           u       最初の英小文字を大文字に変換します。
           l       最初の英大文字を小文字に変換します。
           s/l/r/  lr で置換します。 lr と同様に、単な る
                   文 字列です。名付け親である ed(1) コマンドのよ
                   うな正規表現ではありません。 `/' の代わりに 任
                   意の文字を区切り文字として使うことができます。
                   `\' を使い、lr の中で区切り文字をクォー ト
                   することができます。 r 中の文字 `&' は、l で置
                   き換えられます。`\' で `&' もクォート で き ま
                   す。l  が空 (``'') の場合、以前の置換の l 、ま
                   たは以前のイベント指定 `?s?' の s を使用 し ま
                   す。最後の区切り文字の直後が改行文字の場合、そ
                   の区切り文字を省略できます。
           &       以前の置換を繰り返します。
           g       後ろの修飾子を単語それぞれに適用します。
           a (+)   後ろの修飾子を、ある単語だけにできるだけ多くの
                   回数、適用します。 `a' と `g' をいっしょに用い
                   て、修飾子をグローバルに適用することがで き ま
                   す。現在の実装では、修飾子 `a' と修飾子 `s' を
                   同時に使用すると、無限ループに陥る可能性があり

       !#^: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' のスペル間違いを直す
       ことができます (スペル間違いの訂正については、B>スB>ペB>ルB>訂B>正の
       項に別のやり方があります)。

       置換には特別な省略記法があります。`^' が入力行の先頭にある
       場合、 `!:s^' と等価です。よって、先の例でスペルを訂正する
       には、 ^rot^root と言うこともできたわけです。これは明示 的
       に `!' で始まらないヒストリ置換としては唯一のものです。

       (+) csh では、ヒストリ展開または変数展開に適用される修飾子
       は 1 つだけです。tcsh では、1 つ以上の修飾子が使用される可
       能性があります。たとえば、次のような場合を考えます。

           % mv wumpus.man /usr/man/man1/wumpus.1
           % man !$:t:r
           man wumpus


       csh では、この結果は `wumpus.1:r' となります。コロンが後ろ
       に続く置換は、中括弧を用いてコロンと区切る必要があります。

           > mv a.out /usr/games/wumpus
           > setenv PATH !$:h:$PATH
           Bad ! modifier: $.
           > setenv PATH !{-2$:h}:$PATH
           setenv PATH /usr/games:/bin:/usr/bin:.

       最初の試みは csh では成功しますが、tcsh では失敗します。こ
       の理由は、tcsh は 2 番目のコロンの後ろに、`$' ではなく修飾
       子があると思っているからです。

       最後に、ヒストリはここで説明してきた置換だけでなく、エディ
       タでも利用することができます。編集コ マ ン ド  up-history,
       down-history, history-search-backward, history-search-for-
       ward,  i-search-back,  i-search-fwd,  vi-search-back,  vi-
       search-fwd,  copy-prev-word, insert-last-word はヒストリリ
       スト中のイベントを検索し、入力バッファにイベントをコピーし
       ます。編集コマンド toggle-literal-history は、入力バッファ
       でヒストリ行を展開するか文字どおりに扱うかを切り替えます。
       expand-history,  expand-line  はそれぞれ、現在の単語、また
       は、入力バッファ全体でヒストリ置換を展開します。

   B>エB>イB>リB>アB>スB>置B>換
       シェルは、エイリアスのリストを保持しています。このリ ス ト
       は、 alias, unalias コマンドを使って設定、削除、表示するこ
       とができます。コマンド行を解釈し単純コマンド (B>コB>マB>ンB>ドを参
       \!* | lpr'' は、引数をラインプリンタに pr(1) する ``コマン
       ド''(`print') を定義します。

       コマンドの最初の単語がエイリアスを持たなくなるまで、エイリ
       ア ス置換は繰り返されます。(先の例のように) エイリアス置換
       が最初の単語を変更しない場合、そのエイリアスに印を付けてル
       ープが生じないようにします。それ以外のループは検出され、エ
       ラー扱いになります。

       シェルが参照するエイリアスがいくつかあります。B>特B>殊B>エB>イB>リB>ア
       B>スを参照してください。

   B>変B>数B>置B>換
       シェ ルは変数のリストを管理しており、それらは 0 個またはそ
       れ以上の個数の単語のリストを値として持ちます。シェル変数の
       値は、コマンド set, unset により表示、変更することができま
       す。システムは、自分自身の ``環境'' 変数のリストを保持して
       います。環境変数はコマンド printenv, setenv, unsetenv によ
       り表示、変更することができます。

       (+) `set -r' (参照) により変数を読み出し専用にすることがで
       き ます。読み出し専用変数は、変更や unset ができません。こ
       れを試みるとエラーになります。一度読み出し専用にした 変 数
       は、書き込み可能に戻すことはできません。ですから、`set -r'
       は注意して使用する必要があります。環境変数は読み出し専用に
       することはできません。

       シェルが設定、参照する変数がいくつかあります。たとえば、変
       数 argv は、シェルの引数リストの複製で、この変数の値である
       単語は特別な方法で参照されます。シェルが参照する変数の中に
       は、トグルスイッチがあります。シェルは、これらの変数が何の
       値を持っているかではなく、値が設定されているかどうかにだけ
       影響を受けます。たとえば、変数 verbose は、コマンド入力 を
       エコーするかどうかを制御するトグルスイッチです。コマンド行
       オプション -v がこの変数に値を設定します。シェルが参照する
       変数すべてのリストは、B>特B>別B>なB>シB>ェB>ルB>変B>数にあります。

       変 数を数値として扱う操作もあります。コマンド `@' により、
       数値計算を実行し、結果を変数に代入することが可能とな り ま
       す。しかしながら、変数の値は常に (0 個以上の) 文字列として
       表現されています。数値として扱うために、空文字列は 0 と 見
       なされます。複数の単語からなる値の、2 番目以後の単語は無視
       されます。

       入力行のエイリアス処理を終え、字句解析を終えた後で、 そ し
       て、各コマンドを実行する前に、`$' 文字をキーとして変数置換
       が行われます。この展開は `$' の前に `\' を置くことで抑止で
       きます。ただし、`"' の中は別で、ここでは常に変数置換が行わ
       れます。また、`'' の中も別で、ここでは決して変数置換が行わ
       れません。``' でクォートした文字列は後で解釈されますから、
       (後のB>コB>マB>ンB>ドB>置B>換を参照) そこでの `$' 置換は後になるまで行
       わ れません。`$' の後ろが空白、タブ、改行文字の場合は、`$'
       ものを含みます。置換の際に修飾子 `:q' が適用される場合、変
       数は複数の単語に展開されます。それぞれの単語は空白で区切ら
       れ、以後、コマンド置換とファイル名置換が適用されないように
       クォートされます。

       シェルへの入力に変数の値を持ち込むための方法として、以下の
       構文があります。特に注がない限り、設定されていない値の参照
       はエラーになります。

       $name
       ${name} 変数 name の値である単語に置換します。この単語は、
               それぞれが空白で区切られたものです。中括弧は  name
               とそれ以後の文字列とを分離し、以後の文字列も含めて
               1 つの変数名として解釈されないようにします。シェル
               変 数 の 名 前は上限が 20 文字であり、先頭は英文字
               で、2 文字目以後は英文字か数字で構成されます。アン
               ダ スコアは英文字と見なします。name がシェル変数で
               はないが、環境に設定されている場合、環境の値を返し
               ま す (ただし、修飾子 `:' と次で示す他の形式は利用
               可能です)。
       $name[selector]
       ${name[selector]}
               name の値のうち選択した 単 語 の み で 置 換 し ま
               す。selector は `$' 置換が適用され、1 つの数値また
               は `-' で区切った 2 つの数値で構成することができま
               す。 変数の値の先頭の単語は 1 番目として数えます。
               範囲の最初の値を省略した場合、デフォルトの値 1  に
               なります。範囲の最後の数値を省略した場合、デフォル
               トの値 `$#name になります。 selector `*' はすべ て
               の単語を選択します。2 番目の引数が省略されるか、あ
               るいは範囲に収まっている場合、範囲が空になってもエ
               ラーになりません。
       $0       コ マンド入力を読み込んでいるファイル名で置換しま
               す。ファイル名が不明の場合エラーになります。
       $number
       ${number}
               `$argv[number]' と等価です。
       $*      `$argv' と等価です。これは `$argv[*]' と等価です。

       B>ヒ B>ス B>ト B>リB>置B>換のところで説明した `:' 修飾子 (`:p' を除く)
       が、上記の置換に対して適用できます。2 つ以上の修飾子も適用
       で きます。 (+) B>ヒB>スB>トB>リB>置B>換 (そちらも参照) と同様に、変数
       置換とリテラルのコロンとを分離するために、中括弧が必要なこ
       とがあります。修飾子は中括弧の中に置かねばなりません。

       以下の置換は `:' 修飾子で修飾することはできません。

       $?name
       ${?name}
               name が設定されているときは、文字列 `1' で置き換え
               られます。設定されていないときは、文字列 `0' で 置
               き換えられます。

       $$      (親) シェルの (10 進数の) プロセス番号で置き換えら
               れます。
       $!      本シェルが開始したバックグラウンドプロセスのうち最
               新 のものの (10 進数の) プロセス番号で置き換えられ
               ます。(+)
       $_      最後に実行したコマンドのコマンド行で置 き 換 え ま
               す。(+)
       $<       標準入力から読み込んだ 1 行を、一切解釈をせずにこ
               の変数と置き換えます。シェルスクリプト中で、キーボ
               ー ド から読み込む際に用います。(+) csh は、`$<:q'
               と等価であるかのように、$< をクォートし ま す が、
               tcsh はそうしません。それだけでなく、tcsh がユーザ
               の入力行を待つとき、ユーザは割り込みを入力して、置
               換されるべき行が入る列を中断することができます。し
               かし csh ではそうすることができません。

       編集コマンド expand-variables は、通常は `^X-$' にバインド
       されていますが、これを使って、個々の変数を対話的に展開する
       ことができます。

   B>コB>マB>ンB>ドB>置B>換B>、B>フB>ァB>イB>ルB>名B>置B>換B>、B>デB>ィB>レB>クB>トB>リB>スB>タB>ッB>クB>置B>換
       組み込みコマンドの引数に対し、残りの置換が選択的に適用され
       ます。選択的とは、行の中で評価されなかった部分は、これらの
       展開の対象にならないという意味です。シェルの内部コマンドで
       ないコマンドに対しては、コマンド名は引数リストとは別個に置
       換されます。この置換は最後の方、入出力リダイレクトを実行し
       たあと、メインシェルの子供の中で生じます。

   B>コB>マB>ンB>ドB>置B>換
       ``' で囲まれたコマンドは、コマンド置換を示します。囲まれた
       コマンドの出力を、空白、タブ、改行文字のところで別々の単語
       に分割します。この出力に変数置換、コマンド置換を実行し、元
       の文字列があった場所に置きます。

       ニ重引用符 (`"') の内側のコマンド置換は、空白、タブを保 存
       します。改行文字だけは新しく単語分けを行います。ただし、ど
       のような場合でも最後の改行文字だけは新しい単語になり ま せ
       ん。ですから、1 行まるまる出力するようなコマンドでも、コマ
       ンド置換を用いると単語の一部だけを生成することができます。

   B>フB>ァB>イB>ルB>名B>置B>換
       単語が `*', `?', `[', `{' のいずれかの文字を含む場合、また
       は先頭が `~' で始まる場合、その単語はファイル名置換 (あ る
       いはグロブ (globbing) と呼ばれます) の候補になります。この
       ような単語をパターン (グロブパターン) と見なし、そのパター
       ンにマッチするファイル名のリストをアルファベット順で整列し
       たもので置き換えます。

       ファイル名マッチの際に、ファイル名の先頭、または `/' の 直
       後 の文字 `.' は、`/' と同様に、明示的にマッチさせなければ
       なりません。文字 `*' は、空文字列を含むどのような文字列 に
       もマッチします。文字 `?' は、どのような 1 文字にもマッチし
           bang ouch

       `?', `*', `[]' のいずれも使わないグロブパターンや、  `{}',
       `~'  (あとで説明します) を使うグロブパターンは、反転しても
       正しい結果を得られません。

       メタ記法 `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'  のマッチング結果とともに整列されていないことに注意
       してください)。この指定が展開された結果ファイルが存在し な
       くてもエラーになりませんが、展開結果を渡した先のコマンドで
       エラーになる可能性はあります。この指定は入れ子にすることが
       できます。特殊な場合として、単語 `{', `}', `{}' は変更され
       ずにそのまま渡されます。

       ファイル名先頭の文字 `~' は、ホームディレクトリを 指 し ま
       す。 単独で用いられた場合、つまり `~' だけの場合、シェル変
       数 home の値に反映されているように、呼び出したユーザのホー
       ムディレクトリに展開されます。`~' の直後に英文字、数字、ま
       たは文字 `-' で構成される名前が続く場合、シェルはその名 前
       を持つユーザを検索し、そのユーザのホームディレクトリに展開
       します。ですから、`~ken' はたとえば `/usr/ken' に展開さ れ
       ます。また、`~ken/chmach'は、たとえば `/usr/ken/chmach' に
       展開されます。文字 `~' の後ろに英文字でもなく `/' でもない
       文 字が続いた場合、もしくは、文字 `~' が単語の先頭以外に現
       れた場合、変更されずにそのまま渡され ま す。 で す か ら、
       `setenv  MANPATH /usr/man:/usr/local/man:~/lib/man' のよう
       なコマンドでは、期待通りのホームディレクトリ置換が起こりま
       せん。

       `*',  `?', `[', `~' のどれかを含むグロブパターン (`^' は付
       いていてもいなくとも同じ) は、マッチするファイルがひとつも
       ないとエラーになります。しかし、グロブパターンのリストのう
       ちのひとつでもマッチすれば (他のものはマッチするものがなく
       ても) エラーになりません (したがって、たとえば `rm *.a *.c
       *.o' は、カレントディレクトリに `.a', `.c', `.o' で終わ る
       ファ イ ル がひとつもないときに限ってエラーになります)。ま
       た、シェル変数 nonomatch が設定されている場合、ど れ に も
       マッチしないパターン (あるいはパターンの列) はエラーになら
       ずに無変換のまま残されます。

       ファイル名置換を止めるために、シェル変数 noglob を設定する
       ことができます。編集コマンド expand-glob は、通常は `^X-*'
       に結合されていますが、これを使い、個々のファイル名置換の展
       開を対話的に行うことができます。

   B>デB>ィB>レB>クB>トB>リB>スB>タB>ッB>クB>置B>換 (+)
       `=-'   は スタックの最新のディレクトリに展開します。たとえ
       ば、次のようにです。

           > dirs -v
           0       /usr/bin
           1       /usr/spool/uucp
           2       /usr/accts/sys
           > echo =1
           /usr/spool/uucp
            echo =0/calendar
           /usr/bin/calendar
           > echo =-
           /usr/accts/sys

       シェル変数 noglob, nonomatch と編集コマンド expand-glob は
       ファ イ ル名置換と同様にディレクトリスタックにも適用されま
       す。

   B>そB>のB>他B>のB>置B>換 (+)
       ファイル名を含む変換が他にいくつかあります。厳密には先に説
       明したものと関係があるわけではありませんが、完全を期するた
       めにここで説明しておきます。変数 symlinks (そちらも 参 照)
       が `expand' に設定されている場合、どのようなファイル名もフ
       ルパスに展開される可能性があります。クォートすることでこの
       展開を止めることができ、編集コマンド normalize-path を使用
       すると要求に応じて展開を止めることができます。また、編集コ
       マンド normalize-command は、PATH にあるコマンドを、要求に
       応じてフルパスに展開します。最後に、cdpushd は `-'  を
       以 前の作業ディレクトリ (シェル変数 owd と等価) と解釈しま
       す。これは置換でもなんでもなく、このコマンドだけで認識され
       る省略記法です。それでも、この表記もクォートすることでこの
       解釈を止めることができます。

   B>コB>マB>ンB>ド
       次の 3 つのセクションでは、シェルがどのようにコマンドを 実
       行し、それらの入出力をどのように扱うかを説明します。

   B>単B>純B>コB>マB>ンB>ドB>、B>パB>イB>プB>ラB>イB>ンB>、B>コB>マB>ンB>ドB>列
       単純コマンドは、単語の列であり、その最初の単語が実行される
       コマンドです。 `|' 文字によって区切られた一連の単純コマ ン
       ドはパイプラインを形成します。パイプライン内のそれぞれのコ
       マンドの出力は次のコマンドの入力に接続されます。

       単純コマンドとパイプラインは `;' 文字を使ってコマンド列 に
       組み入れることができ、並んでいる順に実行されます。コマンド
       とパイプラインは `||' や `&&' でコマンド列に組み込むことも
       でき、C 言語で扱われるのと同様に、最初のコマンドが失敗した
       時にだけ (`||'の場合)、あるいは成功した時にだけ (`&&'の 場
       合)、次のコマンドが実行されます。

       単 純コマンド、パイプライン、またはコマンド列は、括弧 `()'
       を使って単純コマンドを形成することができ、パイプラインやコ
       クトリを表示 (その後に現在のディレクトリを表示) し、その一
       方、

           cd; pwd

       この場合はB>ホB>ーB>ムディレクトリに移動します。括弧で括られたコ
       マンドは、たいてい cd が現在のシェルに影響するのを防ぐため
       に使用します。

       実行するコマンドが組み込みコマンドでないことが判明すると、
       シェ ルはそのコマンドを execve(2) を通じて実行しようとしま
       す。環境変数 path 内の各語は、シェルがコマンドを検索 す る
       ディレクトリを指定します。 -c, -t オプションのいずれも指定
       されていない場合、これらのディレクトリ内の名前を内部テーブ
       ルでハッシュし、そのコマンドが存在する可能性のあるディレク
       トリだけで execve(2) の実行を試みます。このことは、検索 パ
       ス内のディレクトリの数が多い場合に、コマンドの位置確定を大
       いに高速化します。この機構が (unhash によって) オ フ に さ
       れ、シェルに -c または -t のオプションが与えられるか、それ
       ぞれの path のディレクトリ構成要素のいずれかが `/'   で 始
       まっていない場合、シェルは現在の作業ディレクトリと与えられ
       たコマンド名を結合して実行するファイルのパス名を形成 し ま
       す。

       ファイルに実行許可であってシステムが実行可能ではない場合、
       (例 : 実行可能バイナリ、インタプリンタを指定したスクリプト
       で はないとき)、それをシェルコマンドを含むファイルであると
       みなし、新しいシェルを起動してそのファイルを読み込みます。
       シェルの特殊なエイリアスで、シェル自体ではなくインタプリタ
       を指定するように設定することもできます。

       慣習的な‘#!' スクリプトインタプリタを理解しないシステム上
       では、シェルはそれをエミュレートするようにコンパイルされま
       す ; シェル変数 version を参照してください。その場合、シェ
       ル がファイルの最初の行をチェックし、それが `#!interpreter
       arg ...' の形式であるかどうかを確認します。この形式であ れ
       ば、シェルは与えられた引数とともにインタプリタを起動して、
       そのファイルを標準入力に供給します。

   B>入B>出B>力
       コマンドの標準入力と標準出力は以下の文法に従ってリダイレク
       トすることができます:

       < name   ファイル name (変数、コマンド、ファイル名展開を受
               けます) をオープンし、コマンドの標準入力とします。
       << word word  と同一の行が出現するまで、シェルの入力を読み
               込みます。 word は変数、ファイル名、コマンド置換を
               受けません。シェル入力の行は読み込まれるとすぐ、置
               換を行う前に word と比較されま す。word   に  `\',
               `"', `'', ``' のクォートが出現しなければ、行の中で
               コマンド置換が実行されます。この置換を抑制するため
               に、`\'  によって `$', `\', ``' をクォートすること
               イ ル が 存 在 し ないか文字型特殊ファイル (端末や
               `/dev/null' のような) でなければエラーになります。
               これは、すでに存在するファイルを間違えて削除してし
               まうことを防止します。`!' を用いた形式を使うと、こ
               の検査を抑制することができます。

               `&' を用いた形式では、標準出力とともに診断メッセー
               ジ出力もファイルへリダイレクト さ れ ま す。  name
               は、`<' の入力ファイル名の場合と同様の展開を受けま
               す。
       >> name
       >>& name
       >>! name
       >>&! name
               `>' と同様に、ファイル name を標準出力として用いま
               す。 た だし、コマンドの出力はファイルへ追加されま
               す。変数 noclobber がセットされている場合、ファ イ
               ル が存在しなければエラーとなります。 `!' を用いる
               ことで、この検査を抑制することができます。

       コマンドは、シェルが起動されたときの環境を引き継ぎます。た
       だしこの環境は入出力のパラメータによって変更されますし、コ
       マンドがパイプラインの中にあった場合も変更されます。 し た
       がって、以前のいくつかのシェルとは異なり、シェルのコマンド
       ファイルから起動されたコマンドは、デフォルトではそのコマン
       ドのテキストへアクセスできません。かわりにそれらのコマンド
       は、シェルのもともとの標準入力をそのまま受け継ぎます。シェ
       ル ス ク リ プ ト の 内 部で、コマンドにあらかじめ決まった
       (inline) データを渡す場合には、標準入出力の形式ではな く、
       `<<'  の機構を使うことができます。このように制限することに
       より、シェルコマンドスクリプトをパイプラインの一部として用
       いることができます。バックグラウンドで実行されているコマン
       ドの標準入力も /dev/null 等にリダイレクトされることな く、
       シェルの標準入力をそのまま受け継いでいます。もし標準入力が
       端末で、コマンドが端末から読み込もうとした場合、そのプロセ
       ス は ブロックされ、シェルはユーザにそのことを通知します (
       B>ジB>ョB>ブの項を参照)。

       診断メッセージ出力もパイプにリダイレクトすることがで き ま
       す。単に `|' のかわりに `|&' を使います。

       シェルは、標準出力のリダイレクトなしで、診断メッセージ出力
       をリダイレクトできなくなります。そのため、`(コマンド >  出
       力 ファイル) >& エラーファイル' は、無難な予備手段としてさ
       れてます。出力ファイル、エラーファイルのどちらかが、端末に
       出力を送るための `/dev/tty' です。

   B>特B>徴
       こ こ ではシェルがどのようにコマンドラインを受け入れ、解釈
       し、実行するかを説明しました。次は、便利な特徴について説明
       します。

       ループによる再読み込みを可能にします。 (これを許可し た 結
       果、後方へ向かう goto がシーク可能でない入力についても成功
       することになります。)

   B>式
       組み込みコマンドの if, while, exit は共通した文法を持っ た
       式 を使います。式には、次の 3 つのセクションの中で説明され
       る任意の演算子を含めることができます。 @ 組み込みコマン ド
       (そちらも参照) 自体は、文法を区切るので注意してください。

   I</I>論B>理B>演B>算B>子, B>算B>術B>演B>算B>子, B>比B>較B>演B>算B>子
       こ れらの演算子は C の演算子と同じ優先順位となっています。
       演算子には、次のものがあります。

           ||  &&  |  ^  &  ==  !=  =~  !~  <=  >=
           <  > <<  >>  +  -  *  /  %  !  ~  (  )

       ここに挙げた演算子は右側のものほど優先順位が高くなっていま
       す。ただし、`==' `!=' `=~' `!~' の 4 つ、`<=' `>=' `<' `>'
       の 4 つ、 `<<' `>>' の 2 つ、`+' `-' の 2 つ、`*' `/'  `%'
       の  3 つはそれぞれ同一のグループに所属しており、同じグルー
       プに所属している演算子の優先順位は同じレベルとなって い ま
       す。 演算子 `==' `!=' `=~' `!~' は引数を文字列として比較し
       ます。他の演算子はすべて数値で比較します。演算子 `=~' `!~'
       は  `!=' `==' と似ていますが、左側のオペランドにマッチする
       グロブパターン (B>フB>ァB>イB>ルB>名B>置B>換を参照) を右側に置くことが異
       なります。必要なものに対してだけパターンマッチを行うので、
       シェルスクリプト中における switch 組み込みコマンドの使用の
       必要を減らします。

       `0'  で始まる文字列は 8 進数とみなされます。空の文字列や引
       数がぬけているものは `0' とみなされます。すべての式の結 果
       は 10 進数で表される文字列になります。特に、式の構成要素が
       同一の単語中に複数個現れることはないということに注意してく
       ださい。例外として、パーサに文法的に特別な意味を持つ式の構
       成要素 (`&' `|' `<' `>' `(' `)') が隣りにくることは構い ま
       せん。ただし、これらは空白で区切られるべきです。

   B>コB>マB>ンB>ドB>終B>了B>スB>テB>ーB>タB>ス
       式の中でコマンドを実行することができ、式を中括弧 (`{}') で
       囲むと終了ステータスが返されます。中括弧は、コマンドの単語
       から空白で区切ることを忘れないでください。コマンドの実行が
       成功した場合は、真 (たとえば `1') を返します。コマンドが 0
       のステータスで終了した場合、または実行に失敗した場合は、偽
       (たとえば `0') を返します。もっと詳しいステータスの情報 が
       必 要な場合は、コマンドを式の外部で実行し、シェル変数 sta-
       tus を調べてください。

   B>フB>ァB>イB>ルB>問B>いB>合B>わB>せB>演B>算B>子
       これらの演算子のうち幾つかはファイルと関連するオブジェクト
       に ついて真/偽の判定を行います。これらは -op file の形式で
       す。 op は次のうちのどれか 1 つです。
           b   ブロック型特殊ファイル (+)
           c   キャラクタ型特殊ファイル (+)
           p   名前付きパイプ (fifo) (+) *
           S   ソケット型特殊ファイル (+) *
           u   set-user-ID ビットがセットされている (+)
           g   set-group-ID ビットがセットされている (+)
           k   スティッキービットがセットされている (+)
           t   file (これは数字でなければならない) は端末デバイス
               に対してオープンしているファイル記述子である (+)
           R   migrate されている (convex システムのみ有効) (+)
           L   多重演算子の中でこの演算子の後にくる演算子は、シン
               ボリックリンクが指されているファイルではなく、シン
               ボリックリンクそのものに適用される (+) *

       file  はコマンドと展開されたファイル名で、指定された実ユー
       ザに対する関係があるかどうかテストします。 file が存在して
       い ない場合、もしくはアクセスできない場合、 `*' で示した演
       算子については、指定のファイルタイプが現在のシステムに存在
       していなければすべての問い合わせは偽 (たとえば `0') を返し
       ます。

       s true これらの演算子は、簡潔にするために連結することが で
       き ま す。  `-xy  file'   は `-x file && -y file' と等価で
       す。(+) たとえば `-fx' は通常の実行可能ファイルに対して は
       真 (`1' を返す) ですが、ディレクトリに対してはそうではあり
       ません。

       s L は多重演算子の中で使用できます。この演算子の後にくる演
       算子は、シンボリックリンクが指されているファイルではなく、
       シンボリックリンクそのものに適用されます。たとえば  `-lLo'
       は呼び出しユーザが所有しているリンクに対しては真です。 Lr,
       Lw, Lx はリンクに対しては常に真で、リンクでないものに対 し
       て は 偽 です。 L は多重演算子の中で最後の演算子になった場
       合、異なった意味を持ちます。以下を参照してください。

       s file に渡すべき演算子と、そうでない演算子 (たとえば Xt)  を連結することは可能ですが、実用的ではなく、しばしば間
       違いの元になります。特に、ファイルでない演算子に L をつ け
       ると、妙な結果になります。

       他の演算子は他の情報、つまり単なる `0' や `1' だけではない
       情報を返します。(+) これらは前に示したのと同じ書式になりま
       す。 op は次のうちのどれか 1 つです。

           A       エポックからの秒数で表した、最後にファイルにア
                   クセスした時間
           A:      A と同じで、タイムスタンプの書式。例: `Fri May
                   14 16:36:10 1993'
           M       最後にファイルを変更した時間
           M:      M と同じで、タイムスタンプの書式
           C       最後に inode を変更した時間
           C:      C と同じで、タイムスタンプの書式
           U:      ユーザ名、ユーザ名が見つからなかった場合は数値
                   で表したユーザ ID
           G       数値で表したグループ ID
           G:      グループ名、グループ名が見つからなかった場合は
                   数値で表したグループ ID
           Z       バイト数で表したサイズ

       こ れらの演算子のうち 1 つだけ多重演算子の中に現れることを
       許されていますが、必ず最後につける必要があり ま す。 た だ
       し、L は多重演算子の中の最後とそれ以外の箇所では違った意味
       になるので注意してください。なぜなら、`0' はこれらの演算子
       の 多 くにとって正当な返り値のためです。これらが失敗した場
       合、`0' を返しません。たいていの場合、`-1' を返 し、F   は
       `:' を返します。

       こ のシェルが POSIX を定義してコンパイルされている (シェル
       変数 version を参照) 場合、ファイル問い合わせの 結 果 は、
       access(2) システムコールの結果に基づいたものではなく、ファ
       イルの許可ビットに基づいたものになります。たとえば、通常は
       書き込み可であるが読み取り専用でマウントされたファイルシス
       テム上にあるファイルを -w で検査した場合、 POSIX シェル で
       は成功し、非 POSIX シェルでは失敗することになります。

       ファイル問い合わせ演算子は filetest 組み込みコマンド (そち
       らも参照) と等価になり得ます。(+)

   B>ジB>ョB>ブ
       シェルはパイプラインの各々に対しジョブを 1 つずつ関連付 け
       ます。シェルは、現在実行中のジョブの一覧表を保持しており、
       これは、jobs コマンドによって表示することができます。 ジョ
       ブ には整数の番号が割り当てられます。ジョブが `&' を用いて
       非同期に起動された場合、シェルは以下のような出力を行 い ま
       す:

           [1] 1234

       こ れは、非同期に起動したジョブがジョブ番号 1 であり、プロ
       セス ID が 1234 である (トップレベルの) プロセスを  1   つ
       持っていることを示します。

       もし、あるジョブを実行中に他のことをしたくなった場合、サス
       ペンドキー (通常 ^Z) を押すことにより実行中のジョブに STOP
       シグナルを送信することができます。通常、シェルはそのジョブ
       が一時停止した (Suspended) ことを出力し、プロンプトを表 示
       します。シェル変数の listjobs が設定されていると、組み込み
       コマンドの jobs のようにすべてのジョブがリストされます。も
       し それが `long' と設定されているとリストは `jobs -l' のよ
       うな長い形式になります。ここで、一時停止したジョブの状態を
       操 作することができます。つまり、bg コマンドにより停止した
       プロセスを ``バックグラウンド'' で走行させたり、他のコマン
       ド を 実行してから、停止していたジョブを fg コマンドにより
       ``フォアグラウンド'' で再実行させることなどができます。  (
       バックグラウンドで実行しているジョブが端末からの入力を試み
       た場合、そのジョブは停止します。通常、バックグラウンドジョ
       ブ が 端末に出力することは可能ですが、これはコマンド `stty
       tostop' により禁止することができます。もしこの tty   オ プ
       ションを指定したなら、バックグラウンドで実行しているジョブ
       は、端末から入力を試みたときと同様に、端末に出力を試みたと
       きに停止します。

       シェルでジョブを参照するにはいくつかの方法があります。文字
       `%' はジョブ名を表すのに用いられます。番号 1 のジョブを 参
       照する場合は `%1' とします。単にジョブ名を入力した場合、そ
       のジョブはフォアグラウンドに移動されます。すなわち `%1' は
       `fg  %1'   と等価で、ジョブ 1 をフォアグラウンドに移行しま
       す。同様に `%1 &' は、ちょうど `bg %1' と同じようにの ジョ
       ブ  1 をバックグラウンドで再開させます。ジョブはそのジョブ
       を起動したときにタイプされた文字列の先頭部分によって参照す
       ることもできます。ただしこの先頭部分はあいまいでない必要が
       あります。すなわち `%ex' は、`ex' という文字列で始まる名前
       の サスペンドされたジョブが 1 つしかない場合に限り、サスペ
       ンドされた ex(1) のジョブを再開します。文字列 string を 含
       むジョブが 1 つしかない場合、`%?string' と入力することでそ
       れを指定することもできます。

       シェルは現在のジョブと直前のジョブを覚えています。ジョブに
       関係する出力で、`+' 記号が付加されているのが現在のジョブ、
       `-' 記号が付加されているのが直前のジョブです。  `%+',  `%'
       と  ( ヒ ストリ機構の文法との類似から) `%%' はすべて現在の
       ジョブ、`%-' は直前のジョブを参照するための省略形です。

       ある種のシステムではジョブ制御機構を利用するために stty(1)
       の オプション `new' を設定しておく必要があります。ジョブ制
       御機構は `新型の' 端末ドライバの実装の上に構築されているか
       らで、新型の端末ドライバによりジョブを停止させるための割り
       込み文字をキーボードから入力できるようになるからです。新型
       の 端末ドライバのオプション設定については stty(1) と組み込
       みコマンドの setty を参照してください。

   B>状B>態B>通B>知
       シェルは、プロセスが状態の変化を起こすとすぐにそれを検知し
       ます。通常はプロンプトが表示される直前にのみ、あるジョブが
       停止してそれ以上処理が進まなくなったことを通知します。これ
       は ユ ーザの仕事を邪魔しないようにするためです。しかしなが
       ら、シェル変数 notify を設定することにより、シェルにバック
       グラウンドジョブの状態が変化したことをただちに通知させるこ
       とができます。また、シェルコマンド notify により、特 定 の
       ジョブの状態の変化をただちに通知させるようにマークすること
       もできます。引数なしの notify は現在のプロセスに対してマー
       ク を つ け ま す。 バックグラウンドジョブの開始直後に単に
       `notify' と打つとそのジョブをマークします。

       停止したジョブが存在する状態でシェルを終了しようとす る と
       `You  have  stopped  jobs.' という警告を受けます。このとき
       き、指定された時刻にシェルによって実行されるようにします。

       B>特B>別B>なB>エB>イB>リB>アB>スとして beepcmd, cwdcmd, periodic,  precmd,
       postcmd があり、それぞれシェルがベルを鳴らす時、作業ディレ
       クトリが変わる時、 tperiod 分毎、各プロンプトの前、各コ マ
       ンドの実行前に実行させたいコマンドを設定できます。

       シェル変数の autologout を使って、指定した分数の休止後にロ
       グアウトまたはシェルをロックするように設定できます。

       シェル変数の mail を使って、定期的に新しいメールをチェック
       するように設定できます。

       シェル変数の printexitvalue を使って、0 以外のステータスで
       終了したコマンドの終了ステータスを表示するように指定できま
       す。

       シェ ル変数の rmstar を使って、`rm *' が入力されたときにユ
       ーザに間違いないかどうか確認を求めるように指定できます。

       シェル変数の time を使って、指定した秒数より多く CPU 時 間
       を使ったプロセスの終了後に組み込みコマンドの time を実行す
       るように設定できます。

       シェル変数の watchwho を使って、指定したユーザがログイ
       ンまたはログアウトした時にレポートするように設定できます。
       また組み込みコマンドの log でいつでもそれらのユーザにつ い
       てのレポートを得られます。

   B>固B>有B>言B>語B>シB>スB>テB>ムB>のB>サB>ポB>ーB>ト (+)
       シェ ルは 8 ビットクリーンなので (そのようにコンパイルされ
       ていれば。シェル変数の version を参照)、それを必要とする文
       字 セットをサポートします。 NLS サポートはシェルがシステム
       の NLS を使うようにコンパイルされているかどうかによって 異
       なります (再び、version を参照)。どちらの場合でも 7 ビット
       ASCII がデフォルトの文字分類 (たとえばそれらの文字は表示可
       能)   で あ り、そして順序づけです。環境変数の LANG または
       LC_CTYPE を変更すると、これらの点について変 化 の 有 無 が
       チェックされます。

       シ ステムの NLS を使う場合には、文字の適切な分類と順序づけ
       を決定するために setlocale(3) 関数が呼び出されます。この関
       数は典型的には環境変数の LANGLC_CTYPE を調べます。より
       詳細についてはシステムのドキュメントを参照してください。シ
       ス テムの NLS を使わない場合には、シェルは ISO 8859-1 文字
       セットが使われていると仮定することでシミュレートします。変
       数 LANGLC_CTYPE のいずれかが設定されていても、それらの
       値を無視します。シミュレートされた NLS では順序づけに影 響
       しません。

       加 え て、本物とシミュレートされた NLS の両方で、\200-\377
       の範囲、つまり M-char でバインドされているすべての表示可能
       ビッ トモードを変更することはなく、ユーザによる 7/8 ビット
       モードの変更に従います。NLS 利用者 (またはメタキーを利用し
       たい利用者) は、たとえば ~/.login ファイルで適切に stty(1)
       コマンドを呼び出すことで、明示的に tty を 8 ビットモードに
       設定する必要があるかもしれません。

   OS B>固B>有B>機B>能B>のB>サB>ポB>ーB>ト (+)
       個々のオペレーティングシステムで提供されている機能をサポー
       トするために、多くの新しい組み込みコマンドが提供されていま
       す。すべてB>組B>みB>込B>みB>コB>マB>ンB>ドセクションで詳細に説明されていま
       す。

       TCF をサポートするシステム (aix-ibm370, aix-ps2)   で は、
       getspathsetspath でシステム実行パスを取得、設定し、
       getxverssetxvers で試験バージョンプリフィック ス を 取
       得、設定して、migrate でプロセスをサイト間で移動させます。
       組み込みコマンドの jobs は各ジョブが実行されているサイトを
       表示します。

       Domain/OS   では、inlib で共有ライブラリを現環境に追加し、
       rootnode で rootnode を変更し、ver で systype を変更 し ま
       す。

       Mach では、setpath が Mach の setpath(1) と等価です。

       Masscomp/RTU と Harris CX/UX では、universe で universe を
       設定します。

       Harris CX/UX では、ucbatt によって指定した universe で
       コマンドを走らせます。

       Convex/OS では、warp で universe を表示または設定します。

       環境変数の VENDOR, OSTYPE, MACHTYPE は、シェルが自身が実行
       されていると考えているシステムの、それぞれベンダー、オペレ
       ーティングシステム、マシンタイプ (マイクロプロセッサのクラ
       スまたはマシンのモデル) を表示します。これはいろいろなタイ
       プのマシン間でホームディレクトリを共有する場合に特に便利で
       す。利用者はたとえば各自の ~/.login 中で

           set path = (~/bin.$MACHTYPE /usr/ucb /bin /usr/bin  .)

       とし、各マシン用にコンパイルされた実行形式を適切なディレク
       トリに置くことができます。

       シェル変数の version は、どのオプションを選択してシェル が
       コンパイルされたかを表示します。

       組 み込みの newgrp、シェル変数の afsuserecho_style、そ
       してシステムに依存するシェルの入力ファイル (B>フB>ァB>イB>ル を 参
       照) の位置にも注意してください。

       時に HUP を子供たちに送りません。hup はシェルが終了時に 子
       供に HUP を送るようにし、nohup は子供が HUP を無視するよう
       に設定します。

   B>端B>末B>管B>理 (+)
       シェルは 3 つの異なる端末 (``tty'') モードの設定を使 い ま
       す。 それらは編集時に使う `edit'、文字リテラルをクォートす
       る場合に使う `quote'、コマンド実行時に使う  `execute'   で
       す。シェルは各モードでいくつかの設定を一定に保つので、 tty
       を混乱状態にして終了するコマンドがシェルに干渉することはあ
       り ません。シェルは tty のスピードとパディングの変更にも対
       応します。一定に保たれる tty モードのリストは組み 込 み の
       setty で取得、設定できます。エディタは CBREAK モード (また
       は同等のモード) を使いますが、先行入力された文字はいつでも
       受け付けられます。

       echotc, settc, telltc コマンドを使って、コマンドラインから
       端末のケーパビリティを操作、デバッグすることができます。

       SIGWINCH か SIGWINDOW をサポートするシステムでは、シェルは
       ウィ ン ドウのリサイズに自動的に適応して、環境変数の LINESCOLUMNS が設定されていれば値を補正します。環境 変 数 の
       TERMCAP が li# と co# のフィールドを含んでいると、シェルは
       新しいウィンドウサイズを反映するようにそれらを補正します。


参照

       このマニュアルの以下のセクションでは使用可能なすべてのB>組B>み
       B>込B>みB>コB>マB>ンB>ド、B>特B>別B>なB>エB>イB>リB>アB>ス、B>特B>別B>なB>シB>ェB>ルB>変B>数について説
       明します。

   B>組B>みB>込B>みB>コB>マB>ンB>ド
       %job    組み込みコマンド fg と同義です。

       %job &  組み込みコマンド bg と同義です。

       :       何もしません。常に成功します。

       @
       @ name = expr
       @ name[index] = expr
       @ name++|--
       @ name[index]++|--
               最初の形式は、すべてのシェル変数の値を表示します。

               2 番目の書式は、name に値 expr を設定します。 3 番
               目 の書式は、値 exprnameindex 番目の要素に
               定義します。 name とその index 番目の要素の両方 が
               既に存在していなければなりません。

               expr は C と同様に、`*', `+'のような演算子を含むこ
               とがあります。もし expr が `<', `>', `&', `' を 含
               むのであれば、少なくとも expr のその部分は `()' の
               引 数 がなければ、すべてのエイリアスを表示します。
               name を与えると、そのエイリアスの内容を表 示 し ま
               す。  namewordlist を与えると、 wordlistname のエイリアスとして定義します。 wordlist  は、
               エイリアスされるコマンドとファイル名です。 name は
               `alias' または `unalias' であってはなりません。 組
               み 込 み コマンド unalias についても参照してくださ
               い。

       alloc   動的に取得しているメモリのうちの使用量と空き容量を
               表示します。何らかの引数を与えるとブロックサイズご
               との使用中 / 空きブロックの数を表示します。この コ
               マ ン ドの出力はシステムによって大きく異なります。
               VAX 以外のシステムでは、異なるメモリ管理を行ってい
               るかもしれないからです。

       bg [%job ...]
               指定したジョブ (引数がなければ現在のジョブ) をバッ
               クグラウンドに移動します。もしそれらが停止していれ
               ば再開されます。job は以下の Jobs で説明するように
               番号、文字列、`', `%', `+', `-' で構成されます。

       bindkey [-l|-d|-e|-v|-u] (+)
       bindkey [-a] [-b] [-k] [-r] [--] key (+)
       bindkey [-a] [-b] [-k] [-c|-s]
               [--] key command (+) オプション無しでは、第 1 の形
               式ではバインドされているすべてのキーと編集コマンド
               を表示し、第 2 の形式では key にバインドされている
               編 集コマンドを表示し、第 3 の形式では編集コマンド
               commandkey にバインドします。オプションは以 下
               のものを含みます。

               -l  すべての編集コマンドの一覧と、それぞれの簡単な
                   解説を表示します。
               -d  デフォルトのエディタの標準キーバインドをすべて
                   のキーに適用します。
               -e  GNU Emacs に似たキーバインドをすべてのキーに適
                   用します。
               -v  標準の vi(1) に似たキーバインドをすべてのキ ー
                   に適用します。
               -a  代替キーマップを表示またはそのキーバインドを変
                   更します。代替キーマップは vi コマンドモードの
                   ものです。
               -b  key  を次のように解釈します。 ^character (たと
                   えば `^A')、C-character (たとえば `C-A') の よ
                   うなものはコントロールキャラクタ、 M-character
                   (たとえば `M-A')のようなものはメタキャラクタ、
                   F-string  ( たとえば `F-string')のようなものは
                   ファンクションキー、X-character (たとえば  `X-
                   A') のようなものは拡張プリフィックスキーです。
               -k  key は矢印キーの名 前、`down',  `up',  `left',
                   `right' のいずれかとして解釈されます。

               -u  (または何らかの無効なオプション)
                   使い方を表示します。

               key  は 1 文字であっても、文字列であっても構いませ
               ん。もしコマンドが文字列にバインドされている な ら
               ば、文字列の最初の文字は sequence-lead-in にバイン
               ドされ、文字列全体がコマンドにバインドされます。

               key に含まれるコントロール文字はコントロール文字そ
               の も の (通常 `^V' にバインドされているエディタの
               quoted-insert コマンドで入力できるもの) で あっ て
               も、`^A' のようなキャレット-文字形式であっても構い
               ません。削除文字は `^?' (キャレット-疑問符) のよう
               に 表 し ます。keycommand は下に示す、バックス
               ラッシュで始まるエスケープシーケンスを含むことがで
               き ま す  (System  V の echo(1) で用いられる形式で
               す)。

                   \a      ベル
                   \b      バックスペース
                   \e      エスケープ
                   \f      改ページ (フォームフィード)
                   \n      改行
                   \r      キャリッジリターン
                   \t      水平タブ
                   \v      垂直タブ
                   \nnn    8 進数 nnn で表されるアスキー文字

               `\' は後に続く文字に特別な意味があればそれを無効に
               します。特に `\' や `^' の場合です。

       break    実 行 を一番近い foreach または whileend の組
               の、end の後から再開します。現在の行の残りのコマン
               ドは実行されます。したがって、複数のレベルのブレー
               クは、1 行にそれらを並べることで可能になります。

       breaksw switch からのブレークで、endsw の後から実行が開 始
               されます。

       builtins (+)
               すべての組み込みコマンドの名前を表示します。

       bye (+) 組み込みコマンド logout の別名です。これが使えるよ
               うにコンパイルされている場合にのみ有効です。シェル
               変数 version を参照してください。

       case label:
               下で説明する switch 文で用いられるラベルです。

       cd [-p] [-l] [-n|-v] [name]
               もしディレクトリ名 name が与えられれば、シェルの作
               業ディレクトリを name に変更します。与えられなけれ

               シェル変数 implicitcd についても参照してください。

       chdir   組み込みコマンド cd の別名です。

       complete [command
               [word/pattern/list[:select]/[[suffix] /] ...]] (+)
               引数なしの場合は、すべての補完の候補を表示します。
               command   をつけると、command の補完候補を表示しま
               す。 commandword などをつけると、補完を定義 し
               ます。

               command はコマンドのフルネームでも、何らかのパター
               ンでも構いません (B>フB>ァB>イB>ルB>名B>置B>換を参照)。補完候 補
               がひとつでないことを示すために、`-' ではじめること
               ができます。

               word は現在の語の補完にどの単語が関係するのかを 指
               定するもので、以下のうちどれか 1 つです。

                   c    現在の語の補完。 pattern は、コマンドライ
                       ン上の現在の語にマッチするパターンでなけれ
                       ば なりません。 pattern は現在の語の補完が
                       完了すると無視されます。
                   C   c に似ていますが、現在の語の補完後に  pat-
                       tern を含みます。
                   n    次の語の補完。 pattern はコマンドライン上
                       のひとつ前の語にマッチするパターンでなけれ
                       ばなりません。
                   N   n に似ていますが、現在の語のふたつ前の語に
                       マッチするパターンでなければなりません。
                   p   位置に依存した補完。 pattern は数値の範 囲
                       を指定するものであり、シェル変数のインデッ
                       クスと同じ文法が用いられます。現在の語を含
                       むものでなければなりません。

               list  は以下のリストの中から可能な補完のリストを示
               します。

                   a       エイリアス
                   b       バインディング (編集コマンド)
                   c       コマンド (組み込みコマンドも外部コマン
                           ドも含みます)
                   C       指定されたパスではじまる外部コマンド
                   d       ディレクトリ
                   D       指定されたパスではじまるディレクトリ
                   e       環境変数
                   f       ファイル名
                   F       指定されたパスではじまるファイル名
                   g       グループ名
                   j       ジョブ
                   l       制限値

               select は glob パターンです (省略可能)。これを指定
               すると、list にある単語のうち select にマッチす る
               も のだけが対象となり、シェル変数 fignore は無視さ
               れます。最後の 3 つの補完形式には select パター ン
               を 与 えることはできません。また xlist-choices
               編集コマンドが用いられた時には select を説明メッセ
               ージとして扱います。

               suffix  は単一の文字で、補完が成功するとそのあとに
               追加されます。空の場合は何も追加されません。省略さ
               れ る と (この場合 4 番目のデリミタも省略できます)
               ディレクトリにはスラッシュ文字が、その他の文字には
               スペース文字が追加されます。

               ではいくつか例を示します。コマンドによっては、ディ
               レクトリのみを引数として取るものがあります。 (その
               ようなコマンドに対して) 通常ファイルを補完すること
               は、的外れです。

                   > complete cd 'p/1/d/'

               `cd' に続く最初の単語のみ (`p/1') をディレクトリで
               補 完します。コマンド補完を絞りこむために p-形式の
               補完を用いることもできます。 `cd' に続く最初の単語
               のみ (`p/1') をディレクトリで補完します。

                   > co[^D]
                   complete compress
                   > complete -co* 'p/0/(compress)/'
                   > co[^D]
                   > compress

               これは `co' で始まる (すなわち `co*' にマッチする)
               コマンド (位置 0 にある単語 `p/0') を補 完 し て、
               `compress' (リストにある唯一の単語) を与えたもので
               す。先頭にある `-' は、この補完がコマンドを確定 で
               きない場合にのみ用いられることを意味します。

                   > complete find 'n/-user/u/'

               こ れは n-形式の補完の例です。 `find' の後で、かつ
               `-user' の直後にある単語を、ユーザーのリストで補完
               します。

                   > complete cc 'c/-I/d/'

               c- 形 式の補完の例です。`cc' の後にあり、かつ `-I'
               ではじまる単語をディレクトリで補完します。ここでは
               小 文字の c を用いているので、 `-I' はディレクトリ
               の一部とはみなされません。

               man の例や、以下に示すいくつかの例では、 `p/*'  の
               代わりに `c/*' や `n/*' を用いることもできます。

               単語の補完を変数で行うこともできます。これらの変数
               は補完の際に評価されます。

                   > complete ftp 'p/1/$hostnames/'
                   > set hostnames = (rtfm.mit.edu  tesla.ee.cor-
                   nell.edu)
                   > ftp [^D]
                   rtfm.mit.edu tesla.ee.cornell.edu
                   > ftp [^C]
                   >  set hostnames = (rtfm.mit.edu tesla.ee.cor-
                   nell.edu uunet.uu.net)
                   > ftp [^D]
                   rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net

               また補完の際にコマンドを実行し、そこから補完を行う
               こともできます。

                   >  complete  kill  'p/*/`ps  |  awk   \{print\
                   \$1\}`/'
                   > kill -9 [^D]
                   23113 23377 23380 23406 23429 23529 23530 PID

               complete  コマンド自身は、その引数をクォートしませ
               ん。したがって `{print $1}' にある括 弧、 ス ペ ー
               ス、`$' は明示的にクォートしなければなりません。

               1   つのコマンドに複数の補完を指定することもできま
               す。

                   > complete dbx 'p/2/(core)/' 'p/*/c/'

               これは `dbx' の第 2 引数を `core' という単語で補完
               し、他のすべての引数をコマンドで補完します。位置指
               定タイプの補完は、逐次補完より前に指定することに注
               意してください。補完は左から右に評価されるので、 (
               常にマッチする) 逐次補完が先に指定されていると、位
               置指定補完は決して行われなくなってしまいます。これ
               は補完定義の際によくやるミスなので注意してく だ さ
               い。

               select   パ ターンは、コマンドが特定の形式を持った
               ファイルだけを引数にとるような場合に便利です。以下
               に例を示します。

                   > complete cc 'p/*/f:*.[cao]/'

               こ れ は  `cc' の引数を、`.c', `.a', `.o' で終わる
               ファイルだけから補完します。以下のB>フB>ァB>イB>ルB>名B>置B>換で
               述べるようなやり方でグロブパターンの否定を指定すれ
               方が異なり、補完対象のファイルを前置パス名が特定の
               も のに限ります。たとえば、メールプログラム Elm は
               `=' をユーザのメールディレクトリの省略名として用い
               ます。この場合 `elm -f =' を `elm -f ~/Mail/' であ
               るかのように補完するには

                   > complete elm c@=@F:$HOME/Mail/@

               とすべきです。ここでは `/' の代わりに `@' を用い、
               select  引数を見やすくしています。またホームディレ
               クトリの置換は単語の先頭でのみ動作するの で、  `~'
               の代わりに `$HOME' を用いています。

               suffix  は標準では用意されていないサフィックス (ス
               ペースやディレクトリに対する `/' 以外) を単語補 完
               用に追加するために用います。

                   > complete finger 'c/*@/$hostnames/' 'p/1/u/@'

               これは `finger' の引数を、まずユーザのリストから補
               完 し、 それに `@' を追加し、さらに `@' の後を変数
               `hostnames' のリストから補完します。ここでも補完指
               定の順序に注意してください。

               最後に、示唆に富む複雑な例を示しましょう。

                   > complete find \
                   'n/-name/f/' 'n/-newer/f/' 'n/-{,n}cpio/f/' \
                   'n/-exec/c/' 'n/-ok/c/' 'n/-user/u/' \
                   'n/-group/g/' 'n/-fstype/(nfs 4.2)/' \
                   'n/-type/(b c d f l p s)/' \
                   'c/-/(name newer cpio ncpio exec ok user \
                   group fstype type atime ctime depth inum \
                   ls mtime nogroup nouser perm print prune \
                   size xdev)/' \
                   'p/*/d/'

               こ れは `-name', `-newer', `-cpio', `ncpio' に続く
               単語をファイルで補完し (最後の両者にマッチするパタ
               ー ンに注意)、 `-exec', `-ok' に続く単語をコマンド
               で補完し、 `user' の後をユーザ名で、`group' の後を
               グループ名で補完し、 `-fstype' と `-type' の後をそ
               れぞれに与えたリストのメンバーで補完します。 ま た
               find   に 与えるスイッチ達も与えたリストから補完し
               (c-型の補完を用いていることに注意)、それ以外のもの
               すべてをディレクトリで補完します。ふぅ。

               補完指定は、対象となる単語がチルダ置換 (`~' ではじ
               まる) や変数 (`$' ではじまる) の場合は無視されるこ
               とに留意してください。 complete は実験的な機能であ
               り、文法はこのシェルの将来のバージョンでは変更され
               るかもしれません。組み込みコマンド uncomplete の説
               最 初 の形式はディレクトリスタックを表示します。ス
               タックの上が左に来て、スタック先頭のディレクトリは
               現在のディレクトリになります。 -l を指定すると、出
               力の `~' や `~name' は、 home や、ユーザ name のホ
               ー ム ディレクトリのパス名に明示的に展開されます。
               (+) -n を指定すると、エントリはスクリーンの終端 に
               達する前に桁折りされます。 (+) -v を指定すると、各
               エントリが 1 行に 1 つずつ表示され、スタック内部で
               の 位置がエントリの前に表示されます。 (+) -n-v
               がひとつ以上指定されると -v が優先されます。

               -S を指定した 2 番目の形式では、ディレクトリスタッ
               クを cdpushd からなるコマンド列として filename
               に保存します。 -L を指定すると、このシェルは file-
               name   を source します。このファイルは、以前に -S
               オプションや savedirs 機構で保存されたディレクトリ
               スタックです。いずれの場合でも、 filename が与えら
               れなければ dirsfile を用います。 dirsfile も指定さ
               れていなければ ~/.cshdirs を用います。

               ロ グインシェルは `dirs -L' と同様のことを起動時に
               行っており、また savedirs が設定されていれば終了前
               に  `dirs  -S'   と 同 様 の こ とを行います。通常
               ~/.tcshrc だけが ~/.cshdirs の前に source されるの
               で、  dirsfile~/.login ではなく ~/.tcshrc で設
               定すべきです。

               最後の形式はディレクトリスタックをクリアします。

       echo [-n] word ...
               各 word をスペースで区切り、改行で終端させてシェル
               の標準出力に書き出します。シェル変数 echo_style を
               指定すると、 BSD や System V の echo のフラグや エ
               スケープシーケンスをエミュレートする (しない) よう
               にできます。詳細は echo(1) を見てください。

       echotc [-sv] arg ... (+)
               arg で与えられた端末の機能 (termcap(5) を参照)  を
               実 行します。たとえば `echotc home' はカーソルをホ
               ームポジションに移動し、 `echotc cm 3 10' はカーソ
               ルを 3 列 10 行に移動し、 `echotc ts 0; echo "This
               is a test."; echotc fs' は "This is a test." を ス
               テータス行に表示します。

               arg  が `baud', `cols', `lines', `meta', `tabs' の
               いずれかであった場合は、その機能の値を表示し ま す
               ("yes"  または "no" は、端末がその機能を持っている
               かいないかを示します)。遅い端末でシェルスクリプ ト
               の出力をより寡黙にしたり、コマンドの出力をスクリー
               ンの行数に制限したりするような場合には、以下のコマ
               ンドを使うと良いでしょう。

               ラーをおこさずに空文字列を返します。 -v を指定する
               とメッセージが冗長になります。

       else
       end
       endif
       endsw   以下の foreach, if, switch, while 文の説明を見てく
               ださい。

       eval arg ...
               引数をシェルへの入力として扱い、残りのコマンドを現
               在のシェルのコンテキストで実行します。これは通常、
               コマンド置換や変数置換の結果として生成されたコマン
               ド列を実行する場合に用いられます。これはそれらの置
               換に先立って文法解析が行われてしまう た め で す。
               eval の利用例は tset(1) を見てください。

       exec command
               指 定 したコマンドを現在のシェルの代わりに実行しま
               す。

       exit [expr]
               指定した expr (B>式で解説した式) の値で (expr が指定
               されていなければ status 変数の値で) シェルを終了し
               ます。

       fg [%job ...]
               指定したジョブ (あるいは引数がなければ現在 の ジョ
               ブ) をフォアグラウンドに移動します。停止状態にある
               ものは再開します。 job にはB>ジB>ョB>ブで解説されてい る
               ように、数値、文字列、`', `%', `+', `-' のどれかを
               指定できます。 run-fg-editor 編集コマンドも見て く
               ださい。

       filetest -op file ... (+)
               ( B>フB>ァB>イB>ルB>問B>合B>わB>せB>演B>算B>子で解説されている) ファイル
               問合わせ演算子 op を各 file に適用し、結果をスペー
               ス区切りのリストで返します。

       foreach name (wordlist)
       ...
       end     wordlist  のメンバーを name に順々に代入し、これと
               対応する end に挟まれた範囲のコマンドシーケンス を
               実行します。 (foreachend は 1 行に単独で現れな
               ければなりません。) 組み込みコマンド continue を用
               いるとループを途中で継続することができ、組み込みコ
               マンド break を用いるとループを途中で終了させる こ
               と が できます。このコマンドが端末から読み込まれる
               と、一度ループを `foreach?' プロンプト (ある い は
               prompt2)  で読み込み、全体を読み終えてからループの
               各文を実行します。端末からの入力時にループの途中で
               タイプミスをした場合は修正できます。

       goto word
               word はファイル名と `label' 形式の文字列を出力する
               コマンド置換です。シェルは入力を可能なかぎりさかの
               ぼり、 `label:' 形式の行 (空白やタブが前置されてい
               ても良い) を検索し、その行の次から実行を継続 し ま
               す。

       hashstat
               内部のハッシュテーブルが、これまでのコマンド探索に
               どの程度効率的であったか (そして exec 類を使わずに
               済んだか) を示す統計行を表示します。 path の各成分
               のうち、ハッシュ関数がヒットの可能性があるとしたも
               の や、 `/' で始まらないものに対して exec が試みら
               れます。

               vfork(2) のないマシンでは、単にハッシュバケツの サ
               イズを表示します。

       history [-hTr] [n]
       history -S|-L|-M [filename] (+)
       history -c (+)
               最 初 の形式はイベントリストの履歴を表示します。 n
               を与えると、新しい方最大 n 個のイベントを表示ま た
               は保存します。 -h を指定すると、行頭の数字抜きでリ
               ストを表示します。 -T を指定すると、タイムスタンプ
               も コ メントのかたちで表示されます。 (これを用いる
               と、 `history -L' や `source -h' でのロードに適 し
               た ファイルが作成できます。) -r を指定すると、表示
               の順番がデフォルトの古い順ではなく新しい順になりま
               す。

               2 番目の形式で -S を指定すると、履歴リストを file-
               name に保存します。シェル変数 savehist の最初の 単
               語が数値に設定されていると、最大でその数値までの行
               数が保存されます。 savehist の 2 番 目 の 単 語 が
               `merge' だった場合には、履歴リストが現存の履歴ファ
               イルにマージされ、タイムスタンプ順にソートされます
               (デフォルトでは現存のファイルを置き換えます)。 (+)
               マージは X Window System のように、複数のシェル を
               同時に用いるような場合向けのものです。現在は、シェ
               ルが行儀良く順々に終了するような場合でないと、マー
               ジは成功しません。

               -L  を指定すると、シェルは filename を履歴リストに
               追加します。filename は以前に -S  オ プ ショ ン や
               savehist  機構で保存された履歴リストファイルです。
               -M-L と似ていますが、 filename の内容は履歴 リ
               ストにマージされ、タイムスタンプの順にソートされま
               す。いずれの場合でも、filename が与えられなけれ ば
               histfile  を用い、 histfile も設定されていなければ
               ~/.history を用います。 `history -L' はほ と ん ど
               `source -h' と同じですが、前者ではファイル名を省略

       hup [command] (+)
               command を指定すると、 hangup シグナルが送られたと
               きに終了するようにして command を実行し、シェル が
               終了するときにそのコマンドに hangup シグナルを送る
               ようにします。コマンドによっては hangup に対するそ
               れ ぞ れ独自の反応を設定することがあり、これは hup
               より優先されるかもしれません。引数を設定しないと (
               シェ ルスクリプト内部のみで許されます)、そのシェル
               は残りのスクリプトの途中で hangup シグナルを受け取
               ると終了するようになります。B>シB>グB>ナB>ルB>処B>理と組み込み
               コマンド nohup の部分も見てください。

       if (expr) command
               expr (B>式で解説した式) の評価結果が真なら、 command
               が 実行されます。 command に対する変数置換は、実行
               に先だって if コマンドの残りの部分と同時に行われま
               す。  command は単純なコマンドでなければならず、エ
               イリアス、パイプライン、(括弧で括られた / て い な
               い) コマンドリストは指定できません。ただし引数は指
               定できます。 expr が偽で、 command が実行されな い
               場 合 でも入出力リダイレクションは行われてしまいま
               す。これはバグです。

       if (expr) then
       ...
       else if (expr2) then
       ...
       else
       ...
       endif   指定した expr が真の場合、最初の else までのコマン
               ド 群が実行されます。 expr が偽で expr2 が真の場合
               は、 2 番目の else までのコマンド群が実行 さ れ ま
               す。 以下同じです。 else-if のペアはいくつでも指定
               できますが、 endif はひとつしかいりませ ん。 ま た
               else  部は省略可能です。 (elseendif の各単語は
               入力行の先頭にしか置けません。 if は入力行の先頭に
               単独で置くか、 else の後に置くかしなければなりませ
               ん。)

       inlib shared-library ... (+)
               各 shared-library を現在の環境に追加します。共有ラ
               イブラリを削除する方法はありません。 (Domain/OS の
               み)

       jobs [-l]
               アクティブなジョブをリストします。 -l を指定 す る
               と、通常の情報に加えてプロセス ID もリストします。
               TCF システムでは、各ジョブが実行されているサイトも
               表示します。

       kill -l  最初の形式は signal を (何も指定されなければ TERM
               が消費する資源が、指定した resource に対してプロセ
               スひとつにつき maximum-use を越えないよう に し ま
               す。  maximum-use を指定しないと、current limit が
               表示されます。 resource を指定しないと、すべての制
               限値を表示します。 -h フラグを指定すると、 current
               limit の代わりに hard limit を 用 い ま す。  hard
               limit   は  current  limit の限度を与えます。 hard
               limit はスーパーユーザーしか増やすことができません
               が、  current limit は一般ユーザも可能な範囲内で増
               減できます。

               現在制御できる資源は、 cputime (プロセスひとつにつ
               き 利 用 できる cpu 秒)、 filesize (作成できる単一
               ファイルの最大サイズ)、 datasize (プログラムテキス
               ト の 終端を越えて sbrk(2) で増やせるデータ領域+ス
               タック領域の最大サイズ)、 stacksize (自動的に拡 張
               されるスタック領域の最大サイズ)、 coredumpsize (生
               成されるコアダンプの最大サイズ)、 memoryuse (プ ロ
               セスひとつにいちどきに割り当てることのできる物理メ
               モリの最大サイズ)、です。

               maximum-use は浮動小数点値または整数値に、単位をつ
               け て指定します。 cputime 以外の制限値は、`k' また
               は `kilobytes' (1024 バイト) をデフォルトの単位 と
               しています。単位として `m' または `megabytes' を用
               いることもできます。 cputime のデフォルトの単位 は
               `seconds' です。分を表す `m', 時間を表す `h', 分 +
               秒を表す `mm:ss' の形式などを用いることも で き ま
               す。

               resource  も単位も、他と区別がつく範囲で後半部を省
               略可能です。

       log (+) シェル変数 watch を表示し、そこにリストアップさ れ
               ているユーザがログインしていればログインした時刻に
               関わらず報告します。 watchlog についても参照してく
               ださい。

       login    ロ グ イ ン シェ ル を終了して、/bin/login (訳注:
               FreeBSD では /usr/bin/login です) のインスタンスで
               置 き 換えます。これはログオフする方法のひとつであ
               りB>Ash(1) との互換性を保つ意味もあります。

       logout  ログインシェルを終了します。ignoreeof がセットされ
               ている場合に特に役立つでしょう。

       ls-F [-switch ...] [file ...] (+)
               `ls  -F'  と同じようにファイルのリストを表示します
               が、ずっと高速です。各種の特別なファイル形式は特殊
               文字を用いて以下のように示されます。

               /   ディレクトリ
               ちろん、シンボリックリンクを持つシステムでだ け で
               す)。

               @   ディレクトリでないものへのシンボリックリンク
               >   ディレクトリへのシンボリックリンク
               &   どこへのリンクでもないシンボリックリンク

               listlinks はシンボリックリンクの指し示すファイルが
               存在するパーティションのマウントを引き 起 こ す た
               め、ls-F を遅くしてしまいます。

               もしシェル変数 listfrags が `x', `a', `A' のいずれ
               かにセットされているか、それらの組合せ (たと え ば
               `xA') にセットされている場合は、これが `ls -xF' や
               `ls -Fa'、もしくは組み合わせて `ls -FxA' のよう に
               ls-F  のフラグとして使われます。`ls -C' がデフォル
               トでないマシンでは listflags が `x' を含む場合には
               ls -xF' のように、そうでなければ ls -F は `ls -CF'
               のように振舞います。 ls -F は、何らかのスイッチ が
               与 えられた場合には ls(1) に引数を渡すので、`alias
               ls ls-F' は通常、正しく動作します。

               組み込みの ls-F はファイルタイプや拡張子に よっ て
               ファ イ ル名を色分けすることができます。シェル変数
               color tcsh と環境変数 LS_COLORS を参照してく だ さ
               い。

       migrate [-site] pid|%jobid ... (+)
       migrate -site (+)
               最初の形式では指定したプロセスまたはジョブを、指定
               した場所もしくはシステムパスによって決定され る デ
               フォルトの場所に移動します。

               2 番目の形式は `migrate -site $$' と同じ意味を持ち
               ます。これは現在のプロセスを指定した場所に移動しま
               す。 シェルはその tty を失わないことになっているの
               で、シェル自身を移動することは予期しない動作の原因
               となります。(TCF のみ)

       newgrp [-] group (+)
               `exec newgrp' と同じ意味をもちますB>Bnewgrp(1) を参
               照してください。シェルがこれを使うことができるよう
               にコンパイルされている場合にのみ使用可能です。シェ
               ル変数 version を参照してください。

       nice [+number] [command]
               シェルのスケジューリング優先度を number に設定する
               か、  number が指定されていない場合は 4 に設定しま
               す。command をつけると、コマンド command を適切 な
               優先度で実行します。 number が大きいほど、そのプロ
               セスが獲得する CPU 時間は短くなります。スーパー ユ
               ーザは `nice -number ...' とすることにより負の値を

       notify [%job ...]
               ユーザに非同期的に指定したジョブ (%job が省略さ れ
               た場合はカレントジョブ) の状態に何らかの変化があっ
               た場合に非同期的に、通知するようにします。この場合
               は通常と異なり、次のプロンプトが出力されるまで待ち
               ません。 jobJobs に記述されているように番 号、
               文 字 列、`', `%', `+', `-' のどれでも許されます。
               シェル変数 notify も参照してください。

       onintr [-|label]
               割り込み時のシェルの動作を制御します。引数がなけれ
               ば、シェルのデフォルトの割り込み時の動作に設定され
               ます。この場合は、シェルスクリプトは割り込みで中断
               され、コマンド実行時はコマンドの実行を中断してコマ
               ンド入力待ちに戻ります。 `-' が指定された場合は す
               べ て の 割り込みが無視されます。 label を指定する
               と、割り込みが発生したり子プロセスが割り込みで中断
               したりした場合に `goto label' を実行します。

               onintr は、システムのスタートアップファイル (FILES
               を参照) で割り込みが禁止されている場合には無視され
               ます。

       popd [-p] [-l] [-n|-v] [+n]
               引数がなければ、ディレクトリスタックからひとつ値を
               取り出して、そこに移動します。`+n' のように数値 を
               与えると、ディレクトリスタックの n' 番目のエントリ
               を破棄します。

               また、すべての形式の popddirs のようにディレク
               トリスタックの最後のエントリを表示します。シェル変
               数 pushdsilent はこれを抑制し、 -p フラグによっ て
               pushdsilent の動作をオーバーライドすることができま
               す。 -l, -n, -v フラグは popd でも、dirs と同じ 意
               味をもちます。

       printenv [name] (+)
               す べての環境変数の名前と値を表示するか、name を与
               えた場合には環境変数 name の値を表示します。

       pushd [-p] [-l] [-n|-v] [name|+n]
               引数がなければ、ディレクトリスタックの一番上にある
               ふ た つのエントリを入れ換えます。もし pushdtohome
               がセットされていれば、引数なしの pushdcd の よ
               う に `pushd ~' を行います。 (+) name をつけると、
               現在の作業ディレクトリをディレクトリスタックに積ん
               で  name に移動します。もし name が `-' であれば、
               ひとつ前の作業ディレクトリとして解釈されます (B>フB>ァ
               B>イB>ルB>名B>置B>換を参照)。 (+) dunique がセットされていれ
               ば、pushd は、スタックに name を積む前にすべてのそ
               れ と 同じものを指すエントリをスタックから除去しま

       rehash  path 変数の示すディレクトリの内容を保持す る 内 部
               ハッシュテーブルを再構成します。これはログインして
               いる間に新しいコマンドが path の示すディレクトリに
               追加された場合に必要です。これはあなたが自分の個人
               的なディレクトリにコマンドを追加した場合か、システ
               ム管理者がシステムディレクトリの内容を変更した場合
               にのみ行われるべきです。このコマンドはまた、チルダ
               記号を用いたホームディレクトリ記述のキャッシュもフ
               ラッシュします。

       repeat count command
               指定されたコマンド commandcount 回繰り返し実行
               します。command に指定するものは一行 if 文で指定す
               る command と同様の制限を受けます。入出力リダイ レ
               クションは count が 0 であっても、必ず一回だけ処理
               されます。

       rootnode //nodename (+)
               ルートノードを //nodename に変更します。結果として
               `/'   は  `//nodename'   と し て 解 釈 されます。
               (Domain/OS のみ)

       sched (+)
       sched [+]hh:mm command (+)
       sched -n (+)
               最初の形式は、予定されているイベントのリストを表示
               し ます。シェル変数 sched は予定されているイベント
               のリストを表示する形式を設定するためにセットされま
               す。 3 番目の形式は command を予定されているイベン
               トのリストに追加します。たとえば、

                   > sched 11:00 echo It\'s eleven o\'clock.

               は、午前 11 時に `It's eleven o'clock.' を表示させ
               ま す。時間は 12 時間制の AM/PM を指定する書式でも
               構いません。

                   > sched 5pm set prompt='[%h] It\'s after 5; go
                   home: >'

               また、現在時刻からの相対的な時間でも構いません。

                   > sched +2:15 /usr/lib/uucp/uucico -r1 -sother

               相対的な指定では AM/PM を使うべきではありませ ん。
               3  番目の書式では n 番のイベントをリストから削除し
               ます。

                   > sched
                        1  Wed Apr  4 15:42  /usr/lib/uucp/uucico
                   -r1 -sother
                        2  Wed Apr  4 17:00  set prompt=[%h] It's

               ついても同様です。

               この仕組みはいくつかの Unix システムに実装されてい
               る at(1) に似ていますが同じではありません。指定 し
               た時刻通りにコマンドが実行できないことがあるのは非
               常に大きな短所です。しかし こ の 仕 組 み の 長 所
               は、sched はシェルから直接実行でき、シェル変数やそ
               の他の資源へのアクセスができるということです。これ
               は時刻によってユーザの作業環境を変化させることを可
               能にします。

       set
       set name ...
       set name=word ...
       set [-r] [-f|-l] name=(wordlist) ... (+)
       set name[index]=word ...
       set -r (+)
       set -r name ... (+)
       set -r name=word ... (+)
               1 番目の形式ではすべてのシェル変数の値を表示 し ま
               す。複数の単語からなる値を持つ変数は括弧で囲まれた
               値のリストとして表示します。 2 番目の形式では name
               に 空 文字列をセットします。 3 番目の形式では name
               に単一の単語 word をセットします。 4 番目の形式 で
               は namewordlist で示した単語のリストをセットし
               ます。すべての場合においてコマンド置換やファイル名
               置 換が値に対して行われます。-r が指定された場合に
               は、値は読み取り専用でセットされます。-f または -l
               が指定された場合には、単語リストの中での順番を保ち
               ながら重複した単語が取り除かれます。 -f は最初に出
               て きたものをリストに残し、-l は最後に出てきたもの
               をリストに残します。 5 番目の書式では変数 name  の
               index 番目の要素に word をセットします。この場合こ
               の要素は既に存在していなければなりません。 6 番 目
               の書式は読み取り専用にセットされているシェル変数の
               名前の一覧を表示します。 7 番目の書式は name  を、
               値 の 有無に関わらず読み取り専用にセットします。 8
               番目の書式は 3 番目の書式と同じですが、同時に name
               を読み取り専用にセットします。

               複数の変数をセットしたり、読み取り専用にセットする
               ためにひとつの set コマンドへの引数を繰り返すこ と
               ができます。しかし、変数への代入処理を開始する前に
               変数展開処理が一度に行われることに注意してく だ さ
               い。 ま た、`='  は namewordの両方と接している
               か、空白で区切られているかのどちらかであり、片方だ
               けと接してはいけないことに注意してください。組み込
               みコマンド unset についても参照してください。

       setenv [name [value]]
               引数がなければ、すべての環境変数の名前と値を表示し
               ます。 name を与えられた場合は、環境変数 name の値
               xn no' を行う必要があるかもしれません。

       setty [-d|-q|-x] [-a] [[+|-]mode] (+)
               シェ ルが変更してはならない tty モード (B>端B>末B>管B>理を
               参照) を制御します。 -d, -q, -xsetty に、そ れ
               ぞ れ `edit', `quote', `execute' 時の tty モードを
               セットします。 -d, -q, -x が指定され な い 場 合、
               `execute' が使用されます。

               他 の引数がなければ、setty はオン (`+mode') または
               オフ (`-mode') に固定されているモードを一覧表示 し
               ます。使用可能なモードはシステムごとに異なるため、
               表示も異なります。 -a をつけると、固定されているか
               ど うかにかかわらずすべての tty モードを一覧表示し
               ます。 +mode, -mode, mode は、それぞれモード  mode
               を オ ンに固定、オフに固定、非固定にします。たとえ
               ば、`setty +echok echoe' は `echok' をオンに 固 定
               し、 シェルがコマンドを実行する際に `echoe' モード
               をオンにしたりオフにしたりできるようにします。

       setxvers [string] (+)
               string に試験的なバージョンプリフィックスをセッ ト
               し、  string   が 省略された場合にはそれを削除しま
               す。(TCF のみ)

       shift [variable]
               引数がなければ、argv[1] を破棄してメンバを左にずら
               し ま す。 argv がセットされていなかったり、値が 1
               つもなかった場合にはエラーになります。変数名 vari-
               able  を指定すると、変数 variable に対して同じ動作
               を行います。

       source [-h] name [args ...]
               name からコマンドを読み取って実行します。コマン ド
               はヒストリリストには残されません。もし引数 args が
               与えられればそれは argv に入れられます。(+) source
               コマンドは入れ子にすることができます。もし入れ子の
               レベルがあまりに深くなり過ぎると、シェルはファイル
               記述子の不足を起こすでしょう。 source でのエラーは
               すべての入れ子になっている source の実行を停止しま
               す。  -h   を 付けると、コマンドを実行するかわりに
               `history -L' のようにヒストリリストに入力 さ れ ま
               す。

       stop %job|pid ...
               指定したバックグラウンドで実行されているジョブまた
               はプロセスを停止します。job は番号か、文字列か、あ
               る いはB>ジB>ョB>ブに示されている `', `%', `+', `-' のい
               ずれかを指定します。デフォルトの job は存在しな い
               ので、ただ `stop' を実行するだけではカレントジョブ
               を停止することにはなりません。

               連続的にマッチさせます。string にはそれに先だっ て
               コ マンド置換とファイル名置換が行われます。case ラ
               ベルには変数置換が行われ、ファイル名メタキャラクタ
               の  `*',  `?',  `[...]'   を用いることができます。
               `default' ラベルが出てくるまでにどの case ラベルと
               もマッチしなかった場合、default ラベルの後から実行
               が開始されます。各 case ラベルと default ラベル は
               行 の最初になければなりません。 breaksw コマンドは
               実行を中断して endsw の後か ら 再 開 さ せ ま す。
               breaksw  を使用しない場合は C 言語と同様に case ラ
               ベルや default ラベルを通過して実行が続け ら れ ま
               す。 もしマッチするラベルも default ラベルも存在し
               ない場合は、実行は endsw の後から再開されます。

       telltc (+)
               端末ケーパビリティのすべての値を一覧表 示 し ま す
               (termcap(5) を参照)。

       time [command]
               コマンド command (エイリアスやパイプライン、コマン
               ドリストや括弧でくくったコマンドリストでない単純な
               ものでなければなりません) を実行し、変数 time の項
               で説明する形式で、実行所用時間に関する要約を表示し
               ます。必要ならば、コマンド終了時に時間を表示するた
               めの追加のシェルが生成されます。command を指定しな
               かった場合は、現在のシェルとその子プロセスが使用し
               た時間に関する要約が表示されます。

       umask [value]
               8 進数で指定されたファイル作成マスクを value に 設
               定します。一般的なマスクの値としては、グループにす
               べての権限を与え、その他には読み取りと実行のみを許
               可 する 002 や、グループとその他に読み取りと実行を
               許可する 022 があります。 value を省略すると、現在
               のファイル作成マスクを表示します。

       unalias pattern
               パ ターン pattern にマッチするすべてのエイリアスを
               削除します。したがって `unalias *' とすることで す
               べ てのエイリアスを削除できます。 unalias するもの
               がなかった場合もエラーにはなりません。

       uncomplete pattern (+)
               パターン pattern にマッチするすべての補完対象を 削
               除します。したがって `uncomplete *' とすることです
               べての補完対象を削除します。 uncomplete するものが
               なかった場合もエラーにはなりません。

       unhash  実行プログラムの検索を高速化する内部ハッシュテーブ
               ルの使用を禁止します。

       universe universe (+)
               めてすべての変数が削除されますが、これは良いことで
               は ありません。 unset するものがなかった場合もエラ
               ーにはなりません。

       unsetenv pattern
               パターン pattern にマッチするすべての環境変数を 削
               除します。したがって `unsetenv *' とすることによっ
               てすべての環境変数を削除することができますが、これ
               は良いことではありません。 unsetenv する環境変数が
               なかった場合もエラーにはなりません。

       ver [systype [command]] (+)
               引数が与えられなかった場合は SYSTYPE を表 示 し ま
               す。  systype を指定した場合は、SYSTYPEsystype
               に設定します。systype とコマンド command を指定 し
               た場合は、systypecommand を実行します。systype
               は `bsd4.3'  か  `sys5.3'   の い ず れ か で す。
               (Domain/OS のみ)

       wait    すべてのバックグラウンドジョブの終了を待ちます。対
               話的にシェルが実行されている場合、割り込みに よ り
               wait  を停止することができます。この際シェルはまだ
               終了していないすべてのジョブの名前とその番号を表示
               します。

       warp universe (+)
               universe   を universe に設定します。(Convex/OS の
               み)

       watchlog (+)
               組み込みコマンド log の別名です (そちらも参照)。コ
               ンパイル時に使用できるように設定されている場合にの
               み使用可能です。シェル変数 version を参照してく だ
               さい。

       where command (+)
               コ マンド command について、エイリアスや組み込みコ
               マンド、 path にある実行可能ファイルを含めてシェル
               の知っているすべての実体を一覧表示します。

       which command (+)
               コ マ ンド command が、path の検索などの処理のあと
               で、実際に実行されるコマンドを表示します。組み込み
               のものは which(1) とほとんど同じですが、 tcsh のエ
               イリアスや組み込みコマンドついても正しく報告し、ま
               た 10 から 100 倍高速です。編集コマンド which-com-
               mand についても参照してください。

       while (expr)
       ...
       end     指定された式 expr (B>式で述べられている式) の評価 結
               果が 0 でない限り、while とそれに対応する end の間

       cwdcmd  作業ディレクトリが変更されるたびに実行されます。た
               とえば、ユーザが X Window System 上で作業 し て い
               て、 xterm(1) および twm(1) のように、タイトルバー
               をサポートしているリペアレントウインドウマネージャ
               を使用していて、

                   >  alias  cwdcmd   'echo -n "^[]2;${HOST}:$cwd
                   ^G"'

               を実行すると、シェルは、動作中の xterm(1) のタイト
               ルをホスト名、コロン、そしてカレント作業ディレクト
               リのフルパスに変更します。これをもっと面白く実行す
               るには、次のようにします。

                   >       alias       cwdcmd       'echo      -n
                   "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"'

               こうすると、ホスト名および作業ディレクトリはタイト
               ルバーに変更されますが、アイコンマネージャのメニュ
               ーにはホスト名しか表示されなくなります。

               cwdcmd 中に cd, pushd あるいは popd を置くと、無限
               ループを引き起こす可能性があることに注意してくださ
               い。そういうことをする人は、そうしてしまった代償は
               受けるものだというのが作者の見解です。

       helpcommand
               run-help  編集コマンドが実行します。ヘルプが探すコ
               マンド名は、単一の引数として渡されます。たとえば、

                   > alias helpcommand '\!:1 --help'

               とすると、GNU のヘルプ呼び出し方法を使った、コマン
               ドそのもののヘルプ表示が実行されます。現在の と こ
               ろ、たくさんのコマンドを書いたテーブルを使う以外に
               は、いろいろな呼び出し方法 (たとえば、Unix の `-h'
               オプション)を使い分ける簡単な方法はありません。

       periodic
               tperiod 分おきに実行されます。このエイリアスは、た
               とえば新しいメールが届いたというような、日常的では
               あってもそれほど頻繁には起こらない変更点をチェック
               するのに便利な手段を提供します。たとえば、

                   > set tperiod = 30
                   > alias periodic checknews

               とすると、30 分おきに checknews(1) プログラムが 起
               動します。 periodic が設定されているが、tperiod が
               設定されていないかあるいは 0 に設定されて い る 場
               合、periodicprecmd のように振る舞います。

               とすると、vi foo.c を実行すると xterm のタイトルバ
               ーにこのコマンド文字列が書かれます。

       shell   スクリプト中でインタプリタを指定していない実行可能
               スクリプト用のインタプリタを指定します。最初の単語
               は、使用したいインタプリタへのフルパスでなくてはな
               り  ま  せ  ん   (  た  と  え ば、`/bin/csh'   や
               `/usr/local/bin/tcsh')。

   B>特B>別B>なB>シB>ェB>ルB>変B>数
       このセクションで述べる変数は、シェルにとっては特別な意味の
       あるものです。

       シェ ル は、起動時に次の変数を設定します。addsuffix, argv,
       autologout, command, echo_style, edit, gid,  group,  home,
       loginsh,  oid,  path,  prompt,  prompt2,  prompt3,  shell,
       shlvl, tcsh, term, tty, uid, user そして version です。 こ
       れ ら の変数は、起動後はユーザが変更しない限り変更されませ
       ん。シェルは、必要があれば、cwd, dirstack, owd および sta-
       tus を更新し、ログアウト時に logout を設定します。

       シェ ル は、 シェル変数 afsuser, group, home, path, shlvl,
       term および user と同名の環境変数との同期を取ります。つ ま
       り、環境変数が変更されると、シェルは対応するシェル変数を合
       致するように変更するのです (シェル変数が読み込み専用でない
       場合です)。また、その逆も行います。ここで、cwdPWD は同
       じ意味を持ちますが、この方法では同期は行われないということ
       に 注意してください。また、シェルは、自動的に pathPATH
       の違った形式を相互変換するということにも注意してください。

       addsuffix (+)
               これが設定されている場合、ファイル名が補完の際に完
               全に一致するときに、一致したものがディレクトリの場
               合 には末尾に `/' を付け加え、通常のファイルの場合
               には末尾にスペースを加えます。デフォルトで設定され
               ています。

       afsuser (+)
               こ れ が設定されている場合、autologout の autolock
               機能は、ローカルのユーザ名の代わりにこの値を  ker-
               beros 認証用に使います。

       ampm (+)
               こ れ が 設 定されている場合、時刻が 12 時間単位の
               AM/PM フォーマットですべて表示されます。

       argv    シェルへの引数です。位置パラメータは argv から取ら
               れ ます。すなわち、`$1' は `$argv[1]' に置き換えら
               れるといった具合です。デフォルトで設定されています
               が、通常対話型シェルでは空です。

       autocorrect (+)
       autologout (+)
               1 番目の単語は、時間を分単位で表しており、この時間
               以上の間、何の処理もしていなければ自動的にログアウ
               トされます。2 番目の単語はオプションであり、ここで
               指定された時間以上の間、何の処理もしていなければ自
               動ロックがかかります。シェルが自動的にログアウトす
               る 際には、シェルは `auto-logout' と出力し、logout
               変数を `automatic' に設定し、そして終了 し ま す。
               シェルが自動的にロックされたユーザは、作業を続けた
               いなら自分のパスワードを入力することが必要になりま
               す。5   回入力に失敗すると、自動的にログアウトしま
               す。ログインシェルおよびスーパユーザのシェルでは、
               デ フォ ル トで `60'(60 分後自動的にログアウトし、
               ロックはかけない) に設定されています。しかし、シェ
               ルがウインドウシステムのもとで動いていると認識した
               場合 (すなわち、DISPLAY 環境変数が設定されてい る)
               や、  tty   が疑似 tty(pty) である場合、あるいは、
               シェルがそのようにはコンパイルされてい な い 場 合
               (version   シェ ル変数を参照) には設定されません。
               afsuser および logout シェル変数も参照してく だ さ
               い。

       backslash_quote (+)
               こ れ が設定されている場合、バックスラッシュ (`\')
               は常に `\', `'', および `"' でクォートされます。こ
               れによって、複雑なクォートをする手間が緩和されます
               が、 csh(1) スクリプト中で文法エラーをひき起こす可
               能性が出てきます。

       catalog メッセージカタログのファイル名です。これが設定され
               ている場合、デ フォ ル ト の  `tcsh'   の 代 り に
               `tcsh.${catalog}'   を、 メッ セージカタログとして
               tcsh は使用します。

       cdpath  カレントディレクトリ中にサブディレクトリが見つから
               なかった場合に、 cd が探索すべきディレクトリのリス
               トです。

       color   これが設定されている場合、組み込みコマンド ls-F 用
               の カラー表示を有効にし、--color=autols に渡し
               ます。あるいは、ただ 1 つのコマンドに対してカラ ー
               表 示を有効にするため、ls-F または ls のみに設定す
               ることができます。何に対しても設 定 し な い 場 合
               は、(ls-F ls) に対して設定したのと等価です。

       colorcat
               これが設定されている場合は、NLS メッセージファイル
               に対してカラー用エスケープシーケンスを有効に し ま
               す。 これによって、色のついた NLS メッセージが表示
               されます。

       command (+)
               にコマンドを開始しません。

       continue_args (+)
               continue と同じですが、シェルは次のコマンドを実 行
               します:

                   echo `pwd` $argv > ~/.<cmd>_pause; %<cmd>

       correct (+)
               `cmd' に設定されている場合、コマンドは自動的にスペ
               ル訂正されます。 `complete' に設定されている場合、
               コ マンドは自動的に補完されます。 `all' に設定され
               ている場合、コマンドライン全体が訂正されます。

       cwd     カレントディレクトリのフルパス名です。シェル 変 数
               dirstack および owd も参照してください。

       dextract (+)
               こ れが設定されている場合、`pushd +n' はディレクト
               リを先頭に持っていくのではなく、ディレクトリスタッ
               クから n 番目のディレクトリを取り出します。

       dirsfile (+)
               `dirs  -S' および `dirs -L' がヒストリファイルを探
               すデフォルトの場所です。設 定 し て い な い 場 合
               は、~/.cshdirs  が使われます。通常、~/.tcshrc の方
               が ~/.cshdirs よりも先にソースとして使 わ れ る た
               め、dirsfile  は、~/.login ではなく ~/.tcshrc 中で
               設定すべきです。

       dirstack (+)
               ディレクトリスタック上の全ディレクトリの配列です。
               `$dirstack[1]'   は カ レ ン ト ディ レ クトリであ
               り、`$dirstack[2]' はスタック上の最初のディレク ト
               リ と いっ た 具 合 で す。 カレントディレクトリは
               `$dirstack[1]' ですが、ディレクトリスタックの置 換
               で は  `=0'   であるなどということに注意してくださ
               い。dirstack を設定することでスタックを任意に変 更
               することができますが、最初の要素 (カレントディレク
               トリ) は常に正しいものになります。シェル変 数  cwd
               および owd も参照してください。

       dspmbyte (+)
               `euc' に設定されている場合、EUC-kanji(Japanese) コ
               ードで表示および編集ができるよ う に な り ま す。
               `sjis'   に設定されている場合、Shift-JIS(Japanese)
               コードで表示および編集ができるようになります。次の
               ようなフォーマットに設定されている場合、独自のマル
               チバイトコードフォーマットで表示および編集ができる
               ようになります:

                   > set dspmbyte = 0000....(256 bytes)....0000

                 使用例:
               `001322' に設定した場合、最初 の 文 字  ( す な わ
               ち、ASCII   コードで 0x00) と 2 番目の文字 (すなわ
               ち、ASCII コードで 0x01) は `0' に設定されます。つ
               まり、マルチバイト文字に対してはこれらの文字は使用
               しません。 3 番目の文字 (0x02) は `2' に設定されま
               す。 これは、マルチバイト文字の最初の 1 バイトにこ
               の文字が使用されることを表しています。 4 番目の 文
               字  (0x03) は `3' に設定されます。この文字は、マル
               チバイト文字の 1 バイト目にも 2 バイト目にも使用さ
               れます。 5 番目および 6 番目の文字 (0x04, 0x05) は
               `2' に設定されます。これは、これらの文字がマルチバ
               イ ト文字の 2 バイト目に使用されることを表していま
               す。

               GNU fileutils バージョンの ls では、-N ( --literal
               ) オプションがついていないとマルチバイト文字のファ
               イル名を表示できません。もし、fileutils バージョン
               を 使っ て い る場合は、dspmbyte の 2 番目の文字を
               "ls" に設定してください。そうしないと、た と え ば
               "ls-F -l" でマルチバイト文字のファイル名が表示でき
               ません。

       dunique (+)
               これが設定されている場合、pushd は、ディレクトリ名
               をスタックに置く前に name である任意の要素をスタッ
               クから削除します。

       echo    これが設定されている場合、各コマンドは、実行される
               直前に引数と一緒にエコーされます。組み込みコマンド
               以外のコマンドについては、展開がすべて行われた後に
               エコーされます。組み込みコマンドについては、コマン
               ドおよびファイル名の置換が行われるよりも前にエコー
               されます。これは、置換がユーザの選択によって行われ
               るものだからです。このシェル変数は、コマンドライン
               オプション -x で設定されます。

       echo_style (+)
               echo  組み込みコマンドのスタイルです。次のように設
               定できます。

               bsd     第 1 引数が `-n' である場合、改行をエコ ー
                       しません。
               sysv    echo  中の文字列のバックスラッシュで始まる
                       エスケープシーケンスを認識します。
               both    `-n' フラグとバックスラッシュで始まるエ ス
                       ケープシーケンスの両方ともを認識します。こ
                       れがデフォルトです。
               none    どちらも認識しません。

               デフォルトでは、ローカルシステムのデフォルトに設定
               さ れます。 BSD ならびに System V オプションは、適

       fignore (+)
               補完する際に無視されるファイル名のサフィックスリス
               トです。

       filec   tcsh  では補完は常に行われますので、この変数は無視
               されます。 csh で設定されている場合は、ファイル 名
               の補完が使われるようになります。

       gid (+) ユーザの実グループ ID です。

       group (+)
               ユーザのグループ名です。

       histchars
               B>ヒB>スB>トB>リB>置B>換 (そちらも参照) で使われる文字を決定す
               る文字列です。この値の最初の文字は、デフォル ト の
               `!'  の代わりにヒストリ置換文字として使われます。2
               番目の文字は、クイック置換の際の文字 `^' の代わ り
               をします。

       histdup (+)
               ヒストリリスト中の重複エントリの扱いを制御します。
               この値が `all' に設定されている場合、単一のヒス ト
               リ イ ベントがヒストリリストに入力されます。`prev'
               に設定されている場合、最後のヒストリイベントは現在
               のコマンドと同じとなり、そのため、現在のコマンドは
               ヒストリには入力されません。`erase' に設定されてい
               る場合、ヒストリリスト中に同じイベントが見つかった
               ときには、古い方のイベントは消去され、現在のものが
               挿 入されます。 `prev' および `all' オプションはヒ
               ストリイベントの番号づけをやり直しますので、すき間
               はあかないのだということに注意してください。

       histfile (+)
               `history  -S'   および `history -L' が探すヒストリ
               ファイルのデフォルトの場所です。これが設定されてい
               な い場合、~/.history が使われます。別々のマシン間
               で同じホームディレクトリを共有していたり、端末ごと
               にヒストリを分けて保存していたりする場合、histfile
               は便利なものです。通常、~/.history ファイルより も
               前 に 読み込まれるのは ~/.tcshrc だけなので、hist-
               file~/.login ではなく、~/.tcshrc で設定してくだ
               さい。

       histlit (+)
               これが設定されている場合、組み込みコマンド、編集コ
               マンドおよび savehist 機構はヒストリリスト中のコマ
               ン ド 行 を 文字通りの (展開しない) 形式で使用しま
               す。toggle-literal-history 編集コマンドも参照し て
               ください。

       history 最初の単語は、記録しておくべきヒストリイベント数を
               ド (通常は、ユーザが空行に `~D' を打つことで生成さ
               れます) を入力すると、シェルは終了してしまう代わり
               に  `Use "exit" to leave tcsh.' と表示します。これ
               によって、シェルがうっかり kill されてしまうのを防
               ぐ ことができます。番号 n を設定している場合には、
               シェルは n - 1 回連続した end-of-file を無視し、 n
               回 目 の  end-of-file   があればそのときに終了しま
               す。(+) これが設定されていない場合には、`1' が使わ
               れます。つまり、シェルは `^D' 1 回で終了します。

       implicitcd (+)
               これが設定されている場合、シェルは、コマンドとして
               入力されたディレクトリ名を、あたかもそのディレクト
               リへ移動する要求であるものと解釈します。verbose に
               設定されている場合、ディレクトリの移動が行われるこ
               とが標準出力にエコーされるようになります。この振る
               舞いは、非対話的なシェルスクリプト、あるいは 2  語
               以上あるコマンド行では禁止されています。ディレクト
               リを移動するのは、ディレクトリ名のような名前を持っ
               たコマンドを実行するよりも優先されますが、エイリア
               スの置換よりは後になります。チルダおよび変数の展開
               も動作します。

       inputmode (+)
               `insert'   あるいは `overwrite' に設定されている場
               合、各行の先頭でエディタが入力モードに入るようにな
               ります。

       listflags (+)
               `x',  `a',  `A'   あ る いはこれらの組合せ (たとえ
               ば、`xA') に設定されている場合、これらの値は、ls-F
               へ の フ ラグとして使われ、`ls -xF', `ls -Fa', `ls
               -FA' あるいはこれらの組合せ (たとえば、`ls  -FxA')
               の よ う に振る舞うようになります。 `a' はすべての
               ファイルを表示します (たとえ、`.' で始まるファイル
               であっても)。`A' は `.' および `..' 以外のファイル
               すべてを表示し、 `x' は上から下に向かって で は な
               く、 左から右に向かってソートします。 listflags に
               2 番目の単語が設定されていれば、それは `ls(1)'  へ
               のパスとして使われます。

       listjobs (+)
               これが設定されていれば、ジョブが一時停止したときに
               すべてのジョブがリストされます。`long' に設定さ れ
               ていれば、リストは長い形式のものになります。

       listlinks (+)
               これが設定されていれば、組み込みコマンド ls-F は各
               シンボリックリンクが指しているファイルの種類を表示
               します。

       listmax (+)
               が、 自 動 ログアウトの前には `automatic' が、そし
               て、シェルがハングアップシグナルによって終了させら
               れた場合 (B>シB>グB>ナB>ルB>のB>扱B>いを参照) には `hangup' が設
               定されます。 autologout シェル変数も参照してくださ
               い。

       mail    届けられるメールをチェックするためのファイルあるい
               はディレクトリ名です。これは、スペースで区切られ、
               オプションで数字を前につけます。プロンプトを出す前
               に、最後にメールチェックをしてから 10 分経っていた
               場合、シェルは各ファイルをチェックし、もしファイル
               サイズが 0 より大きいか、あるいはアクセス時刻よ り
               も 変 更時刻の方が大きかった場合には `You have new
               mail.'  (あるいは、mail に複数のファイルが含まれて
               い た場合、 `You have new mail in name.') と表示し
               ます。


               ログインシェルにいる場合には、シェルの起動時刻後に
               ファイルが変更されない限り、どのメールファイルも報
               告されません。これは、余計に通知しないようにするた
               め です。大部分の login プログラムでは、ログイン時
               にメールが届いているかどうかを教えてくれるも の で
               す。

               mail   で 指定されたファイルがディレクトリである場
               合、シェルは、ディレクトリ中の各ファイルを別 々 の
               メッ セージとして計算し、 `You have n mails.' とか
               `You have n mails in name.'  とかと適切に報告し ま
               す。この機能は、主に Andrew Mail System のように、
               メールをこの方式で保存するシステム用に提供されたも
               のです。

               mail   の 最初の単語が数値である場合、それはメール
               チェックの間隔を変えるものとして受け取られます。秒
               単位です。

               と て も 稀 な状況下ですが、シェルが `You have new
               mail.' ではなく `You have mail.' と報告すること が
               あります。

       matchbeep (+)
               こ れが `never' に設定されている場合、補完が行われ
               てもビープ音は鳴りません。 `nomatch' に設定され て
               いる場合、マッチするものがないときにのみビープ音が
               鳴ります。 `ambiguous' に設定されている場合、 マッ
               チ す る も のが複数あるときにビープ音が鳴ります。
               `notunique' に設定されている場合、完全にマッチする
               も のが 1 つあり、また、それとは別にもっと長くマッ
               チするものがあったときにビープ音が鳴ります。これが
               設定されていない場合、`ambiguous' が使われます。

       noglob   こ れが設定されている場合、B>フB>ァB>イB>ルB>名B>置B>換および、
               B>デB>ィB>レB>クB>トB>リB>スB>タB>ッB>クB>置B>換 (そちらも参照) が禁止され
               ます。この機能は、ファイル名を扱わないシェルスクリ
               プトや、ファイル名のリストを取得した後、さらに展開
               をされたくないスクリプトには最も有効なものです。

       nokanji (+)
               これが設定されており、シェルが漢字をサポートしてい
               る場合 (シェル変数 version を参照)、漢字のサポート
               を無効にし、メタキーが使えるようにします。

       nonomatch
               これが設定されている場合、B>フB>ァB>イB>ルB>名B>置B>換およびB>デB>ィ
               B>レB>クB>トB>リB>スB>タB>ッB>クB>置B>換 (そちらも参照) の際に、存在す
               るファイルにマッチしなかったときに、エラーを出さず
               にそのまま放置するようになります。置換が機能しない
               と き に は 相 変 わ ら ずエラーになります。たとえ
               ば、`echo [' は相変わらずエラーとなります。

       nostat (+)
               補完処理が行われている間に stat(2) をかけるべき で
               はないディレクトリのリスト (あるいは、ディレクトリ
               にマッチするグロブパターンです。B>フB>ァB>イB>ルB>名B>置B>換を参
               照) です。この機能はB>Astat(2) を実行するととてつも
               ない時間がかかってしまうようなディレクトリ、たとえ
               ば /afs などを除外するのに通常使われます。

       notify  これが設定されている場合、シェルはジョブが完了した
               ことを非同期に通知します。デフォルトは、プロンプト
               が表示される直前にジョブの完了を提示します。

       oid (+) ユーザの実組織 ID です (Domain/OS のみです)。

       owd (+) 前の作業ディレクトリで、cd が使う `-' および pushd
               と等価です。 cwd および dirstack シェル変数も参 照
               してください。

       path    実行可能なコマンドを探すディレクトリのリストです。
               null 文字はカレントディレクトリを示しま す。  path
               変 数 がない場合、フルパス名での指定のみ実行されま
               す。 path は、起動時にシェルが環境変数 PATH から設
               定するか、あるいは PATH が存在しなかった場合には、
               シ ス テ ム 依 存 の デ フォ ル ト、 た と  え  ば
               `(/usr/local/bin /usr/bsd /bin /usr/bin .)' のよう
               なものに設定します。シェルは、`.' を path の先頭あ
               るいは末尾に置くことができ、また、コンパイルの仕方
               に依存しますが、 `.' を完全に省いてしまうことも で
               き ます。-c, -t オプションのどちらも与えられていな
               いシェルは、~/.tcshrc を読み込んだ後および path が
               リセットされるたびにディレクトリの中身をハッシュに
               格納します。シェルがアクティブである間に、ユーザが
               path  中のディレクトリに新しいコマンドを追加した場
               %~  カレント作業ディレクトリですが、`~' で表現され
                   る ユーザのホームディレクトリおよび `~user' で
                   表現される他のユーザのホームディレクトリをB>フB>ァ
                   B>イ B>ル B>名 B>置B>換します。 `~user' の置換は、現在の
                   セッションにおいて、シェルがパス名 に  `~user'
                   を使っている場合にのみ起こります。
               %c[[0]n], %.[[0]n]
                   現在の作業ディレクトリの、末尾の要素です。数字
                   n が指定されている場合、末尾の n 個の 要 素 で
                   す。 n が `0' で開始する場合、スキップされた要
                   素数が末尾要素の前に付き、次の書式となり ま す
                   `/< ス キッ プ さ れた数>末尾要素'。シェル変数
                   ellipsis が設定されている場合、スキップされ た
                   要 素 は省略記号で置換されますので、全体的には
                   `...末尾要素' となります。 `~' 置換は、前述 の
                   `%~' と同様に行われますが、 `~' 要素は、末尾要
                   素数を数える対象からは除外されます。
               %C  %c に似ていますが、`~' の置換を行いません。
               %h, %!, !
                   現在のヒストリイベント番号です。
               %M  完全なホスト名です。
               %m  最初の `.' までのホスト名です。
               %S (%s)
                   強調表示モードを開始 (終了) します。
               %B (%b)
                   ボールド体表示モードを開始 (終了) します。
               %U (%u)
                   アンダラインモードを開始 (終了) します。
               %t, %@
                   AM/PM の 12 時間表記での時刻です。
               %T  `%t' に似ていますが、こちらは 24 時間表記で す
                   (ただし、シェル変数 ampm も参照)。
               %p   秒 まで含めた、AM/PM の 12 時間表記での `正確
                   な' 時刻です。
               %P  `%p' に似ていますが、こちらは 24 時間表記で す
                   (ただし、シェル変数 ampm も参照)。
               \c  cbindkey 中にあるものとしてパースされま
                   す。
               ^c  cbindkey 中にあるものとしてパース さ れ ま
                   す。
               %%  `%' 1 つです。
               %n  ユーザ名です。
               %d  `Day' 形式の曜日。
               %D  `dd' 形式の日にち。
               %w  `Mon' 形式の月。
               %W  `mm' 形式の月。
               %y  `yy' 形式の年。
               %Y  `yyyy' 形式の年。
               %l  シェルの tty。
               %L  プロンプトの終わりから、ディスプレイの終わりま
                   たは行末までクリアします。
               %$  `$' の直後のシェル変数または環境変数を展開しま

               `%B', `%S', `%U', `%{string%}' は、 8bit クリー ン
               な シェルでのみ利用できます。 version シェル変数を
               参照してください。

               ボールド、スタンドアウト、下線といったシーケ ン ス
               は、スーパーユーザのシェルを区別するために使われる
               ことが多いです。たとえば、

                   > set prompt =  "%m  [%h]  %B[%@]%b  [%/]  you
                   rang? "
                   tut [37] [2:54pm] [/usr/accts/sys] you rang? _

               `%t', `%@', `%T', `%p', `%P' のどれかが使われて い
               て、 か つ  noding  が設定されていなければ、毎正時
               (`:00' 分) には実際の時刻の代わりに `DING!' を表示
               します。

               対話的シェルでのデフォルトは `%# ' です。

       prompt2 (+)
               while   ループや foreach ループの中で、また `\' で
               終った行の次の行で、プロンプトとして用いられる文字
               列。  prompt (そちらも参照) と同じフォーマットシー
               ケンスが使えます。 `%R' の意味が変わることに注意し
               て ください。対話的シェルでのデフォルトは `%R?' で
               す。

       prompt3 (+)
               自動スペル訂正の確定時のプロンプト文字列。  prompt
               ( そちらも参照) と同じフォーマットシーケンスが使え
               ます。 `%R' の意味が変わることに注意してください。
               対 話 的 シェ ル で の デ フォ ル トは `CORRECT>%R
               (y|n|e|a)?' です。

       promptchars (+)
               (2 文字の文字列に) 設定すると、prompt シェル変数中
               の `%#' フォーマットシーケンスが、普通のユーザでは
               最初の文字で、スーパーユーザでは 2 番目の文字で 置
               き換えられます。

       pushdtohome (+)
               設 定すると、引数をとらない pushd は、 cd のように
               `pushd ~' を実行します。

       pushdsilent (+)
               設定すると、pushdpopd の際にディレクトリスタッ
               クが表示されなくなります。

       recexact (+)
               設定すると、補完の際に正確なマッチがあれば、より長
               いマッチが可能な場合でも、正確なほうに補完します。
               に隠れたり、また再度現れたりします。 (左側の) プロ
               ンプト、コマンド入力、この文字列が最初の 1 行に 収
               まる場合に限り、この文字列は表示されます。 edit が
               設定されていなければ、 rprompt はプロンプトの 後、
               コマンド入力の前に表示されます。

       savedirs (+)
               設 定すると、シェルは終了する前に `dirs -S' を行い
               ます。最初の単語を数字に設定すると、その個数 ま で
               ディレクトリスタックのエントリを保存します。

       savehist
               設定すると、シェルは終了する前に `history -S' を行
               います。最初の単語を数字に設定すると、その個数まで
               の 行が保存されます。 (個数は history 以下でなけれ
               ばなりません。) 2 番目の単語を `merge' にする と、
               履歴ファイルが存在する場合に、置換ではなく追加を行
               います。そしてタイムスタンプによってソートを行い、
               最近のイベントを残します。(+)

       sched (+)
               sched 組み込みコマンドがスケジュールイベントを表示
               する書式。特に指定しなければ `%h\t%T\t%R\n' が使わ
               れます。フォーマットシーケンスは上記の prompt 以下
               に書いてあります。 `%R' の意味が変わることに注意し
               てください。

       shell   シェルのファイル。これはシェルをフォークして、実行
               ビットが設定されているがシステムによる実行が不可能
               なファイルを実行するために用いられます (B>組B>みB>込B>みB>コ
               B>マB>ンB>ドB>、B>非B>組B>みB>込B>みB>コB>マB>ンB>ドB>のB>実B>行を参照)。 初 期 値
               は、(システム依存の) シェルの置き場所です。

       shlvl (+)
               入 れ子になったシェルの数。ログインシェルでは 1 に
               リセットされます。 loginsh も参照してください。

       status  最後のコマンドによって返された状態。コマンドが異常
               終了した場合には 0200 が加えられます。組み込みコマ
               ンドは、失敗すると終了状態 `1' を返します。その 他
               の 場合は、すべての組み込みコマンドは状態 `0' を返
               します。

       symlinks (+)
               いくつか異なった値に設定でき、シンボリックリ ン ク
               (`symlink') の解決を制御できます。

               `chase' に設定すると、カレントディレクトリがシンボ
               リックリンクを含むディレクトリになったら、リンクを
               それが指しているディレクトリの実名に展開します。こ
               の機能はユーザのホームディレクトリでは働きません。
               これはバグです。
               埋めこまれたものなど) には動作しません。クォートす
               れば展開は行われません。たいていの場合はこの設定が
               便利ですが、展開すべき引き数を認識できないと、誤解
               や混乱の元になるかもしれません。妥協 案 と し て、
               `ignore'  にしておいて、必要な場合には編集コマンド
               normalize-path (デフォルトでは ^X-n にバインドされ
               ています) を使うのがいいかもしれません。

               順にいくつか例を示します。まずは遊び場となるディレ
               クトリを準備しましょう。

                   > cd /tmp
                   > mkdir from from/src to
                   > ln -s from/src to/dist

               symlinks が設定されていない場合の動作:

                   > cd /tmp/to/dist; echo $cwd
                   /tmp/to/dist
                   > cd ..; echo $cwd
                   /tmp/from

               symlinks が `chase' に設定されている場合の動作:

                   > cd /tmp/to/dst; echo $cwd
                   /tmp/from/src
                   > cd ..; echo $cwd
                   /tmp/from

               symlinks が `ignore' に設定されている場合の動作:

                   > cd /tmp/to/dist; echo $cwd
                   /tmp/to/dst
                   > cd ..; echo $cwd
                   /tmp/to

               symlinks が `expand' に設定されている場合の動作:

                   > cd /tmp/to/dist; echo $cwd
                   /tmp/to/dst
                   > cd ..; echo $cwd
                   /tmp/to
                   > cd /tmp/to/dist; echo $cwd
                   /tmp/to/dst
                   > cd ".."; echo $cwd
                   /tmp/from
                   > /bin/echo ..
                   /tmp/to
                   > /bin/echo ".."
                   ..

               いくつか注意しますと、`expand' による展開 は、  1)
               したコマンドの実行後に、自動的に組み込みコマ ン ド
               time (そちらも参照) を実行します。2 番目の単語があ
               れば、 time 組み込みコマンドの出力フォーマット文字
               列 として使われます。 (u) 以下のシーケンスがフォー
               マット文字列で使えます。

               %U  プロセスがユーザモードで消費した CPU  時 間  (
                   秒)。
               %S   プロセスがカーネルモードで消費した CPU 時間 (
                   秒)。
               %E  (壁時計での) 経過時間 (秒)。
               %P  (%U + %S) / %E として計算される CPU 使用率。
               %W  プロセスがスワップされた回数。
               %X  (共有) テキスト空間の平均使用量。 Kbyte 単位。
               %D  ( 非 共 有)  データ/スタック空間の平均使用量。
                   Kbyte 単位。
               %K  (%X + %D) の総使用量。 Kbyte 単位。
               %M  プロセスが使用したメモリの瞬間最大 値。  Kbyte
                   単位。
               %F   メ ジャーページフォールトの回数 (ディスクから
                   取って来る必要があったページ数)。
               %R  マイナーページフォールトの回数。
               %I  入力操作の回数。
               %O  出力操作の回数。
               %r  ソケットメッセージを受け取った回数。
               %s  ソケットメッセージを送った回数。
               %k  シグナルを受け取った回数。
               %w  自発的なコンテキストスイッチの回数 (wait の 回
                   数)。
               %c  非自発的なコンテキストスイッチの回数。

               BSD  資源制限機能の無いシステムでは、最初の 4 つの
               シーケンスだけがサポートされています。デフォルトの
               時間フォーマットは、資源使用報告をサポートしている
               システム で は  `%Uu  %Ss  %E  %P  %X+%Dk  %I+%Oio
               %Fpf+%Ww'   で、そうでないシステムでは `%Uu %Ss %E
               %P' です。

               Sequent の DYNIX/ptx では、 %X, %D, %K, %r, %s  が
               使えませんが、以下の追加シーケンスが利用できます。

               %Y  システムコールが実行された回数。
               %Z  要求に応じてゼロで埋められたページ数。
               %i  プロセスの常駐サイズがカーネルによって増加させ
                   られた回数。
               %d  プロセスの常駐サイズがカーネルによって減少させ
                   られた回数。
               %l  read システムコールが実行された回数。
               %m  write システムコールが実行された回数。
               %p  raw ディスク装置から読み込んだ回数。
               %q  raw ディスク装置へ書き込んだ回数。

       verbose 設定すると、ヒストリ置換後に、各コマンドの単語を (
               あれば) 表示します。コマンドラインオプション -v に
               よって設定されます。

       version (+)
               バ ー ジョ ン  ID スタンプ。シェルのバージョン番号
               (tcsh を参照) 、配布元、リリース日、ベンダー、オペ
               レ ー ティ ン グ システム、マシン (VENDOR, OSTYPE,
               MACHTYPE を参照)、コンパイル時に設定されたオプショ
               ンをカンマで区切ったリストからなります。ディストリ
               ビューションのデフォルトとしてセットされたオプショ
               ンが記録されています。

               8b  シェルは 8bit クリーン。デフォルト。
               7b  シェルは 8bit クリーンでない。
               nls システムの NLS を使う。 NLS のあるシステムでは
                   デフォルト。
               lf  ログインシェルは /etc/csh.cshrc の後ではなく先
                   に  /etc/csh.login   を 実 行し、 ~/.tcshrc~/.history の後ではなく先に ~/.login を実行 す
                   る。
               dl   セキュリティ上の理由から `.' を path の最後に
                   置く。デフォルト。
               nd  セキュリティ上の理由から `.' を path に含め な
                   い。
               vi  emacs-形式ではなく vi-形式の編集をデフォルトに
                   する。
               dtr ログインシェルは終了時に DTR を落とす。
               bye byelogout の同義語とし、 logwatchlog
                   の別名として扱う。
               al  autologout を有効にする。デフォルト。
               kan nokanji シェル変数が設定されない限り、ロケール
                   設定が適切であれば、漢字を使う。
               sm  システムの malloc(3) を使う。
               hb  シェルスクリプ ト の 実 行 時 に  `#!<program>
                   <args>' 方式をエミュレートする。
               ng  newgrp 組み込みコマンドが利用可能。
               rh   シェ ルは REMOTEHOST 環境変数を設定しようとす
                   る。
               afs シェルはもしローカルな認証が失敗したら、  ker-
                   beros   サーバにパスワードを確認する。 afsuser
                   シェル変数か AFSUSER 環境変数が設定されてい た
                   ら、その内容でローカルユーザ名を上書きする。

               システム管理者は、文字列を追加してローカルバージョ
               ンでの違いを示すようにできます。

       visiblebell (+)
               設定すると、音声ベルの代わりに画面をフラッシュしま
               す。 nobeep も参照してください。

       watch (+)

               デフォルトでは、ログインとログアウトは 10 分毎に調
               べ られますが、 watch の最初の単語に、調べる間隔を
               分単位で書くこともできます。たとえば、

                   set watch = (1 any any)

               は 1 分おきにあらゆるログイン / ログアウトを報告し
               ます。我慢の効かない人は、log 組み込みコマンドを用
               いれば、いつでも watch のレポートを見ることがで き
               ま す。 watch が最初に設定された時には、現在ログイ
               ンしているユーザリストが (log 組み込みコマン ド に
               よって) 報告されます。

               watch の報告形式は who シェル変数で制御します。

       who (+) watch メッセージのフォーマット文字列。以下のシーケ
               ンスが得られた情報で置換されます。

               %n  ログイン / ログアウトしたユーザの名前。
               %a  観察された行動:  `logged  on',  `logged  off',
                   `replaced olduser on' のいずれか。
               %l  ユーザがログイン / ログアウトした端末 (tty)。
               %M  リモートホストの完全なホスト名。ローカルホスト
                   でのログイン / ログアウトの場合は `local'。
               %m  リモートホストの、最初の `.' までのホスト 名。
                   IP アドレスや X Window System ディスプレイの場
                   合は名前全体。

               %M と %m は /etc/utmp にリモートホスト名を格納する
               システムでのみ利用できます。設定しなければ `%n has
               %a %l from %m.' が用いられます。ただしリモートホス
               ト 名を格納しないシステムでは `%n has %a %l.' が用
               いられます。

       wordchars (+)
               forward-word, backward-word 等の編集コマンドで、単
               語の一部とみなされる非英数文字のリスト。設定されな
               ければ `*?_-.[]~=' が使われます。


環境変数

       AFSUSER (+)
               afsuser シェル変数と同じです。

       COLUMNS 端末の桁数です (B>端B>末B>管B>理 を参照)。

       DISPLAY X Window System によって使われます (X(1) を参照)。
               設 定されると、このシェルは autologout (そちらも参
               照) を設定しません。

       EDITOR  デフォルトのエディタのパス名です。 VISUAL 環境変数
               と run-fg-editor 編集コマンドも参照してください。
               止される予定であり、将来のバージョンで削除されるで
               しょう。

       HPATH (+)
               run-help 編集コマンドがコマンドの解説文書 を 探 す
               ディレクトリのリストです。区切り文字はコロンです。

       LANG    優先的に使用される文字環境を与えます。B>固B>有B>言B>語B>シB>ス
               B>テB>ムB>のB>サB>ポB>ーB>トを参照してください。

       LC_CTYPE
               設定されていると、ctype キャラクタの扱いだけが変更
               されます。B>固B>有B>言B>語B>シB>スB>テB>ムB>のB>サB>ポB>ーB>トを参照してくだ
               さい。

       LINES   端末の行数です。B>端B>末B>管B>理を参照してください。

       LS_COLORS
               この変数のフォーマットは termcap(5) ファイルのフォ
               ーマットと似ています。"xx=string" の形をした式をコ
               ロンで区切って並べたリストです。"xx" は 2 文字の変
               数名です。変数とそれらのデフォルト値は以下の通りで
               す。

                   no      0   Normal (non-filename) text: ファイ
                               ル名を除く通常のテキスト
                   fi      0   Regular file: 通常のファイル
                   di      01;34
                               Directory: ディレクトリ
                   ln      01;36
                               Symbolic link: シンボリックリンク
                   pi      33  Named pipe (FIFO): 名前付きパイプ
                   so      01;35
                               Socket: ソケット
                   bd      01;33
                               Block device: ブロック型デバイス
                   cd      01;32
                               Character device: キャラクタ型デバ
                               イス
                   ex      01;32
                               Executable file: 実行可能ファイル
                   mi      (none)
                               Missing  file (defaults to fi): 行
                               方不明のファイル
                   or      (none)
                               Orphaned symbolic  link  (defaults
                               to ln): リンク先のないシンボリック
                               リンク
                   lc      ^[[ Left code: 色指定シーケンス開始 コ
                               ード
                   rc      m   Right code: 色指定シーケンス終了コ
                               ード

               コントロールキャラクタは C スタイルのエスケープ 表
               記か stty のような ^- 表記のどちらかで書くことがで
               きます。C スタイルの表記ではエスケープコードの記述
               に  ^[, スペースコードの記述に _, デリートコードの
               記述に ? を追加します。さらに、^[ エスケープキャラ
               ク タを用いると、 ^[, ^, :, = のデフォルトの解釈を
               変更することができます。

               それぞれのファイルは <lc> <color-code> <rc> <file-
               name>  <ec> のように書かれます。 <ec> が未定義なら
               ば、<lc> <no> <rc> のシーケンスが代わりに使われ ま
               す。こちらの方が通常便利に使えますが、あまり一般的
               ではありません。 left, right, end のコードを用意し
               た理由は、同じシーケンスを繰り返し入力しなくてもい
               いように、また、妙な端末に対応できるようにするため
               で す。通常は、ISO 6429 カラーシーケンスと異なるシ
               ステムを使っていない限り、これらを変更する必要はほ
               とんどありません。

               端 末 が ISO 6429 color コードを使っていれば、(lc,
               rc, ec コードを全く使わずに) セミコロンで区切ら れ
               た数字のコマンドでタイプコードを構成することができ
               ます。良く用いられるコマンドは以下の通りです。

                       0   デフォルトの色に戻します。
                       1   高輝度色
                       4   アンダライン付きテキスト
                       5   点滅テキスト
                       30  前景色黒
                       31  前景色赤
                       32  前景色グリーン
                       33  前景色黄 (ブラウン)
                       34  前景色ブルー
                       35  前景色紫
                       36  前景色シアン
                       37  前景色白 (グレー)
                       40  背景色黒
                       41  背景色赤
                       42  背景色グリーン
                       43  背景色黄 (ブラウン)
                       44  背景色ブルー
                       45  背景色紫
                       46  背景色シアン
                       47  背景色白 (グレー)

               すべてのコマンドがすべてのシステムや表示装置で動作
               するわけではありません。

               少なからぬ端末プログラムではデフォルトの終了コード
               を正しく認識しません。ディレクトリのリストをした後
               で すべてのテキストに色を付けるためには、no コード
               す。

       PATH    実行可能ファイルを探すディレクトリの、コロン区切り
               形式のリスト。シェル変数 path によく似ていま す が
               フォーマットに違いがあります。

       PWD (+)  シェル変数 cwd に似ていますが、シェル変数とは同期
               していません。実際のディレクトリ変更が行われたあと
               でだけアップデートされます。

       REMOTEHOST (+)
               ユーザがどのホストからログインしているかを示します
               (リモートからのログインで、かつこのシェルがこれ ら
               の 情報を決定できる場合)。シェルがそのようにコンパ
               イルされている場合だけに設定さ れ ま す。  version
               シェル変数を参照してください。

       SHLVL (+)
               shlvl と同じです。

       SYSTYPE (+)
               現在のシステムタイプです。 (Domain/OS のみ)

       TERM    term シェル変数と同じです。 Equivalent to the term
               shell variable.

       TERMCAP 端末のケーパビリティ文字列です。B>端B>末B>管B>理を参照して
               ください。

       USER    user シェル変数と同じです。

       VENDOR (+)
               コンパイル時に決定されたベンダ名です。

       VISUAL  デフォルトのフルスクリーンエディタへのパス名です。
               EDITOR 環境変数と run-fg-editor 編集コマンドも参照
               してください。


関連ファイル

       /etc/csh.cshrc   す べ て のシェルで最初に読み込まれます。
                       ConvexOS, Stellix, Intel で は  /etc/cshrc
                       を 使います。 NeXTs では /etc/cshrc.std を
                       使います。  A/UX,  AMIX,  Cray,  IRIX   の
                       csh(1)  はこのファイルを読みませんが、いず
                       れにせよ tcsh ではこのファイルが読み込まれ
                       ま す。 Solaris 2.x もこのファイルを持ちま
                       せんが、tcsh/etc/.cshrc を読み込 み ま
                       す。(+)
       /etc/csh.login  /etc/csh.cshrc  の後にログインシェルによっ
                       て読み込ま れ ま す。  ConvexOS,  Stellix,
                       Intel   では /etc/login を使います。 NeXTs
                       では /etc/login.std を使用します。 Solaris
                       い。
       ~/.login        ~/.tcshrc または ~/.history の後にログイン
                       シェ ル に よっ て 読 み込まれます。シェル
                       は~/.login~/.tcshrc~/.history の後
                       にではなく、前に読み込むようにコンパイルさ
                       れているかもしれません。 version シェル 変
                       数を参照してください。
       ~/.cshdirs (+)  savedirs   が 設 定 さ れ ている場合には、
                       ~/.login の後にログインシェルによって読 み
                       込まれます。ただし dirsfile も参照してくだ
                       さい。
       /etc/csh.logout ログアウト時にログインシェルによって読み込
                       まれます。 ConvexOS, Stellix, Intel では、
                       /etc/logout を使います。 A/UX, AMIX, Cray,
                       IRIX  では、 csh(1) はこれに対応するファイ
                       ルを持ちませんが、いずれにしても tcsh はこ
                       の ファ イ ル を 読みます。 Solaris 2.x も
                       /etc/logout を持っていませんが、 tcsh/etc/.logout を読み込みます。 (+)
       ~/.logout       /etc/csh.logout またはその相当ファイルが実
                       行された後に、ログインシェルによって読み込
                       まれます。
       /bin/sh         `#' で始まらないシェルスクリプトを解釈実行
                       するために使われます。
       /tmp/sh*        `<<' 用の一時ファイルです。
       /etc/passwd     ホームディレクトリ `~name' を代入するた め
                       の情報源です。

       スタートアップファイルの読み込みの順番は、シェルのコンパイ
       ル時に変更されているかもしれません。B>スB>タB>ーB>トB>アB>ッB>プB>とB>シB>ャB>ッ
       B>トI</I>ダB>ウB>ンと version を参照してください。


新規機能 (+)

       こ のマニュアルでは、tcsh をひとつの対象として記述してきま
       した。しかし csh(1) の経験者は、 tcsh の新しい機能に特に興
       味があるでしょう。

       コ マンド行編集: GNU Emacs スタイルや vi(1)-スタイルのキー
       バインディングをサポートしています。B>コB>マB>ンB>ドB>行B>エB>デB>ィB>タとB>編
       B>集B>コB>マB>ンB>ドを参照してください。

       プログラマブルで対話的な単語補完と一覧表示。B>補B>完B>とB>一B>覧と、
       組み込みコマンド complete, uncomplete の記述を見てく だ さ
       い。

       ファイル名、コマンド、変数名のB>スB>ペB>ルB>訂B>正 (そちらも参照)。

       B>エB>デB>ィB>タB>編B>集B>コB>マB>ンB>ド (そちらも参照) で、コマンドのタイプ中
       に他の便利な機能を実行できます。ヘルプファイルの参照してく
       だ さ い  (run-help)、 手軽にエディタの再起動 (run-fg-edi-
       tor)、コマンド解決 (which-command) などができます。

       グロブパターンの否定。B>フB>ァB>イB>ルB>名B>置B>換を見てください。

       新しいファイル問い合わせ演算子 (そちらも参照) とそれらを用
       いる組み込みコマンド filetest。

       スケージューリングされたイベント、特別なエイリアス、自動ロ
       グアウト、端末のロック、コマンド待ち、ログインとログアウト
       の監視などなどを含む、各種のB>自B>動B>イB>ベB>ンB>トB>、B>定B>期B>イB>ベB>ンB>トB>、B>時
       B>刻B>指B>定B>イB>ベB>ンB>ト (それぞれの項目を参照)。

       固有言語システムのサポート (B>固B>有B>言B>語B>シB>スB>テB>ムB>のB>サB>ポB>ーB>トを見
       てください)、 OS 固有の各種機能のサポート (OS B>固B>有B>機B>能B>のB>サ
       B>ポB>ーB>トと echo_style シェル変数を参照)、システム依存の ファ
       イル配置 (B>関B>連B>フB>ァB>イB>ルを参照)

       拡張された端末管理能力 (B>端B>末B>管B>理を参照)。

       builtins, hup, ls-F, newgrp, printenv, which, where などの
       新しい組み込みコマンド (それぞれの項目を参照)。

       新しい変数。シェルから便利な情報を簡単に入手 で き ま す。
       gid, loginsh, oid, shlvl, tcsh, tty, uid, version シェル変
       数と、 HOST, REMOTEHOST, VENDOR, OSTYPE, MACHTYPE 環 境 変
       数。それぞれの説明を見てください。

       有用な情報をプロンプト文字列に埋めこむための新しいシンタッ
       クス (prompt を参照)。ループとスペル訂正用の特別なプロンプ
       ト (prompt2prompt3 を参照)。

       読み取り専用の変数 (B>変B>数B>置B>換を参照)。


バグ

       サスペンドされたコマンドが再開されたときに、カレントディレ
       クトリが起動されたときと違っている場合には、起動時のディレ
       クトリを表示します。ジョブが内部でディレクトリを変更するこ
       ともあり得るので、これは間違った情報を与えてしまうかもしれ
       ません。

       シェ ル の組み込み機能は停止、再開できません。 `a ; b ; c'
       のような形のコマンド列を停止させるときの処理もあまり上品な
       も の で はありません。 `b' コマンドをサスペンドさせると、
       シェルは即座に `c' コマンドを実行してしまいます。 alias で
       の展開結果を実行しているときには、特にこの点に注意が必要で
       す。コマンド列を () の中に入れて、サブシェルに押し込めてし
       ま うのがいいでしょう。つまり `( a ; b ; c )' のようにする
       のです。

       プロセス開始後の端末出力の制御が原始的です。誰かが仮想端末
       の良いインタフェースを作ってくれるといいのですが。仮想端末
       インターフェースの分野では、出力制御に関して面白いことがた
       くさん行えるはずです。


       ダム端末のように、端末がカーソルを上に移動できない場 合 に
       は、スクリーン幅より長い行の更新が大変貧弱です。

       HPATHNOREBIND は環境変数である必要はありません。

       `?'   や  `*' や `[]' を使わないグロブパターンや、 `{}' や
       `~' を使うグロブパターンは、否定が正しく扱われません。

       if の単一コマンド形式では、たとえ式が偽で、コマンドが実 行
       されなかったとしても、リダイレクト出力をしてしまいます。

       ls-F  はファイル名をソートするとき、ファイル識別キャラクタ
       を勘定に入れてしまいます。またファイル名の中の制御文字を正
       しく扱うことができません。中断させることもできません。

       バ グレポートは tcsh-bugs@mx.gw.com まで送ってください。修
       正もいっしょに送っていただけるとありがたいです。もし  tcsh
       の メ ン テ ナンスとテストを手伝って下さる場合には、本文に
       "subscribe tcsh <your name>" と一行書いたメー ル を  list-
       serv@mx.gw.com   に 送っ てください。 "subscribe tcsh-bugs
       <your name>" を講読すればすべてのバグレポートが取得でき ま
       す。  "subscribe  tcsh-diffs <your name>" を講読すれば開発
       ML に参加でき、各パッチレベルでの diff を入手できます。


tcsh の T の由来

       1964 年 DEC は PDP-6 を開発しました。のちに PDP-10 が再 実
       装されました。 1970 年前後に DEC がそのセカンドモデル KI10
       を発表したとき、これには DECsystem-10 という新しい名前がつ
       けられました。

       TENEX   は 1972 年に Bolt, Beranek & Newman (Massachusetts
       州 Cambridge のシンクタンク) において、実験的なデマンド ペ
       ージ型仮想記憶 OS として作られました。彼らは DEC PDP-10 用
       の新しいページャを構築し、それを使った OS を作りました。こ
       れは学術分野で非常に大きな成功を収めました。

       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
       があったのですが!

       TENEX の TOPS-20 はバージョン 3 までに、 ULTCMD と呼ばれる
       ユーザコードレベルのコマンド補完機能サブルーチンを備えてい
       ました。バージョン 3 で DEC は、これらの機能すべてと、さら
       にそれ以上とをモニタ (Unix でいうところのカーネル) に追 加
       し、  COMND& JSYS (`Jump to SYStem' 命令; スーパーバイザー
       コマンド置換では、引数リストに許された文字数より多くの文字
       数に置換できません。

       シェルはループを検出するために、 alias 置換の回数を 1 行当
       たり 20 に制限しています。


関連項目

       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),  mal-
       loc(3),  setlocale(3), tty(4), a.out(5), termcap(5), envi-
       ron(7), termio(7), Introduction to the C Shell


バージョン

       このマニュアルは tcsh 6.10.00 (Astron) 2000-11-19 に関する
       ドキュメントです。


作者

       William Joy
         csh(1) のオリジナル作者
       J.E. Kulp, IIASA, Laxenburg, Austria
         ジョブコントロールとディレクトリスタック機能
       Ken Greer, HP Labs, 1981
         ファイル名補完
       Mike Ellis, Fairchild, 1983
         コマンド名認識 / 補完
       Paul Placeway, Ohio State CIS Dept., 1983-1993
         コマンドラインエディタ、プロンプトルーチン、新しいグロブ
         の文法、たくさんの修正とスピードアップ
       Karl Kleinpaste, CCI 1983-4
         特別なエイリアス、ディレクトリスタックの取出し機能、ログ
         イ ン / ログアウト監視、スケジュールイベント、新しいプロ
         ンプト書式のアイデア
       Rayan Zachariassen, University of Toronto, 1984
         ls-Fwhich の組み込み、たくさんのバクフィックス、修正
         とスピードアップ
       Chris Kingsley, Caltech
         高速ストレージアロケータルーチン
       Chris Grevstad, TRW, 1987
         4.3BSD cshtcsh へのマージ
       Christos S. Zoulas, Cornell U. EE Dept., 1987-94
         HPUX,  SVR2, SVR3 に移植、SysV 版 getwd.c, SHORT_STRINGS
         をサポート、 sh.glob.c の新バージョン
       James J Dempsey, BBN, and Paul Placeway, OSU, 1988
         A/UX に移植
       Daniel Long, NNSC, 1988
         wordchars
       Patrick Wolfe, Kuck and Associates, Inc., 1988
         vi モードのクリーンアップ
       David C Lawrence, Rensselaer Polytechnic Institute, 1989
         autolist と、あいまい補完の一覧
         ampm, settc, telltc
       Michael Bloom
         割り込みハンドリングの修正
       Michael Fine, Digital Equipment Corp
         拡張キーのサポート
       Eric Schnoebelen, Convex, 1990
         Convex  サポート、csh の多数のバグフィックス、ディレクト
         リスタックの保存と復帰
       Ron Flax, Apple, 1990
         A/UX 2.0 への (再) 移植
       Dan Oscarsson, LTH Sweden, 1990
         NLS サポートと非 NLS サイト用の NLS シミュレート機能、修
         正
       Johan Widen, SICS Sweden, 1990
         shlvl, Mach サポート、correct-line, 8 ビット表示
       Matt Day, Sanyo Icon, 1990
         POSIX termio サポート、SysV limit 修正
       Jaap Vermeulen, Sequent, 1990-91
         vi モード修正、expand-line, ウインドウ変更の修正、Symme-
         try 移植
       Martin Boyer, Institut de recherche d'Hydro-Quebec, 1991
         autolist beeping オプション、行の先頭からカーソルまで の
         すべてを対象とするヒストリ検索の修正
       Scott Krotz, Motorola, 1991
         Minix に移植
       David Dawes, Sydney U. Australia, Physics Dept., 1991
         SVR4 ジョブコントロールの修正
       Jose Sousa, Interactive Systems Corp., 1991
         拡張 vi の修正、vi デリートコマンド
       Marc Horowitz, MIT, 1991
         ANSIfication  の修正、新しい exec ハッシュコード、 imake
         の修正、where
       Bruce Sterling Woodcock, sterling@netcom.com, 1991-1995
         ETA と Pyramid への 移 植、  Makefile   と  lint   の 修
         正、ignoreeof=n 追加、その他のさまざまな移植性向上のため
         の変更、およびバグ修正
       Jeff Fink, 1992
         complete-word-fwdcomplete-word-back
       Harry C. Pulley, 1992
         Coherent に移植
       Andy Phillips, Mullard Space Science Lab U.K., 1992
         VMS-POSIX に移植
       Beto Appleton, IBM Corp., 1992
         移動プロセスグループの修正、csh バグ修 正、  POSIX  file
         tests, POSIX SIGHUP
       Scott Bolte, Cray Computer Corp., 1992
         CSOS に移植
       Kaveh R. Ghazi, Rutgers University, 1992
         Tek,  m88k,  Titan と Masscomp への移植と修正、 autoconf
         サポートの追加
       Mark Linderman, Cornell University, 1992
         OS/2 に移植

       Martin Kraemer, 1997
         Siemens Nixdorf EBCDIC machine に移植
       Amol Deshpande, Microsoft, 1997
         WIN32 (Windows/95 and Windows/NT) に移植、足りないライブ
         ラリすべてと、メッセージカタログコードのすべてを作成し、
         Windows と通信できるようにした
       Taga Nayuta, 1998
         色つき ls の追加



謝辞

       以下のみなさんに感謝します。
       Bryan Dunlap, Clayton Elwell, Karl Kleinpaste, Bob Manson,
       Steve Romig, Diana Smetters, Bob Sutterfield, Mark Verber,
       Elizabeth  Zwicky そして提案と応援をしてくれたオハイオ州の
       すべてのみなさん。

       あらゆるバージョンに耐え、バグレポートを送ってくれ、提案と
       新規追加をしてくれたネット上のすべてのみなさん。

       "tcsh  の T の由来" の章を執筆してくれた Richard M. Alder-
       son III。


翻訳

       t_ogawa <BYH06106@nifty.ne.jp>
       おさな <yasu@via2000.net>
       ゆ〜こ <yuko@veltec.co.jp>
       森浩二 <mori@tri.asanuma.co.jp>
       NOKUBI Hirotaka <nokubi@ff.iij4u.or.jp>
       中野武雄 <nakano@apm.seikei.ac.jp> (JM プロジェクト)
       蔭山 <yt-kage@cb3.so-net.ne.jp>
       中村和志@神戸 <kaz@kobe1995.net>
       大澤千敏@岐阜 <ohsawa@catv1.ccn-net.ne.jp>
       熊谷典大 <kumagai@home.com>
       (順不同)

       翻訳にあたり、JM プロジェクトの方々の御協力を頂きました。



Astron 6.10.00           19 November 2000                 TCSH(1)

ABELNET VPSサービス