diff options
author | Kazuo Horikawa <horikawa@FreeBSD.org> | 2000-11-11 12:03:59 +0000 |
---|---|---|
committer | Kazuo Horikawa <horikawa@FreeBSD.org> | 2000-11-11 12:03:59 +0000 |
commit | 3f73b7ded98446dcb5b1e7236609aa487db84181 (patch) | |
tree | 64d88843ee6ad1ab835d3fd649dbe6268aa7f8ef /ja_JP.eucJP | |
parent | 9cc5caa9307344135eb1c30b450a81ffd3d0774e (diff) | |
download | doc-3f73b7ded98446dcb5b1e7236609aa487db84181.tar.gz doc-3f73b7ded98446dcb5b1e7236609aa487db84181.zip |
Add tcsh.1 Astron 6.09.01
Submitted by: kuma@jp.FreeBSD.org
Translated by: 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> <yt-kage@cb3.so-net.ne.jp> <kaz@kobe1995.net> <ohsawa@catv1.ccn-net.ne.jp> <kumagai@home.com>
Notes
Notes:
svn path=/head/; revision=8339
Diffstat (limited to 'ja_JP.eucJP')
-rw-r--r-- | ja_JP.eucJP/man/man1/Makefile | 3 | ||||
-rw-r--r-- | ja_JP.eucJP/man/man1/csh.1 | 2208 | ||||
-rw-r--r-- | ja_JP.eucJP/man/man1/tcsh.1 | 5803 |
3 files changed, 5805 insertions, 2209 deletions
diff --git a/ja_JP.eucJP/man/man1/Makefile b/ja_JP.eucJP/man/man1/Makefile index 4bfcb0e783..4a018c26e7 100644 --- a/ja_JP.eucJP/man/man1/Makefile +++ b/ja_JP.eucJP/man/man1/Makefile @@ -45,7 +45,6 @@ MAN1 = a2p.1\ crontab.1\ crunchgen.1\ crunchide.1\ - csh.1\ ctags.1\ ctm.1\ ctm_rmail.1\ @@ -299,6 +298,7 @@ MAN1 = a2p.1\ tcopy.1\ tcpdump.1\ tcpslice.1\ + tcsh.1\ tee.1\ telnet.1\ test.1\ @@ -460,6 +460,7 @@ MLINKS+=ln.1 link.1 MLINKS+=rm.1 unlink.1 MLINKS+=opiekey.1 otp-md4.1 MLINKS+=opiekey.1 otp-md5.1 +MLINKS+=tcsh.1 csh.1 MLINKS+=ee.1 edit.1 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man1/csh.1 b/ja_JP.eucJP/man/man1/csh.1 deleted file mode 100644 index 6715409401..0000000000 --- a/ja_JP.eucJP/man/man1/csh.1 +++ /dev/null @@ -1,2208 +0,0 @@ -.\" Copyright (c) 1980, 1990, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)csh.1 8.2 (Berkeley) 1/21/94 -.\" %FreeBSD: src/bin/csh/csh.1,v 1.18 2000/02/17 03:40:21 unfurl Exp % -.\" -.\" jpman %Id: csh.1,v 1.2 1997/04/08 00:35:51 h-nokubi Stab % -.\" Japanese translation for jpman-0.2 checked by jpman project 96.12.23 -.\" -.Dd January 21, 1994 -.Dt CSH 1 -.Os BSD 4 -.Sh 名称 -.Nm csh -.Nd C 言語ライクな文法を持つシェル(コマンドインタプリタ) -.Sh 書式 -.Nm csh -.Op Fl bcefimnstvVxX -.Op arg ... -.Nm csh -.Op Fl l -.Sh 解説 -.Nm -は、履歴(参照: -.Sx ヒストリ置換 -の項)、ジョブ制御(参照: -.Sx ジョブ -の項)、対話的なファイル名とユーザ名の補完(参照: -.Sx ファイル名補完 -の項)、C 言語ライクな文法を特徴とするコマンドインタプリタです。 -対話的なログイン・シェル、また -シェル・スクリプトのコマンド・プロセッサの両方の用途で使われます。 -.Ss 引数リスト処理 -.Ql Fl \& -で始まるプログラム名でシェルが実行された場合、 -シェルはログイン・シェルとなります。 -シェルを -.Ql Fl l -フラグを指定して起動することでもログイン・シェルにできます。 -.Pp -残りのフラグは以下のように解釈されます: -.Bl -tag -width 5n -.It Fl b -このフラグは、オプションの処理を強制的に中断させる場合に使用します。この -フラグ以降の引数はすべて、オプションではない引数として処理されます。 -これにより、シェル・スクリプトに混乱やごまかしを行わずにオプションを -渡すことが可能になります。 -set-user ID スクリプトは本オプションなしでは実行できません。 -.It Fl c -コマンドを本フラグの次にくる 1 つの引数から読み込みます。 -この引数は省略できません。残りの引数は -.Ar argv -に代入されます。 -.It Fl e -起動したコマンドが異常終了したり、0 でない終了ステータスを返したときに、 -ただちにシェルを終了します。 -.It Fl f -起動したユーザのホーム・ディレクトリにある -.Pa \&.cshrc -を捜さず、また読み込まないため高速に起動します。 -.It Fl i -たとえ端末上で実行されていなくても、対話的に動作しプロンプトを表示します。 -入力と出力が端末である場合、本オプションなしでもシェルは対話的に動作します。 -.It Fl l -ログイン・シェルとなります。( -.Fl l -が、指定された唯一のフラグの場合にのみ有効です。) -.It Fl m -シェルは、実効ユーザに属していなくても -.Pa .cshrc -をロードします。 -.Xr su 1 -は -.Fl m -をシェルに渡すことができます。 -.It Fl n -コマンドの解析は行いますが、実行しません。シェル・スクリプトの -文法検査に役立ちます。 -.It Fl s -標準入力からコマンドを読み込みます。 -.It Fl t -入力から1行だけ読み込み、それを実行します。改行の直前に -.Ql \e -を置くことで、次の行への継続を行うことができます。 -.It Fl v -.Ar verbose -変数を設定します。これにより、ヒストリ置換された状態のコマンド行を -表示するようになります。 -.It Fl x -.Ar echo -変数を設定します。これにより、実行直前に、実行するコマンドを -表示するようになります。 -.It Fl V -.Pa .cshrc -を実行するより前に -.Ar verbose -変数を設定します。 -.It Fl X -.Pa .cshrc -を実行するより前に -.Ar echo -変数を設定します。 -.El -.Pp -.Fl X -に対する -.Fl x -の関係は、ちょうど -.Fl V -に対する -.Fl v -の関係に相当します。 -.Pp -フラグ引数の処理のあと、もし引数が残っていて、かつ、 -.Fl c , -.Fl i , -.Fl s , -.Fl t -のいずれのフラグも指定されていなければ、残っている最初の引数は -コマンドファイル名であるとみなされます。シェルはこのファイルをオープンし、 -`$0' による置換に備えてファイル名を保存します。多くのシステムは version 6 -または version 7 の標準のシェルを使っており、また、それらの -シェル・スクリプトは本シェルとは互換性がないので、 -スクリプトの先頭の文字が `#' でない場合、 -つまりスクリプトがコメントから始まらない場合、 -本シェルはそれらの `標準' シェルを起動して実行します。 -残りの引数は変数 -.Ar argv -に初期値として設定されます。 -.Pp -.Nm -は、実行開始に際し、まず、ファイル -.Pa /etc/csh.cshrc -を読み込み実行します。ログイン・シェルであれば、さらに、ファイル -.Pa \&/etc/csh.login -を読み込み実行します。 -次にシェルを起動したユーザの -.Ar ホーム -・ディレクトリにあるファイル -.Pa \&.cshrc -を読み込み実行します。ログイン・シェルであるなら、 -さらに、同じディレクトリのファイル -.Pa \&.login -を読み込み、実行します。 -.Pa \&.login -の通常の使い方としては、ユーザが CRT 画面の設定のために -``stty crt'' を実行したり、 -.Xr tset 1 -を実行したりするために用いられます。 -.Pp -通常、シェルはプロンプト `% ' を表示し、端末からコマンドを読み込みます。 -引数の処理やコマンド・スクリプトを含むファイルの処理については後述します。 -.Pp -シェルは以下の動作を繰り返します: 読み込んだ行を -.Ar 単語 -に分解します。この単語の列をコマンド履歴に格納し、解析します。 -最後にその行の各コマンドを実行します。 -.Pp -ログイン・シェルが終了するとき、ユーザの -.Ar ホーム -ディレクトリのファイル -.Pa .logout -と -.Pa /etc/csh.logout -を読み込み実行します。 -.Ss 字句構造 -シェルは、読み込んだ行を空白とタブを区切りとして単語に分割します。ただし、 -以下の例外があります。文字 -`&' `\&|' `;' `<' `>' `(' `)' -は独立した単語となります。`&&', `\&|\&|', `<<', `>>' のように -2つ繰り返されている場合はペアで1単語を形成します。 -これらのメタキャラクタは、直前に `\e' を置くことによって、単語の一部としたり、 -特別な意味を無視させることができます。改行の直前に `\e' を置くと、 -単一の空白と等価になります。 -.Pp -対応したクォート記号 -`'\|', `\*(ga', `"' に狭まれた文字列は、単語の一部分となります。 -このような文字列中のメタキャラクタやブランク、 -タブによって単語が分割されることはありません。 -これらのクォートの意味はあとで説明します。 -`\'' または `"' の内側で改行文字の直前に `\e' を置くと、 -改行文字そのものになります。 -.Pp -シェルの入力が端末からではない場合、 -`#' 文字から改行まではコメントとして扱われます。 -直前に `\e' を置くか `\`', `\'', `"" でクォートすることにより、 -この意味を抑制することができます。 -.Ss コマンド -単純コマンドは単語の列であり、最初の単語が実行すべきコマンドを示します。 -`\&|' 記号で区切られた、単純コマンドあるいは単純コマンドの列は -パイプラインを形成します。パイプラインの各コマンドの出力は、次のコマンドの -入力に接続されます。パイプラインの列を `;' によって区切ることで逐次実行が -行えます。パイプラインの列に続けて `&' を置くと、そのパイプラインの終了を -待つことなく、次のパイプラインが実行されます。 -.Pp -上記のいずれかを `(' と `)' で囲むことにより、単純コマンドを形成することが -できます (これはパイプライン等の構成要素として使えます)。 -また、パイプラインを `\&|\&|' または `&&' で区切ることにより、C -言語のように、第 2 のパイプラインが第 1 のパイプラインが失敗あるいは -成功したときにのみ実行させることができます( -.Em 式 -の項参照)。 -.Ss ジョブ -シェルはパイプラインの各々に対し -.Ar ジョブ -を 1 つづつ関連付けます。シェルは、現在実行中のジョブの一覧表を保持しており、 -これは、 -.Ar jobs -コマンドによって表示することができます。 -ジョブには整数の番号が割り当てられます。ジョブが `&' を用いて非同期に -起動された場合、シェルは以下のような出力を行います: -.Bd -filled -offset indent -.Op 1 -1234 -.Ed -.Pp -これは、非同期に起動したジョブがジョブ番号 1 であり、プロセス ID が 1234 である -(トップレベルの) プロセスを 1 つ持っていることを示します。 -.Pp -もし、あるジョブを実行中に他のことをしたくなった場合、 -.Em ^Z -キー -(control-Z) を押すことにより実行中のジョブに STOP シグナルを -送信することができます。通常、シェルはそのジョブが停止した(Stopped)ことを -出力し、プロンプトを表示します。ここで、停止したジョブの状態を操作することが -できます。つまり、 -.Ar bg -コマンドにより停止したプロセスを -.Em バックグラウンド -で走行させたり、他のコマンドを実行してから、停止していたジョブを -.Ar fg -コマンドにより -.Em フォアグラウンド -で再実行させることなどができます。 -.Em ^Z -は即座に効力を発揮し、インタラプトと同様に、それまで待たされていた -出力とまだ読み込まれていない入力は捨てられます。 -ほかに特殊キーとして -.Nm ^Y -があり、これを押すと、プログラムが -.Xr read 2 -によって読み込もうとした時点で STOP シグナルが送信されます。 -これは、実行中のジョブに対していくつかの入力を先に入力しておき、 -先行入力を読み終えた時点でジョブを停止させたいときに便利です。 -.Pp -バックグラウンドで実行しているジョブが端末からの入力を試みた場合、その -ジョブは停止します。通常、バックグラウンドジョブが端末に出力することは -可能ですが、これは、コマンド ``stty tostop'' により禁止することができます。 -もし、この tty オプションを指定したなら、バックグラウンドで実行している -ジョブは、端末から入力を試みたときと同様に、端末に出力を試みたときに -停止します。 -.Pp -シェルでジョブを参照するにはいくつかの方法があります。文字 `%' は -ジョブ名を表すのに用いられます。番号 1 のジョブを参照する場合は `%1' とします。 -単にジョブ名を入力した場合、そのジョブはフォアグラウンドに移動されます。 -すなわち `%1' は `fg %1' と等価で、番号 1 のジョブをフォアグラウンドで -実行させます。同様に `%1 &' は番号 1 のジョブをバックグラウンドで -走行させます。ジョブはそのジョブを起動したときにタイプされた文字列の -先頭部分によって参照することもできます。ただし、この先頭部分は -あいまいでない必要があります。すなわち、`%ex' は、`ex' という文字列で -始まる名前のサスペンドされたジョブが 1 つしかない場合に限り、サスペンドされた -.Xr ex 1 -のジョブを再開します。文字列 -.Ar string -を含むジョブが 1 つしかない場合、`%?string' と入力することで、 -それを指定することもできます。 -.Pp -シェルは現在のジョブと直前のジョブを覚えています。jobs コマンドの -出力では、`+' 記号が付加されているのが現在のジョブ、`\-' 記号が -付加されているのが直前のジョブです。`%+' は現在のジョブ、`%\-' は -直前のジョブの省略形です。後述する -.Ar ヒストリ -の文法から類推される記法として、`%%' があります。 -これもまた現在のジョブの省略形です。 -.Pp -ジョブ制御機構を用いるには、 -.Xr stty 1 -のオプション -.Ic new -を設定しておく必要があります。ジョブ制御機構は、 -.Em 新型 -の端末ドライバの実装の上に構築されているからです。 -新型の端末ドライバにより、ジョブを停止させるためのシグナルを -キーボードから入力できるわけです。 -新型の端末ドライバのオプション設定については stty(1) を参照してください。 -.Ss 状態通知 -シェルは、プロセスが状態の変化を起こすと、すぐにそれを検知します。通常、 -プロンプトが表示される直前にのみ、あるジョブが停止し、それ以上処理が -進まなくなったことを通知します。これは、ユーザの仕事を邪魔しないように -するためです。 -しかしながら、シェル変数 -.Ar notify -をセットすることにより、シェルにバックグラウンド・ジョブの状態が -変化したことをただちに通知させることができます。 -また、シェルコマンド -.Ar notify -により、特定のジョブの状態の変化をただちに通知させる -ようにマークすることもできます。引数なしの -.Ar notify -は現在のプロセスに対してマークをつけます。 -バックグラウンド・ジョブの開始直後に単に `notify' と打つと -そのジョブをマークします。 -.Pp -停止したジョブがある状態でシェルを終了しようとすると、`You have -stopped jobs.' という警告を受けます。このとき、 -.Ar jobs -コマンドによりどのジョブが停止中であるのかを確認することができます。 -警告を受けた直後に -.Ar jobs -コマンドで確認した場合と、 -警告を受けた直後に再度シェルを終了させようとした場合には、 -シェルは 2 度目の警告を行わず、停止中のジョブは終了させてから -シェルを終了します。 -.Ss ファイル名補完 -シェル変数 -.Ar filec -がセットされてファイル名補完機能が有効になっている場合、 -( -.Ic set -の項参照) -.Nm -はファイル名やユーザ名の補完を対話的に行います。文字列に続けて -エスケープ文字 (エスケープキー、または control-[) キーを端末から -入力することにより補完が行われます。 -たとえば、以下のファイルがカレント・ディレクトリにあったとします。 -.Bd -literal -offset indent -DSC.OLD bin cmd lib xmpl.c -DSC.NEW chaosnet cmtest mail xmpl.o -bench class dev mbox xmpl.out -.Ed -.Pp -ここで、以下のように入力します。 -.Pp -.Dl % vi ch<escape> -.Pp -このとき、 -.Nm -は ``ch'' を補完し、それにマッチする唯一のファイル名 ``chaosnet'' -にします。補完後の入力行は以下のようになります。 -.Pp -.Dl % vi chaosnet -.Pp -以下のように入力した場合は、 -.Pp -.Dl % vi D<escape> -.Pp -.Nm -は、次のように補完を行います。 -.Pp -.Dl % vi DSC. -.Pp -ここで、端末ベルを鳴らし、補完が完了しなかったことをユーザに伝えます。 -なぜなら、``D'' で始まるファイル名が複数あったからです。 -.Pp -不完全なファイル名に続いて end-of-file 文字(通常は control-D)を入力すると、 -名前の補完を行うかわりに、その名前にマッチするファイル名の一覧を出力します。 -たとえば、以下のように入力すると、 -.Pp -.Dl % vi D<control-D> -.Pp -``D'' で始まるファイル名の一覧が以下のように出力されます: -.Pp -.Dl DSC.NEW DSC.OLD -.Pp -このとき、入力行は変化しません。 -.Pp -エスケープ文字と、end-of-file 文字を用いる同様の機構は、 -ユーザ名を補完する場合にも用いることができます。この場合、``~'' で -名前を開始します。たとえば、次のように入力すると、 -.Pp -.Dl cd ~ro<escape> -.Pp -以下のように補完されます。 -.Pp -.Dl cd ~root -.Pp -シェル変数 -.Ar nobeep -をセットすることにより、複数の候補があったり、補完に -失敗した場合に端末ベルを鳴らすのを禁止することができます。 -.Pp -通常、そのディレクトリにあるすべてのファイル名が補完の候補となります。 -ある特定の拡張子を持つファイルを補完の候補から外すのに、変数 -.Ar fignore -を用いる -ことができます。以下のコマンドで、変数 -.Ar fignore -を設定すると、 -.Pp -.Dl % set fignore = (.o .out) -.Pp -以下のように入力した場合に、 -.Pp -.Dl % vi x<escape> -.Pp -次のように補完が行われます。 -.Pp -.Dl % vi xmpl.c -.Pp -つまり、"xmpl.o" と "xmpl.out" が無視されて補完が行われました。もし、 -.Ar fignore -で無視するように指定されたファイル名しか補完の対象になり得なかった場合、 -.Ar fignore -の設定は無視されます。また、 -.Ar fignore -は end-of-file 文字によるファイル名の一覧には影響を与えません。 -一覧ではすべてのファイル名が出力されます。 -.Ss 置換 -ここからは、シェルが入力に対して行うさまざまな置換を、 -処理が行われる順に記述します。 -.Ss ヒストリ置換 -ヒストリ置換は、以前に入力されたコマンド中の単語を、 -新たなコマンドの一部として置き換えることで、 -コマンドの繰り返し実行を容易にしたり、直前のコマンドの引数を次のコマンドで -再び使用したり、直前に入力した行の綴り間違いを修正する際に、 -タイプ入力の手間を減らし、自信をもって修正できるようにするための機能です。 -ヒストリ置換は文字 `!' により始まり、入力ストリームの -.Ar どの位置にでも -置くことができます(ただし、入れ子にすることは -.Em できません -)。`\e' を `!' の前に置くことにより、`!' の特殊な意味を打ち消すことが -できます。また、利便のために、`!' の直後に空白、タブ、改行文字、 -`=', `(' が続いた場合、ヒストリ置換は行われず、入力された文字がそのまま -用いられます(ヒストリ置換は、入力行が `\*(ua' で始まっている場合にも -起こります。これについては後述します)。入力行にヒストリ置換が含まれている -場合は、実行直前にヒストリ置換を行った結果が端末に出力されます。 -.Pp -端末から入力された、1 つあるいはそれ以上の単語からなるコマンドは -ヒストリ・リストに記録されます。ヒストリ置換は、この記録された -単語の列を入力ストリームに挿入することにより行われます。 -ヒストリ・リストの大きさは、変数 -.Ar history -により制御されます。直前のコマンドは -.Ar history -の値に関わらず必ず -保存されます。記録されているコマンドは 1 から順にイベント番号が -割り当てられます。 -.Pp -.Ar history -コマンドにより、以下の出力が得られたとします: -.Bd -literal -offset indent -\09 write michael -10 ex write.c -11 cat oldwrite.c -12 diff *write.c -.Ed -.Pp -コマンドはイベント番号とともに出力されています。必ずしもイベント番号を -用いる必要はありませんが、プロンプト文字列に `!' を埋めることにより、 -現在のイベント番号を -.Ar プロンプト -中に表示させることができます。 -.Pp -現在のイベント番号が 13 だとすると、以前のイベントを指定するには、 -イベント番号を用いて `!11' としたり、 -相対指定を用いて `!\-2' としたり(同じイベントを表します)する方法があります。 -また、コマンドの単語の先頭部分を用いて指定することもできます。例えば、`!d' -でイベント番号 12 を指定したり、 `!wri' でイベント番号 9 を指定できます。また、 -ある文字列を含むコマンドを指定するのに `!?mic?' (これはイベント番号 9 の -コマンドを示します)のような記法も使えます。これらの記法は、指定された -イベントの各単語を単一の空白で区切った単語列に置換します。特殊な -場合として、`!!' は直前のコマンドを参照します。すなわち、`!!' だけを -入力することは直前のコマンドの -.Ar 再実行 -を意味します。 -.Pp -あるイベント中のいくつかの単語だけを指定するために、イベント指定に続けて `:' -と単語指示子を書くことができます。イベントの単語は 0 から順に番号が -振られています。最初の単語(通常はコマンドです)が 0 で、2 番目の単語 -(第1引数)が 1 ということになります。基本的な単語指示子は以下のとおりです: -.Pp -.Bl -tag -width Ds -compact -offset indent -.It \&0 -最初の(コマンド)単語 -.It Ar n -.Ar n -番目の単語 -.It \*(ua -最初の引数(すなわち 1 と同じ) -.It $ -最後の引数 -.It % -直前の -.No \&? Ns Ar s Ns \&? -検索でマッチした単語 -.It Ar \&x\-y -.Ar x -番目から -.Ar y -番目までの単語 -.It Ar \&\-y -.Ar `\&0\-y\' -の省略形 -.It * -`\*(ua\-$' の省略形。イベントが1語のみからなる場合は空になる -.It Ar x* -.Ar `x\-$\' -の省略形 -.It Ar x\- -.Ar `x*\' -から最後の単語を除いたもの。 -.El -.Pp -イベント指定と単語指示子とを区切る `:' は、引数選択子が `\*(ua', `$', `*', -`\-', `%' で始まっている場合には省略することができます。 -単語指示子の直後に、 `:' に続けて -修飾子を複数個置くことができます。以下の修飾子が定義されています: -.Pp -.Bl -tag -width Ds -compact -offset indent -.It h -パス名の最後の要素を削除します(head) -.It r -最後の `.xxx' 要素を削除します(root) -.It e -`.xxx' 以外の部分を削除します(extension) -.It s Ns Ar /l/r/ -Substitute -.Ar l -を -.Ar r -で置換します(substitution) -.It t -最後の要素を残して、それより前のパス名の要素全てを削除します。 -.It \&& -直前の修飾子の作用を繰り返します。 -.It g -上記の修飾子の直前に置き、変更を、各単語に 1 回だけ及ぼすことを指定します。 -例) `g&' -.It a -上記の修飾子の直前に置き、1 つの単語に対して可能な限り繰り返して -変更を行います。変更が全単語に及ぶようにするには `g' と組み合わせて使います。 -.It p -置換結果を表示しますが、実行はしません(print only) -.It q -さらに置換が行われないように、置換結果をクォートします(quote) -.It x -q と同様ですが、空白、タブ、改行によって単語を分割します -.El -.Pp -`g' が指定されなかった場合、適用可能な最初の単語のみが修飾子の影響を受けます。 -置換については、適用可能な単語がなかった場合にはエラーとなります。 -.Pp -置換(s/l/r/) における左辺 ( -.Ar l -) は、エディタなどで使うような正規表現ではなく単なる文字列です。`/' -のかわりに自由な文字を区切りに指定することができます。`\e' によって、 -.Ar l -または -.Ar r -中の区切り文字をクォートすることができます。右辺 ( -.Ar r -) 中の文字 `&' は -左辺の文字列に置換されます。`&' もまた `\e' によって -クォートすることができます。 -空の左辺値 -.Ar l -(`//') の場合、直前の左辺値 -.Ar l -または、 -.No \&`!? Ns Ar s Ns ?' -中のコンテキストスキャン文字列 -.Ar s -から左辺値が取られます。置換指定の直後に改行がくる場合には、 -最後の区切り文字を省略することができます。 -コンテキストスキャンの後ろ側の文字 `?' も、直後に改行がくる場合、 -同様に省略できます。 -.Pp -ヒストリは、 `!$' のようにイベント指定なしで参照することができます。 -同じ行においてそれ以前にヒストリ参照が行われた場合はそのイベントを、 -さもなければ直前のコマンドが参照されます。`!?foo?\*(ua !$' は `?foo?' に -マッチするイベントの最初と最後の単語に置換されます。 -.Pp -入力行の最初の非空白文字が `\*(ua' の場合、特殊なヒストリ参照の省略形であると -みなします。これは `!:s\*(ua' と等価で、直前に入力したコマンド行の -文字列置換を行うことができます。たとえば、`\*(ualb\*(ualib' は -直前のコマンドの `lib' の綴り間違いを修正します。 -最後に、後ろに続く文字とヒストリ置換とを隔離するために、 -ヒストリ置換を `{' と `}' によって囲むことができます。`ls -ld ~paul' なる -コマンドを実行した直後に`!{l}a' と -入力することで、`ls -ld ~paula' に展開されます。一方、`{}' を -使わずに `!la' とした場合は `la' で始まるイベントを検索します。 -.Pp -.Ss \' と \&" によるクォート -文字列を `\'' または `"' によって -クォートすることにより、残りの置換のすべてあるいは一部を -抑制することができます。`'' によってクォートされた文字列には -本マニュアルのこれ以降に説明する置換が適用されません。`"' によって -クォートされた文字列は、後述するように一部の置換が適用されます。 -.Pp -どちらのクォートの結果も単一の単語 (の全体または一部) となります。 -ただし、`"' クォートされたコマンド置換は複数の単語になる特殊な場合が -1 つだけあります(後述の -.Sx コマンド置換 -の項を参照)。 -`\'' クォートの場合は、このようなことはありません。 -.Ss エイリアス置換 -シェルはエイリアス(別名定義)を管理しており、 -.Ar alias -コマンドと -.Ar unalias -コマンドに -より設定、表示、修正等を行うことができます。コマンド行がスキャンされたあと、 -個々のコマンドに解析され、各コマンドの最初の単語に対応するエイリアスが -あるかどうかチェックします。もし存在すれば、入力されたコマンド行の内容を -直前のコマンドとみなして、エイリアスの内容をヒストリ展開します。 -コマンド行全体は展開結果と置き換えられます。エイリアスの内容が -ヒストリ参照を含まなかった場合、入力したコマンド行の引数は変更せずに -残されます。 -.Pp -`ls' に対するエイリアスが `ls -l' だった場合、`ls /usr' は `ls -l -/usr' に展開されます。この場合、エイリアスにはヒストリ参照がなかったため、 -引数の `/usr' は変更せずに残されました。`lookup' に対するエイリアスが -`grep !\*(ua /etc/passwd' だった場合、`lookup bill' は -`grep bill /etc/passwd' に展開されます。 -.Pp -エイリアスが展開された場合、展開結果に対して単語分割とエイリアス検索が -再度行われます。展開結果の最初の単語が展開前の最初の単語と同一になった場合、 -再度エイリアス検索が行われることはありません。それ以外の、エイリアスによる -ループは検出され、エラー扱いとなります。 -.Pp -このメカニズムによってエイリアスでパーサのメタ記法を利用できます。 -よって `alias print \'pr \e!* \&| lpr\'' とエイリアスすることで -.Ar pr -の -引数をプリンタに出力させるというようなことができます。 -.Ss 変数置換 -シェルは変数を管理しており、それらは 0 個またはそれ以上の単語のリストを -値として持ちます。変数のうちいくつかはシェルがセットしたり参照したりします。 -たとえば、変数 -.Ar argv -はシェルへの引数を保持しており、この変数の値である単語は、特殊な方法で -参照されます。 -.\" #### jpman kuma 96.12.05 here checked ... TO BE CONTINUED -.Pp -変数の値は -.Ar set -および -.Ar unset -コマンドにより参照、変更することができます。シェルが -参照する変数のうちいくつかは、それがセットされているかどうかだけが重要 -であり、値が何であっても意味を持たないものがあります。たとえば、変数 -.Ar verbose -は入力行がエコーされるかどうかを制御する変数であり、この変数を -セットすることは、 -.Nm -に -.Fl v -オプションを指定したのと同じ意味になります。 -.Pp -変数を数値として扱う操作もあります。`@' コマンドによって変数に対して数値演算 -を適用し、演算結果を変数に代入することができます。しかしながら、変数の -値はつねに文字列として表現されます。数値演算の場合、空文字列は 0 と -みなし、変数の値が複数の単語からなる場合 2 番目以降の単語は無視されます。 -.Pp -入力行にエイリアス置換を行い、構文解析を行ったあと、コマンドが実行される -前に文字 `$' をキーとして変数置換を行います。`$' の直前に `\e' -を置くことにより、変数置換を抑制することができます。 -ただし、`"' クォート中では変数置換は -.Em 必ず -行われますが、`\'' クォート中では -.Em 決して行われません。 -`\*(ga' クォートのなかはさらにあとで解釈されるため(後述の -.Sx コマンド置換 -の項を参照)、ここでは変数置換は行いません。`$' の直後に空白、タブ、 -改行がくる場合、`$' はそのまま残されます。 -.Pp -入出力リダイレクトは変数置換より前に解釈され、別々に変数置換が行われます。 -それ以外のコマンド名と引数は同時に展開されます。このため、最初の -単語(コマンド)が展開の結果、複数の単語となったり、展開された結果の -最初の単語がコマンド名、それ以外が引数の一部になることもあります。 -.Pp -`"' でクォートされておらず、変数置換に `:q' 修飾子も指定されなかった -場合には、変数置換の結果にコマンドとファイル名置換が -行われます。`"' クォート内では複数の単語からなる値を持つ変数は、各単語を -1つの空白で区切った単一の単語 (の一部) に展開されます。`:q' 修飾子が -指定された場合は、各単語は 1 つの空白で区切られ、 -この後のコマンドとファイル名置換を抑止するために、個々にクォートされた -単語の列に展開されます。 -.Pp -変数置換には以下の形式があります。特に記述していない場合、 -セットされていない変数の参照はエラーになります。 -.Pp -.Bl -tag -width Ds -compact -offset indent -.It $name -.It ${name} -.\" #### modified by kuma 96.12.21 #### -変数 -.Ar name -の値の各単語を 1 つの空白文字で区切ったものに展開されます。中括弧は -.Ar 変数名 -と後続する文字を分離し、後続する文字が変数名の一部と解釈されないように -するために用いられます。シェル変数は 20 文字までの名前を持ちます。 -変数名の先頭はアルファベットで、それ以降はアルファベット、数字、 -アンダースコアを使用することができます。 -.Ar name -という名前のシェル変数は存在しないが、同名のセットされた環境変数が -存在する場合には、その値に置換されます(ただし、環境変数に対しては -.Nm : -修飾子と以降に説明する書式を -用いることはできません)。 -.It $name Ns Op selector -.It ${name Ns [ selector ] } -変数 -.Ar name -の値のうちいくつかの単語を選択して展開します。 -.Ar selector -は 1 -つの数字、範囲を示す2つの数字を `\-' でつないだもの、あるいはそのような -結果になる変数置換のいずれかです。単語は 1 から順序づけられています。 -範囲の最初の数字が省略された場合は 1 が用いられます。範囲の第2の数字が -省略された場合は `$#name' が用いられます。selector として `*' が用いられた -場合には、すべての単語に展開されます。範囲の第2の数字が省略されるか、 -単語数より小さい場合には、範囲が空になってもエラーとはなりません。 -.It $#name -.It ${#name} -変数の値の単語数に展開されます。 -この機能は後述する -`$argv[selector]' -で有用です。 -.It $0 -コマンドを読み込んでいるファイル名に展開されます。ファイル名が不明の場合は -エラーとなります。 -.It $number -.It ${number} -`$argv[number]' と等価です。 -.It $* -`$argv[*]' と等価です。 -.El -.Pp -修飾子 `:e', `:h', `:t', `:r', `:q', `:x' や -`:gh', `:gt', `:gr' を適用することができます。中括弧 `{' `}' で -囲まれている場合は、中括弧内に修飾子が存在しなければなりません。 -現在の csh の実装では、各 `$' 展開につき1つの修飾子のみ指定することができます。 -.Pp -以下の置換を行なう場合は `:' 修飾子を指定することはできません。 -.Bl -tag -width Ds -compact -offset indent -.It $?name -.It ${?name} -変数 name がセットされていれば `1' に、さもなければ `0' に展開されます。 -.It $?0 -現在の入力ファイル名がわかっていれば `1' に、不明ならば `0' に展開されます。 -.It \&$\&$\& -親のシェルの (10進の) プロセス番号に展開されます。 -.It $! -そのシェルから起動された最後のバックグラウンド・プロセスの -(10進の) プロセス番号に展開されます。 -.It $< -標準入力から1行を読み込み、その内容に展開されます。読み込んだ内容の解釈は -行いません。スクリプト中でキーボードからの入力を受けるのに用いられます。 -.El -.Ss コマンドとファイル名置換 -残りの置換であるコマンド置換とファイル名置換は、 -組み込みコマンドの引数に対しては -適用されたり、されなかったりします。 -.\" #### changed by kuma 96.12.21 #### -すなわち、式の中で評価が行われない部分に関しては -以下の置換が行なわれません。組み込みコマンドではないコマンドにおいては、 -コマンド名は引数とは別に置換が行なわれます。 -.\" #### changed by kuma 96.12.21 #### -コマンド名に対する置換が生じるのは一連の置換処理の最後の方で、 -入出力リダイレクトの設定後、メインシェルの子供の中で行われます。 -.Ss コマンド置換 -コマンド置換は、コマンドを `\*(ga' で囲むことによって指示します。 -コマンドからの -出力は空白、タブ、改行によって単語に分割され、空の単語を削除したあとに -元の文字列と置換されます。 -`"' の内部では、改行のみが単語分割の区切りとして扱われ、空白とタブは -そのまま残されます。 -.Pp -どちらの場合も、コマンドの出力の最後の改行は単語の区切りとはならず、単に -削除されます。 -よってコマンド置換によって、コマンドの出力が完全な 1 行であっても、 -単語の一部分のみを生成することが可能です。 -.Ss ファイル名置換 -単語が文字 `*', `?', `[', `{' を含んでいるか、単語の先頭文字が `~' の -.\" #### modified by kuma 96.12.21 #### -場合、その単語はファイル名展開(あるいはグロブ(glob)と呼ばれます)の -候補となります。 -.\" #### modified by kuma 96.12.21 #### -候補となった単語はパターンとみなされ、パターンにマッチするファイル名が -アルファベット順にソートされた列に置換されます。 -ファイル名置換を含む単語の列がどれもファイル名にマッチしなかった場合には -エラーとなりますが、 -すべての単語パターンがマッチする必要はありません。 -メタキャラクタ`*', `?', `[' -のみがパターンマッチ文字であり、`~' と `{' は省略形といったほうが近いで -しょう。 -.Pp -ファイル名マッチにおいて、ファイル名先頭、または `/' の直後の `.' は、 -`/' と同様に明示的にマッチさせなければなりません(`*' や `?' は -これらにマッチしません)。 -`*' は、空文字列を含むどのような文字列にもマッチします。`?' は、 -どのような1文字にもマッチします。 -.Sq Op ... -は、括弧のなかで指定した文字のいずれかにマッチします。 -.Sq Op ... -内では、文字の対を `\-' でつなぐことで、 -文字の範囲を指定することができます(両側の文字も含まれます)。 -.Pp -ファイル名の先頭の `~' はホーム・ディレクトリを示すのに用いられます。 -単独で用いられた場合には、シェルを起動したユーザのホーム・ディレクトリ -.\" #### modified by kuma 96.12.21 #### -(変数 -.Ar home -の値に反映されているとおり)に展開されます。`~' に続けてアルファベット、 -数字、`-' からなる単語が続いた場合は、その単語をユーザ名とみなして、 -そのユーザのホーム・ディレクトリに展開されます。たとえば、ユーザ ken の -ホーム・ディレクトリが `/usr/ken' ならば、`~ken' は -`/usr/ken' に、 `~ken/chmach' は `/usr/ken/chmach' に展開されます。 -直後にアルファベットと `/' 以外が続く`~'と、ファイル名の先頭にない `~' は -変更されずにそのまま残されます。 -.Pp -メタ記法 `a{b,c,d}e' は `abe ace ade' の短縮形です。 -.\" #### modified by kuma 96.12.21 #### -この記法の左から右への出現順序は保存されます。 -展開結果は下位のレベルで個別にソートされ、出現順序は保存されます。 -この記法は入れ子にすることができます。 -source のホーム・ディレクトリが `/usr/source' ならば、 -`~source/s1/{oldls,ls}.c' は `/usr/source/s1/oldls.c -/usr/source/s1/ls.c' に展開されます。このとき oldls.c や ls.c が -存在しなくともエラーにはなりません。同様に、`../{memo,*box}' は -`../memo ../box ../mbox' 等に展開されます(`memo' と `*box' の -展開結果がいっしょに -ソートされたりしていないことに注意してください)。特殊な場合として、 -単独の`{' と `}', `{}' は変更されずにそのまま残されます。 -.Ss 入出力 -コマンドの標準入出力は、以下の方法によりリダイレクトすることができます: -.Pp -.Bl -tag -width Ds -compact -offset indent -.It < name -ファイル -.Ar name -(変数、コマンド、ファイル名展開を受けます)をオープンし、 -コマンドの標準入力とします。 -.It << word -.Ar word -と同一の行が出現するまで、シェルの入力を読み込みます。 -.Ar word -は変数、ファイル名、コマンド置換を受けません。シェル入力の行は -読み込まれるとすぐに -.Ar word -と比較されます(置換を行う前に)。その後、 -.Ar word -に -`\e', `"', `\'', `\*(ga' クォートが出現しないなら、読み込まれた行には -変数置換と -.\" #### ^^^^^^^ `\'' だと思う(1次チェック者のコメント?jpman kuma 961205) -.\" #### kuma agree with you, changed as specified 96.12.22 -コマンド置換が適用されます。この置換を抑制するために、`\e' によって -`$', `\e', `\*(ga' をクォートすることができます。コマンド置換において、 -すべての空白、タブ、改行は保存されますが、最後の改行は削除されます。 -読み込んだ行はすべて中間的なファイルに保存され、コマンドの標準入力として -用いられます。 -.It > name -.It >! name -.It >& name -.It >&! name -ファイル -.Ar name -を標準出力として用います。ファイルが存在しなければ作成され、 -すでにファイルが存在すればその内容は切り捨てられ、以前の内容は失われます。 -.Pp -変数 -.Ar noclobber -がセットされている場合、ファイルが存在しないか文字型特殊ファイル (端末や -`/dev/null' のような) でなければエラーになります。これは、 -すでに存在するファイルを思いがけず削除してしまうことを防止します。`!' を -用いた形式を使うと、この検査を抑制することができます。 -.Pp -`&' を用いた形式では、標準出力とともに標準エラー出力もファイルへ -リダイレクトされます。 -.Ar name -.\" #### modified by kuma 96.12.21 #### -は、 `<' の入力ファイル名の場合と同様の展開を受けます。 -.It >> name -.It >>& name -.It >>! name -.It >>&! name -`>' と同様に、ファイル -.Ar name -を標準出力として用います。ただし、コマンドの出力はファイルへ追加されます。 -変数 -.Ar noclobber -がセットされている場合、 -ファイルが存在しなければエラーとなります(`!' を用いることで、 -この検査を抑制することができます)。 -他は `>' と同様です。 -.El -.Pp -コマンドは、シェルが起動されたときの環境を、入出力リダイレクトと -パイプラインによって変更したもののなかで実行されます。以前のいくつかの -シェルとは異なり、 -シェルコマンドファイルから起動されたコマンドは、デフォルトでは標準入力に -よってシェルコマンドファイル自体にアクセスすることはできません。 -かわりに、シェルが起動した環境の標準入力をそのまま受け継いでいます。 -`<<' 機構はインラインデータのために用いるべきです。 -このように制限することにより、 -シェルコマンドスクリプトをパイプラインの一部として用いることができます。 -バックグラウンドで実行されているコマンドの標準入力も -.Pa /dev/null -等にリダイレクトされることは -.Ar なく -、シェルの標準入力をそのまま受け継いでいます。もし標準入力が端末で、 -コマンドが端末から読み込もうとした場合、そのプロセスはブロックされ、 -シェルはユーザにそのことを通知します(参照: -.Sx ジョブ -の項)。 -.Pp -標準エラー出力もパイプにリダイレクトすることができます。単純に `\&|' の -かわりに `\&|&' を使います。 -.Ss 式 -.\" #### modified by kuma 96.12.21 #### -いくつかの組み込みコマンド(後述します)は、引数として式を取ります。式は C -言語のものと類似しており、同じ優先順位を持ちます。式は -.Em @ , -.Em exit , -.Em if , -.Em while -コマンド中で用います。以下の演算子が使用可能です: -.Bd -ragged -offset indent -\&|\&| && \&| \*(ua & == != =~ !~ <= >= -< > << >> + \- * / % ! ~ ( ) -.Ed -.Pp -上記の演算子は右にいくほど優先順位が高くなっています。 -`==' `!=' `=~' `!~', `<=' `>=' `<' `>', `<<' `>>', `+' `\-', -`*' `/' `%' の 5グループは各グループ内では同じ優先度です。 -`==', `!=', `=~', `!~' は文字列の比較を行い、他の演算子は数値演算を -行います。`=~', `!~' は `!=', `==' と同様ですが、右辺を -.Ar パターン -(`*', `?', `[...]' を含んだ) とみなして、左辺とのパターンマッチが行われます。 -これにより、シェル -スクリプトにおいてパターンマッチのみが必要な局面では -.Ar switch -ステートメントを使わずに済ませることができます。 -.Pp -先頭が `0' の文字列は 8 進数の数値とみなされます。空または省略された引数 -は `0' とみなされます。すべての演算結果は 10 進数数値の文字列となります。 -式の 2 つの要素が同一の単語中に出現してはいけません。つまり、 -.\" #### modified by kuma 96.12.21 #### -要素の前後が、構文解析において特殊な意味を持つ -`&', `\&|', `<', `>', `(', `)' でない場合は、 -その要素は空白で囲まれていることが必要です。 -.Pp -数式中では、`{' と `}' で囲んだコマンドと、 -以下のファイル検査演算子を用いることができます。 -ファイル検査演算子は -.Fl l -.Ar name -の形式で、 -.Ic l -は以下のうちのいずれかです: -.Bd -literal -offset indent -r 読み込みアクセス -w 書き込みアクセス -x 実行アクセス -e 存在 -o 所有 -z サイズがゼロ -f 通常ファイル -d ディレクトリ -.Ed -.Pp -指定された name は、コマンド、ファイル名置換を適用したのちに -実ユーザの権限において検査されます。ファイルが存在しないか、 -アクセス不可なら演算結果は false すなわち `0' になります。 -コマンド実行においては、コマンドが成功したなら演算結果は true `1' に、 -コマンドが 0 以外の終了ステータスを返してきたら、すなわち、 -失敗なら演算結果は false `0' になります。 -終了ステータスの値自体を知りたい場合は、コマンドを式以外の文脈で実行し、変数 -.Ar status -の値を調べます。 -.Ss 制御構造 -シェルにはコマンドファイル(シェル・スクリプト)中で、 -あるいは(制限されてはいるが、便利な方法で)端末から、 -制御の流れを変更するためのいくつかのコマンドがあります。 -これらのコマンドはシェルに入力を読み直させたり、 -スキップさせたりすることができます。実装の制限上、 -これらのコマンドを書くことのできる位置に制限があります。 -.Pp -.Ic foreach , -.Ic switch , -.Ic while , -文、および、 -.Ic if\-then\-else -の -.Ic if -ステートメントは、 -後述するように入力行の単一の単純コマンドとして現れる必要があります。 -.Pp -シェルの入力がシーク不可能な場合、 -シェルは繰り返しが必要なときには入力をバッファに保存し、 -.\" #### modified by kuma 96.12.23 #### -この内部バッファに対してシークを行います(このため、シーク不可能な入力の場合も、 -後方への goto が可能です)。 -.Ss 組み込みコマンド -組み込みコマンドは通常シェルのプロセス内部で実行されます。 -ただし、組み込みコマンドがパイプラインの最後以外に用いられた場合は、 -サブシェル上で実行されます。 -.Pp -.Bl -tag -width Ds -compact -offset indent -.It Ic alias -.It Ic alias Ar name -.It Ic alias Ar name wordlist -1行目の形式はすべてのエイリアスを出力します。2 行目の形式は -.Ar name -に対応したエイリアスの値を出力します。最後の形式は -.Ar wordlist -を -.Ar name -のエイリアスとして登録します。 -.Ar wordlist -にはコマンド置換、ファイル名置換が適用されます。 -.Ar name -として -.Ar alias -または -.Ar unalias -を指定することはできません。 -.Pp -.It Ic alloc -.Nm -が獲得したメモリのうちの使用量と空き容量を表示します。 -なんらかの引数をつけると、ブロックサイズごとの使用中/空ブロック数を表示します。 -ブロックサイズは 8、16、32、.. となります。 -本コマンドの出力はシステムによって異なります。 -VAX 以外のシステムは、異なるメモリ管理を行っているかもしれないからです。 -.Pp -.It Ic bg -.It Ic bg \&% Ns Ar job ... -現在のジョブあるいは指定されたジョブをバックグラウンドに移動します。 -もしそれらのジョブが停止されていたなら、実行が再開されます。 -.Pp -.It Ic break -最も内側の -.Ic foreach -または -.Ic while -ループに対応する -.Ic end -の後へ脱出します。同じ行にある残りのコマンドは実行されます。複数の -.Ic break -を同一行に記述することで複数レベルの脱出が行えます。 -.Pp -.It Ic breaksw -.Ic switch -から脱出し、 -.Ic endsw -のあとで実行を再開します。 -.Pp -.It Ic case Ar label : -.Ic switch -ステートメントのラベルを指定します。 -.Pp -.It Ic cd -.It Ic cd Ar name -.It Ic chdir -.It Ic chdir Ar name -.\" #### modified by kuma 96.12.23 #### -シェルの作業ディレクトリをディレクトリ -.Ar name -に変更します。引数が指定されなかった場合には、 -ユーザのホーム・ディレクトリに変更します。 -カレント・ディレクトリにディレクトリ -.Ar name -がない場合(かつ -.Ar name -が `/', `./', `../' -で始まっていない場合)、変数 -.Ic cdpath -の各要素のサブディレクトリとして -.Ar name -がないかどうかを調べます。最後に、シェル変数 -.Ar name -に `/' で始まる値が設定されているなら、 -その値のディレクトリが存在しないかを調べます。 -.Pp -.It Ic continue -最も内側の -.Ic while -または -.Ic foreach -ループの先頭に戻ります。戻る前に、同じ行に記述されたコマンドが実行されます。 -.Pp -.It Ic default : -.Ic switch -ステートメントのデフォルトを指定します。 -.Ic default -は、すべての -.Ic case -ラベルのあとに出現しなければなりません。 -.Pp -.It Ic dirs -ディレクトリ・スタックを表示します。 -スタックの先頭(カレント・ディレクトリ)を左端にして表示します。 -.Pp -.It Ic echo Ar wordlist -.It Ic echo Fl n Ar wordlist -指定された単語を空白で区切った文字列をシェルの標準出力に書き出します。 -.Fl n -オプションが指定されなければ、最後に改行が出力されます。 -.Pp -.It Ic else -.It Ic end -.It Ic endif -.It Ic endsw -.Ic foreach , -.Ic if , -.Ic switch , -.Ic while -ステートメントの項を参照してください。 -.Pp -.It Ic eval Ar arg ... -( -.Xr sh 1 -と同様)引数をシェルへの入力であるとみなして読み込み、 -現在のシェルのコンテキストで実行します。 -コマンド置換や変数置換の結果として生成されたコマンド列を実行する場合に用いられます。 -通常は、それらの置換に先立って文法解析が行われてしまうからです。 -.Ic eval -の使い方の例が -.Xr tset 1 -にあります。 -.Pp -.It Ic exec Ar command -指定された command を現在のシェルと置き換えて実行します。 -.Pp -.It Ic exit -.It Ic exit Ar (expr ) -1行目の形式では変数 -.Ic status -の値、2 行目の形式では式 -.Ic expr -の値を返り値としてシェルを終了します。 -.Pp -.It Ic fg -.It Ic fg % Ns Ar job ... -現在のジョブあるいは指定されたジョブをフォアグラウンドに移動します。 -停止していたジョブは実行を再開します。 -.Pp -.It Ic foreach Ar name (wordlist) -.It ... -.It Ic end -変数 -.Ic name -に -.Ic wordlist -の各値を順次セットしながら対応する -.Ic end -までのコマンドを繰り返し実行します( -.Ic foreach -と -.Ic end -.\" #### modified by kuma 96.12.23 #### -は単独で行に置かなければなりません)。組み込みコマンド -.Ic continue -を使って中途でループの次の繰り返しを実行させたり、 -.Ic break -コマンドによって中途でループを脱出させたりすることができます。 -このコマンドが端末から読み込まれる場合、ループすべての内容が(プロンプト -? を表示しながら)読み込まれてから実行が開始されます。 -端末からループ中でタイプ・ミスした場合は修正できます。 -.Pp -.It Ic glob Ar wordlist -.Ic echo -コマンドと似ていますが、`\e' によるエスケープは解釈されず、 -.\" #### modified by kuma 96.12.23 #### -単語はヌル文字によって区切られます。プログラムから、 -シェルをファイル名置換のために利用する場合に便利です。 -.Pp -.It Ic goto Ar word -.Ic word -にファイル名置換、およびコマンド置換が適用されたのち、それを `label' -とみなします。シェルは可能なかぎり入力を遡って読み直し、`label:' -のある行を検索し、そこから実行を開始します。 -ラベルの前には空白またはタブを置くことが可能です。 -.Pp -.It Ic hashstat -コマンドを検索するのに、 -内部キャッシュがどの程度効率的に働いているか -(そして -.Ic exec -をどの程度回避できているかを)を表示します。 -.\" #### modified by kuma 96.12.23 #### -.Em path -の要素のうち、ハッシュ関数がヒットの可能性を示すものと、 -`/' で始まらないものについて -.Ic exec -が試みられます。 -.Pp -.It Ic history -.It Ic history Ar n -.It Ic history Fl r Ar n -.It Ic history Fl h Ar n -ヒストリのリストを表示します。数字 -.Ar n -が指定された場合には、最近の -.Ar n -個のイベントが表示されます。 -.Fl r -オプションは表示順序を逆にします。 -.\" #### modified by kuma 96.12.23 #### -すなわち、最も古いものを先に表示するのではなく、 -最も新しいものを先に表示します。 -.Fl h -オプションを指定すればイベント番号が省略されます。これは -.Ic source -コマンドで \-h を使って読み込むためのファイルを生成する場合に用いることができます。 -.Pp -.It Ic if ( Ar expr ) No command -.\" #### modified by kuma 96.12.23 #### -指定された式が true と評価されたなら、単一のコマンド -.Ar command -が実行されます。 -.Ar command -.\" #### modified by kuma 96.12.23 #### -に対する変数置換は、実行に先だって -.Ic if -コマンドの残りの部分と同時に行なわれます。 -.Ar command -は単純コマンドのみが許され、パイプライン、コマンドリスト、括弧でくく -られたコマンドであってはいけません。入出力リダイレクションは式 -.Ar expr -が false -と評価され、それゆえ -.Ar command -が実行 -.Sy されなかった -場合にも処理されます(これはバグです)。 -.Pp -.It Ic if ( Ar expr ) Ic then -.It ... -.It Ic else if ( Ar expr2 ) Ic then -.It ... -.It Ic else -.It ... -.It Ic endif -式 -.Ar expr -が true なら最初の -.Ic else -までのコマンドが実行されます。さもなければ、式 -.Ar expr2 -が true なら次の -.Ic else -までのコマンドが実行されます。 -いくつでも -.Ic else-if -の対を繰り返すことができます。最後に 1 つの -.Ic endif -が必要です。 -最後の -.Ic else -部分はあってもなくてもかまいません。 -(単語 -.Ic else -と -.Ic endif -は入力行の最初に置く必要があります。また、 -.Ic if -は行内に単独で、または -.Ic else -のあとに置く必要があります)。 -.Pp -.It Ic jobs -.It Ic jobs Fl l -アクティブなジョブの一覧を出力します。 -.Fl l -.\" #### modified by kuma 96.12.23 #### -オプションを指定すると、通常の情報に加えてプロセス ID も出力します。 -.Pp -.It Ic kill % Ns Ar job -.It Ic kill Ar pid -.It Ic kill Fl sig Ar pid ... -.It Ic kill Fl l -TERM(terminate) シグナルあるいは指定したシグナルを、 -指定されたジョブまたはプロセスに送ります。 -シグナルは番号または名前で指定できます(名前は -.Pa /usr/include/signal.h -にある名前から `SIG' を取り除いたものです)。 -シグナル名の一覧を ``kill \-l'' により表示できます。 -kill にはデフォルト動作はなく、 -単に `kill' を実行しても現在のジョブにシグナルが送られるようなことはありません。 -送るシグナルが TERM(terminate) または HUP(hangup) の場合、 -CONT(continue) シグナルも同時に送られます。 -.Pp -.It Ic limit -.It Ic limit Ar resource -.It Ic limit Ar resource maximum-use -.It Ic limit Fl h -.It Ic limit Fl h Ar resource -.It Ic limit Fl h Ar resource maximum-use -現在のプロセスと、それが生成するプロセスのそれぞれについて、 -.\" #### modified by kuma 96.12.23 #### -指定されたリソース -.Ar resource -を、指定された -.Ar maximum-use -を超えて使用しないように設定します。 -.Ar maximum-use -が指定されなかった場合、現在の制限値が表示されます。 -.Ar resource -が指定されなかった場合、すべての制限値が表示されます。 -.Fl h -オプションが指定された場合、 -現在の制限値のかわりにハードリミットの表示/設定を行います。 -.\" #### modified by kuma 96.12.23 #### -ハードリミットは現在の制限値の上限の値です。 -スーパユーザのみがハードリミットを増加させることができます。 -一般ユーザは現在の制限値を可能な範囲で増減することができます。 -.Pp -.\" #### modified by kuma 96.12.23 #### -現在のところ、制御可能なリソースは、 -.Ar cputime -(各プロセスが使うことのできる最大の CPU 秒数)、 -.Ar filesize -(1つのファイルの最大サイズ)、 -.Ar datasize -( -.Xr sbrk 2 -.\" #### modified by kuma 96.12.23 #### -を用いてプログラムのテキスト領域の末尾を超えて増加させることのできる -data+stack 領域の最大サイズ)、 -.Ar stacksize -.\" #### modified by kuma 96.12.23 #### -(自動的に拡張されるスタックの最大サイズ)、 -.Ar coredumpsize -(最大のコアファイルのサイズ)です。 -.Pp -最大値 -.Ar maximum-use -は、(整数あるいは浮動小数の) -数値とそれに続くスケールファクタによって指定します。 -.Ar cputime -以外の制限値のデフォルトのスケールファクタは -`k' あるいは `kilobytes'(1024 バイト)です。 -.\" #### modified by kuma 96.12.23 #### -スケールファクタとして `m' あるいは `megabytes' -を使用することもできます。 -.Ar cputime -のデフォルトのスケールファクタは `seconds'(秒)です。 -`m'(分)、`h'(時間) をスケールファクタとして指定したり、 -`mm:ss' 形式で分秒を指定したりすることができます。 -.Pp -.\" #### modified by kuma 96.12.23 #### -リソース名 -.Ar resource -とスケールファクタを指定する際には、 -.\" #### modified by kuma 96.12.23 #### -一意に決定できるなら、名前の先頭部分だけを指定することができます -.\" #### jpman kuma: not found in freebsd-2.1.5-RELEASE manpage (st を stacksize のかわりに用いる等)。 -.Pp -.It Ic login -ログイン・シェルを終了し、 -.Pa /usr/bin/login -と置き換えます。これは -.Xr sh 1 -との互換性のために用意されたログオフの手段です。 -.Pp -.It Ic logout -ログイン・シェルを終了します。 -.Ic ignoreeof -がセットされている場合に便利です。 -.Pp -.It Ic nice -.It Ic nice Ar +number -.It Ic nice Ar command -.It Ic nice Ar +number command -1 行目の形式は、シェルのスケジューリング・プライオリティを 4 に設定します。 -2 行目の形式は、プライオリティを指定された値 -.Ar number -に設定します。残りの 2 つの形式は、コマンド -command をプライオリティ 4 または指定した -.Ar number -で実行します。 -.\" #### modified by kuma 96.12.23 #### -大きい数値を指定するとプロセスが利用できる CPU がその分少なくなります。 -スーパユーザのみがプライオリティとして負の値を `nice \-number ...' -のように指定することができます。 -.Ar command -はつねにサブシェルで実行され、 -単純な -.Ic if -.\" #### modified by kuma 96.12.23 #### -文のコマンドと同様の制限を受けます。 -.Pp -.It Ic nohup -.It Ic nohup Ar command -1 行目の形式は、シェル・スクリプト内で使用し、 -スクリプトのそれ以降で hangup シグナルを無視するように設定します。 -2 行目の形式は、指定されたコマンドが、 -hangup シグナルを無視するように設定して実行します。 -`&' をつけて実行されたプログラムは、 -.Ic nohup -を指定して実行したのと同様に hangup シグナルを無視します。 -.Pp -.It Ic notify -.It Ic notify % Ns Ar job ... -現在のジョブまたは指定されたジョブの状態が変化したときに、 -.\" #### modified by kuma 96.12.23 #### -コマンド待ちかどうかに関わりなく即座に通知するように指定します。 -通常は、プロンプトが表示される直前に通知が行われます。 -シェル変数 -.Ic notify -が指定されている場合は、すべてのジョブに対して同様の設定が行われます。 -.Pp -.It Ic onintr -.It Ic onintr Fl -.It Ic onintr Ar label -割り込みに対するシェルの動作を制御します。1行目の形式は、 -シェルをデフォルトの動作、すなわち、スクリプトの実行が中断される、 -またはコマンド入力状態に戻るように設定します。 -2 行目の形式は、すべての割り込みを無視するように設定します。 -3行目の形式は、シェルが割り込みを受けるか、 -チャイルドプロセスが割り込みによって停止した場合に -goto label が実行されるように設定します。 -.Pp -シェルがバックグラウンドで、かつ、 -シグナルを無視するように設定して実行されている場合は、 -.Ic onintr -は効力を持たず、 -割り込みはシェルとそこから起動されるすべてのコマンドで -引続き無視されます。 -最後に -.Ic onintr -文はシステムのスタートアップ・ファイル -(/etc/csh.cshrc, /etc/csh.login) 中でも、 -割り込みが禁止されているので無視されます。 -.Pp -.It Ic popd -.It Ic popd Ar +n -ディレクトリ・スタックをポップし、 -新たにスタックの先頭になったディレクトリにカレント・ディレクトリを変更します。 -引数 -.Ns \`+ Ar n Ns \' -が指定された場合、スタックの -.Ar n -番目の要素が捨てられます。ディレクトリ・スタックの要素は、 -スタックの先頭から 0 から順に番号がつけられます。 -.Pp -.It Ic printf Ar format-string values -.Ar format-string -と -.Ar values -を評価した後、組み込み版の -.Ic printf -を起動します。 -詳細はマニュアルページ -.Xr printf 1 -を参照してください。 -.Pp -.It Ic pushd -.It Ic pushd Ar name -.It Ic pushd Ar n -引数を指定しなかった場合、 -.Ic pushd -はスタックの先頭の 2 つの要素を入れ替えます。引数 -.Ar name -が指定された場合、 -.Ic cd -と同様にカレント・ディレクトリを変更したあと、 -古いカレント・ディレクトリ -.\" cwd の typo だと思うが わからない -.\" (as in -.\" .Ic csw ) -.\" #### kuma agree with you on 96.12.23 #### -をディレクトリ・スタックにプッシュします。 -数字引数が指定された場合、ディレクトリ・スタックの -.Ar n -番目の要素が -スタックの先頭にくるようにローテートし、 -カレント・ディレクトリをその要素が指すディレクトリに変更します。 -ディレクトリ・スタックの要素は、スタックの先頭から -0 から順に番号がつけられます。 -.Pp -.It Ic rehash -変数 -.Ic path -に指定されているディレクトリ内の、ファイルに関するハッシュ・テーブルを -再計算させます。ログイン中に、新しいコマンドが -.Ic path -に含まれるディレクトリに追加された場合、 -.\" #### modified by kuma 96.12.23 #### -rehash コマンドを実行する必要があります。 -これは、あなたが個人的なディレクトリの 1 つにコマンドを追加したか、 -システムの管理者がシステム・ディレクトリの内容を変更したような -場合にのみ必要です。 -.Pp -.It Ic repeat Ar count command -指定されたコマンド -.Ar command -を -.Ar count -回繰り返し実行します。 -.Ar command -.\" #### modified by kuma 96.12.23 #### -に指定するものは、先の 1 行 -.Ic if -文で指定する -.Ar command -と同様の制限を受けます。 -入出力リダイレクションは -.Ar count -が たとえ 0 であっても、必ず 1回だけ処理されます。 -.Pp -.It Ic set -.It Ic set Ar name -.It Ic set Ar name Ns =word -.It Ic set Ar name[index] Ns =word -.It Ic set Ar name Ns =(wordlist) -1 行目の形式はすべてのシェル変数の値を表示します。 -複数の単語からなる値を持つ変数は括弧で囲まれた値のリストで表示します。 -2 行目の形式は、 -.Ar name -に空文字列を設定します。3 行目の形式は -.Ar name -に単一の単語 -.\" #### modified by kuma 96.12.23 -.Ar word -を設定します。4 行目の形式は -.Ar name -の -.Ar index -番目の要素に -.Ar word -を設定します。 -.Ar index -番目の要素はすでに存在していなければなりません。5 行目の形式は -.Ar name -に -.Ar wordlist -で指定した単語列を設定します。すべての形式で、 -値にはコマンド置換とファイル名置換が適用されます。 -.Pp -複数の変数を設定するために、set コマンドへの引数を繰り返すことができます。 -ただし、引数に対する変数展開処理は、代入処理に先だって行われます。 -.Pp -.It Ic setenv -.It Ic setenv Ar name -.It Ic setenv Ar name value -1 行目の形式はすべての環境変数の一覧を出力します。 -これは -.Xr printenv 1 -と等価です。 -3 行目の形式は環境変数 -.Ar name -に値 -.Ar value -を設定します。2 行目の形式は環境変数 -.Ar name -.\" #### modified by kuma 96.12.23 #### -に空文字列を設定します。最も一般的に用いられる環境変数である -.Ev USER , -.Ev TERM , -.Ev PATH -は -.Nm -の起動時にシェル変数 -.Ar user , -.Ar term , -.Ar path -にそれぞれ設定され、 -.Nm -から実行するプログラムの環境変数には、シェル変数 -.Ic user , -.Ic term , -.Ic path -の値が反映されます。そのため、これらの変数を明示的に -.Ic setenv -する必要はありません。 -.Pp -.It Ic shift -.It Ic shift Ar variable -(リスト)変数 -.Ic argv -.\" #### modified by kuma 96.12.23 #### -の各要素を左にシフトし、 -.Ic argv Ns Bq 1 -の値を捨てます。 -.Ic argv -に値が設定されていないか、 -1 つ以上の要素を持たない場合にはエラーになります。 -2 行目の形式は、指定された変数 -.Ar variable -に対して同様の処理を行います。 -.Pp -.It Ic source Ar name -.It Ic source Fl h Ar name -シェルは、指定されたファイル -.Ar name -からコマンドを読み込みます。 -.Ic source -コマンドはネストすることができます。あまりに深くネストさせると、 -.\" #### modified by kuma 96.12.23 #### -ファイル識別子を使い切ってしまう場合があります。いずれかのレベルの -.Ic source -コマンド中でエラーが発生すると、ネストしているすべての -.Ic source -コマンドが中断されます。通常、 -.Ic source -の実行中に実行されたコマンドはヒストリに記録されませんが、 -.Fl h -オプションを指定することにより、 -ファイルに記述してあるコマンドを実行せずに、 -ヒストリにのみ記録することができます。 -.Pp -.It Ic stop -.It Ic stop % Ns Ar job ... -バックグラウンドで走行中の現在のジョブ、あるいは指定されたジョブを停止します。 -.Pp -.It Ic suspend -シェル自身を停止させます。 -.Em ^Z -でストップ・シグナルを送られたかのように振舞います。 -.Xr su 1 -によって起動したシェルを停止する場合によく用いられます。 -.Pp -.It Ic switch Ar (string) -.It Ic case Ar str1 : -.It \ \ \ \ \&... -.It Ic \ \ \ \ breaksw -.It \ \ \ \ \&... -.It Ic default : -.It \ \ \ \ \&... -.It Ic \ \ \ \ breaksw -.It Ic endsw -.\" #### modified by kuma 96.12.23 #### -各 -.Ic case -ラベルを順に、指定された文字列 -.Ar string -でマッチングを行います。 -.Ar string -には、まず、コマンド置換とファイル名置換が行われます。 -.Ic case -ラベルには変数置換が行われ、ファイル名メタキャラクタの -`*', `?', `[...]' を用いることができます。 -.\" #### modified by kuma 96.12.23 #### -.Ic default -ラベルが出てくるまでにどの -.Ic case -ラベルともマッチしなかった場合は、 -.Ic default -ラベルの直後から実行が始まります。 -.Ic case -ラベルと -.Ic default -ラベルは行の最初に書かれなければなりません。 -.Ic breaksw -コマンドによって -.Ic endsw -以降のコマンドから実行が再開されます。 -.Ic breaksw -を用いない場合は、 C 言語の場合と同様に、 -.Ic case -ラベル、 -.Ic default -ラベルを通過して実行が続けられます。 -.Ic default -がなく、どのラベルもマッチしなかった場合には、 -.Ic endsw -以降から実行が再開されます。 -.Pp -.It Ic time -.It Ic time Ar command -1 行目の形式では、 -シェルとそのチャイルドプロセスが使用した時間が表示されます。 -.\" #### modified by kuma 96.12.23 #### -2 行目の形式では、指定された単純コマンドの実行時間が計測され、 -.\" #### modified by kuma 96.12.23 #### -変数 -.Ic time -の項で説明する形式で、使用時間情報の要約が表示されます。 -必要ならば、コマンド終了時に時間を表示するための追加のシェルが生成されます。 -.Pp -.It Ic umask -.It Ic umask Ar value -ファイル作成マスクを表示(第 1 の形式)または設定(第 2 の形式)します。 -マスクは 8 進数で与えます。一般的な値としては、 -グループにすべての権限を与え、 -そのほかには読み込みと実行のみを許可する 002 や、 -所有者以外には読み込みと実行しか許可しない 022 があります。 -.Pp -.It Ic unalias Ar pattern -.Ar pattern -にマッチするすべてのエイリアスを削除します。 -`unalias *' とすることですべてのエイリアスを削除することができます。 -削除するものがなかった場合にもエラーにはなりません。 -.Pp -.It Ic unhash -実行プログラムの位置検索を高速化する内部ハッシュ・テーブルの使用を禁止します。 -.Pp -.It Ic unlimit -.It Ic unlimit Ar resource -.It Ic unlimit Fl h -.It Ic unlimit Fl h Ar resource -リソースの制限を解除します。 -.Ar resource -が指定されない場合、すべてのリソースに対する制限が解除されます。 -.Fl h -が指定された場合、対応するハードリミットが解除されます。 -これはスーパユーザのみが行うことができます。 -.Pp -.It Ic unset Ar pattern -指定された -.Ar pattern -にマッチするすべての変数を削除します。 -`unset *' と指定するとすべての変数が削除され、 -悲惨な結果を生じることがあります。 -.Ic unset -するものがない場合もエラーになりません。 -.Pp -.It Ic unsetenv Ar pattern -指定された -.Ar pattern -にマッチするすべての環境変数を削除します。前述の -.Ic setenv -の項と -.Xr printenv 1 -を参照してください。 -.Pp -.It Ic wait -すべてのバックグラウンドジョブの終了を待ちます。 -対話的にシェルが実行されている場合、 -インタラプトにより wait を停止することができます。 -このとき、シェルはいまだに終了していないジョブの名前とジョブ番号を表示します。 -.It Ic which Ar command -.\" #### modified by kuma 96.12.23 #### -.Ar command -を指定したとき、シェルが実行するコマンドの位置を表示します。 -.Pp -.It Ic while Ar (expr) -.It \&... -.It Ic end -指定された式の評価結果がゼロでないかぎり、 -.Ic while -と対応する -.Ic end -の間のコマンドを繰り返し実行します。 -.Ic break -や -.Ic continue -によりループを終了したり、途中から繰り返しを再開させたりすることができます。 -( -.Ic while -と -.Ic end -は、その行に単独で書かれなければなりません。)入力が端末の場合、 -.Ic foreach -ステートメントの場合と同様に、 -ループのすべてを入力するまでプロンプトが表示され、 -すべての入力を終えた時点でループが実行されます。 -.Pp -.It Ic % Ns Ar job -指定されたジョブをフォアグラウンドに移動します。 -.Pp -.It Ic % Ns Ar job Ic & -指定されたジョブをバックグラウンドで再開実行させます。 -.Pp -.It Ic @ -.It Ic @ Ar name Ns = Ns expr -.It Ic @ Ar name[index] Ns = Ns expr -1 行目の形式は、すべてのシェル変数の値を表示します。2 行目の形式は、 -指定された名前 -.Ar name -の変数に式 -.Ar expr -の値を代入します。式のなかに `<', `>', `&', `|'を含んでいる場合、 -少なくともそのような部分は `(' と `)' で囲まれている必要があります。 -3 行目の形式は、変数の -.Ar index -番目の要素に式 -.Ar expr -の値を代入します。 -.Ar name -と、その -.Ar index -番目の要素はすでに存在していなければいけません。 -.El -.Pp -C 言語と同様に、演算子 `*=', `+=' 等が利用可能です。 -変数名と演算子の間の空白はあってもなくてもかまいません。 -しかしながら、式の各要素の間には空白が必須です。 -さもなければ、単一の単語とみなされてしまいます。 -.Pp -特別な後置演算子 `+\|+' と `\-\|\-' により変数の値を 1 だけ増加させたり、 -減少させたりすることができます。たとえば、`@ i++' のように使います。 -.Ss 定義済み変数と環境変数 -以下の変数は、シェルにとって特別な意味があります。これらのうち、 -.Ar argv , -.Ar cwd , -.Ar home , -.Ar path , -.Ar prompt , -.Ar shell , -.Ar status -はシェルが設定します。そのうち、 -.Ar cwd -と -.Ar status -以外の変数の設定はシェルの起動時にのみ行われます。 -そのような変数は、ユーザが明示的に変更しないかぎり、 -値が変化することはありません。 -.Pp -シェルは、環境変数 -.Ev USER -をシェル変数 -.Ar user -に、 -.Ev TERM -を -.Ar term -に、 -.Ev HOME -を -.Ar home -にそれぞれコピーします。また、 -これらのシェル変数が再度セットされた場合は環境変数にコピーしなおします。 -環境変数 -.Ev PATH -も同様に扱われます。サブシェルは環境変数によって -.Ar path -の値を得て、もしそれが変更されれば環境変数にコピーしなおすので -.Ar \&.cshrc -以外での -.Ar path -変数の設定について気をつける必要はありません。 -.Bl -tag -width histchars -.It Ic argv -シェルへの引数が設定されます。位置パラメータは argv の値に展開されます。 -すなわち、 `$1' は `$argv[1]' の値に置換されます。 -.It Ic cdpath -.Ar chdir -.\" #### modified by kuma 96.12.23 #### -コマンドにおいてサブディレクトリを検索するためのディレクトリのリストです。 -.It Ic cwd -.\" #### modified by kuma 96.12.23 #### -カレント・ディレクトリのフルパス名です。 -.It Ic echo -.Fl x -オプションが指定された場合にセットされます。セットすることにより、 -コマンドが実行される前にコマンド名とその引数が表示されるようになります。 -.\" #### modified by kuma 96.12.23 #### -組み込みコマンド以外では、表示の前にすべての展開が行われます。 -組み込みコマンドではコマンド置換とファイル名置換が行われる前に表示されます。 -なぜなら、これらの置換は選択的に行われるからです。 -.It Ic filec -ファイル名補完を有効にします。 -.It Ic histchars -ヒストリ置換に用いる文字を文字列で指定します。 -指定した文字列の最初の文字はヒストリ置換文字(デフォルトは `!')、 -2 文字目は簡易置換文字(デフォルトは `\*(ua') を指定します。 -.It Ic histfile -ヒストリをセーブ/リストアするパス名を指定できます。 -.It Ic history -ヒストリ・リストのサイズを指定します。 -このサイズを超えたコマンド履歴は削除されます。 -あまりに大きな値を設定すると、シェルがメモリを使いつくすかもしれません。 -最後に実行したコマンドは -.Ar history -の値にかかわらず、つねにヒストリ・リストに保存されます。 -.It Ic home -.\" #### modified by kuma 96.12.23 #### -シェルを起動したユーザのホーム・ディレクトリです。 -起動時に環境変数から設定されます。 -ファイル名置換において -.Sq Pa ~ -は本変数を参照して展開されます。 -.It Ic ignoreeof -セットされると、端末のファイル終端(EOF)を無視するようになります。 -間違って control-D を押してシェルを終了させてしまうのを防ぐことができます。 -.It Ic mail -シェルがメールの到着をチェックするためのメールファイルを指定します。 -コマンド実行が完了しプロンプトが表示されるときに、 -.\" #### modified by kuma 96.12.23 #### -指定された時間が経過していればメイル到着のチェックが行われます。 -最終修正時刻が最終アクセス時刻以降の場合、 -シェルは `You have new mail' と出力します。 -.Pp -.Ar mail -の値の最初の単語が数値の場合には、 -その数値でメール検査の間隔を秒単位で指定します。 -指定がなかった場合のデフォルト値は 10分です。 -.Pp -複数のメールファイルが指定された場合、 -メールが到着していた場合のメッセージは `New mail in -.Ar name Ns ' -となります。ここで、 -.Ar name -は到着したメールが あるファイル名です。 -.It Ic noclobber -.Sx 入出力 -の項で説明したように、 -出力リダイレクトによって意図せずにファイルを削除しないように制限したり、 -`>>' リダイレクトがすでに存在するファイルにしか適用できないようにします。 -.It Ic noglob -セットされると、ファイル名展開が禁止されます。 -ファイル名を扱わないシェルスクリプト内や、すでにファイル名展開を行ったあとで、 -それ以上の展開を望まない場合に設定します。 -.It Ic nonomatch -.\" #### modified by kuma 96.12.23 #### -セットされると、ファイル名展開の結果が空になってもエラーとせず、 -展開前のパターンをそのまま残します。 -.\" #### modified by kuma 96.12.23 #### -ただし、`echo [' のような、 -展開前のパターンが文法的に正しくない場合はエラーになります。 -.It Ic notify -セットされると、シェルがジョブの終了を随時報告するようになります。 -通常はプロンプトの表示直前にのみ報告が行われます。 -.It Ic path -.\" #### modified by kuma 96.12.23 #### -path 変数の各単語は、コマンドファイルを検索すべきディレクトリ名を表します。 -空の単語はカレント・ディレクトリを示します。 -.Ar path -変数が設定されて -いない場合、フルパス指定によるコマンド実行のみが可能になります。 -通常の検索パスは -`.', `/bin', `/usr/bin' です。しかし、これらの値はシステムによって異なります。 -スーパユーザのデフォルトの検索パスは `/etc', `/bin', `/usr/bin' です。 -.Fl c -オプションも -.Fl t -オプションも指定されなかった場合、 -シェルは -.Ar path -変数で指定されたディレクトリの内容をハッシュ・テーブルに保存します。 -ハッシュ・テーブルは、起動時に -.Ar \&.cshrc -を読み込んだ後と -.Ar path -変数を再設定した時に再構築されます。 -シェルの実行中に、 -新しいコマンドがハッシュされているディレクトリに追加された場合は、 -.Ic rehash -コマンドによりハッシュを再構築しなければなりません。 -.\" #### modified by kuma 96.12.23 #### -さもなければ、コマンドが見付からない可能性があります。 -.It Ic prompt -端末上で対話的に実行されているシェルにおいて、 -.\" #### modified by kuma 96.12.23 #### -コマンド読み込み時に表示される文字列を指定します。 -`!' が含まれる場合、現在のイベント番号に置換されます。 -`\e' を指定することにより、この解釈を抑制することができます。 -デフォルトの値は `% 'です。スーパユーザの場合は `# ' となります。 -.It Ic savehist -ログアウト時にファイル ~/.history に保存されるコマンド履歴の数を指定 -します。 -.\" #### modified by kuma 96.12.23 #### -この値で指定される数のイベントが保存されます。 -起動時に、シェルは ~/.history の内容を読み込みます。あまりに -大きな値を指定すると、シェルの起動が遅くなる場合があります。 -.Ar savehist -がセットされているだけの場合は -.Ar history -に指定された値を使用します。 -.It Ic shell -シェルのフルパス名を示します。実行属性が立っているが、 -.\" #### modified by kuma 96.12.23 #### -システムが起動できないファイルを -実行する際に起動するシェルとして用いられます(後述の -.Sx 非組み込みコマンドの実行 -の項を参照)。システム依存の値で初期化されます。 -.It Ic status -最後に実行したコマンドの終了ステータス値を保持します。 -異常終了した場合は、値に 0200 が加算されます。 -組み込みコマンドが失敗した場合は `1' に、成功した場合は `0' になります。 -.It Ic time -.\" #### modified by kuma 96.12.23 #### -コマンドの自動計時を制御します。値が設定されている場合、 -コマンドがその値よりも長く CPU 秒数を消費した場合には、 -コマンド終了時にユーザ時間、システム時間、実時間と、 -利用率すなわちユーザ+システム時間と実時間のパーセンテージが出力されます。 -.It Ic verbose -.Fl v -コマンドラインオプションが指定されていた場合にセットされます。 -ヒストリ置換が行われたあと、コマンドの内容が出力されます。 -.El -.Ss 非組み込みコマンドの実行 -実行すべきコマンドが組み込みコマンドでなかった場合、シェルはコマンドを -.Xr execve 2 -システムコールによって起動しようとします。シェル変数 -.Ar path -.\" #### modified by kuma 96.12.23 #### -の各単語は、シェルがコマンドを実行しようとするディレクトリ名を表します。 -.Fl c -オプションも -.Fl t -オプションも指定されなかった場合、 -.\" #### modified by kuma 96.12.23 #### -シェルはそれらのディレクトリ内にあるファイル名のハッシュ値を計算し、 -シェル内部のテーブルに格納します。これは、 -コマンドが存在する可能性のあるディレクトリだけで -.Ic exec -を試みるようにするためです。 -この近道によって、サーチ・パスにたくさんのディレクトリが指定されている時、 -コマンドの位置決定が著しく高速化されます。 -この機能が( -.Ic unhash -.\" #### modified by kuma 96.12.23 #### -コマンドによって)停止されている場合、または -.Fl c -または -.Fl t -オプションが起動時に指定された場合、または -.Ar path -.\" #### modified by kuma 96.12.23 #### -中の単語で `/' -から始まらないものについては、ハッシュが用いられることはありません。 -この場合は、 -.Ar path -の要素にコマンドラインで指定されたコマンドを連結した名前を持つ -ファイルを実行しようと試みます。 -.Pp -括弧で囲まれたコマンドは、つねにサブシェルによって実行されます。ですから、 -.Pp -.Dl (cd ; pwd) ; pwd -.Pp -はホーム・ディレクトリの値を表示しますが、カレント・ディレクトリ(ホーム・ -.\" #### modified by kuma 96.12.23 #### -ディレクトリの後に表示されます)は移動しません。 -一方、 -.Pp -.Dl cd ; pwd -.Pp -を実行すると、カレント・ディレクトリがホーム・ディレクトリに移動します。 -括弧で囲まれたコマンドは、現在のシェルのカレント・ディレクトリに -影響を与えずにコマンドを実行する場合にしばしば用いられます。 -.Pp -実行属性が立っているにもかかわらず、 -システムによって実行可能ではないファイルは -シェルコマンドファイルであるとみなし、 -サブシェルを起動してそのファイルを読み込ませます。 -.Pp -.Ic shell -という名前のエイリアスが存在する場合、 -エイリアスの値はシェルコマンドファイルを実行する場合の -引数リストの前に挿入されます。エイリアスの値の最初の単語は -シェルのフルパス名でなければいけません(たとえば `$shell')。 -.\" #### modified by kuma 96.12.23 #### -これはエイリアス展開としては特別のもので、かなり後の時点に行われ、 -引数リストを修正せずに、その前に単語を挿入するための手段を提供します。 -.Ss シグナル処理 -シェルは、通常 -.Ar quit -シグナルを無視します。バックグラウンドのジョブ( -.Ic \&& -または -.Ic bg -または -.Ic %... & -.\" #### modified by kuma 96.12.23 #### -によるコマンド)はキーボードから入力されたシグナルに影響されません -(hangup も含みます)。他のシグナルに対する挙動は親の環境を引き継ぎます。 -シェル・スクリプトでの interrupt と terminate シグナルに対する処理は -.Ic onintr -によって制御することができます。ログイン・シェルは -.Ar terminate -シグナルを捕捉します。それ以外のシェルでは、 -.Ar terminate -シグナルはシェルの親の状態に従ってチャイルドプロセスに渡されます。 -ログイン・シェルが -.Pa \&.logout -ファイルを読み込んでいる間は -interrupt は無視されます。 -.Sh 作者 -.An William Joy -。 -ジョブ制御とディレクトリ・スタックは -.An J.E. Kulp , -IIASA, Laxenburg, Austria によって、 -.\" #### modified by kuma 96.12.23 #### -現在とは異なる文法のものが実装されました。 -ファイル名補完は -.An Ken Greer , -HP Labs が、 -.\" #### modified by kuma 96.12.23 #### -8 bit クリーンな実装は -.An Christos S. Zoulas , -Cornell University -によって行われました。 -.Sh 関連ファイル -.Bl -tag -width /etc/passwd -compact -.It Pa ~/.cshrc -シェルが起動されるときに読み込まれる。 -.It Pa ~/.login -ログイン・シェルの場合、ログイン時に `.cshrc' の後に読み込まれる。 -.It Pa ~/.logout -ログイン・シェルにおいてログアウト時に読み込まれる。 -.It Pa /bin/sh -標準シェル。`#' で始まらないシェル・スクリプトの実行に用いる。 -.It Pa /tmp/sh* -`<<' の処理に用いられる一時ファイル。 -.It Pa /etc/passwd -`~name' 展開時に用いられるホーム・ディレクトリに関する情報を得る。 -.El -.Sh 制限事項 -.\" #### modified by kuma 96.12.23 #### -単語の長さは 1024 文字に制限されます。引数リストは、システムによって 10240 -文字に制限されています。ファイル名展開を含む引数の数は、 -引数リストの文字数の 6 分の 1 に制限されています。 -コマンド置換の結果は、引数リストと同数の制限があります。 -ループ検出のため、1 行に対するエイリアス展開は 20 回までに制限されています。 -.Sh 関連項目 -.Xr printenv 1 , -.Xr printf 1 , -.Xr sh 1 , -.Xr su 1 , -.Xr access 2 , -.Xr execve 2 , -.Xr fork 2 , -.Xr killpg 2 , -.Xr pipe 2 , -.Xr setrlimit 2 , -.Xr sigvec 2 , -.Xr umask 2 , -.Xr wait 2 , -.Xr tty 4 , -.Xr a.out 5 , -.Xr environ 7 -.Rs -.%T "An introduction to the C shell" -.Re -.Sh 歴史 -.Nm -は -.Bx 3 -で追加されました。 -.\" #### modified by kuma 96.12.23 #### -コマンドインタプリタとしては、履歴(参照: -.Sx ヒストリ置換 -)、ジョブ制御 (参照: -.Sx ジョブ -.\" #### modified by kuma 96.12.23 #### -参照)、対話的なファイル名補完とユーザ名補完(参照: -.Sx ファイル名補完 -.\" #### modified by kuma 96.12.23 #### -)、C言語ライクな文法を採用して実装した最初のものです。 -これらの機構にいくつかの追加機能(といくらかのバグの可能性)を -持つシェルは、現在ではたくさんあります。 -これらは Usenet から入手することができます。 -.Sh バグ -コマンドが停止状態から復帰したとき、もしそのコマンドが起動したときの -ディレクトリとカレント・ディレクトリが異なるなら、 -シェルはコマンドを起動したときのカレント・ディレクトリの値を表示します。 -.\" #### modified by kuma 96.12.23 #### -これは、そのジョブが内部的にディレクトリを変更した場合は誤解(間違った情報) -を与える可能性があります。 -.Pp -シェルの組み込みコマンドは中断(suspend)も再開もできません。 -`a ; b ; c' のようなコマンド列も適切には中断することができません。 -たとえば、 `b' の実行を中断した場合には、 -すぐに `c' の実行が開始されてしまいます。これは -.Ar alias -としてコマンド列を指定している場合に特に目立ちます。 -このようなコマンド列は `()' -で囲んでサブシェルで実行されるようにすることによって、 -適切に停止させることが可能になります(`( a ; b ; c )'のように)。 -.Pp -プロセスを起動したあとの端末出力の制御が貧弱です。おそらく、 -このために、 -.\" #### modified by kuma 96.12.23 #### -もっと良い仮想端末インタフェースを開発したいと考える人がいても何ら不思議はないです。 -仮想端末インタフェース上なら、 -もっと おもしろい端末出力の制御が可能になるでしょう。 -.Pp -.\" #### modified by kuma 96.12.23 #### -シェル関数をシミュレートするために、エイリアスを不格好に用いてしまうことが -よくあります。シェル関数がサポートされるべきです。 -.Pp -ループ中のコマンド入力において、 -`?' プロンプトに続けて入力された内容はヒストリに残りません。 -制御構造は組み込みコマンドとして解釈されるのではなく、 -文法的に解釈するようにするべきです。これにより制御コマンドをどこにでも -置けるようになり、`\&|', `&', `;' との組み合わせが -自由にできるようになります。 -.Pp -コマンド置換の出力にも `:' 修飾子が適用できるべきです。 -.Pp -.\" #### modified by kuma 96.12.23 #### -ファイル名補完機構の実装は不細工かつ非効率的です。 diff --git a/ja_JP.eucJP/man/man1/tcsh.1 b/ja_JP.eucJP/man/man1/tcsh.1 new file mode 100644 index 0000000000..0435f346d7 --- /dev/null +++ b/ja_JP.eucJP/man/man1/tcsh.1 @@ -0,0 +1,5803 @@ +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgment: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" tcsh マニュアルページ: スタイルに関する注意 +.\" +.\" - リストのタグはボールド体とします。但し、「関連ファイル(FILES)」 +.\" セクション中でイタリック体になっている部分は除きます。 +.\" +.\" - セクション名、環境変数、シェル変数に体する参照はボールド体としま +.\" す。コマンド (外部コマンド、組み込みコマンド、エイリアス、エディ +.\" タコマンド) とコマンド引数に対する参照はイタリック体とします。 +.\" +.\" - .B, .I マクロ に注意して下さい。扱うことができる単語数には限界が +.\" あります。この制限を回避するには、\fB, \fI を用います。ただ、こ +.\" の利用は絶対に必要な場合に限って下さい。これは、tcsh.man2html が +.\" 名前アンカーを見つける際に .B/.I を使うからです。 +.\" +.\" - 4 の倍数でインデントして下さい。普通は 8 でインデントして下さい。 +.\" +.\" - `' を使って下さい。シェル構文の例の中を除いて '' や "" は使わな +.\" いようにして下さい。行先頭で '' を使うと消えてしまいます。 +.\" +.\" - \- を使って下さい。- は使わないようにして下さい。 +.\" +.\" - ドットファイルの名前を表す際にはチルダも含めるようにして下さい。 +.\" つまり、`~/.login' と書きますが、`.login' とは書きません。 +.\" +.\" - 外部コマンドを参照する際は、マニュアルページ形式で参照して下さい。 +.\" 例: `csh(1)'。ただし、tcsh は `tcsh' とし、`tcsh(1)' としません。 +.\" というのは、このページが tcsh のマニュアルページだからです。 +.\" +.\" - tcsh と csh とを区別して表す場合を除き、「このシェル」といい、 +.\" 「tcsh」と言わないようにして下さい。 +.\" +.\" - ただ「変数」と言わずに、「シェル変数」、「環境変数」と言うように +.\" して下さい。また、ただ、「ビルトイン」、「コマンド」と言わずに、 +.\" 「組み込みコマンド」、「編集コマンド」と言うようにして下さい。 +.\" ただ、文脈上区別が明らかな場合は別ですが。 +.\" +.\" - 現在時制を使って下さい。`The shell will use' ではなく、`The +.\" shell uses' です (この項は日本語訳部分には適用しません)。 +.\" +.\" - 重要: できるだけ相互参照するようにして下さい。「参照(REFERENCE)」 +.\" セクション中にあるコマンド、変数などは、適切な解説セクションの中 +.\" で触れるようにして下さい。少なくとも、(解説セクションかどこかで +.\" 触れられている)他のコマンドの「参照」セクションでの記述で触れる +.\" ようにしてください。OS 固有事項に関する注意は、「OS 固有機能のサ +.\" ポート(OS variant support)」のセクションに記述するようにして下さ +.\" い。新規機能は「新規機能(NEW FEATURES)」セクションに、外部コマン +.\" ドを参照した場合は、「関連項目(SEE ALSO)」セクションにそれぞれ記 +.\" 述するようにして下さい。 +.\" +.\" - tcsh.man2html は、それが作成された時点でマニュアルページで使用さ +.\" れていた nroff コマンドにかなり依存しています。可能ならば、ここ +.\" で用いているスタイルに厳密に従って下さい。特に、これまで使用され +.\" たことのない nroff コマンドを使用しないようにして下さい。 +.\" +.\" WORD: command-line editor コマンド行編集 +.\" WORD: editor command 編集コマンド +.\" WORD: autologout mechanism 自動ログアウト方法 +.\" WORD: directory stack entries ディレクトリスタックエントリ +.\" WORD: word 単語 +.\" +.TH TCSH 1 "14 January 2000" "Astron 6.09.01" +.\" jpman %Id: tcsh.1,v 0.0 2000/07/10 02:30:08 horikawa Stab % +.\" INTERIM1(jpman) +.SH 名称 +tcsh - ファイル名補完とコマンド行編集を追加した C シェル +.SH 書式 +.B tcsh \fR[\fB\-bcdefFimnqstvVxX\fR] [\fB\-Dname\fR[\fB=value\fR]] [arg +...] +.br +.B tcsh \-l +.SH 解説 +\fItcsh\fR は、バークレイ版 UNIX の C シェル \fIcsh\fR(1) と完全に +互換性があり、さらに機能強化したシェルです。 +対話的なログインシェル、またシェルスクリプトのコマンドプロセッサの +両方の用途で使われるコマンドインタプリタです。 +\fItcsh\fR には、コマンド行編集 (参照: \fBコマンド行編集\fR の項)、 +プログラム可能な単語の補完 (参照: \fB補完と一覧\fR の項)、 +スペル訂正 (参照: \fBスペル訂正\fRの項)、 +履歴 (参照: \fBヒストリ置換\fRの項)、 +ジョブ制御 (参照: \fBジョブ\fR の項)、 +C 言語風の文法があります。 +\fB新機能\fR の章では、\fIcsh\fR(1) には存在しない、\fItcsh\fR の +主な追加機能について説明しています。 +このマニュアルを通じ、\fItcsh\fR の機能のうち、 +\fIcsh\fR(1) のほとんどの実装 (特に4.4BSDの \fIcsh\fR) にない +機能について、ラベル(+)をつけてあります。 +そして、\fIcsh\fR(1) にあったけれども文書化されていなかった +機能にラベル (u) をつけてあります。 +.SS "引数リスト処理" +シェルへの1番目の引数(引数0番)が `\-' の場合、シェルは +ログインシェルになります。 +シェルを \fB\-l\fR フラグを指定して起動することでも +ログインシェルにできます。 +.PP +残りのフラグは以下のように解釈されます。 +.TP 4 +.B \-b +このフラグは、オプションの処理を強制的に中断させる場合に使用します。 +このフラグ以降の引数はすべて、オプションではないものとして +処理されます。これにより、混乱を避け、小細工をしなくても、 +シェルスクリプトにオプションを渡すことが可能になります。 +set-user ID スクリプトは本オプションなしでは実行できません。 +.TP 4 +.B \-c +コマンドを、本フラグの次にくる引数 (この引数は省略できません。 +また、1つだけである必要があります) から読み込み、実行します。 +この引数は、あとで参照できるように、シェル変数 \fBcommand\fR に +格納されます。残りの引数は、シェル変数 \fBargv\fR に代入されます。 +.TP 4 +.B \-d +ログインシェルであるかどうかにかかわらず、 +\fBスタートアップとシャットダウン\fR の項で解説されているように +\fI~/.cshdirs\fR から、ディレクトリスタックを読み込みます。(+) +.TP 4 +.B \-D\fIname\fR[=\fIvalue\fR] +環境変数 \fIname\fR に値 \fIvalue\fR を設定します。(Domain/OSのみ)(+) +.TP 4 +.B \-e +起動したコマンドが異常終了したり、0 でない終了ステータスを返したときに、 +ただちにシェルを終了します。 +.TP 4 +.B \-f +\fI~/.tcshrc \fRを読み込まずに無視するので、 +起動が高速になります。 +.TP 4 +.B \-F +プロセスを生成する際に \fIvfork\fR(2) の代わりに +\fIfork\fR(2)を使います。(Convex/OS のみ) (+) +.TP 4 +.B \-i +たとえ端末上で実行されていなくても、対話的に動作し最上位レベルの +入力の際にプロンプトを表示します。入力と出力がともに端末である場合、 +本オプションなしでもシェルは対話的に動作します。 +.TP 4 +.B \-l +ログインシェルとなります (\fB-l\fR が、指定された唯一のフラグである +場合にのみ有効です)。 +.TP 4 +.B \-m +実効ユーザに属していなくても \fI~/.tcshrc \fRをロードします。 +新しいバージョンの \fIsu\fR(1) は \fB-m\fR をシェルに渡すことが +できます。(+) +.TP 4 +.B \-n +コマンドの解析は行いますが、実行はしません。 +シェルスクリプトのデバッグに役立ちます。 +.TP 4 +.B \-q +SIGQUIT (\fBシグナル処理\fR の項を参照) を受け付けるようにし、 +デバッガのもとで使われても作動するようになります。 +ジョブ制御は無効になります。(u) +.TP 4 +.B \-s +標準入力からコマンドを読み込みます。 +.TP 4 +.B \-t +入力から 1 行だけ読み込み、それを実行します。入力行の改行の直前に +`\\' を置くことで、次の行への継続を行うことができます。 +.TP 4 +.B \-v +シェル変数 \fBverbose\fR を設定します。 +これにより、ヒストリ置換された状態のコマンド行を表示するようになります。 +.TP 4 +.B \-x +シェル変数 \fBecho\fR を設定します。これにより、実行直前に、 +実行するコマンドを表示するようになります。 +.TP 4 +.B \-V +\fI~/.tcshrc\fR を実行する前に、シェル変数\fBverbose\fR を設定します。 +.TP 4 +.B \-X +\fI~/.tcshrc\fR を実行する前に、シェル変数\fBecho \fRを設定します。 +.TP 4 +.B \-X +に対する \fB-x\fR の関係は、\fB-V\fR に対する \fB-v\fR の関係に +相当します。 +.PP +フラグ引数の処理のあと、もし引数が残っていて、かつ、 +\fB-c\fR, \fB-i\fR, \fB-s\fR, \fB-t\fR のいずれのフラグも +指定されていなければ、残っている引数のうち最初のものは +コマンドファイル、つまり「スクリプト」の名前とみなされます。 +シェルはこのファイルをオープンし、 `$0' による置換に備えて +ファイル名を保存します。 +多くのシステムは、スクリプトが本シェルと互換性のない +version 6 または version 7 の標準のシェルを使っているため、 +スクリプトの先頭の文字が `#' でない場合、 +つまりスクリプトがコメントから始まらない場合、本シェルは +それらの「標準」のシェルを起動して実行します。 +.PP +残りの引数はシェル変数 \fBargv\fR に設定されます。 +.SS "スタートアップとシャットダウン" +ログインシェルの場合は、実行開始に際し、まずシステムファイル +\fI/etc/csh.cshrc\fR と \fI/etc/csh.login\fR を読み込んで実行します。 +そしてシェルを起動したユーザの\fBホーム\fRディレクトリの中から、 +まずはじめに \fI~/.tcshrc\fR (+) を読み込んで実行します。 +もし、\fI~/.tcshrc\fR が見つからない場合は、\fI~/.cshrc\fR を +読み込んで実行します。 +次に、\fI~/.history\fR (もしくは、シェル変数 \fBhistfile\fRの値) を、 +その次に \fI~/.login\fR を、最後に、\fI~/.cshdirs\fR (もしくは、 +シェル変数 \fBdirsfile\fRの値)(+) を読み込んで実行します。 +コンパイルの仕方によっては、シェルは、\fI/etc/csh.cshrc\fRの後から +読み込まずに、先に \fI/etc/csh.login\fR を読み込み、 +\fI~/.tcshrc\fR (または \fI~/.cshrc\fR) と \fI~/.history\fR の後から +読み込む代わりに、先に \fI~/.login\fR を読み込む場合があるので、 +そのような場合は、シェル変数 \fBversion\fR を参照してください。(+) +.PP +ログインシェルでない場合は、\fI/etc/csh.cshrc\fR と、 +\fI~/.tcshrc\fR (または \fI~/.cshrc\fR) のみを起動時に読み込みます。 +.PP +\fIstty\fR(1) や \fItset\fR(1) のようなコマンドは、ログインする +ごとに 1 度だけ実行される必要がありますが、これらのコマンドは、 +普通は \fI~/.login\fR ファイルに入れます。 +\fIcsh\fR(1) と \fItcsh\fR の両方で同じファイルのセットを使う +必要があるユーザは、\fI~/.cshrc\fR だけを使い、その中で +シェル変数 \fBtcsh\fR (値は任意) があるかどうかチェックして +から、\fItcsh\fR 特有のコマンドを使うようにします。または、 +\fI~/.cshrc\fR と \fI~/.tcshrc\fR の両方を使うが、\fI~/.tcshrc\fR で、 +\fIsource\fR コマンド (組み込みコマンドの項を参照) を使い +\fI~/.cshrc\fR を読み込むようにします。 +以下、このマニュアルの残りの部分で `\fI~/.tcshrc\fR' と表現したときは、 +「\fI~/.tcshrc\fR、または \fI~/.tcshrc\fR が見つからない +場合は\fI~/.cshrc\fR」という意味で使います。 +.PP +通常、シェルはプロンプト`> 'を表示し、端末からコマンドの読み込みを +開始します (引数処理と、コマンドスクリプトを含むファイルの処理のための +シェルの使用については、後で説明します)。 +シェルは、入力されたコマンド行の読み込み、読み込んだコマンド行を単語に +分解、およびコマンド履歴への格納、コマンド行の解析、 +コマンド行の中のコマンドそれぞれの実行を繰り返します。 +.PP +ログアウトするには、空の行で `^D' とタイプするか、`logout' するか、 +`login' するか、シェルの自動ログアウト機構(参照: シェル変数 +\fBautologout\fR)を使います。 +ログインシェルが実行終了する際には、ログアウトの状況に応じて +シェル変数 \fBlogout\fR を `normal' か `automatic' に設定し、 +\fI/etc/csh.logout\fR ファイルと \fI~/.logout\fRファイルにある +コマンドを実行します。 +コンパイルの仕方によっては、シェルは、ログアウト時に DTR を落とす +ことがあります。これについてはシェル変数 \fBversion\fR を参照して +ください。 +.PP +システムのログインファイル名、ログアウトファイル名は、 +異なる \fIcsh\fR(1) 間での互換性を保つために、 +システムごとにファイルが違います。これについては、 +\fB関連ファイル\fR を参照して下さい。 +.SS 編集 +はじめに、\fBコマンド行エディタ\fR について説明します。 +\fB補完と一覧\fR と、\fBスペル訂正\fR の2つの機能は、 +編集コマンドとして実装されていますが、 +特に分けて説明する必要があるため、項を改めて説明します。 +最後に、\fB編集コマンド\fRの項で、シェルに特有の編集コマンドについて、 +一覧をあげ、デフォルトのバインドとともに説明します。 +.SS "コマンド行編集 (+)" +コマンド行の入力データは、GNU Emacs や \fIvi\fR(1) で使われているものと、 +よく似たキーシーケンスを使って編集できます。 +シェル変数 \fBedit\fR がセットされているときのみ、編集できるように +なっています。インタラクティブなシェルでは、この値はデフォルトで +設定されています。 +組み込みコマンド \fIbindkey\fR で、キーバインドを変更したり、表示したり +できます。 +デフォルトでは、Emacs 形式のキーバインドが使われています +(違う方法でコンパイルしなければそうなります。シェル変数 \fBversion\fR 参照)。 +しかし、コマンド \fIbindkey\fR で、キーバインドを \fIvi\fR 形式に +一括して変更できます。 +.PP +シェルは、つねに矢印キー (環境変数 +\fBTERMCAP\fRで定義されたものです) を、次のように割り付けています。 +.PP +.PD 0 +.RS +4 +.TP 8 +下矢印 +\fIdown-history\fR +.TP 8 +上矢印 +\fIup-history\fR +.TP 8 +左矢印 +\fIbackward-char\fR +.TP 8 +右矢印 +\fIforward-char\fR +.PD +.RE +.PP +他の1文字バインドによって、変わっていなければこのようになります。 +このようなバインドにしたくない場合、\fIsettc\fR を使って、矢印キーの +エスケープシーケンスを空の文字列にセットすることができます。 +ANSI/VT100の矢印キーシーケンスは、つねにバインドされています。 +.PP +その他のキーバインドは、そのほとんどは、Emacs、\fIvi\fR(1) ユーザが +予想できるものです。また、簡単に \fIbindkey\fR コマンドで表示させる +こともできるので、ここで、それらのバインドを並べあげる必要は +ないでしょう。 +同じく、\fIbindkey\fR コマンドは、それぞれの編集コマンドを簡単な説明 +付きで、表示させることができます。 +.PP +注意: 「単語」という概念に関して、編集コマンドは、シェルと同じ概念を +持たないことに注意して下さい。 +エディタは、シェル変数 \fBwordchars\fR の中にはない非英数文字 +(英文字、数字のどちらでもない文字) によって単語の区切りを決めます。 +一方、シェルは、ホワイトスペース (空白、タブ、改行) と、 +\fB字句構造\fR の項で列挙する特殊な意味を持つ文字のいくつかを +識別します。 +.SS "補完と一覧 (+)" +シェルは、一意に決まる短縮形を与えられると、しばしば単語の補完を +行うことができます。 +単語の一部 (例えば `ls /usr/lost') をタイプして、タブキーを押すと、 +編集コマンド \fIcomplete-word\fRが実行します。シェルは、 +ファイル名 `/usr/lost' を補完して `/usr/lost+found/' にします。 +このとき、入力バッファの中で、不完全な単語を完全な単語で置き換えます。 +(注意: 末端の `/' について: 補完では、ディレクトリ名を補完すると +最後に `/' を付け加えます。 +そして、ディレクトリ名以外の単語を補完すると、末尾に空白文字を +付け加えます。こうすることで、タイプ入力が速くなり、また、 +補完が成功したことが一目で分かります。 +シェル変数 \fBaddsuffix\fR のセットをはずせば、 +これらを付け加えなくすることもできます。) +合致するものが見当たらない場合 (おそらく `/usr/lost+found' が +存在しない場合でしょう)、端末のベルが鳴ります。 +単語がすでに補完されている場合 (システムに `/usr/lost' が +存在する場合か、あるいは、ユーザがはるか先まで考えて、すべてを +入力してしまっていた場合でしょう)、`/' または空白文字が末尾に +まだなければ、付け加えられます。 +.PP +補完は、行の一番最後でなくても、途中どこででも機能します。 +そして、テキストの補完によって、その分、行の残りは右方向へ押されます。 +単語の中間で補完された場合、しばしばカーソルの右側に文字が残り、 +それを消すはめになることもあります。 +.PP +コマンドと変数は、ほとんど同じ方法で補完できます。 +例えば、`em[tab]' とタイプした時、使用しているシステムで `em' から +始まるコマンドが唯一 \fIemacs\fR だけならば、`em' は `emacs' と +補完されます。 +補完は、\fBpath\fR 中のディレクトリにあるコマンドか、 +フルパスが与えられれば、そこにあるコマンドを見つけ出すことができます。 +`echo $ar[tab]' とタイプした時、他に `ar' から始まる変数がなければ、 +`$ar' は `$argv' と補完されます。 +.PP +シェルは、入力バッファを解析して、補完したい単語を、ファイル名としてか、 +コマンドとしてか、変数としてか、どのように補完すべきかを決めます。 +バッファの中の最初の単語と、`;', `|', `|&', `&&', `||' のすぐ次にくる +単語は、コマンドとみなします。 +`$'で始まる単語は、変数とみなします。 +その他のものは、ファイル名とみなします。 +空の行は、ファイル名として `補完されて' います。 +.PP +いつでも、`^D' とタイプすることで、編集コマンド +\fIdelete-char-or-list-or-eof\fR を実行させて、 +補完可能な単語の候補を並べ挙げることができます。 +シェルは、組み込みコマンド \fIls-F\fR (q.v.) を使って、 +補完可能な候補を並べ挙げます。 +そして、プロンプトと未完成のコマンドラインを再表示します。 +次に例を示します。 +.IP "" 4 +> ls /usr/l[^D] +.br +lbin/ lib/ local/ lost+found/ +.br +> ls /usr/l +.PP +シェル変数 \fBautolist\fR をセットしていれば、シェルは、 +補完に失敗したときはいつでも残りの選択肢を表示します。 +.IP "" 4 +> set autolist +.br +> nm /usr/lib/libt[tab] +.br +libtermcap.a@ libtermlib.a@ +.br +> nm /usr/lib/libterm +.PP +シェル変数 \fBautolist\fR を `ambiguous(あいまいな)' にセットした +場合は、補完に失敗して補完される単語へ新しい文字をそれ以上 +追加できなくなったときに限り、選択肢を表示します。 +.PP +補完するファイル名には、変数、自分もしくは他人のホームディレクトリ +(`~' で短縮したもの。\fBファイル名置換\fR の項を参照のこと)、 +ディレクトリスタックエントリ (`=' で短縮したもの。 +\fBディレクトリスタック置換\fRの項を参照のこと) を含めることができます。 +たとえば、次のようになります。 +.IP "" 4 +> ls ~k[^D] +.br +kahn kas kellogg +.br +> ls ~ke[tab] +.br +> ls ~kellogg/ +.PP +あるいは、 +.IP "" 4 +> set local = /usr/local +.br +> ls $lo[tab] +.br +> ls $local/[^D] +.br +bin/ etc/ lib/ man/ src/ +.br +> ls $local/ +.PP +変数については、編集コマンド \fIexpand-variables\fR を指定して使っても +展開できることに注意して下さい。 +.PP +コマンド \fIdelete-char-or-list-or-eof\fR は、行の最後でのみ +リストを表示します。 +行の中間の場合、カーソル位置の文字を消去します。 +空行の場合、ログアウトします。ただし、\fBignoreeof\fR がセットされて +いれば、何もしません。 +`M-^D' は、編集コマンド \fIlist-choices\fR にバインドされていますが、 +これは行中のどこでも、補完の候補のリストを表示します。 +\fIlist-choices\fR (または、\fIdelete-char-or-list-or-eof\fR のところで +列挙するコマンドで、消去するコマンド、しないコマンド、 +リスト表示するコマンド、ログアウトするコマンドのどれでも) +は、そうしたい場合、組み込みコマンド \fIbindkey\fR で +`^D' にバインドすることもできます。 +.PP +編集コマンド \fIcomplete-word-fwd\fR と \fIcomplete-word-back\fR +(デフォルトでは、どのキーにも割り付けられていません) を使うことで、 +補完候補のリストを上または下に順に巡り、リスト上の現在の単語を、 +次の単語または一つ前の単語に置き換えることができます。 +.PP +シェル変数 \fBfignore\fR に、補完の際に無視するファイルの拡張子の +リストをセットできます。 +次の例を考えてみます。 +.IP "" 4 +> ls +.br +Makefile condiments.h~ main.o side.c +.br +README main.c meal side.o +.br +condiments.h main.c~ +.br +> set fignore = (.o \\~) +.br +> emacs ma[^D] +.br +main.c main.c~ main.o +.br +> emacs ma[tab] +.br +> emacs main.c +.PP +`main.c~' と `main.o'は、\fBfignore\fR に拡張子が登録されている +ために、補完では無視されます (しかしリスト上には表示されます)。 +\fBファイル名置換\fR の項で解説しているように、\fBhome\fR に +拡張されないようにするために、`~' の前に `\\' が必要なことに注意して +下さい。補完の候補が1 つしかない場合は、\fBfignore\fR の設定は +無視されます。 +.PP +シェル変数 \fBcomplete\fR が `enhance(拡張)' にセットされていた +場合、補完は 1) 大文字小文字の区別を無視し、2) ピリオド、ハイフン、 +アンダースコア (`.', `\-', `_')を、単語を分ける記号であるとみなし、 +ハイフンとアンダースコアは同等なものとみなします。 +次のようなファイルがある場合、 +.IP "" 4 +comp.lang.c comp.lang.perl comp.std.c++ +.br +comp.lang.c++ comp.std.c +.PP +`mail \-f c.l.c[tab]' とタイプすれば、`mail \-f comp.lang.c' +のように補完され、^D の場合には、`comp.lang.c' と `comp.lang.c++' が +リストとして表示されます。 +`mail \-f c..c++[^D]' とタイプした場合は、`comp.lang.c++' と +`comp.std.c++' が表示されます。 +次のファイルがあるディレクトリで、`rm a\-\-file[^D]' とタイプした +場合、 +.IP "" 4 +A_silly_file a-hyphenated-file another_silly_file +.PP +の 3 つのファイルすべてが一覧表示されます。 +なぜならば、大文字小文字の区別は無視されて、 +ハイフンとアンダースコアは同等と解釈されるからです。しかしながら、 +ピリオドは、ハイフンやアンダースコアと同等ではありません。 +.PP +補完と一覧は、他にもいくつかのシェル変数の影響を受けます。 +そのひとつ、\fBrecexact\fR をセットすると、続けてタイプすれば +より長い単語に合致するような場合でさえも、 +最短で一意に一致する単語に合致するようになります。例えば、 +.IP "" 4 +> ls +.br +fodder foo food foonly +.br +> set recexact +.br +> rm fo[tab] +.PP +この場合はベルが鳴るだけです。 +なぜなら、`fo' は、`fod' または `foo' に展開できるからです。 +しかし、さらに `o' とタイプすると、 +.IP "" 4 +> rm foo[tab] +.br +> rm foo +.PP +`food' や `foonly' も合致するにもかかわらず、 +補完は `foo' で完了します。 +\fBautoexpand\fR をセットすると、補完を試みる前に、毎回、 +編集コマンド \fIexpand-history\fR を実行するようになります。 +\fBautocorrect\fR をセットすると、補完を試みる前に、毎回、 +その単語のスペル訂正をするようになります +(\fBスペル訂正\fRの項を参照のこと)。 +\fBcorrect\fR をセットすると、`return (enter)' キーを押したあと、 +自動的にコマンドを補完するようになります。 +\fBmatchbeep\fR をセットすると、補完に際して、状況の変化に応じて、 +ベルを鳴らしたり、鳴らないようにできます。 +\fBnobeep\fR をセットすると、まったくベルを鳴らさないようにできます。 +\fBnostat\fR には、ディレクトリのリストやディレクトリに +合致するパターンをセットでき、これらのディレクトリで補完機構が +\fIstat\fR(2) を実行しないようにすることができます。 +\fBlistmax\fR や \fBlistmaxrows\fR にセットすることで、 +まず問い合わせずに一覧表示する項目の数や、列の数を、それぞれ +制限することができます。 +\fBrecognize_only_executables\fR をセットすると、 +シェルがコマンド一覧を表示する際に、実行可能ファイルだけを +一覧表示するようにさせることができます。ただし、動作はきわめて +遅くなります。 +.PP +最後に、組み込みコマンド \fIcomplete\fR を使って、ファイル名、 +コマンド、変数以外の単語を補完する方法をシェルに教えることができます。 +補完と一覧は、グロブパターン(\fBファイル名置換\fRの項を参照のこと) +上では機能しませんが、編集コマンド \fIlist-glob\fR と +\fIexpand-glob\fR はグロブパターンに対し同等の機能として実行されます。 +.SS "スペル訂正 (+)" +シェルは、補完したり一覧表示するのと同様に、ファイル名、コマンド、変数 +名のスペルを訂正することができることがあります。 +.PP +個々の単語は、編集コマンド \fIspell-word\fR (普通は M-s と M-S に +バインドされています) でスペル訂正できます。入力バッファ全体は +\fIspell-line\fR (普通は M-$ に割り付けられています) で +スペル訂正できます。 +シェル変数 \fBcorrect\fR に `cmd' を設定されておけば、コマンド名が +スペル訂正されます。`all' を設定しておけば、リターンがタイプされる +たびに行全体がスペル訂正されます。 +\fBautocorrect\fR がセットされていれば、単語に補完を試みる前に +その単語をスペル訂正します。 +.PP +スペル訂正が、ここで説明した方法のいずれかにより呼び出され、 +コマンド行のどこかににスペル誤りがあると判断すると、 +シェルは、次のように訂正済みのコマンド行を表示し入力を待ちます。 +.IP "" 4 +> set correct = cmd +.br +> lz /usr/bin +.br +CORRECT>ls /usr/bin (y|n|e|a)? +.PP +これに対し、`y' または空白文字で答えると、訂正済み行を実行し、 +`e' で答えると、入力バッファに訂正前のコマンドを残し、 +`a' で答えると、`^C' が押された場合と同様にコマンドを中止し、 +それ以外の場合は、元のままの行を変えないで実行します。 +.PP +スペル訂正は、ユーザ定義の補完を識別します +(組み込みコマンド \fIcomplete\fR を参照のこと)。 +もし、補完が実行される位置で、入力された単語が補完リストの中の単語に +似ていたとき、スペル訂正は、ミススペルを示して、見つかった単語を +訂正候補として提案します。しかし、入力された単語がその位置で、 +どの補完候補にも合致しなかった時、スペル訂正は、 +ミススペルを示しません。 +.\"kuma: register a misspelling ... ミススペルを示す? +.PP +補完と同様、スペル訂正は行のどこでも機能します。行の残りを右に +押し出したり、残りの余分な文字をカーソルの右に残したりします。 +.PP +注意: スペル訂正は、意図どおりに動作する保証はありません。そして、 +ほとんど実験的な機能として提供されています。 +提案、改善する点があれば歓迎します。 +.\"XX JP1 +.\" WORD: switches スイッチ +.\" WORD: glob-pattern globパターン +.\" WORD: Toggles 切り替える +.\" WORD: pager ページャー +.\" WORD: prefix 接頭辞 +.\" WORD: return リターンキー(enterキー) +.\" +.SS "編集コマンド (+)" +`bindkey' はキーバインド一覧を表示し、 +`bindkey \-l'は編集コマンドの一覧と短い解説を表示します。 +ここでは、新しい編集コマンド、または、特に興味深い編集コマンドに +ついてのみ解説します。 +エディタのキーバインド割り付けの記述については、 +\fIemacs\fR(1) と \fIvi\fR(1) を参照してください。 +.PP +デフォルトでそれぞれのコマンドにバインドられた文字(あるいは複数文字) +は、括弧の中に示しました。 +`^\fIcharacter\fR' は制御文字を意味します。 +`M-\fIcharacter\fR'はメタ文字です。 +メタキーがない端末の場合は、escape-\fIcharacter\fR とタイプします。 +大文字小文字の区別はありますが、 +デフォルトで英文字に割り付けられるコマンドは、便宜上、 +大文字、小文字の両方にキーバインドされています。 +.TP 8 +.B complete-word \fR(tab) +\fB補完と一覧\fR の項で解説しているとおり、単語を補完します。 +.TP 8 +.B complete-word-back \fR(not bound) +\fIcomplete-word-fwd\fR と同様ですが、単語リストの終わりから、 +上へあがって行きます。 +.TP 8 +.B complete-word-fwd \fR(not bound) +現在の単語を、補完可能単語リスト上の始めの単語で置き換えます。 +本コマンドを繰り返すことで、単語リスト上を下へ降りていくことができます。 +単語リストの最後までいくと、ベルが鳴り、未補完の単語へ戻ります。 +.TP 8 +.B complete-word-raw \fR(^X-tab) +\fIcomplete-word\fR と同様ですが、ユーザ定義した補完は無視されます。 +.TP 8 +.B copy-prev-word \fR(M-^_) +現在の行で、1 つ前の単語を入力バッファへコピーします。 +\fIinsert-last-word\fR も参照してください。 +.TP 8 +.B dabbrev-expand \fR(M-/) +以前入力した単語の中で、現在の単語が先頭部分文字列であり、しかも +最近のものを見つけて、それで展開します。 +必要ならば、ヒストリリストを一周回って元に戻って探します。 +\fIdabbrev-expand\fR を中断せず繰り返すことで、 +その次の単語に変わります。 +\fIhistory-search-backward\fR と同様に、同一のマッチングは +スキップします。 +.TP 8 +.B delete-char \fR(割り付けなし) +カーソル下の文字を削除します。 +\fIdelete-char-or-list-or-eof\fR も参照してください。 +.TP 8 +.B delete-char-or-eof \fR(割り付けなし) +カーソル下に文字があれば \fIdelete-char\fR を実行し、 +空行では \fIend-of-file\fR を実行します。 +\fIdelete-char-or-list-or-eof\fR も参照してください。 +.TP 8 +.B delete-char-or-list \fR(割り付けなし) +カーソル下に文字があれば \fIdelete-char\fR を実行し、 +行の末尾では \fIlist-choices\fR を実行します。 +\fIdelete-char-or-list-or-eof\fR も参照してください。 +.TP 8 +.B delete-char-or-list-or-eof \fR(^D) +カーソル下に文字があれば \fIdelete-char\fR を実行し、 +行の末尾では \fIlist-choices\fRを実行し、 +空行では \fIend-of-file\fR を実行します。 +これらの 3 つのコマンドも参照してください。 +これらのコマンドは、それぞれ1つの動作を実行するだけです。 +\fIdelete-char-or-eof\fR, \fIdelete-char-or-list\fR, \fIlist-or-eof\fR は、 +それぞれ 3 つのうちの異なる 2 つを実行します。 +.TP 8 +.B down-history \fR(下矢印, ^N) +\fIup-history\fR と同様ですが、1つずつ下に移動し、もとの入力行で止まります。 +.TP 8 +.B end-of-file \fR(割り付けなし) +ファイルの終端であることをシェルに通知します。 +シェル変数 \fBignoreeof\fR (q.v.) がセットされてない場合、 +その結果として、シェルは実行を終了します。 +\fIdelete-char-or-list-or-eof\fR も参照してください。 +.TP 8 +.B expand-history \fR(M-space) +現在の単語のヒストリ置換を展開します。 +\fBヒストリ置換\fR を参照してください。 +\fImagic-space\fR, \fItoggle-literal-history\fR と、シェル変数 +\fBautoexpand\fR も参照してください。 +.TP 8 +.B expand-glob \fR(^X-*) +カーソルの左にグロブパターンを展開します。 +\fBファイル名置換\fR を参照してください。 +.TP 8 +.B expand-line \fR(割り付けなし) +\fIexpand-history\fR と同様ですが、入力バッファのそれぞれの単語の +ヒストリ置換を展開します。 +.TP 8 +.B expand-variables \fR(^X-$) +カーソルの左に変数を展開します。 +\fB変数置換\fR を参照してください。 +.TP 8 +.B history-search-backward \fR(M-p, M-P) +ヒストリリストを後方へ向かって、入力バッファの現在の中身 +(カーソル位置まで) で始まるコマンドを検索し、 +それを入力バッファへコピーします。 +検索文字列は、`*', `?', `[]', `{}' を含んだグロブパターン +(\fBファイル名置換\fR を参照してください) +であってもかまいません。 +\fIup-history\fR と \fIdown-history\fR は、ヒストリリストの該当する +地点から始める事ができます。 +Emacsモードのみです。 +\fIhistory-search-forward\fR と \fIi-search-back\fR も参照してください。 +.TP 8 +.B history-search-forward \fR(M-n, M-N) +\fIhistory-search-backward\fR と同様ですが、前方へ検索します。 +.TP 8 +.B i-search-back \fR(割り付けなし) +広報へ、\fIhistory-search-backward\fR のように検索して、 +最初に合致したものを入力バッファへコピーし、 +カーソルをパターンの最後に位置させます。 +そして、`bck: 'プロンプトと最初に合致したものを表示します。 +追加の文字をタイプして、その検索を延長することができます。 +\fIi-search-back\fR をタイプして、同じパターンで検索を延長する +こともできます。必要があれば、ヒストリリストを一周回って +元に戻って検索を続けます。 +(これを行うためには、\fIi-search-back\fR は、1文字に +バインドされていなければなりません。) +あるいは、以下の特殊文字をタイプすることもできます。 +.PP +.RS +8 +.RS +4 +.PD 0 +.TP 8 +^W +カーソル下の単語の残りを検索パターンに加えます。 +.TP 8 +delete (あるいは \fIbackward-delete-char\fR にバインドされた文字) +最後にタイプされた文字の効果をとりけし、 +適当なら検索パターンから文字を削除します。 +.TP 8 +^G +前の検索が成功していたなら、検索全体を中止します。 +そうでないなら、一番最後に成功した検索まで戻ります。 +.TP 8 +escape +検索を終え、入力バッファの現在の行をそのまま残します。 +.RE +.PD +.PP +この他の文字で、\fIself-insert-command\fR にバインドされている +以外のものをタイプすると、検索が終了します。入力バッファの現在の行は +そのままになり、タイプした文字は通常の入力として解釈されます。 +特に、キャリッジリターンの場合は、現在の行を実行に移します。 +Emacsモードのみです。 +\fIi-search-fwd\fR と \fIhistory-search-backward\fR も参照してください。 +.RE +.TP 8 +.B i-search-fwd \fR(割り付けなし) +\fIi-search-back\fR と同様ですが,前方へ検索します。 +.TP 8 +.B insert-last-word \fR(M-_) +1つ前の入力行 (`!$') の最後の単語を入力バッファに挿入します。 +\fIcopy-prev-word\fRも参照してください。 +.TP 8 +.B list-choices \fR(M-^D) +\fB補完と一覧\fRで解説しているように、補完の可能性を一覧表示します。 +\fIdelete-char-or-list-or-eof\fR と \fIlist-choices-raw\fRも +参照してください。 +.TP 8 +.B list-choices-raw \fR(^X-^D) +\fIlist-choices\fR と同様ですが、ユーザ定義された補完を無視します。 +.TP 8 +.B list-glob \fR(^X-g, ^X-G) +カーソルの左側のグロブパターン (\fBファイル名置換\fR 参照) に +合致したものを (組み込みコマンド \fIls\-F\fRを用いて) 一覧表示します。 +.TP 8 +.B list-or-eof \fR(割り付けなし) +\fIlist-choices\fRを実行するか、または、空行の場合 \fIend-of-file\fR を +実行します。\fIdelete-char-or-list-or-eof\fR も参照してください。 +.TP 8 +.B magic-space \fR(割り付けなし) +まず \fIexpand-history\fR と同様に、現在の行のヒストリ置換を展開して、 +その後で空白を一つ付け加えます。 +\fImagic-space\fR はスペースキーにバインドするように +設計されていますが、デフォルトではバインドされていません。 +.TP 8 +.B normalize-command \fR(^X-?) +パスの中の現在の単語を検索します。そして、見つかった場合、 +実行可能ファイルを指すフルパスで置き換えます。 +特殊文字は引用されます。エイリアスは展開されて、引用されますが、 +エイリアス中のコマンドは展開/引用されません。 +このコマンドは、例えば、`dbx' や `sh \-x' などのように、 +コマンドが引数を取得する場合に役立ちます。 +.TP 8 +.B normalize-path \fR(^X-n, ^X-N) +シェル変数 \fBsymlinks\fR の設定 `expand' の項で説明されているように、 +現在の単語を展開します。 +.TP 8 +.B overwrite-mode \fR(割り付けられていません) +入力モードと上書きモードの間で切り替えます。 +.TP 8 +.B run-fg-editor \fR(M-^Z) +現在の入力行を保存します。そして、環境変数 \fBEDITOR\fR または +\fBVISUAL\fR のファイル名部分の最後の構成要素 +(または、どちらもセットされていなければ、`ed' か `vi') +と等しい名前を持ち、ストップしているジョブを探します。 +そのようなジョブが見つかれば、`fg %\fIjob\fR' とタイプしたのと +同じように、実行再開されます。 +これは、エディタとシェルの間を抜けて交互に切り替えるのを容易にする +ために使われます。 +このコマンドを `^Z' にバインドし、もっと簡単に交互の切り替えが +できるようにする人もいます。 +.TP +.B run-help \fR(M-h, M-H) +補完ルーチンの `現在のコマンド' と同じ概念による +現在のコマンドのドキュメントを検索し、表示します。 +ページャを使う方法はありません。\fIrun-help\fR は短いヘルプファイルと +のために設計されているためです。 +特別なエイリアス \fBhelpcommand\fR が定義されていた場合、 +コマンド名を唯一の引数としてその値が実行されます。 +ほかに、ドキュメントのファイル名は、\fIコマンド名\fR.help, +\fIコマンド名\fR.1, \fIコマンド名\fR.6, +\fIコマンド名\fR.8, \fIコマンド名\fR のいずれかでなければなりません。 +また、そのファイルは、環境変数 \fBHPATH\fR の中で、 +一覧にあがっているディレクトリのうちの1つに入っていなければなりません。 +もし、1つ以上のヘルプファイルがある場合は、最初の1つのみが、プリントされま +す。 +.TP 8 +.B self-insert-command \fR(テキスト文字) +挿入モード(デフォルト) では、タイプした文字を、 +カーソル下の文字の後に挿入します。 +上書きモードでは、タイプした文字で、カーソル下の文字を置き換えます。 +入力モードは、通常、各行の間で維持されていますが、 +シェル変数 \fBinputmode\fR を `insert(挿入)' あるいは、 +`overwrite(上書き)' にセットしておくと、 +エディタを、各行の始まりで、そのモードにすることができます。 +\fIoverwrite-mode\fR も参照してください。 +.TP 8 +.B sequence-lead-in \fR(矢印接頭辞、メタ接頭辞、^X) +次に続く文字がマルチキーシーケンス(複数文字の連続)であることを +表します。マルチキーシーケンスをコマンドにバインドする場合、 +実際には、次の 2つのバインドを作ります。 +まず、最初の文字を \fIsequence-lead-in\fR とします。そして、 +シーケンス全体をそのコマンドにバインドします。 +\fIsequence-lead-in\fR にバインドされた文字で始まる +全てのシーケンスは、他のコマンドにバインドされていなければ、 +実質的には \fIundefined-key\fR にバインドされたのと同じことに +なります。 +.TP 8 +.B spell-line \fR(M-$) +\fIspell-word\fR と同様に、入力バッファ中の各単語のスペル訂正を +試みます。しかし、単語の最初の文字が、 +`\-', `!', `^', `%' のうちのどれかの場合と、 +単語中に `\\', `*', `?' のいずれかを含んでいる場合は、 +スイッチや、置換などの問題を避けるために、これらの単語を無視します。 +\fBスペル訂正\fR を参照してください。 +.TP 8 +.B spell-word \fR(M-s, M-S) +\fBスペル訂正\fR の項で説明されているのと同じやり方で、現在の単語の +スペルの訂正を試みます。 +パス名として現れる単語の部分をそれぞれにチェックします。 +.TP 8 +.B toggle-literal-history \fR(M-r, M-R) +入力バッファのヒストリ置換を展開したり、`しなかったり' します。 +\fIexpand-history\fR と、シェル変数 \fBautoexpand\fR も参照してください。 +.TP 8 +.B undefined-key \fR(割り付けのコマンドが無いキー) +ベルを鳴らします。 +.TP 8 +.B up-history \fR(上矢印, ^P) +ヒストリリストの中から 1 つ前のエントリを入力バッファにコピーします。 +\fBhistlit\fR がセットされている場合、その記入された文字どおりの +形式を使います。 +ヒストリリストを上の方へ 1 つずつ移動を繰り返した場合、 +一番上で止まります。 +.TP 8 +.B vi-search-back \fR(?) +検索文字列 (\fIhistory-search-backward\fR と同様、グロブパターンでも +構いません) の入力のために `?' をプロンプト表示します。 +その文字列を検索して、同じ文字列を入力バッファへコピーします。 +合致するものが見つからなければ、ベルが鳴ります。 +リターンキー (enter キー) を押すと、検索を終了して、入力バッファ中に +最後に合致した単語を残します。 +escape キーを押すと、検索を終了して、合致したものを実行します。 +\fIvi\fR モードのみです。 +.TP 8 +.B vi-search-fwd \fR(/) +\fIvi-search-back\fR と同様ですが、前方へ検索します。 +.TP 8 +.B which-command \fR(M-?) +入力バッファの最初の単語に対して、\fIwhich\fR (組み込みコマンド +の解説を参照してください) を実行します。 +.SS "字句構造" +シェルは入力された行をタブや空白で単語に分割します。 +特殊文字 `&', `|', `;', `<', `>', `(', `)', 2文字繰り返しの +`&&', `||', `<<' , `>>' は、空白で囲まれているか +どうかにかかわらず、常に単語の区切りになります。 +.PP +シェルの入力が端末からではないとき、文字 `#' は、コメントの始まりと +して扱われます。`#' とその後ろの入力行の残りはコメントと解釈され、 +文法解析されずに捨てられます。 +.PP +特殊文字 (空白,タブ含む) は、その文字の直前にバックスラッシュ `\\' +を置くことで、または、単一引用符 `''、二重引用符 `"'、 +逆引用符 ``' で囲むことで、特殊な意味合いを持たないようにしたり、 +場合によっては、他の単語の一部分にすることもできます。 +他に引用がなされない限り、`\\' の直後に改行文字を置くと、改行文字は +空白扱いになります。しかし、引用中では、この文字の並びは改行文字に +なります。 +.PP +さらに、\fBヒストリ置換\fR を除く、全ての \fB置換\fR (次項参照) は、 +置換を含む文字列(あるいは文字列の一部)を単一引用符で囲むことで防ぐ +ことができます。あるいは、重大な文字 (たとえば、\fB変数置換\fR +ならば `$' や、\fBコマンド置換\fR ならば ``') を `\\' で引用することで +防ぐことができます。(\fBエイリアス置換\fR も例外ではありません。 +一度定義された \fIalias\fR に対して、何らかの方法でその単語の +どれかの文字を引用することで、そのエイリアスの置換を防ぐことが +できます。エイリアスを引用する普通の方法は、そのエイリアスの前に +バックスラッシュを置くことです。) +\fBヒストリ置換\fR は、バックスラッシュを用いることで防ぐことが +できますが、単一引用符では防ぐことができません。。 +二重引用符、逆引用符で引用された文字列は、 +\fB変数置換\fR と \fBコマンド置換\fR は受けますが、 +その他の置換は受けません。 +.PP +単一引用符、二重引用符で囲まれたテキストは 1 つの単語(または +その一部)となります。 +それらの文字列中のメタ文字 (空白、タブを含む) は、単語を分割しません。 +ひとつだけ特殊な場合 (次の \fBコマンド置換\fR 参照) として、 +二重引用符で囲まれた文字列を 1 つ以上の単語に分けることができます。 +これは、単一引用符で囲まれた文字列では決してできません。 +逆引用符は特殊で、\fBコマンド置換\fR (参照してください) に、 +影響を与え、その結果が 1 つ以上の単語になることもあります。 +.PP +複雑な文字列を引用する場合、特に、文字列自身に引用文字が含まれている +場合は、わかりにくいかもしれません。 +人間が書いたものの中では、引用符を引用のために使う必要はないことを +忘れないように! +文字列全体を引用するのではなく、もし適当ならば異なるタイプの +引用符を用い、引用する必要のある文字列の一部分のみを引用する +ことの方が、簡単かもしれません。 +.PP +シェル変数 \fBbackslash_quote\fR (参照してください) をセットすると、 +バックスラッシュが常に `\\', `'', `"' を引用するようにできます。(+) +これによって、複雑な引用をする仕事が簡単になるかもしれません。 +しかし \fIcsh\fR(1) のスクリプトでは、構文エラーの原因になります。 +.\"XX JP2 +.SS 置換 +ここで、シェルが入力に対して行なうさまざまな変換を、 +処理が行なわれる順に記述します。同時に、処理に関わるデータ構造と、 +データ構造に影響を与えるコマンドと変数とにも触れておきます。 +\fB字句構造\fR のところで説明する引用により、置換を抑制できることを +覚えておいて下さい。 +.SS ヒストリ置換 +端末から入力したコマンドひとつひとつ (イベント) は、ヒストリリストに +保存されます。直前のコマンドは常に保存されます。さらに、保存する +コマンド数を、シェル変数 \fBhistory\fR に設定することができます。 +重複するイベントを保存するかどうか、同じイベントの連続をそのまま +保存するかどうかを、シェル変数 \fBhistdup\fR に設定することが +できます。 +.PP +保存されたコマンドには、1 から始まる連続した番号が振られ、 +タイムスタンプが打たれます。普通イベント番号を用いる必要はありませんが、 +シェル変数 \fBprompt\fR の中に `!' を置くことで、現在のイベント番号を +プロンプトの一部にすることができます。 +.PP +実際のところ、シェルは、ヒストリを展開形式と +文字どおり (未展開) の形式とで保存しています。 +シェル変数 \fBhistlit\fR を設定しておくと、 +ヒストリを表示する / ヒストリに保存するコマンドで +文字どおりの形式を用いるようになります。 +.PP +.\" kageyama: builtin command 「組み込みコマンド」 +組み込みコマンド \fIhistory\fR により、ヒストリリストの表示、 +ファイルに保存、ファイルからの読み込み、クリアをいつでも行なえます。 +シェル変数 \fBsavehist\fR と \fBhistfile\fR により、 +ヒストリリストのログアウト時の自動保存と、ログイン時の自動読み込みを +設定することができます。 +.PP +.\"kageyama: 'spelling' 「綴り」 +ヒストリ置換により、ヒストリリストから単語の列を入力ストリームに +持ち込みます。これにより、前のコマンドの繰り返し、前のコマンドで使った +引数の繰り返し、前のコマンドで間違えた綴りの修正を +わずかなキー入力で、かなり確実に +容易に行なうことができるようになります。 +.PP +ヒストリ置換は、文字 `!' で始まります。ヒストリ置換は、 +入力ストリームのどこから開始してもかまいませんが、入れ子には +できません。 +文字 `!' の前に `\\' を置くことで、`!' の特殊な意味を打ち消すことが +できます。文字 `!' が、空白文字、タブ文字、改行文字、`='、`(' の +前にある場合は、そうした方が便利なので、無変更のまま渡されます。 +入力行が `^' で始まる場合にも、ヒストリ置換が生じます。 +この省略表現については後で説明します。 +ヒストリ置換を示すための文字 (`!' と `^') は、 +シェル変数 \fBhistchars\fR を設定することにより変更することが +できます。入力行がヒストリ置換を含む場合、実行前に置換結果が +常に表示されます。 +.PP +ヒストリ置換には「イベント指定」、「単語指定子 (word designator)」、 +「修飾子 (modifier)」を含めることができます。イベント指定は、 +どのイベントから単語の列を取り出すかを指定します。単語指定子は、 +選択したイベントからどの単語を選ぶかを指定します。修飾子は、 +選択した単語をどう操作するかを指定します。 +.PP +イベント指定には、次のものがあります。 +.PP +.PD 0 +.RS +4 +.TP 8 +.I n +番号: これはある特定のイベントを指定します。 +.TP 8 +\-\fIn\fR +オフセット: これは現在のイベントの前 \fIn\fR 個目のイベントを +指定します。 +.TP 8 +# +現在のイベントを指定します。これは \fIcsh\fR(1) の中では注意して +扱わねばなりません。\fIcsh\fR(1) では、再帰呼び出しのチェックを +していないからです。\fItcsh\fR では、再帰呼び出しは 10 レベルまで +許されています。(+) +.TP 8 +! +一つ前のイベントを指定します (`\-1' と等価)。 +.TP 8 +.I s +先頭の単語が \fIs\fR で始まるイベントのうち、最も新しいものを +指定します。 +.TP 8 +?\fIs\fR? +文字列 \fIs\fR を含むイベントのうち、最も新しいものを指定します。 +直後が改行文字の場合は、2 番目の `?' は省略可能です。 +.RE +.PD +.PP +例えば、次のようなヒストリリストがあるとします。 +.IP "" 4 +\ 9 8:30 nroff \-man wumpus.man +.br +10 8:31 cp wumpus.man wumpus.man.old +.br +11 8:36 vi wumpus.man +.br +12 8:37 diff wumpus.man.old wumpus.man +.PP +コマンドが、イベント番号とタイムスタンプ付きで表示されています。 +現在のイベントは、まだ入力していませんが、イベント 13 です。 +`!11' と `!-2' は、イベント 11 を指します。`!!' は、直前の +イベントであるイベント 12 を指します。`!!' は、後ろに `:' が +付いている場合、`!' と省略することができます +(`:' は後で説明します)。`!n' は、`n' から始まっている、 +イベント 9 を指します。`!?old?' は、`old' を含んでいる +イベント 12 を指します。単語指示子も単語修飾子もどちらも含まない場合、 +ヒストリ参照はそのイベント全体を展開するだけです。ですから、 +コピーコマンドを再実行したいときは `!cp' と入力しますし、`diff' の +出力が画面上端からスクロールして消えてしまう場合、`!!|more' と +入力します。 +.PP +必要に応じ、中括弧で囲むことで、ヒストリ置換を前後のテキストから +分離することができます。例えば、`!vdoc' とすると、`vdoc' で始まる +コマンドを探しますが、この例で見つからないにしても、`!{v}doc' では、 +あいまいさもなく `vi wumpus.mandoc' に展開されます。 +中括弧の中でも、ヒストリ置換は入れ子になりません。 +.PP +(+) \fIcsh\fR(1) では、例えば `!3d' は、イベント 3 の後ろに +英文字 `d' を付加して展開しますが、\fItcsh\fR では、これを `3d' で +始まるイベントのうち最新のものに展開します。つまり、完全な数値引数 +だけをイベント番号と見なします。これにより、数字から始まるイベントを +呼び出すことが可能となります。`!3d' を \fIcsh\fR(1) のように +展開させるには、`!\\3d' と指定してください。 +.PP +イベントから単語を選択する場合、`:' と選択する単語を表す指示子を使い、 +イベント指定を行なうことができます。入力行の単語には、0 から始まる +番号が振られています。最初の単語 (普通、コマンドです) は 0 で、 +2 番目の単語 (第 1 引数) は 1 といった具合です。基本的な単語指示子は +次のようになります。 +.PP +.PD 0 +.RS +4 +.TP 8 +0 +最初の単語 (コマンド) +.TP 8 +.I n +\fIn\fR 番目の引数 +.TP 8 +^ +最初の引数、`1' と等価 +.TP 8 +$ +最後の引数 +.TP 8 +% +?\fIs\fR? 検索で一致した単語 +.TP 8 +x\-y +ある範囲の単語 +.TP 8 +.I \-y +\fI`0\-y'\fR と等価 +.TP 8 +* +`^\-$' と等価。但し、イベントが1単語しか含まない場合は何も返さない。 +.TP 8 +.I x* +\fI`x\-$'\fR と等価 +.TP 8 +.I x\- +\fI`x*'\fR と等価。但し、最後の単語 (`$') は除く。 +.PD +.RE +.PP +選択した単語は、空白文字 1 つで区切られてコマンド行に挿入されます。 +例えば、`diff !!:1.old !!:1' と打ち込むことで、先の例の +`diff' コマンドを入力することもできます (`:1' で、直前のイベントから +最初の引数を選択しています)。また、`diff !\-2:2 !\-2:1' と +打ち込むことで `cp' コマンドの引数を選択し、入れ換えることができます。 +`diff' コマンドの引数の順番を気にしなければ、`diff !\-2:1\-2' と +打ち込んでも構いませんし、単に `diff !\-2:*' でも構いません。 +`cp' コマンドは、現在のイベントを指す `#' を使い、 +`cp wumpus.man !#:1.old' と書くことができます。`!n:\- hurkle.man' は、 +`nroff' コマンドから最初の 2 単語を再利用し、 +`nroff \-man hurkle.man' とすることになります。 +.PP +文字 `:' は単語指定からイベント指定を分離しますが、引数選択子が +`^', `$', `*', `%', `\-' で始まるとき、この文字 `:' は省略可能 +です。例えば、先ほどの `diff' コマンドは `diff !!^.old !!^' +もしくは `diff !!$.old !!$' でも構わなかったのです。 +しかし、`!!' が `!' に省略可能である場合、`\-' で始まる引数選択子は +イベント指定として解釈されます。 +.PP +ヒストリ参照に、イベント指定のない単語指示子があっても構いません。 +その場合、直前のコマンドを参照します。 +.\" .ig \" 実際には正しくありませんが、我々は長い間そう信じていました。 +ただし、これは同じ行に前のヒストリ参照が現れない場合に限ります。 +この場合、この形式は直前の参照を繰り返します。よって、`!?foo?^ !$' +は、`?foo?' に一致するコマンドから最初と最後の引数を与えます。 +`diff' の例を続けるなら、単純に `diff !^.old !^' と入力することが +できます。もしくは、逆順の引数を得るだけならば、単に `diff !*' で +いいです。 +.PP +ヒストリ参照の中の単語は編集可能です。つまり、単語の後ろに 1 つまたは +複数の修飾子 (修飾子それぞれは `:' で始まります) を付けることで +「修飾」可能です。 +.PP +.PD 0 +.RS +4 +.TP 8 +h +先頭のもの 1 つを残し、パス名の構成要素の後ろの部分を削除します。 +.TP 8 +t +末尾のもの 1 つを残し、パス名の構成要素の先頭の部分を削除します。 +.TP 8 +r +ファイル名拡張子 `.xxx' を削除し、名前の基本部分だけを残します。 +.TP 8 +e +拡張子だけを残し、他をすべて削除します。 +.TP 8 +u +最初の英小文字を大文字に変換します。 +.TP 8 +l +最初の英大文字を小文字に変換します。 +.TP 8 +s\fI/l/r/\fR +.\" kageyama: quote ... 「クォートする」で統一 +\fIl\fR を \fIr\fR で置換します。 +\fIl\fR は \fIr\fR と同様に、単なる文字列です。名付け親である \fIed\fR(1) +コマンドのような正規表現ではありません。 +`/' の代わりに任意の文字を区切り文字として使うことができます。 +`\\' を使い、\fIl\fR や \fIr\fR の中で区切り文字をクォートすることが +できます。 +\fIr\fR 中の文字 `&' は、\fIl\fR で置き換えられます。`\\' で `&' も +クォートできます。\fIl\fR が空 (``'') の場合、以前の置換の \fIl\fR 、 +または以前のイベント指定 `?\fIs\fR?' の \fIs\fR を使用します。 +最後の区切り文字の直後が改行文字の場合、その区切り文字を省略できます。 +.TP 8 +& +以前の置換を繰り返します。 +.TP 8 +g +後ろの修飾子を単語それぞれに適用します。 +.TP 8 +a (+) +後ろの修飾子を、ある単語だけにできるだけ多くの回数、適用します。 +`a' と `g' をいっしょに用いて、修飾子をグローバルに適用することが +できます。現在の実装では、修飾子 `a' と修飾子 `s' を同時に使用すると、 +無限ループに陥る可能性があります。たとえば、`:as/f/ff/' は決して +終わりません。この動作は今後変更されるかもしれません。 +.TP 8 +p +新しいコマンド行を表示しますが、実行はしません。 +.TP 8 +q +置換された単語をクォートし、それ以上の置換が起きないようにします。 +.TP 8 +x +q と同じです。ただし、単語を空白 / タブ / 改行文字のところで分割します。 +.PD +.RE +.PP +修飾子は最初に見つかった修飾可能な単語だけに適用されます (`g' を +使用しない限り)。修飾可能な単語がない場合はエラーになります。 +.PP +例えば、先の例の `diff' コマンドは、`diff wumpus.man.old !#^:r' とも +書くことができます。これは、`r' を用いて、同じ行 (`!#^') の最初の +引数から `.old' を削除しています。`echo hello out there' と +言っておいてから、`echo !*:u' を使い `hello' を大文字にできます。 +`echo !*:au' を使い大声で言うようにできます。`echo !*:agu' を使い +絶叫させることもできます。`mail \-s "I forgot my password" rot' +の後で `!:s/rot/root' を続けることで、`root' のスペル間違いを直すこと +ができます (スペル間違いの訂正については、\fBスペル訂正\fR の項に +別のやり方があります)。 +.PP +置換には特別な省略記法があります。`^' が入力行の先頭にある場合、 +`!:s^' と等価です。よって、先の例でスペルを訂正するには、 +^rot^root と言うこともできたわけです。これは 明示的に `!' で +始まらないヒストリ置換としては唯一のものです。 +.PP +(+) \fIcsh\fR では、ヒストリ展開または変数展開に適用される修飾子は +1 つだけです。\fItcsh\fR では、1つ以上の修飾子が使用される可能性が +あります。例えば、次のような場合を考えます。 +.IP "" 4 +% mv wumpus.man /usr/man/man1/wumpus.1 +.br +% man !$:t:r +.br +man wumpus + +.PP +\fIcsh\fR では、この結果は `wumpus.1:r' となります。コロンが後ろに続く +置換は、中括弧を用いてコロンと区切る必要があります。 +.IP "" 4 +> mv a.out /usr/games/wumpus +.br +> setenv PATH !$:h:$PATH +.br +Bad ! modifier: $. +.br +> setenv PATH !{\-2$:h}:$PATH +.br +setenv PATH /usr/games:/bin:/usr/bin:. +.PP +最初の試みは \fIcsh\fR では成功しますが、\fItcsh\fR では失敗します。 +この理由は、\fItcsh\fR は 2 番目のコロンの後ろに、`$' ではなく +修飾子があると思っているからです。 +.PP +最後に、ヒストリはここで説明してきた置換だけでなく、エディタでも +利用することができます。編集コマンド +\fIup-history\fR, \fIdown-history\fR, +\fIhistory-search-backward\fR, \fIhistory-search-forward\fR, +\fIi-search-back\fR, \fIi-search-fwd\fR, +\fIvi-search-back\fR, \fIvi-search-fwd\fR, +\fIcopy-prev-word\fR, \fIinsert-last-word\fR は +ヒストリリスト中のイベントを検索し、入力バッファにイベントを +コピーします。編集コマンド \fItoggle-literal-history\fR は、 +入力バッファでヒストリ行を展開するか文字どおりに扱うかを切り替えます。 +\fIexpand-history\fR, \fIexpand-line\fR はそれぞれ、現在の単語、 +または、入力バッファ全体でヒストリ置換を展開します。 +.SS エイリアス置換 +シェルは、エイリアスのリストを保持しています。このリストは、 +\fIalias\fR, \fIunalias\fR コマンドを使って設定、削除、表示する +ことができます。コマンド行を解釈し単純コマンド (\fBコマンド\fR 参照) +に分割したあと、複数のコマンドを左から右へ、それぞれの最初の単語が +エイリアスを持っているかをチェックします。エイリアスを持っている +場合、最初の単語をエイリアスで置き換えます。置き換えたエイリアスが +ヒストリ参照を含む場合、元のコマンドを直前の入力行とみなして、 +\fBヒストリ置換\fR (参照してください) が適用されます。エイリアスが +ヒストリ置換を含まない場合、引数リストは変更されずそのままです。 +.PP +そのため、例えば `ls' のエイリアスが `ls \-l' だった場合、コマンド +`ls /usr' は `ls \-l /usr' になります。ここで、引数リストは +影響を受けません。`lookup' のエイリアスが `grep !^ /etc/passwd' +だとすると、コマンド `lookup bill' は `grep bill /etc/passwd' に +なります。エイリアスを使い、パーザのメタ記法を利用できます。 +例えば、`alias print 'pr \e!* | lpr'' は、引数を +ラインプリンタに \fIpr\fR(1) する ``コマンド''(`print') を +定義します。 +.PP +コマンドの最初の単語がエイリアスを持たなくなるまで、エイリアス置換は +繰り返されます。(先の例のように) エイリアス置換が最初の単語を +変更しない場合、そのエイリアスに印を付けてループが生じない +ようにします。それ以外のループは検出され、エラー扱いになります。 +.PP +シェルが参照するエイリアスがいくつかあります。\fB特殊エイリアス\fR +を参照してください。 +.SS 変数置換 +シェルは変数のリストを管理しており、それらは 0 個またはそれ以上の +個数の単語のリストを値として持ちます。シェル変数の値は、コマンド +\fIset\fR, \fIunset\fR により表示、変更することができます。システムは、 +自分自身の ``環境'' 変数のリストを保持しています。環境変数は +コマンド \fIprintenv\fR, \fIsetenv\fR, \fIunsetenv\fR により表示、 +変更することができます。 +.PP +(+) `set \-r' (参照して下さい) により変数を読み出し専用にすることが +できます。読み出し専用変数は、変更や unset ができません。これを +試みるとエラーになります。一度読み出し専用にした変数は、 +書き込み可能に戻すことはできません。ですから、`set \-r' は +注意して使用する必要があります。環境変数は読み出し専用に +することはできません。 +.PP +シェルが設定、参照する変数がいくつかあります。例えば、変数 \fBargv\fR +は、シェルの引数リストの複製で、この変数の値である単語は特別な方法で +参照されます。シェルが参照する変数の中には、トグルスイッチがあります。 +シェルは、これらの変数が何の値を持っているかではなく、値が設定されて +いるかどうかにだけ影響を受けます。例えば、変数 \fBverbose\fR は、 +コマンド入力をエコーするかどうかを制御するトグルスイッチです。 +コマンド行オプション \fB\-v\fR がこの変数に値を設定します。 +シェルが参照する変数すべてのリストは、\fB特別なシェル変数\fR にあります。 +.PP +変数を数値として扱う操作もあります。コマンド `@' により、 +数値計算を実行し、結果を変数に代入することが可能となります。 +しかしながら、変数の値は常に (0 個以上の) 文字列として表現されて +います。数値として扱うために、空文字列は 0 と見なされます。 +複数の単語からなる値の、2番目以後の単語は無視されます。 +.PP +入力行のエイリアス処理を終え、字句解析を終えた後で、そして、 +各コマンドを実行する前に、`$' 文字をキーとして変数置換が行なわれます。 +この展開は `$' の前に `\e' を置くことで抑止できます。ただし、`"' の +中は別で、ここでは \fI常に\fR 変数置換が行なわれます。また、`'' の中も +別で、ここでは \fI決して\fR 変数置換が行なわれません。``' で +クォートした文字列は後で解釈されます (後の \fBコマンド置換\fR を参照) +から、そこでの `$' 置換は後になるまで行なわれません。`$' の後ろが空白、 +タブ、改行文字の場合は、`$' 置換は発生しません。 +.PP +入出力リダイレクトは、変数展開の前に識別され、別々に変数展開されます。 +それ以外では、コマンド名と引数リスト全体が一緒に展開されます。ですから、 +(この時点での) 最初の単語 (コマンド) から 2 つ以上の単語が生成される +可能性があります。展開後の複数の単語のうち最初のものがコマンド名となり、 +残りの単語は引数になります。 +.PP +`"' で囲まれているか、修飾子 `:q' が指定されている場合を除き、 +最終的には、変数置換の結果に対し、コマンド置換とファイル名置換が +適用されます。`"' で囲まれている場合、値が複数の単語で構成される変数は、 +1 つの単語 (の一部) に展開されます。 +この単語には、その変数の値である単語が空白で区切られたものを +含みます。置換の際に修飾子 `:q' が適用される場合、変数は複数の単語に +展開されます。それぞれの単語は空白で区切られ、以後、コマンド置換と +ファイル名置換が適用されないようにクォートされます。 +.PP +シェルへの入力に変数の値を持ち込むための方法として、以下の構文が +あります。特に注がない限り、設定されていない値の参照はエラーになります。 +.PP +.PD 0 +$\fIname\fR +.TP 8 +${\fIname\fR} +変数 \fIname\fR の値である単語に置換します。この単語は、 +それぞれが空白で区切られたものです。 +中括弧は \fIname\fR とそれ以後の文字列とを分離し、以後の文字列も含めて +一つの変数名として解釈されないようにします。シェル変数の名前は上限が +20 文字であり、先頭は英文字で、2文字目以後は英文字か数字で +構成されます。アンダースコアは英文字と見なします。\fIname\fR が +シェル変数ではないが、環境に設定されている場合、環境の値を返します +(ただし、修飾子 `:' と次で示す他の形式は利用可能です)。 +.PP +$\fIname\fR[\fIselector\fR] +.TP 8 +${\fIname\fR[\fIselector\fR]} +.\"kageyama:may consist of... "構成できる"? +\fIname\fR の値のうち選択した単語のみで置換します。\fIselector\fR は +`$' 置換が適用され、1 つの数または `\-' で区切った 2 つの数で +構成することができます。変数の値の先頭の単語は 1 番目として数えます。 +範囲の最初の値を省略した場合、デフォルトの値 1 になります。範囲の +最後の値を省略した場合、デフォルトの値 `$#\fIname\fR になります。 +\fIselector\fR `*' はすべての単語を選択します。2 番目の引数が +省略されるか、あるいは範囲に収まっている場合、範囲が空になっても +エラーになりません。 +.TP 8 +$0 +コマンド入力を読み込んでいるファイル名で置換します。ファイル名が +不明の場合エラーになります。 +.PP +$\fInumber\fR +.TP 8 +${\fInumber\fR} +`$argv[\fInumber\fR]' と等価です。 +.TP 8 +$* +`$argv' と等価です。これは `$argv[*]' と等価です。 +.PD +.PP +\fBヒストリ置換\fR のところで説明した `:' 修飾子 (`:p' を除く) が、 +上記の置換に対して適用できます。2 つ以上の修飾子も適用できます。 +(+) \fBヒストリ置換\fR (参照してください) と同様に、変数置換と +リテラルのコロンとを分離するために、中括弧が必要なことがあります。 +修飾子は中括弧の中に置かねばなりません。 +.PP +以下の置換は `:' 修飾子で修飾することはできません。 +.PP +.PD 0 +$?\fIname\fR +.TP 8 +${?\fIname\fR} +\fIname\fR が設定されているときは、文字列 `1' で置き換えられます。 +設定されていないときは、文字列 `0' で置き換えられます。 +.TP 8 +$?0 +現在の入力ファイル名がわかっているときは、`1' で置き換えられます。 +わかっていないときは、`0' で置き換えられます。 +対話型のシェルでは、常に `0' です。 +.PP +$#\fIname\fR +.TP 8 +${#\fIname\fR} +\fIname\fR 中の単語の数で置き換えられます。 +.TP 8 +$# +`$#argv' と等価です。(+) +.PP +$%\fIname\fR +.TP 8 +${%\fIname\fR} +\fIname\fR の文字数で置き換えられます。(+) +.PP +$%\fInumber\fR +.TP 8 +${%\fInumber\fR} +$argv[\fInumber\fR] の文字数で置き換えられます。(+) +.TP 8 +$? +`$status' と等価です。(+) +.TP 8 +$$ +(親) シェルの (10進の) プロセス番号で置き換えられます。 +.TP 8 +$! +本シェルが開始したバックグラウンドプロセスのうち最新のものの +(10進の) プロセス番号で置き換えられます。(+) +.TP 8 +$_ +最後に実行したコマンドのコマンド行で置き換えます。(+) +.TP 8 +$< +標準入力から読み込んだ 1 行を、一切解釈をせずにこの変数と置き換えます。 +シェルスクリプト中で、キーボードから読み込む際に用います。(+) +\fIcsh\fR は、`$<:q' と等価であるかのように、$< をクォートしますが、 +\fItcsh\fR はそうしません。それだけでなく、\fItcsh\fR がユーザの +入力行を待つとき、ユーザは割り込みを入力して、置換されるべき行が +入る列を中断することができます。しかし \fIcsh\fR ではそうすることが +できません。 +.PD +.PP +編集コマンド \fIexpand-variables\fR は、通常は `^X-$' に結合されて +いますが、これを使って、個々の変数を対話的に展開することが +できます。 +.SS "コマンド置換、ファイル名置換、ディレクトリスタック置換" +組み込みコマンドの引数に対し、残りの置換が選択的に適用されます。 +選択的とは、行の中で評価されなかった部分は、これらの展開の対象に +ならないという意味です。シェルの内部コマンドでないコマンドに対しては、 +コマンド名は引数リストとは別個に置換されます。この置換は最後の方、 +入出力リダイレクトを実行したあと、メインシェルの子供の中で生じます。 +.SS コマンド置換 +``' で囲まれたコマンドは、コマンド置換を示します。囲まれたコマンドの +出力を、空白、タブ、改行文字のところで別々の単語に分割します。この +出力に変数置換、コマンド置換を実行し、元の文字列があった場所に +置きます。 +.PP +.\"kageyama: even if... の部分をもう少し訳してみました。 +2重引用符 (`"') の内側のコマンド置換は、空白、タブを保存します。 +改行文字だけは新しく単語分けを行います。 +ただし、どのような場合でも最後の改行文字だけは新しい単語になりません。 +ですから、1 行まるまる出力するようなコマンドでも、コマンド置換を +用いると単語の一部だけを生成することができます。 +.SS ファイル名置換 +単語が `*', `?', `[', `{' のいずれかの文字を含む場合、または先頭が `~' +で始まる場合、その単語はファイル名置換 (あるいはグロブ (globbing) と +呼ばれます) の候補になります。このような単語をパターン +(グロブパターン) と見なし、そのパターンにマッチするファイル名の +リストをアルファベット順で整列したもので置き換えます。 +.PP +ファイル名マッチの際に、ファイル名の先頭、または `/' の直後の +文字 `.' は、`/' と同様に、明示的にマッチさせなければなりません。 +文字 `*' は、空文字列を含むどのような文字列にもマッチします。 +文字 `?' は、どのような 1 文字にもマッチします。列 `[...]' は、 +括弧の中で指定した文字のいずれかにマッチします。`[...]' 内では、 +文字の対を `\-' でつなぐことで、(文字順序で) その 2 文字の範囲にある +文字のいずれかにマッチします。 +.PP +(+) グロブパターンの中には反転を指定できるものがあります。 +列 `[^...]' は、括弧内の文字 / 範囲で指定して \fIいない\fR 文字 +ちょうど 1 つにマッチします。 +.PP +`^' により、グロブパターン全体を反転させることもできます。 +.IP "" 4 +> echo * +.br +bang crash crunch ouch +.br +> echo ^cr* +.br +bang ouch +.PP +`?', `*', `[]' のいずれも使わないグロブパターンや、 +`{}', `~' (あとで説明します) を使うグロブパターンは、 +反転しても正しい結果を得られません。 +.PP +メタ記法 `a{b,c,d}e' は、`abe ace ade' の省略記法です。左から右への +出現順序は保存されます。`/usr/source/s1/{oldls,ls}.c' は、 +`/usr/source/s1/oldls.c /usr/source/s1/ls.c' に展開します。 +マッチングの結果は下位のレベルで個別に整列され、出現順序は保存 +されます。 +`../{memo,*box}' は、`../memo ../box ../mbox' などに +展開されるでしょう (ここで、`memo' が `*box' のマッチング結果とともに +整列されていないことに注意して下さい)。この指定が展開された結果 +ファイルが存在しなくてもエラーになりませんが、展開結果を渡した先の +コマンドでエラーになる可能性はあります。この指定は入れ子にすることが +できます。特殊な場合として、単語 `{', `}', `{}' は変更されずに +そのまま渡されます。 +.PP +.\" kageyama: as reflected in... のところをもう少し訳してみました。 +ファイル名先頭の文字 `~' は、ホームディレクトリを指します。単独で +用いられた場合、つまり `~' だけの場合、シェル変数 \fBhome\fR の値に +反映されているように、呼び出したユーザの +ホームディレクトリに展開されます。`~' の直後に英文字、 +数字、または文字 `\-' で構成される名前が続く場合、シェルはその +名前を持つユーザを検索し、そのユーザのホームディレクトリに展開します。 +ですから、`~ken' はたとえば `/usr/ken' に展開されます。 +また、`~ken/chmach'は、たとえば `/usr/ken/chmach' に展開されます。 +文字 `~' の後ろに英文字でもなく `/' でもない文字が続いた場合、 +もしくは、文字 `~' が単語の先頭以外に現れた場合、変更されずに +そのまま渡されます。ですから、 +`setenv MANPATH /usr/man:/usr/local/man:~/lib/man' のようなコマンド +では、期待通りのホームディレクトリ置換が起こりません。 +.PP +`^' の有無に関わらず、 `*', `?', `[', `~' を含むグロブパターンがどの +ファイルにもマッチしない場合はエラーです。しかし、グロブパターンの +列の中でただ 1 つだけがファイル 1 つにマッチしなければなりません +.\"kuma どういう意味? +(たとえば、`rm *.a *.c *.o' は、`.a', `.c', `.o' で終るファイルが +カレントディレクトリにない場合に限り失敗します)。また、シェル変数 +\fBnonomatch\fR が設定されている場合、どれにもマッチしない +パターン (あるいはパターンの列) はエラーにならずに無変換のまま +残されます。 +.PP +ファイル名置換を止めるために、シェル変数 \fBnoglob\fR を設定することが +できます。編集コマンド \fIexpand-glob\fR は、通常は `^X-*' に結合されて +いますが、これを使い、個々のファイル名置換の展開を対話的に +行なうことができます。 +.SS "ディレクトリスタック置換 (+)" +ディレクトリスタックはディレクトリの列であり、0 から番号付けられ、 +組み込みコマンド \fIpushd\fR, \fIpopd\fR, \fIdirs\fR +(参照してください) が使用します。 +\fIdirs\fR コマンドを使用すると、ディレクトリスタックを +いつでも表示でき、ファイルに書き込むことができ、 +ファイルから読み込むことができ、そしてクリアすることが +できます。シェル変数 \fBsavedirs\fR, \fBdirsfile\fR に +値を設定することで、ログアウト時のディレクトリスタックの書き込みと、 +ログイン時の読み込みを自動的に行なうことができます。シェル変数 +\fBdirstack\fR を使い、ディレクトリスタックの中を調べることができ、 +ディレクトリスタックに任意のディレクトリを設定することができます。 +.PP +文字 `=' の後ろに 1 桁以上の数字が続くと、それは +ディレクトリスタック中のエントリに展開されます。特殊な場合として、 +`=\-' はスタックの最新のディレクトリに展開します。例えば、 +次のようにです。 +.IP "" 4 +> dirs \-v +.br +0 /usr/bin +.br +1 /usr/spool/uucp +.br +2 /usr/accts/sys +.br +> echo =1 +.br +/usr/spool/uucp +.br + echo =0/calendar +.br +/usr/bin/calendar +.br +> echo =\- +.br +/usr/accts/sys +.PP +シェル変数 \fBnoglob\fR, \fBnonomatch\fR と編集コマンド +\fIexpand-glob\fR はファイル名置換と同様に +ディレクトリスタックにも適用されます。 +.SS "その他の置換 (+)" +ファイル名を含む変換が他にいくつかあります。厳密には先に説明した +ものと関係があるわけではありませんが、完全を期するために +ここで説明しておきます。変数 \fBsymlinks\fR (参照してください) が +`expand' に設定されている場合、\fIどのような\fR ファイル名も +フルパスに展開される可能性があります。クォートすることで +この展開を止めることができ、編集コマンド \fInormalize-path\fR を +使用すると要求に応じて展開を止めることができます。また、編集コマンド +\fInormalize-command\fR は、PATH にあるコマンドを、 +要求に応じてフルパスに展開します。 +最後に、\fIcd\fR と \fIpushd\fR は `\-' を以前の作業ディレクトリ +(シェル変数 \fBowd\fR と等価) と解釈します。これは置換でもなんでも +なく、このコマンドだけで認識される省略記法です。それでも、この表記も +クォートすることでこの解釈を止めることができます。 +.\"XX JP31 +.SS コマンド +次の3つのセクションでは、シェルがどのようにコマンドを実行し、 +それらの入出力をどのように扱うかを説明します。 +.SS 単純コマンド、パイプライン、コマンド列 +単純コマンドは、単語の列であり、 +その最初の単語が実行されるコマンドです。 +`|' 文字によって区切られた一連の単純コマンドは +パイプラインを形成します。 +パイプライン内のそれぞれのコマンドの出力は次のコマンドの +入力に接続されます。 +.PP +単純コマンドとパイプラインは `;' 文字を使って +コマンド列に組み入れることができ、並んでいる順に実行されます。 +コマンドとパイプラインは `||' や `&&' でコマンド列に +組み込むこともでき、C 言語で扱われるのと同様に、 +最初のコマンドが失敗した時にだけ (`||'の場合)、 +あるいは成功した時にだけ (`&&'の場合)、次のコマンドが実行されます。 +.PP +単純コマンド、パイプライン、またはコマンド列は、 +括弧`()' を使って単純コマンドを形成することができ、 +パイプラインやコマンド列の一部として使用できます。 +コマンド、パイプライン、またはコマンド列の後に `&' を +置いて実行すると、そのコマンドの終了を待たずに +次のコマンドを実行できます。 +.SS "組み込みコマンド、非組み込みコマンドの実行" +組み込みコマンドは、シェルの中で実行されます。 +パイプラインの構成要素の最後以外が組み込みコマンドのとき、 +パイプラインは、サブシェル内で実行されます。 +.PP +括弧で括られたコマンドは、常にサブシェル内で実行されます。 +.IP "" 4 +(cd; pwd); pwd +.PP +これは、現在のディレクトリを移動することなくく\fBホーム\fR +ディレクトリを表示 (その後に現在のディレクトリを表示) し、 +その一方、 +.IP "" 4 +cd; pwd +.PP +この場合は\fBホーム\fRディレクトリに移動します。 +括弧で括られたコマンドは、たいてい \fIcd\fR が現在のシェルに +影響するのを防ぐために使用します。 +.PP +実行するコマンドが組み込みコマンドでないことが判明すると、 +シェルはそのコマンドを \fIexecve\fR(2) を通じて実行しようとします。 +環境変数 \fBpath\fR 内の各語は、シェルがコマンドを検索する +ディレクトリを指定します。 +\fB\-c\fR、\fB\-t\fR オプションのいずれも指定されていない場合、 +これらのディレクトリ内の名前を内部テーブルでハッシュし、 +そのコマンドが存在する可能性のあるディレクトリだけで +\fIexecve\fR(2) の実行を試みます。 +このことは、検索パス内のディレクトリの数が多い場合に、 +コマンドの位置確定を大いに高速化します。 +この機構が (\fIunhash\fR によって) オフにされ、 +シェルに \fB\-c\fR または \fB\-t\fR のオプションが与えられるか、 +それぞれの \fBpath\fR のディレクトリ構成要素のいずれかが +`/' で始まっていない場合、シェルは現在の作業ディレクトリと +与えられたコマンド名を結合して実行するファイルのパス名を形成します。 +.PP +ファイルに実行許可であってシステムが実行可能ではない場合、 +(例 : 実行可能バイナリ、インタプリンタを指定したスクリプト +ではないとき)、それをシェルコマンドを含むファイルであるとみなし、 +新しいシェルを起動してそのファイルを読み込みます。 +\fIシェル\fRの特殊なエイリアスで、シェル自体ではなくインタプリタを +指定するように設定することもできます。 +.PP +慣習的な‘#!' スクリプトインタプリタを理解しないシステム上では、 +シェルはそれをエミュレートするようにコンパイルされます ; シェル変数 +\fBversion\fR を参照。 +その場合、シェルがファイルの最初の行をチェックし、それが +`#!\fIinterpreter\fR \fIarg\fR ...' の形式であるかどうかを +確認します。 +この形式であれば、シェルは与えられた\fI引数\fRとともに +\fIインタプリタ\fRを起動して、そのファイルを標準入力に供給します。 +.\" +.\" +.SS 入出力 +コマンドの標準入力と標準出力は以下の文法に従って +リダイレクトすることができます: +.PP +.PD 0 +.TP 8 +< \fIname +ファイル \fIname\fR (変数、コマンド、ファイル名展開を受けます) +をオープンし、コマンドの標準入力とします。 +.TP 8 +<< \fIword +\fIword\fR と同一の行が出現するまで、シェルの入力を読み込みます。 +\fIword\fR は変数、ファイル名、コマンド置換を受けません。 +シェル入力の行は読み込まれるとすぐ、置換を行う前に +\fIword\fR と比較されます。\fIword\fR に `\e', `"', `'', ``' +のクォートが出現しなければ、行の中でコマンド置換が実行されます。 +この置換を抑制するために、`\e' によって +`$', `\e', ``' をクォートすることができます。コマンド置換において、 +すべての空白、タブ、改行は保存されますが、最後の改行は削除されます。 +読み込んだ行はすべてテンポラリファイルに保存され、 +コマンドの標準入力として用いられます。 +.PP +> \fIname +.br +>! \fIname +.br +>& \fIname +.TP 8 +>&! \fIname +ファイル \fIname\fR を標準出力として用います。 +ファイルが存在しなければ作成されます。すでにファイルが存在すれば +その内容は切り捨てられ、以前の内容は失われます。 +.RS +8 +.PD +.PP +シェル変数 \fBnoclobber\fR がセットされている場合、 +ファイルが存在しないか文字型特殊ファイル +(端末や `/dev/null' のような) でなければ +エラーになります。これは、すでに存在するファイルを間違えて +削除してしまうことを防止します。`!' を用いた形式を使うと、 +この検査を抑制することができます。 +.PP +`&' を用いた形式では、標準出力とともに診断メッセージ +出力もファイルへリダイレクトされます。 \fIname\fR は、`<' の +入力ファイル名の場合と同様の展開を受けます。 +.PD 0 +.RE +.PP +>> \fIname +.br +>>& \fIname +.br +>>! \fIname +.TP 8 +>>&! \fIname +`>' と同様に、ファイル \fIname\fR を標準出力として用います。 +ただし、コマンドの出力はファイルへ追加されます。 +変数 \fBnoclobber\fR がセットされている場合、ファイルが +\fI存在しなければ\fRエラーとなります。 +`!' を用いることで、この検査を抑制することができます。 +.PD +.PP +コマンドは、シェルが起動されたときの環境を引き継ぎます。 +ただしこの環境は入出力のパラメータによって変更されますし、 +コマンドがパイプラインの中にあった場合も変更されます。 +したがって、以前のいくつかのシェルとは異なり、シェルの +コマンドファイルから起動されたコマンドは、デフォルトでは +そのコマンドのテキストへアクセスできません。かわりに +それらのコマンドは、シェルのもともとの標準入力をそのまま +受け継ぎます。 +シェルスクリプトの内部で、コマンドにあらかじめ決まった +(inline) データを渡す場合には、標準入出力の形式ではなく、 +`<<' の機構を使うことができます。 +このように制限することにより、シェルコマンドスクリプトを +パイプラインの一部として用いることができます。 +バックグラウンドで実行されているコマンドの標準入力も +\fI/dev/null\fR 等にリダイレクトされること\fIなく\fR、 +シェルの標準入力をそのまま受け継いでいます。 +もし標準入力が端末で、コマンドが端末から読み込もうとした場合、 +そのプロセスはブロックされ、シェルはユーザにそのことを通知します +(参照: \fBジョブ\fR の項)。 +.PP +診断メッセージ出力もパイプにリダイレクトすることが +できます。単に `|' のかわりに `|&' を使います。 +.PP +シェルは、標準出力のリダイレクトなしで、診断メッセージ出力を +リダイレクトできなくなります。 +そのため、`(\fIコマンド\fR > \fI出力ファイル\fR) >& +\fIエラーファイル\fR' は、無難な予備手段としてされてます。 +\fI出力ファイル\fR、\fIエラーファイル\fRのどちらかが、 +端末に出力を送るための `/dev/tty' です。 +.SS 特徴 +ここではシェルがどのようにコマンドラインを受け入れ、 +解釈し、実行するかを説明しました。 +次は、便利な特徴について説明します。 + +.\"XX JP32 +.SS "制御フロー" +このシェルには、 +コマンドファイル (シェルスクリプト) や +(制約はあるものの便利な) 端末からの入力 +処理の流れを制御するために使用できる +多くのコマンドを備えています。 +これらのコマンドは、 +入力の再読み込みや読み飛ばしを行うため +シェルを強制的に操作します。 +これらの実装のために、幾つかのコマンドには制限があります。 +.PP +\fIforeach\fR、\fIswitch\fR、\fIwhile\fR 文は、 +\fIif\fR 文の \fIif-then-else\fR 形式と同様に、 +後で示すように入力行の単独の単純コマンド中に +主要なキーワードが現れることを要求します。 +.PP +シェルの入力がシーク可能でない場合は、 +ループが読み込まれると常に入力をバッファし、 +この内部バッファをシークすることでループによる +再読み込みを可能にします。 +(これを許可した結果、 +後方へ向かう \fIgoto\fR がシーク可能でない入力についても +成功することになります。) +.SS 式 +R +組み込みコマンドの \fIif\fR、\fIwhile\fR、\fIexit\fR は +共通した文法を持った式を使います。 +式には、次の3つのセクションの中で説明される +任意の演算子を含めることができます。 +\fI@\fR 組み込みコマンド (参照) 自体は、 +文法を区切るので注意してください。 +.SS "論理演算子, 算術演算子, 比較演算子" +これらの演算子は C の演算子と同様に +同じ優先順位となっています。 +演算子には、次のものがあります。 +.IP "" 4 +|| && | ^ & == != =~ !~ <= >= +.br +< > << >> + \- * / % ! ~ ( ) +.PP +ここでは右にいくほど優先順位が高く、 +`==' `!=' `=~' `!~' `<=' `>=' `<' `>' `<<' `>>' +`+' `\-' `*' `/' `%' は +それぞれグループ化されており、 +グループ内では同じレベルになります。 +演算子 `==' `!=' `=~' `!~' は引数を文字列として比較します。 +他の演算子は全て数字で比較します。 +演算子 `=~' `!~' は `!=' `==' と似ていますが、 +左側のオペランドにマッチするグロブパターン +(\fBファイル名置換\fR を参照) +を右側に置くことが異なります。 +必要なものに対してだけパターンマッチを行うので、 +シェルスクリプト中における +\fIswitch\fR 組み込みコマンドの使用の必要を減らします。 +.PP +`0' で始まる文字列は 8 進数とみなされます。 +空の文字列や引数がぬけているものは `0' とみなされます。 +すべての式の結果は 10 進数で表される文字列になります。 +特に、式の構成要素が同一の単語中に複数個現れることはないと +いうことに注意してください。 +例外として、 +パーサに文法的に特別な意味を持つ式の構成要素 +(`&' `|' `<' `>' `(' `)') が隣りにくることは構いません。 +ただし、これらは空白で区切られるべきです。 +.SS "コマンド終了ステータス" +d +式の中でコマンドを実行することができ、 +式を中括弧 (`{}') で囲むと +終了ステータスが返されます。 +中括弧は、コマンドの単語から空白で区切ることを +忘れないでください。 +コマンドの実行が成功した場合は、 +真 (例えば `1') を返します。 +コマンドが 0 のステータスで終了した場合、 +または実行に失敗した場合は、偽 (例えば `0') を返します。 +もっと詳しいステータスの情報が必要な場合は、 +コマンドを式の外部で実行し、 +シェル変数 \fBstatus\fR を調べてください。 +.SS "ファイル問い合わせ演算子" +これらの演算子のうち幾つかは +ファイルと関連するオブジェクトについて +真/偽の判定を行います。 +これらは \fB\-\fIop file\fR の形式です。 +\fIop\fR は次のうちのどれか 1 つです。 +.PP +.PD 0 +.RS +4 +.TP 4 +.B r +読み取りアクセス +.TP 4 +.B w +書き込みアクセス +.TP 4 +.B x +実行アクセス +.TP 4 +.B X +パス中にある実行可能ファイルやシェル組み込みコマンド。 +例えば `\-X ls' と `\-X ls\-F' は一般に真であり、 +`\-X /bin/ls' はそうではない (+) +.TP 4 +.B e +存在 +.TP 4 +.B o +所有者 +.TP 4 +.B z +サイズ 0 +.TP 4 +.B s +サイズが 0 でない (+) +.TP 4 +.B f +通常ファイル +.TP 4 +.B d +ディレクトリ +.TP 4 +.B l +シンボリックリンク (+) * +.TP 4 +.B b +ブロック型特殊ファイル (+) +.TP 4 +.B c +キャラクタ型特殊ファイル (+) +.TP 4 +.B p +名前付きパイプ (fifo) (+) * +.TP 4 +.B S +ソケット型特殊ファイル (+) * +.TP 4 +.B u +set-user-ID ビットがセットされている (+) +.TP 4 +.B g +set-group-ID ビットがセットされている (+) +.TP 4 +.B k +スティッキービットがセットされている (+) +.TP 4 +.B t +\fIfile\fR (これは数字でなければならない) は +端末デバイスに対してオープンしている +ファイル記述子である (+) +.TP 4 +.B R +migrate されている (convex システムのみ有効) (+) +.TP 4 +.B L +多重演算子の中でこの演算子の後にくる演算子は、 +シンボリックリンクが指されているファイルではなく、 +シンボリックリンクそのものに適用される (+) * +.RE +.PD +.PP +\fIfile\fR はコマンドと展開されたファイル名で、 +指定された実ユーザに対する関係があるかどうか +テストします。 +\fIfile\fR が存在していない場合、 +もしくはアクセスできない場合、 +`*' で示した演算子については、 +指定のファイルタイプが現在のシステムに +存在していなければ +全ての問い合わせは偽 (例えば `0') を返します。 +.PP +s true +これらの演算子は、簡潔にするために連結することができます。 +`\-\fIxy file\fR' は `\-\fIx file\fR && \-\fIy file\fR' と等価です。(+) +例えば `\-fx' は +通常の実行可能ファイルに対しては真 (`1' を返す) ですが、 +ディレクトリに対してはそうではありません。 +.PP +s +\fBL\fR は多重演算子の中で使用できます。 +この演算子の後にくる演算子は、 +シンボリックリンクが指されているファイルではなく、 +シンボリックリンクそのものに適用されます。 +例えば `\-lLo' は +呼び出しユーザが所有しているリンクに対しては真です。 +\fBLr\fR、\fBLw\fR、\fBLx\fR は +リンクに対しては常に真で、 +リンクでないものに対しては偽です。 +\fBL\fR は +多重演算子の中で最後の演算子になった場合、 +異なった意味を持ちます。 +以下を参照してください。 +.PP +s +\fIfile\fR に渡すべき演算子と、そうでない演算子 +(例えば \fBX\fR と \fBt\fR) +を連結することは可能ですが、 +実用的ではなく、しばしば間違いの元になります。 +特に、ファイルでない演算子に \fBL\fR をつけると、 +妙な結果になります。 +.PP +他の演算子は他の情報、つまり単なる `0' や `1' だけ +ではない情報を返します。(+) +これらは前に示したのと同じ書式になります。 +\fIop\fR は次のうちのどれか 1 つです。 +.PP +.PD 0 +.RS +4 +.TP 8 +.B A +エポックからの秒数で表した、最後にファイルにアクセスした時間 +.TP 8 +.B A: +\fBA\fR と同じで、タイムスタンプの書式。 +例: `Fri May 14 16:36:10 1993' +.TP 8 +.B M +最後にファイルを変更した時間 +.TP 8 +.B M: +\fBM\fR と同じで、タイムスタンプの書式 +.TP 8 +.B C +最後に inode を変更した時間 +.TP 8 +.B C: +\fBC\fR と同じで、タイムスタンプの書式 +.TP 8 +.B D +デバイス番号 +.TP 8 +.B I +inode 番号 +.TP 8 +.B F +\fIdevice\fR:\fIinode\fR の形式で表した +複合 \fBf\fRile 識別子 +.TP 8 +.B L +シンボリックリンクが指しているファイルの名前 +.TP 8 +.B N +(ハード) リンクの数 +.TP 8 +.B P +先頭に 0 がついていない 8 進数で表したパーミッション +.TP 8 +.B P: +\fBP\fR と同じで、先頭に 0 がつく +.TP 8 +.B P\fImode +s +`\-P \fIfile\fR & \fImode\fR' と等価。 +例えば、`\-P22 \fIfile\fR' は +\fIfile\fR の グループと他者が書き込み可であれば `22' を、 +グループのみであれば `20' を、何もなければ `0' を返す。 +.TP 8 +.B P\fImode\fB: +\fBP\fImode\fB:\fR と同じで、先頭に 0 がつく +.TP 8 +.B U +数値で表したユーザ ID +.TP 8 +.B U: +ユーザ名、ユーザ名が見つからなかった場合は数値で表したユーザ ID +.TP 8 +.B G +数値で表したグループ ID +.TP 8 +.B G: +グループ名、グループ名が見つからなかった場合は数値で表したグループ ID +.TP 8 +.B Z +バイト数で表したサイズ +.RE +.PD +.PP +nd +これらの演算子のうち 1 つだけ多重演算子の中に +現れることを許されていますが、必ず最後につける必要があります。 +ただし、\fBL\fR は多重演算子の中の +最後とそれ以外の箇所では違った意味になるので注意してください。 +なぜなら、`0' はこれらの演算子の多くにとって正当な返り値のためです。 +これらが失敗した場合、`0' を返しません。 +たいていの場合、`\-1' を返し、\fBF\fR は `:' を返します。 +.PP +このシェルが POSIX を定義してコンパイルされている +(シェル変数 \fBversion\fR を参照) +場合、ファイル問い合わせの結果は、 +\fIaccess\fR(2) システムコールの結果に基づいたものではなく、 +ファイルの許可ビットに基づいたものになります。 +例えば、 +通常は書き込み可であるが +読み取り専用でマウントされたファイルシステム上にある +ファイルを \fB\-w\fR で検査した場合、 +POSIX シェルでは成功し、 +非 POSIX シェルでは失敗することになります。 +.PP +ファイル問い合わせ演算子は +\fIfiletest\fR 組み込みコマンド (参照) と等価になり得ます。(+) +.\"XX JP33 +.SS ジョブ +シェルは各パイプラインを \fIジョブ\fR と結びつけます。シェルは、 +現在実行中のジョブの一覧表を保持しており、これは、 +\fIjobs\fR コマンドによって表示することができます。 +ジョブには小さな整数の番号が割り当てられます。 +ジョブが `&' つきで非同期的に始まる時には、シェルは以下のような +行を出力します。 +.IP "" 4 +[1] 1234 +.PP +これはその非同期的に起動されたジョブのジョブ番号が 1 で、 +プロセスID が 1234 の 1つの (トップレベル) プロセスを +持っている事を示します。 +.PP +もしジョブを走らせている際に他の事をしたいと思ったなら、 +現在のジョブに STOPシグナルを送るサスペンドキー (通常は `^Z') を叩きます。 +すると通常、シェルはジョブが止まったことを示す `Suspended' を表示して +新規にプロンプトを表示します。 +シェル変数の \fBlistjobs\fR がセットされていると、 +組み込みコマンドの \fIjobs\fR のようにすべてのジョブがリストされます。 +もしそれが `long' とセットされているとリストは `jobs \-l' でのような +長い形式になります。 +それ以降はサスペンドされたジョブの状態を操作できます。 +ジョブを \fIbg\fR コマンドで ``バックグラウンド'' にしたり、 +他のコマンドをいくつか走らせてから \fIfg\fR で ``フォアグラウンド'' +にしたりできます。 +(編集コマンドの \fIrun-fg-editor\fR も参照してください。) +`^Z' は即効性があり、入力された時点で保留されている出力と +まだ読み込まれていない入力が捨てられる点でインタラプトに似ています。 +組み込みコマンドの \fIwait\fR はすべてのバックグラウンドのジョブが +終了するまでシェルを待たせます。 +.PP +`^]' キーは遅延サスペンドシグナルを現在のジョブに送信します。 +この場合はプログラムが \fIread\fR(2) を試みるまで STOPシグナルを +発生しません。これは、実行中のジョブに対していくつかの入力を先に +入力しておき、先行入力を読み終えた時点でジョブを停止させたいときに +便利です。 +\fIcsh\fR(1) では この機能は `^Y' キーに割り当てられていました。 +\fItcsh\fR では `^Y' は編集コマンドです。(+) +.PP +バックグラウンドで実行しているジョブが端末からの入力を試みた場合、 +そのジョブは停止します。通常、バックグラウンドジョブが端末に +出力することは可能ですが、これはコマンド `stty tostop' により +禁止することができます。もしこの tty オプションを指定したなら、 +バックグラウンドで実行しているジョブは、端末から入力を試みたときと +同様に端末に出力を試みたときに停止します。 +.PP +シェルでジョブを参照するにはいくつかの方法があります。文字 `%' は +ジョブ名を表すのに用いられます。番号 1 のジョブを参照する +場合は `%1' とします。単にジョブ名を入力した場合、そのジョブは +フォアグラウンドに移動されます。すなわち `%1' は `fg %1' と等価で、 +番号 1 のジョブをフォアグラウンドに移行します。同様に `%1 &' は、 +ちょうど `bg %1' と同じように番号 1 のジョブをバックグラウンドで +再開させます。ジョブはそのジョブを起動したときにタイプされた文字列の +先頭部分によって参照することもできます。ただしこの先頭部分は +あいまいでない必要があります。すなわち `%ex' は、`ex' という文字列で +始まる名前のサスペンドされたジョブが 1 つしかない場合に限り、 +サスペンドされた \fIex\fR(1) のジョブを再開します。 +文字列 \fIstring\fR を含むジョブが 1 つしかない場合、`%?\fIstring\fR' と +入力することでそれを指定することもできます。 +.PP +シェルは現在のジョブと直前のジョブという概念を持っています。 +jobs コマンドの出力で、`+' 記号が付加されているのが現在のジョブ、 +`\-' 記号が付加されているのが直前のジョブです。 +`%+'、`%' と (\fIヒストリ\fR 機構の文法との類似から) `%%' は +現在のジョブ、`%\-' は直前のジョブを参照するための省略形です。 +.PP +ある種のシステムではジョブ制御機構を利用するために \fIstty\fR(1) の +オプション `new' を設定しておく必要があります。 +ジョブ制御機構は `新型の' 端末ドライバの実装の上に構築されているからで、 +新型の端末ドライバによりジョブを停止させるためのシグナルを +キーボードから入力できるようになるからです。 +新型の端末ドライバのオプション設定については \fIstty\fR(1) と +組み込みコマンドの \fIsetty\fR を参照してください。 +.SS "状態通知" +シェルは、プロセスが状態の変化を起こすとすぐにそれを検知します。 +通常はプロンプトが表示される直前にのみ、あるジョブが停止して +それ以上処理が進まなくなったことを通知します。これはユーザの仕事を +邪魔しないようにするためです。しかしながら、シェル変数 \fBnotify\fR を +セットすることにより、シェルにバックグラウンドジョブの状態が +変化したことをただちに通知させることができます。また、 +シェルコマンド \fInotify\fR により、特定のジョブの状態の変化をただちに +通知させるようにマークすることもできます。引数なしの \fInotify\fR は +現在のプロセスに対してマークをつけます。バックグラウンド・ジョブの +開始直後に単に `notify' と打つとそのジョブをマークします。 +.PP +停止したジョブが存在する状態でシェルを終了しようとすると +`You have stopped jobs.' という警告を受けます。このとき +\fIjobs\fR コマンドによりどのジョブが停止中であるのかを +確認することができます。警告を受けた直後に \fIjobs\fR コマンドで +確認した場合と、警告を受けた直後に再度シェルを終了させようとした +場合には、シェルは 2 度目の警告を行わずに停止中のジョブを +終了させてからシェルを終了します。 +.SS "自動イベント、定期イベント、時刻指定イベント (+)" +シェルの ``ライフサイクル'' において、いろいろな時間に自動的に +コマンドの実行と他のアクションを行うさまざまな方法が用意されています。 +それらをここに要約し、詳しくは +\fB組み込みコマンド\fR、\fB特別なシェル変数\fR、\fB特別なエイリアス\fR の +適切な場所で説明します。 +.PP +組み込みコマンドの \fIsched\fR はコマンドをイベントの予定表に置き、 +指定された時刻にシェルによって実行されるようにします。 +.PP +\fB特別なエイリアス\fR として \fIbeepcmd\fR、\fIcwdcmd\fR、 +\fIperiodic\fR、\fIprecmd\fR、\fIpostcmd\fR があり、 +シェルがベルを鳴らす時、作業ディレクトリが変わる時、 +\fBtperiod\fR 分毎、各プロンプトの前、各コマンドの実行前の +それぞれで実行させたいコマンドを設定できます。 +.PP +シェル変数の \fBautologout\fR を使って、指定した分数の休止後に +ログアウトまたはシェルをロックするように設定できます。 +.PP +シェル変数の \fBmail\fR を使って、定期的に新しいメールを +チェックするように設定できます。 +.PP +シェル変数の \fBprintexitvalue\fR を使って、0 以外のステータスで +終了したコマンドの終了ステータスを表示するように指定できます。 +.PP +シェル変数の \fBrmstar\fR を使って、`rm *' が入力されたときに +ユーザに間違いないかどうか確認を求めるように指定できます。 +.PP +シェル変数の \fBtime\fR を使って、指定した秒数より多く CPU時間を +使ったプロセスの終了後に組み込みコマンドの \fItime\fR を実行するように +設定できます。 +.PP +シェル変数の \fBwatch\fR と \fBwho\fR を使って、指定したユーザが +ログインまたはログアウトした時にレポートするように設定できます。 +そして組み込みコマンドの \fIlog\fR でいつでもそれらのユーザに +ついてのレポートを得られます。 +.SS "固有言語システムのサポート (+)" +シェルは 8ビットクリーンなので +(そのようにコンパイルされていれば。シェル変数の \fBversion\fR を +参照してください。)、それが必要な文字セットをサポートします。 +NLS サポートはシェルがシステムの NLS を使うようにコンパイルされているか +どうかによって異なります (もう一度、\fBversion\fR を参照してください)。 +どちらの場合でも 7ビット ASCII がデフォルトの文字分類 +(例えばそれらの文字は印字可能です) であり、そして順序づけです。 +環境変数の \fBLANG\fR か \fBLC_CTYPE\fR を変更すると +それぞれについて変化の有無がチェックされます。 +.PP +システムの NLS を使う場合には、適切な分類と順序づけを決定するために +\fIsetlocale\fR(3) 関数が呼び出されます。この関数は典型的には +環境変数の \fBLANG\fR と \fBLC_CTYPE\fR を調べます。より詳細については +システムのドキュメントを参照してください。 +システムの NLS を使わない場合には、シェルは ISO 8859-1 文字セットが +使われていると仮定することでシミュレートします。 +変数 \fBLANG\fR と \fBLC_CTYPE\fR のいずれかがセットされていても、 +それらの値を無視します。シュミレートの NLS は順序づけに影響しません。 +.PP +加えて、本物とシュミレートの NLS の両方で、\e200\-\e377 の範囲、 +つまり M-\fIchar\fR でバインドされているすべての印字可能文字は、 +自動的に \fIself-insert-command\fR に再バインドされます。 +対応する escape-\fIchar\fR へのバインドは、もしあればそのまま残ります。 +それらの文字は環境変数の \fBNOREBIND\fR がセットされていれば +再バインドされません。このことはシミュレートの NLS か ISO 8859-1 を +満たすことを仮定した原始的な本物の NLS で有効でしょう。 +そうでなければ、\e240\-\e377 の範囲の M-\fIchar\fR へのバインドは +実際に解除されます。この場合でも、もちろん \fIbindkey\fR で明示的に +関連するキーに再バインドする事は可能です。 +.PP +未知の文字 (つまり印字可能でも制御文字でもないような文字) は +\ennn のような形式で表示されます。tty が 8ビットモードになっていない +場合は、ASCII に変換して強調表示モードを使うことで別の 8ビット文字が +表示されます。シェルが tty の 7/8ビットモードを変更することはなく、 +ユーザによる 7/8ビットモードの変更に従います。NLS利用者 (または +メタキーを利用したい場合) は、例えば \fI~/.login\fR ファイルで +適切に \fIstty\fR(1) コマンドを呼び出すことで、 +明示的に tty を 8ビットモードに設定する必要があるかもしれません。 +.SS "OS 固有機能のサポート (+)" +個々のオペレーティングシステムで提供されている機能をサポートするために、 +多くの新しい組み込みコマンドが提供されています。すべて +\fB組み込みコマンド\fR セクションで詳細に説明されています。 +.PP +TCF をサポートするシステム (aix-ibm370, aix-ps2) では、 +\fIgetspath\fR と \fIsetspath\fR でシステム実行パスを取得、設定し、 +\fIgetxvers\fR と \fIsetxvers\fR で試験バージョンプリフィックスを取得、 +設定して、\fImigrate\fR でプロセスをサイト間で移動させます。 +組み込みコマンドの \fIjobs\fR は各ジョブが実行されているサイトを表示します。 +.PP +Domain/OS では、\fIinlib\fR で共有ライブラリを現環境に追加し、 +\fIrootnode\fR で rootnode を変更して、\fIver\fR で systype を変更します。 +.PP +Mach では、\fIsetpath\fR が Mach の \fIsetpath\fR(1) と等価です。 +.PP +Masscomp/RTU と Harris CX/UX では、\fIuniverse\fR で universe を設定します。 +.PP +Harris CX/UX では、\fIucb\fR か \fIatt\fR によって指定した universe で +コマンドを走らせます。 +.PP +Convex/OS では、\fIwarp\fR で universe を表示または設定します。 +.PP +環境変数の \fBVENDOR\fR、\fBOSTYPE\fR、\fBMACHTYPE\fR は、 +シェルが自身が実行されていると考えているシステムの、それぞれ +ベンダー、オペレーティングシステム、マシンタイプ +(マイクロプロセッサのクラスまたはマシンのモデル) を示します。 +これはいろいろなタイプのマシン間でホームディレクトリを共有する場合に +特に便利です。利用者は例えば各自の \fI~/.login\fR 中で +.IP "" 4 +set path = (~/bin.$MACHTYPE /usr/ucb /bin /usr/bin .) +.PP +とし、各マシン用にコンパイルされた実行形式を適切なディレクトリに +置くことができます。 +.PP +シェル変数の \fBversion\fR はシェルがコンパイルされたときにどの +オプションが選択されたかを示します。 +.PP +組み込みの \fInewgrp\fR、シェル変数の \fBafsuser\fR と +\fBecho_style\fR、そしてシステムに依存するシェルの入力ファイル +(\fBファイル\fR 参照) の位置にも注意してください。 +.SS "シグナル処理" +ログインシェルは \fI~/.logout\fR ファイルを読んでいるときにインタラプトを +無視します。起動時に \fB\-q\fR の指定が無ければ QUIT シグナルを無視します。 +ログインシェルは TERMシグナルを捕捉しますが、非ログインシェルは +TERMシグナルへの挙動を親から継承します。 +他のシグナルについては親からシェルに継承された値を持っています。 +.PP +シェルスクリプトでは、シェルの INT と TERM シグナルの扱いを +\fIonintr\fR で制御できます。そして HUP の扱いを +\fIhup\fR と \fInohup\fR で制御できます。 +.PP +シェルは HUP で終了します (シェル変数の \fBlogout\fR も参照してください)。 +デフォルトでは、シェルの子供たちもそうしますが、シェルは終了時に +HUP を子供たちに送りません。\fIhup\fR はシェルが終了時に +子供に HUP を送るようにし、\fInohup\fR は子供が HUP を無視するように +設定します。 +.SS "端末管理 (+)" +シェルは 3つの異なる端末 (``tty'') モードのセットを使います。それらは +編集時に使う `edit'、文字リテラルをクォートする場合に使う `quote'、 +コマンド実行時に使う `execute' です。 +シェルは各モードでいくつかの設定を一定に保つので、 +tty を混乱状態にして終了するコマンドとシェルの間で干渉することはありません。 +シェルは tty のスピードとパディングの変更にも対応します。 +一定に保たれる ttyモードのリストは組み込みの \fIsetty\fR で +取得、設定できます。エディタは CBREAK モード (または同等のモード) を +使いますが、先行入力された文字はいつでも受け付けられます。 +.PP +\fIechotc\fR、\fIsettc\fR、\fItelltc\fR コマンドを使って、 +コマンドラインから端末のケーパビリティを操作、デバッグすることができます。 +.PP +SIGWINCH か SIGWINDOW をサポートするシステムでは、シェルは +ウィンドウのリサイズに自動的に適応して、環境変数の +\fBLINES\fR と \fBCOLUMNS\fR が設定されていれば値を補正します。 +環境変数の \fBTERMCAP\fR が li# と co# のフィールドを含んでいると、 +シェルは新しいウィンドウサイズを反映するようにそれらを補正します。 +.\"XX JP34 +.SH 参照 +このマニュアルの以下のセクションでは使用可能な全ての +\fB組み込みコマンド\fR、\fB特別なエイリアス\fR、 +\fB特別なシェル変数\fRについて説明します。 +.SS "組み込みコマンド" +.TP 8 +.B %\fIjob +組み込みコマンド\fIfg\fRと同義です。 +.TP 8 +.B %\fIjob \fB& +組み込みコマンド\fIbg\fRと同義です。 +.TP 8 +.B : +何もしません。常に成功します。 +.PP +.B @ +.br +.B @ \fIname\fB = \fIexpr +.br +.B @ \fIname\fR[\fIindex\fR]\fB = \fIexpr +.br +.B @ \fIname\fB++\fR|\fB-- +.PD 0 +.TP 8 +.B @ \fIname\fR[\fIindex\fR]\fB++\fR|\fB-- +最初の形式は、すべてのシェル変数の値を表示します。 +.PD +.RS +8 +.PP +2番目の書式は、\fIname\fR に値 \fIexpr\fR を設定します。 +3番目の書式は、値\fIexpr\fRを\fIname\fRの\fIindex\fR番目の要素に +定義します。 +\fIname\fRとその\fIindex\fR番目の要素の両方が既に存在していなければ +なりません。 +.PP +\fIexpr\fRはCと同様に、`*', `+'のような演算子を含むことがあります。 +もし\fIexpr\fRが`<', `>', `&', `'を含むのであれば、少なくとも +\fIexpr\fRのその部分は`()'の中に書かれる必要があります。 +\fIexpr\fRの書式は、以下の\fBExpressions\fRで説明されるものとは +一切関係がないことに注意してください。 +.PP +4番目、5番目の書式は\fIname\fRまたはその\fIindex\fR番目の要素を +インクリメント(`++')またはデクリメント(`\-\-') します。 +.PP +`@'と\fIname\fRの間の空白は必須です。\fIname\fRと`='の間、また`='と +\fIexpr\fRの間の空白はオプションです。\fIexpr\fRの要素は空白によって +区切られていなければなりません。 +.RE +.PD +.TP 8 +.B alias \fR[\fIname \fR[\fIwordlist\fR]] +引数がなければ、すべてのエイリアスを表示します。 +\fIname\fRを与えると、そのエイリアスの内容を表示します。 +\fIname\fRと\fIwordlist\fRを与えると、 +\fIwordlist\fRを\fIname\fRのエイリアスとして定義します。 +\fIwordlist\fRは、エイリアスされるコマンドとファイル名です。 +\fIname\fRは`alias'または`unalias'であってはなりません。 +組み込みコマンド\fIunalias\fRについても参照してください。 +.\" .ig \" Obsolete tcsh command +.TP 8 +.B aliases \fR[\fIfile\fR] (+) +引数がなければ、すべてのエイリアスを表示します。 +\fIfile\fRを与えると、エイリアスのリストを\fIfile\fRから1行に +ひとつずつ読み込みます。 +後方互換性のためだけに残されています。 +.. +.TP 8 +.B alloc +動的に取得しているメモリのうちの使用量と空き容量を表示します。 +何らかの引数を与えるとブロックサイズごとの使用中/空きブロックの数を +表示します。このコマンドの出力はシステムによって大きく異なります。 +VAX以外のシステムでは、異なるメモリ管理を行っているかもしれない +からです。 +.TP 8 +.B bg \fR[\fB%\fIjob\fR ...] +指定したジョブ(引数がなければ現在のジョブ)をバックグラウンドに +移動します。もしそれらが停止していれば再開されます。\fIjob\fRは +以下の\fBJobs\fRで説明するように番号、 +文字列、`', `%', `+', `\-'で構成されます。 +.\" .ig \" Obsolete tcsh command +.TP 8 +.B bind \fR[\fBdefaults\fR|\fBemacs\fR|\fBvi\fR|\fIkey\fR|\fIkey command\fR] +(+) +\fIbindkey\fRの古いバージョンで、後方互換性のためだけに +残されています。引数がなければ、バインドされているキーと、 +そのエディタコマンドの一覧を表示します。 +`bind defaults', `bind emacs', `bind vi' は +`bindkey \-d', `bindkey \-e', `bindkey \-v'と同じ意味を持ちます。 +引数に\fIkey\fRを与えると、\fIkey\fRにバインドされている +エディタコマンドの一覧を表示します。 +引数に\fIkey\fRと\fIcommand\fRを与えると、エディタコマンド +\fIcommand\fRを \fIkey\fRにバインドします。 +.IP "" 8 +\fIkey\fRは通常の文字、 +^\fIcharacter\fR (たとえば `^A')のように表記される +コントロールキャラクタ、M-\fIcharacter\fR (たとえば `M-A') の +ように表記されるメタキャラクタ、F-\fIstring\fR (たとえば `F-foo') +のように表記されるファンクションキャラクタのいずれかです。 +ファンクションキーを動作するようにするには、 +ファンクションキープリフィックスが +\fIsequence-lead-in\fRにバインドされていて、 +\fIstring\fRがそのプリフィックスを含んでいないことが必要です。 +.. +.PP +.B bindkey \fR[\fB\-l\fR|\fB\-d\fR|\fB\-e\fR|\fB\-v\fR|\fB\-u\fR] (+) +.br +\fBbindkey \fR[\fB\-a\fR] [\fB\-b\fR] [\fB\-k\fR] [\fB\-r\fR] [\fB\-\-\fR] +\fIkey \fR(+) +.PD 0 +.TP 8 +\fBbindkey \fR[\fB\-a\fR] [\fB\-b\fR] [\fB\-k\fR] [\fB\-c\fR|\fB\-s\fR] +[\fB\-\-\fR] \fIkey command \fR(+) +.\" .B マクロは多くの単語を扱えないので、ここまでの部分で \fB を +.\" 使っています。 +オプション無しでは、第一の形式ではバインドされているすべてのキーと +エディタコマンドを表示し、第二の形式では\fIkey\fRにバインドされている +エディタコマンドを表示し、第三の形式では +エディタコマンド\fIcommand\fRを\fIkey\fRにバインドします。 +オプションは以下のものを含みます。 +.PD +.PP +.PD 0 +.RS +8 +.TP 4 +.B \-l +すべてのエディタコマンドの一覧と、それぞれの簡単な解説を表示します。 +.TP 4 +.B \-d +デフォルトのエディタの標準キーバインドををすべてのキーに適用します。 +.TP 4 +.B \-e +GNU Emacs に似たキーバインドをすべてのキーに適用します。 +.TP 4 +.B \-v +標準の\fIvi\fR(1) に似たキーバインドをすべてのキーに適用します。 +.TP 4 +.B \-a +代替キーマップを表示またはそのキーバインドを変更します。 +代替キーマップは\fIvi\fRコマンドモードのものです。 +.TP 4 +.B \-b +\fIkey\fRを次のように解釈します。 +^\fIcharacter\fR (たとえば `^A')、C-\fIcharacter\fR (たとえば `C-A') +のようなものはコントロールキャラクタ、 +M-\fIcharacter\fR (たとえば `M-A')のようなものはメタキャラクタ、 +F-\fIstring\fR (たとえば `F-string')のようなものは +ファンクションキー、X-\fIcharacter\fR (たとえば `X-A')のような +ものは拡張プリフィックスキーです。 +.TP 4 +.B \-k +\fIkey\fRは矢印キーの名前、`down', `up', `left', `right' の +いずれかとして解釈されます。 +.TP 4 +.B \-r +\fIkey\fRのバインドを解除します。 +`bindkey \-r'は\fIkey\fRを\fIself-insert-command\fRにバインドする +のでは\fIなく\fR、そのキーのバインドを完全に解除してしまうことに +注意してください。 +.TP 4 +.B \-c +\fIcommand\fRはエディタコマンドでなく、組み込みコマンドか +外部コマンドの名前として解釈されます。 +.TP 4 +.B \-s +\fIcommand\fRは通常の文字列として解釈され、\fIkey\fRがタイプされた +時に端末から入力されたように扱われます。\fIcommand\fRで +バインドされたキー自体も再び解釈が行われ、10レベルまで繰り返し +解釈が行われます。 +.TP 4 +.B \-\- +オプション処理の中断を行います。したがって、次の単語が'\-'で +始まっていたとしても、\fIkey\fRとして解釈されます。 +.TP 4 +.B \-u \fR (または何らかの無効なオプション) +使い方を表示します。 +.PD +.PP +\fIkey\fRは 一文字であっても、文字列であっても構いません。 +もしコマンドが文字列にバインドされているならば、文字列の最初の +文字は \fIsequence-lead-in\fRにバインドされ、文字列全体が +コマンドにバインドされます。 +.PP +\fIkey\fR に含まれるコントロール文字はコントロール文字そのもの +(通常 `^V' にバインドされているエディタの \fIquoted-insert\fR +コマンドで入力できるもの) であっても、`^A' のような +キャレット-文字形式であっても構いません。削除文字は +`^?' (キャレット-疑問符) のように表します。\fIkey\fR と +\fIcommand\fR は下に示す、バックスラッシュで始まる +エスケープシーケンスを含むことができます +(System Vの\fIecho\fR(1) で用いられる形式です)。 +.RS +4 +.TP 8 +.PD 0 +.B \ea +ベル +.TP 8 +.B \eb +バックスペース +.TP 8 +.B \ee +エスケープ +.TP 8 +.B \ef +改ページ(フォームフィード) +.TP 8 +.B \en +改行 +.TP 8 +.B \er +キャリッジリターン +.TP 8 +.B \et +水平タブ +.TP 8 +.B \ev +垂直タブ +.TP 8 +.B \e\fInnn +8 進数 \fInnn\fR で表されるアスキー文字 +.PD +.RE +.PP +`\e' は後に続く文字に特別な意味があればそれを無効にします。 +特に `\\' や `^' の場合です。 +.RE +.TP 8 +.B break +実行を一番近い \fIforeach\fR または \fIwhile\fR と \fIend\fR の +組の、\fIend\fR の後から再開します。現在の行の残りのコマンドは +実行されます。したがって、複数のレベルのブレークは、1 行にそれらを +並べることで可能になります。 +.TP 8 +.B breaksw +\fIswitch\fR からのブレークで、\fIendsw\fR の後から実行が開始 +されます。 +.TP 8 +.B builtins \fR(+) +すべての組み込みコマンドの名前を表示します。 +.TP 8 +.B bye \fR(+) +組み込みコマンド \fIlogout\fR の別名です。これが使えるように +コンパイルされている場合にのみ有効です。シェル変数 \fBversion\fR +を参照してください。 +.TP 8 +.B case \fIlabel\fB: +下で説明する \fIswitch\fR 文で用いられるラベルです。 +.TP 8 +.B cd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] [\fIname\fR] +もしディレクトリ名 \fIname\fR が与えられれば、シェルの +作業ディレクトリを \fIname\fR に変更します。与えられなければ +\fBhome\fR に変更します。もし \fIname\fR が `\-' であれば、 +ひとつ前の作業ディレクトリとして解釈されます +(\fBOther substitutions\fRを 参照してください)。\fIname\fR が +現在のディレクトリのサブディレクトリでなく、 +`/', `./' , `../' のいずれかで始まるものでもない場合、 +変数 \fBcdpath\fR の要素がひとつひとつチェックされ、 +サブディレクトリ \fIname\fR が探されます。最後に、そのどれもが +失敗した場合に \fIname\fR が `/'ではじまる値をもつシェル変数で +あれば、その変数が指すディレクトリが探されます。 +.RS +8 +.PP +\fB\-p\fR を付けると、\fIdirs\fR と同じように最終的な +ディレクトリスタックの内容を表示します。\fIcd\fR の \fB\-l\fR, +\fB\-n\fR, \fB\-v\fR フラグは \fIdirs\fR のそれと同じ意味を持ち、 +\fB\-p\fR の動作を含んでいます (+)。 +.PP +シェル変数 \fBimplicitcd\fR についても参照してください。 +.RE +.TP 8 +.B chdir +組み込みコマンド \fIcd\fR builtin の別名です。 +.TP 8 +.B complete \fR[\fIcommand\fR +[\fIword\fB/\fIpattern\fB/\fIlist\fR[\fB:\fIselect\fR]\fB/\fR[[\fIsuffix\fR] +\fB/\fR] ...]] (+)引数なしの場合は、すべての補完の候補を表示します。 +\fIcommand\fR をつけると、\fIcommand\fR の補完候補を表示します。 +\fIcommand\fR と \fIword\fR などをつけると、補完を定義します。 +.RS +8 +.PP +\fIcommand\fR はコマンドのフルネームでも、何らかのパターンでも +構いません (\fBファイル名置換\fR を参照してください)。 +補完候補がひとつでないことを示すために、`-' ではじめることができます。 +.PP +\fIword\fRは現在の語の補完にどの単語が関係するのかを指定する +もので、以下のうちどれか一つです。 +.PP +.PD 0 +.RS +4 +.TP 4 +.B c +現在の語の補完。 +\fIpattern\fR は、コマンドライン上の現在の語にマッチするパターンで +なければなりません。\fIpattern\fR は現在の語の補完が完了すると +無視されます。 +.TP 4 +.B C +\fBc\fR に似ていますが、現在の語の補完後に \fIpattern\fR を含みます。 +.TP 4 +.B n +次の語の補完。 +\fIpattern\fR はコマンドライン上のひとつ前の語にマッチする +パターンでなければなりません。 +.TP 4 +.B N +\fBn\fR に似ていますが、現在の語のふたつ前の語にマッチする +パターンでなければなりません。 +.TP 4 +.B p +位置に依存した補完。 +\fIpattern\fR は数値の範囲を指定するものであり、シェル変数の +インデックスと同じ文法が用いられます。現在の語を含むもので +なければなりません。 +.PD +.RE +.\" .ig \" 6.05.04 ではもう有効ではありません。 +.PP +\fIpattern\fR がグローバルなパターンである場合 (\fBc\fR, \fBC\fR, +\fBn\fR, \fBN\fR 型の補完の場合)、\fIpattern\fR の `*' は空の語には +マッチしません。 +.. +.PP +\fIlist\fR は以下のリストの中から可能な補完のリストを示します。 +.PP +.PD 0 +.RS +4 +.TP 8 +.B a +エイリアス +.TP 8 +.B b +バインディング (エディタコマンド) +.TP 8 +.B c +コマンド (組み込みコマンドも外部コマンドも含みます) +.TP 8 +.B C +指定されたパスではじまる外部コマンド +.TP 8 +.B d +ディレクトリ +.TP 8 +.B D +指定されたパスではじまるディレクトリ +.TP 8 +.B e +環境変数 +.TP 8 +.B f +ファイル名 +.TP 8 +.B F +指定されたパスではじまるファイル名 +.TP 8 +.B g +グループ名 +.TP 8 +.B j +ジョブ +.TP 8 +.B l +制限値 +.TP 8 +.B n +何にも補完しません +.TP 8 +.B s +シェル変数 +.TP 8 +.B S +シグナル +.TP 8 +.B t +プレイン (``テキスト'') ファイル +.TP 8 +.B T +プレイン (``テキスト'') ファイルで、指定されたパスではじまるもの +.TP 8 +.B v +すべての変数 +.TP 8 +.B u +ユーザ名 +.TP 8 +.B x +\fBn\fR に似ていますが、\fIlist-choices\fR が使われている時には +\fIselect\fR を表示します。 +.TP 8 +.B X +補完 +.TP 8 +$\fIvar\fR +変数 \fIvar\fR に格納されている語 +.TP 8 +(...) +リスト中の語 +.TP 8 +`...` +コマンドの出力に含まれる語 +.PD +.RE +.\"XX JP4 +.PP +\fIselect\fR は glob パターンです (省略可能)。 +これを指定すると、\fIlist\fRにある単語のうち +\fIselect\fR にマッチするものだけが対象となり、 +シェル変数 \fBfignore\fR は無視されます。 +最後の 3 つの補完形式には +\fIselect\fR パターンを与えることはできません。 +また \fBx\fR は \fIlist-choices\fR 編集コマンドが用いられた時には +\fIselect\fR を説明メッセージとして扱います。 +.PP +\fIsuffix\fR は単一の文字で、補完が成功するとそのあとに追加されます。 +空の場合は何も追加されません。省略されると +(この場合 4 番目のデリミタも省略できます) +ディレクトリにはスラッシュ文字が、 +その他の文字にはスペース文字が追加されます。 +.PP +ではいくつか例を示します。 +ディレクトリのみを引数にとるようなコマンドもあるので、 +.\"nakano there's no point? +普通のファイルを補完するような例は出しません。 +.IP "" 4 +> complete cd 'p/1/d/' +.PP +`cd' に続く最初の単語のみ (`p/1') をディレクトリで補完します。 +コマンド補完を絞りこむために \fBp\fR-形式の補完を +.\"nakano (いっしょに?) +用いることもできます。 +.IP "" 4 +> co[^D] +.br +complete compress +.br +> complete \-co* 'p/0/(compress)/' +.br +> co[^D] +.br +> compress +.PP +これは `co' で始まる (すなわち `co*' にマッチする) +コマンド (位置 0 にある単語 `p/0') を補完して、 +`compress' (リストにある唯一の単語) を与えたものです。 +先頭にある `\-' は、 +この補完がコマンドを確定できない場合にのみ用いられることを意味します。 +.IP "" 4 +> complete find 'n/\-user/u/' +.PP +これは \fBn\fR-形式の補完の例です。 +`find' の後で、かつ `\-user' の直後にある単語を、 +ユーザーのリストで補完します。 +.IP "" 4 +> complete cc 'c/\-I/d/' +.PP +\fBc\fR-形式の補完の例です。 `cc' の後にあり、 +かつ `\-I' ではじまる単語をディレクトリで補完します。 +ここでは小文字の \fBc\fR を用いているので、 +`\-I' はディレクトリの一部とはみなされません。 +.PP +コマンドに応じて、便利な \fIlist\fR も異なります。 +.IP "" 4 +> complete alias 'p/1/a/' +.br +> complete man 'p/*/c/' +.br +> complete set 'p/1/s/' +.br +> complete true 'p/1/x:Truth has no options./' +.PP +これらでは、 +`alias' に続く単語をエイリアスで、 +`man' に続く単語をコマンドで、 +`set' に続く単語をシェル変数で置き換えています。 +`true' はオプションを取らないので、 +補完が試みられたときに何も行わず、 +補完リストの選択画面には `Truth has no options.' を表示する +\fBx\fR を指定しています。 +.PP +.ig \" Changed in 6.05.04 +The \fIman\fR example, and several other examples below, use +\fBp\fR-type completion, rather than \fBC\fR- or \fBn\fR-type, so that +`*' will match an empty word. +.. +\fIman\fR の例や、以下に示すいくつかの例では、 +`p/*' の代わりに `c/*' や `n/*' を用いることもできます。 +.PP +単語の補完を変数で行うこともできます。これらの変数は補完の際に評価されます。 +.IP "" 4 +> complete ftp 'p/1/$hostnames/' +.br +> set hostnames = (rtfm.mit.edu tesla.ee.cornell.edu) +.br +> ftp [^D] +.br +rtfm.mit.edu tesla.ee.cornell.edu +.br +> ftp [^C] +.br +> set hostnames = (rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net) +.br +> ftp [^D] +.br +rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net +.PP +また補完の際にコマンドを実行し、そこから補完を行うこともできます。 +.IP "" 4 +> complete kill 'p/*/`ps | awk \\{print\\ \\$1\\}`/' +.br +> kill \-9 [^D] +.br +23113 23377 23380 23406 23429 23529 23530 PID +.PP +\fIcomplete\fR コマンド自身は、その引数をクォートしません。 +したがって `{print $1}' にある括弧・スペース・`$' は +明示的にクォートしなければなりません。 +.PP +一つのコマンドに複数の補完を指定することもできます。 +.IP "" 4 +> complete dbx 'p/2/(core)/' 'p/*/c/' +.PP +これは `dbx' の第 2 引数を `core' という単語で補完し、 +他の全ての引数をコマンドで補完します。 +位置指定タイプの補完は、逐次補完より前に指定することに注意してください。 +.\"nakano positional completion & next-word completion の訳語は、とりあえず +.\"WORD: positional completion 位置指定補完 +.\"WORD: next-word completion 逐次補完 +.\"nakano としてみました。 +補完は左から右に評価されるので、 +(常にマッチする) 逐次補完が先に指定されていると、 +位置指定補完は決して行われなくなってしまいます。 +これは補完定義の際によくやるミスなので注意してください。 +.PP +\fIselect\fR パターンは、 +コマンドが特定の形式を持ったファイルだけを引数にとるような場合に便利です。 +以下に例を示します。 +.IP "" 4 +> complete cc 'p/*/f:*.[cao]/' +.PP +これは `cc' の引数を、`.c', `.a', `.o' で終わるファイルだけから補完します。 +以下の\fBファイル名置換\fRで述べるようなやり方で +glob パターンの否定を指定すれば、 +\fIselect\fR で特定のファイルを排除することもできます。 +.IP "" 4 +> complete rm 'p/*/f:^*.{c,h,cc,C,tex,1,man,l,y}/' +.PP +これは大事なソースコードを `rm' の補完に現れないようにします。 +もちろんこの排除された名前を手で打ったり、 +\fIcomplete-word-raw\fR や \fIlist-choices-raw\fR +などの編集コマンドを用いて補完の仕組みを変更することもできます +(それぞれ該当の部分を参照のこと)。 +.PP +`C', `D', `F', `T' 各\fIリスト\fR は、 +それぞれ `c', `d', `f', `t' と似ていますが、 +\fIselect\fR の引数の解釈の仕方が異なり、 +補完対象のファイルを前置パス名が特定のものに限ります。 +例えば、メールプログラム Elm は `=' を +ユーザのメールディレクトリの省略名として用います。 +この場合 `elm \-f =' を `elm \-f ~/Mail/' であるかのように補完するには +.IP "" 4 +> complete elm c@=@F:$HOME/Mail/@ +.PP +とすべきです。ここでは `/' の代わりに `@' を用い、 +\fIselect\fR 引数を見やすくしています。 +またホームディレクトリの置換は単語の先頭でのみ動作するので、 +`~' の代わりに `$HOME' を用いています。 +.PP +\fIsuffix\fR は標準では用意されていない拡張子 +(スペースやディレクトリに対する `/' 以外) +を単語補完用に追加するために用います。 +.IP "" 4 +> complete finger 'c/*@/$hostnames/' 'p/1/u/@' +.PP +これは `finger' の引数を、まずユーザのリストから補完し、 +それに `@' を追加し、さらに `@' の後を `hostnames' 変数 +.\"nakano シェル変数? +のリストから補完します。ここでも補完指定の順序に注意してください。 +.PP +最後に、示唆に富む複雑な例を示しましょう。 +.IP "" 4 +> complete find \\ +.br +\'n/\-name/f/' 'n/\-newer/f/' 'n/\-{,n}cpio/f/' \e +.br +\'n/\-exec/c/' 'n/\-ok/c/' 'n/\-user/u/' \e +.br +\'n/\-group/g/' 'n/\-fstype/(nfs 4.2)/' \e +.br +\'n/\-type/(b c d f l p s)/' \e +.br +\'c/\-/(name newer cpio ncpio exec ok user \e +.br +group fstype type atime ctime depth inum \e +.br +ls mtime nogroup nouser perm print prune \e +.br +size xdev)/' \e +.br +\'p/*/d/' +.PP +これは `\-name', `\-newer', `\-cpio', `ncpio' に続く単語を +ファイルで補完し (最後の両者にマッチするパターンに注意)、 +`\-exec', `\-ok' に続く単語をコマンドで補完し、 +`user' の後をユーザ名で、 `group' の後をグループ名で補完し、 +`\-fstype' と `\-type' の後をそれぞれに与えたリストのメンバーで補完します。 +また find に与えるスイッチ達も与えたリストから補完し +(\fBc\fR-型の補完を用いていることに注意)、 +それ以外のもの全てをディレクトリで補完します。ふぅ。 +.PP +補完指定は、対象となる単語がチルダ置換 (`~' ではじまる) や +変数 (`$' ではじまる) の場合は無視されることに留意してください。 +.\"WORD: programmed completion 補完指定 +.\"WORD: tilde substitution チルダ代入 (うーん...) +\fIcomplete\fR は実験的な機能であり、 +文法はこのシェルの将来のバージョンでは変更されるかもしれません。 +組み込みコマンド \fIuncomplete\fR の説明も見てください。 +.RE +.TP 8 +.B continue +もっとも近い \fIwhile\fR または \fIforeach\fR ループの実行を継続します。 +現在の行にある残りのコマンドは実行されます。 +.TP 8 +.B default: +\fIswitch\fR 文のデフォルトの場合のラベルです。 +これは全ての \fIcase\fR ラベルの後に置くべきです。 +.PP +.B dirs \fR[\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] +.br +.B dirs \-S\fR|\fB\-L \fR[\fIfilename\fR] (+) +.PD 0 +.TP 8 +.B dirs \-c \fR(+) +最初の形式はディレクトリスタックを表示します。 +スタックの上が左に来て、 +スタック先頭のディレクトリは現在のディレクトリになります。 +\fB\-l\fR を指定すると、出力の `~' や `~\fIname\fP' は、 +\fBhome\fR や、ユーザ \fIname\fP のホームディレクトリのパス名に +明示的に展開されます。 (+) +\fB\-n\fR を指定すると、エントリはスクリーンの終端に達する前に +桁折りされます。 (+) +\fB\-v\fR を指定すると、各エントリが一行にひとつずつ表示され、 +スタック内部での位置がエントリの前に表示されます。 (+) +\fB\-n\fR や \fB\-v\fR がひとつ以上指定されると \fB\-v\fR が優先されます。 +.PD +.RS +8 +.PP +\fB\-S\fR を指定した二番目の形式では、 +ディレクトリスタックを +\fIcd\fR と \fIpushd\fR からなるコマンド列として +\fIfilename\fR に保存します。 +\fB\-L\fR を指定すると、このシェルは \fIfilename\fR を source します。 +.\"nakano 動詞の source は... +このファイルは、以前に \fB\-S\fR オプションや +\fBsavedirs\fR 機構で保存されたディレクトリスタックです。 +いずれの場合でも、 \fIfilename\fR が与えられなければ +\fBdirsfile\fR を用います。 +\fBdirsfile\fR も指定されていなければ \fI~/.cshdirs\fR を用います。 +.PP +ログインシェルは `dirs \-L' と同様のことを起動時に行っており、 +また \fBsavedirs\fR が設定されていれば終了前に +`dirs \-S' と同様のことを行います。 +通常 \fI~/.tcshrc\fR だけが \fI~/.cshdirs\fR の前に source されるので、 +\fBdirsfile\fR は \fI~/.login\fR ではなく +\fI~/.tcshrc\fR で設定すべきです。 +.\"nakano 意味取れていません。 +.PP +最後の形式はディレクトリスタックをクリアします。 +.RE +.TP 8 +.B echo \fR[\fB\-n\fR] \fIword\fR ... +各 \fIword\fR をスペースで区切り、改行で終端させて +シェルの標準出力に書き出します。 +シェル変数 \fBecho_style\fR を指定すると、 +BSD や System V の \fIecho\fR のフラグやエスケープシーケンスを +エミュレートする (しない) ようにできます。 +詳細は \fIecho\fR(1) を見てください。 +.TP 8 +.B echotc \fR[\fB\-sv\fR] \fIarg\fR ... (+) +\fIarg\fR で与えられた端末の機能 (\fItermcap\fR(5) を参照) を実行します。 +例えば `echotc home' はカーソルをホームポジションに移動し、 +`echotc cm 3 10' はカーソルを 3 列 10 行に移動し、 +`echotc ts 0; echo "This is a test."; echotc fs' は +"This is a test." をステータス行に表示します。 +.RS +8 +.PP +\fIarg\fR が `baud', `cols', `lines', `meta', `tabs' のいずれかであった場合は、 +その機能の値を表示します ("yes" または "no" は、 +端末がその機能を持っているかいないかを示します)。 +遅い端末でシェルスクリプトの出力をより寡黙にしたり、 +コマンドの出力をスクリーンの行数に制限したりするような場合には、 +以下のコマンドを使うと良いでしょう。 +.IP "" 4 +> set history=`echotc lines` +.br +> @ history\-\- +.PP +termcap 文字列はワイルドカードを含むことができますが、 +これは正しく echo されません。 +シェル変数に端末機能文字列を設定するときには、 +以下の例のようにダブルクォートを用いてください。 +この例では日付をステータス行に表示しています。 +.IP "" 4 +> set tosl="`echotc ts 0`" +.br +> set frsl="`echotc fs`" +.br +> echo \-n "$tosl";date; echo \-n "$frsl" +.PP +\fB\-s\fR を指定すると、存在しない機能を指定したとき、 +エラーをおこさずに空文字列を返します。 +\fB\-v\fR を指定するとメッセージが冗長になります。 +.RE +.PP +.B else +.br +.B end +.br +.B endif +.PD 0 +.TP 8 +.B endsw +以下の \fIforeach\fR, \fIif\fR, \fIswitch\fR, +\fIwhile\fI 文の説明を見てください。 +.PD +.TP 8 +.B eval \fIarg\fR ... +引数をシェルへの入力として扱い、 +残りのコマンドを現在のシェルのコンテキストで実行します。 +これは通常、コマンド置換や変数置換の結果として生成されたコマンド列を +実行する場合に用いられます。 +これはそれらの置換に先立って文法解析が行われてしまうためです。 +\fIeval\fR の利用例は \fItset\fR(1) を見てください。 +.TP 8 +.B exec \fIcommand\fR +指定したコマンドを現在のシェルの代わりに実行します。 +.TP 8 +.B exit \fR[\fIexpr\fR] +指定した \fIexpr\fR (\fB式\fR で解説した式) の値で +(\fIexpr\fR が指定されていなければ \fBstatus\fR 変数の値で) +シェルを終了します。 +.TP 8 +.B fg \fR[\fB%\fIjob\fR ...] +指定したジョブ (あるいは引数がなければ現在のジョブ) +をフォアグラウンドに移動します。停止状態にあるものは再開します。 +\fIjob\fR には\fBジョブ\fR で解説されているように、 +数値, 文字列, `', `%', `+', `\-' のどれかを指定できます。 +\fIrun-fg-editor\fI 編集コマンドも見てください。 +.TP 8 +.B filetest \-\fIop file\fR ... (+) +(\fBファイル問合わせ演算子\fR で解説されている) +ファイル問合わせ演算子 \fIop\fR を各 \fIfile\fR に適用し、 +結果をスペース区切りのリストで返します。 +.PP +.B foreach \fIname \fB(\fIwordlist\fB) +.br +\&... +.PD 0 +.TP 8 +.B end +\fIwordlist\fR のメンバーを \fIname\fR に順々に代入し、 +これと対応する \fIend\fR に挟まれた範囲の +コマンドシーケンスを実行します。 +(\fIforeach\fR と \fIend\fR は 1 行に単独で現れなければなりません。) +組み込みコマンド \fIcontinue\fR を用いると +ループを途中で継続することができ、 +組み込みコマンド \fIbreak\fR を用いると +ループを途中で終了させることができます。 +このコマンドが端末から読み込まれると、 +一度ループを `foreach?' プロンプト (あるいは \fBprompt2\fR) +で読み込み、全体を読み終えてからループの各文を実行します。 +端末からの入力時にループの途中でタイプミスをした場合は +修正できます。 +.\"nakano rub out の訳語がちょっとピンと来ません。 +.PD +.TP 8 +.B getspath \fR(+) +システムの実行パスを表示します。 (TCF のみ) +.TP 8 +.B getxvers \fR(+) +実験的バージョンのプレフィックスを表示します。 (TCF のみ) +.\"nakano .... +.TP 8 +.B glob \fIwordlist +\fIecho\fR と似ていますが、`\\' でのエスケープを認識せず、 +また出力での単語区切りをヌル文字にします。 +単語リストをファイル名に展開するために +プログラムからシェルを利用したいような場合に便利です。 +.TP 8 +.B goto \fIword +\fIword\fR はファイル名と `label' 形式の文字列を出力するコマンド置換です。 +.\"nakano ? +シェルは入力を可能な限り巻き戻し、 +`label:' 形式の行 (空白やタブが前置されていても良い) を検索し、 +その行の次から実行を継続します。 +.TP 8 +.B hashstat +内部のハッシュテーブルが、 +これまでのコマンド探索にどの程度効率的であったか +(そして \fIexec\fR 類を使わずに済んだか) を示す統計行を表示します。 +\fBpath\fR の各成分のうち、 +ハッシュ関数がヒットの可能性があるとしたものや、 +`/' で始まらないものに対して \fIexec\fR が 試みられます。 +.IP +\fIvfork\fR(2) のないマシンでは、 +単にハッシュバケツのサイズを表示します。 +.PP +.B history \fR[\fB\-hTr\fR] [\fIn\fR] +.br +.B history \-S\fR|\fB\-L|\fB\-M \fR[\fIfilename\fR] (+) +.PD 0 +.TP 8 +.B history \-c \fR(+) +最初の形式はイベントリストの履歴を表示します。 +\fIn\fR を与えると、新しい方最大 \fIn\fR 個のイベントを +表示または保存します。 +\fB\-h\fR を指定すると、行頭の数字抜きでリストを表示します。 +\fB\-T\fR を指定すると、タイムスタンプもコメントのかたちで表示されます。 +(これを用いると、 +`history \-L' や `source \-h' でのロードに適したファイルが作成できます。) +\fB\-r\fR を指定すると、 +表示の順番がデフォルトの古い順ではなく新しい順になります。 +.PD +.RS +8 +.PP +二番目の形式で \fB\-S\fR を指定すると、履歴リストを \fIfilename\fR +に保存します。シェル変数 \fBsavehist\fR の最初の単語が +数値に設定されていると、最大でその数値までの行数が保存されます。 +\fBsavehist\fR の二番目の単語が `merge' だった場合には、 +履歴リストが現存の履歴ファイルにマージされ、タイムスタンプ順にソートされます +(デフォルトでは現存のファイルを置き換えます)。 (+) +マージは X Window System のように、 +複数のシェルを同時に用いるような場合向けのものです。 +現在は、シェルが行儀良く順々に終了するような場合でないと、 +マージは成功しません。 +.PP +\fB\-L\fR を指定すると、シェルは \fIfilename\fR を +履歴リストに追加します。\fIfilename\fR は以前に \fB\-S\fR オプションや +\fBsavehist\fR 機構で保存された履歴リストファイルです。 +\fB\-M\fR は \fB\-L\fR と似ていますが、 +\fIfilename\fR の内容は履歴リストにマージされ、 +タイムスタンプの順にソートされます。 +いずれの場合でも、\fIfilename\fR が与えられなければ +\fBhistfile\fR を用い、 +\fBhistfile\fR も設定されていなければ \fI~/.history\fR を用います。 +`history \-L' はほとんど `source \-h' と同じですが、 +前者ではファイル名を省略できます。 +.PP +ログインシェルは `history \-L' と同様のことを起動時に行っており、 +また \fBsavehist\fR が設定されていれば終了前に +`history \-S' と同様のことを行います。 +通常 \fI~/.tcshrc\fR だけが \fI~/.history\fR の前に source されるので、 +\fBhistfile\fR は \fI~/.login\fR ではなく +\fI~/.tcshrc\fR で設定すべきです。 +.\"nakano 意味取れていません。 +.PP +\fBhistlit\fR が設定されていると、 +最初の形式と二番目の形式は履歴リストを +文字通りの (展開されない) かたちで表示・保存します。 +.PP +最後の形式は履歴リストをクリアします。 +.RE +.TP 8 +.B hup \fR[\fIcommand\fR] \fR(+) +\fIcommand\fR を指定すると、 +hangup シグナルが送られたときに終了するようにして +\fIcommand\fR を実行し、 +シェルが終了するときにそのコマンドに hangup シグナルを送るようにします。 +コマンドによっては hangup に対するそれぞれ独自の反応を設定することがあり、 +これは \fIhup\fR より優先されるかもしれません。 +引数を設定しないと (シェルスクリプト内部のみで許されます)、 +そのシェルは残りのスクリプトの途中で +hangup シグナルを受け取ると終了するようになります。 +\fBシグナル処理\fRと組み込みコマンド \fInohup\fR の部分も見てください。 +.TP 8 +.B if (\fIexpr\fB) \fIcommand +\fIexpr\fR (\fB式\fR で解説した式) の評価結果が真なら、 +\fIcommand\fR が実行されます。 +\fIcommand\fR に対する変数置換は、実行に先だって +\fIif\fR コマンドの残りの部分と同時に行なわれます。 +\fIcommand\fR は単純なコマンドでなければならず、 +エイリアス・パイプライン・(括弧で括られた/られない) コマンドリスト +は指定できません。ただし引数は指定できます。 +\fIexpr\fR が偽で、 +\fIcommand\fR が\fI実行されない\fR場合でも +入出力リダイレクションは行われてしまいます。 +これはバグです。 +.PP +.B if (\fIexpr\fB) then +.br +\&... +.br +.B else if (\fIexpr2\fB) then +.br +\&... +.br +.B else +.br +\&... +.PD 0 +.TP 8 +.B endif +指定した \fIexpr\fR が真の場合、 +最初の \fIelse\fI までのコマンド群が実行されます。 +\fIexpr\fR が偽で \fIexpr2\fR が真の場合は、 +二番目の \fIelse\fR までのコマンド群が実行されます。以下同じです。 +\fIelse-if\fR のペアはいくつでも指定できますが、 +\fIendif\fR はひとつしかいりません。 +また \fIelse\fR 部は省略可能です。 +(\fIelse\fR と \fIendif\fR の各単語は入力行の先頭にしか置けません。 +\fIif\fR は入力行の先頭に単独で置くか、 +\fIelse\fR の後に置くかしなければなりません。) +.PD +.TP 8 +.B inlib \fIshared-library\fR ... (+) +各 \fIshared-library\fR を現在の環境に追加します。 +共有ライブラリを削除する方法はありません。 (Domain/OS のみ) +.TP 8 +.B jobs \fR[\fB\-l\fR] +アクティブなジョブをリストします。 +\fB\-l\fR を指定すると、 +通常の情報に加えてプロセス ID もリストします。 +TCF システムでは、各ジョブが実行されているサイトも表示します。 +.PP +.PD 0 +.TP 8 +.B kill \-l +最初の形式は \fIsignal\fR を +(何も指定されなければ TERM (terminate) シグナルを) +指定したジョブやプロセスに送ります。 +\fIjob\fR には\fBジョブ\fR で解説されているように、 +数値, 文字列, `', `%', `+', `\-' のどれかを指定できます。 +シグナルは数値または名前 (\fI/usr/include/signal.h\fR +にあるものから前の `SIG' を取り除いたもの) のいずれかで与えます。 +デフォルトの \fIjob\fR はありません。 +単に `kill' としても、現在のジョブへはシグナルを送りません。 +TERM (terminate) または HUP (hangup) シグナルを送った場合は、 +そのジョブやプロセスには CONT (continue) シグナルも送信されます。 +二番目の形式はシグナルの名前をリストします。 +.PD +.ig \" Obsolete tcsh command +.TP 8 +.B linedit \fR(+) +A synonym for the \fIecho\fR builtin command. +.. +.TP 8 +.B limit \fR[\fB\-h\fR] [\fIresource\fR [\fImaximum-use\fR]] +現在のプロセスと、 +現在のプロセスが生成するプロセスが消費する資源が、 +指定した \fIresource\fR に対してプロセスひとつにつき +\fImaximum-use\fR を越えないようにします。 +\fImaximum-use\fR を指定しないと、current limit が表示されます。 +\fIresource\fI を指定しないと、全ての制限値を表示します。 +\fB\-h\fR フラグを指定すると、 +current limit の代わりに hard limit を用います。 +hard limit は current limit の限度を与えます。 +hard limit はスーパーユーザーしか増やすことができませんが、 +current limit は一般ユーザも可能な範囲内で増減できます。 +.\"nakano +.\"WORD: hard limit +.\"WORD: current limit +.RS +8 +.PP +現在制御できる資源は、 +\fIcputime\fR (プロセスひとつにつき利用できる cpu 秒)・ +\fIfilesize\fR (作成できる単一ファイルの最大サイズ)・ +\fIdatasize\fR (プログラムテキストの終端を越えて sbrk(2) で増やせる +データ領域+スタック領域の最大サイズ)・ +\fIstacksize\fR (自動的に拡張されるスタック領域の最大サイズ)・ +\fIcoredumpsize\fR (生成されるコアダンプの最大サイズ)・ +\fImemoryuse\fR +(プロセスひとつにいちどきに割り当てることのできる物理メモリの最大サイズ)、 +です。 +.PP +\fImaximum-use\fR は浮動小数点値または整数値に、 +単位をつけて指定します。 +\fIcputime\fR 以外の制限値は、`k' または +`kilobytes' (1024 バイト) をデフォルトの単位としています。 +単位として `m' または `megabytes' を用いることもできます。 +\fIcputime\fR のデフォルトの単位は `seconds' です。 +分を表す `m'、時間を表す `h'、分+秒を表す +`mm:ss' の形式などを用いることもできます。 +.PP +\fIresource\fR も単位も、他と区別がつく範囲で後半部を省略可能です。 +.RE +.\"XX JP5 +.TP 8 +.B log \fR(+) +シェル変数 \fBwatch\fR を表示し、そこにリストアップされている +ユーザがログインしていればログインした時刻に関わらず報告します。 +\fIwatchlog\ についても参照してください。 +.TP 8 +.B login +ログインシェルを終了して、\fI/bin/login\fR (訳注: FreeBSD では +/usr/bin/login です) のインスタンスで置き換えます。これはログオフする +方法のひとつであり、\fIsh\fR(1) との互換性を保つ意味もあります。 +.TP 8 +.B logout +ログインシェルを終了します。\fBignoreeof\fR がセットされている場合に +特に役立つでしょう。 +.TP 8 +.B ls\-F \fR[\-\fIswitch\fR ...] [\fIfile\fR ...] (+) +`ls \-F' と同じようにファイルのリストを表示しますが、ずっと高速です。 +各種の特別なファイル形式は特殊文字を用いて以下のように示されます。 +.PP +.RS +8 +.PD 0 +.TP 4 +/ +ディレクトリ +.TP 4 +* +実行可能 +.TP 4 +# +ブロック型デバイス +.TP 4 +% +キャラクタ型デバイス +.TP 4 +| +名前付きパイプ (名前付きパイプのあるシステムでのみ) +.TP 4 += +ソケット (ソケットのあるシステムでのみ) +.TP 4 +@ +シンボリックリンク (シンボリックリンクのあるシステムでのみ) +.TP 4 ++ +隠しディレクトリ (AIXのみ) またはコンテキスト依存 (HP/UXのみ) +.TP 4 +: +ネットワーク特殊型 (HP/UXのみ) +.PD +.PP +シェル変数 \fBlistlinks\fR がセットされている場合は、 +シンボリックリンクに関してより詳しく表示されます +(もちろん、シンボリックリンクを持つシステムでだけです)。 +.PP +.PD 0 +.TP 4 +@ +ディレクトリでないものへのシンボリックリンク +.TP 4 +> +ディレクトリへのシンボリックリンク +.TP 4 +& +どこへのリンクでもないシンボリックリンク +.PD +.PP +\fBlistlinks\fR はシンボリックリンクの指し示すファイルが +存在するパーティションのマウントを引き起こすため、\fIls\-F\fR を +遅くしてしまいます。 +.PP +もしシェル変数 \fBlistfrags\fR が `x', `a', `A' のいずれかに +セットされているか、それらの組合せ (たとえば `xA') に +セットされている場合は、これが `ls \-xF' や `ls \-Fa'、 +もしくは組み合わせて `ls \-FxA' のように \fIls\-F\fR の +フラグとして使われます。`ls \-C' がデフォルトでないマシンでは +\fBlistflags\fR が `x' を含む場合には \fIls \-xF' のように、 +そうでなければ \fIls \-F\fR は `ls \-CF' のように振舞います。 +\fIls \-F\fR は、何らかのスイッチが与えられた場合には \fIls\fR(1) +に引数を渡すので、`alias ls ls\-F' は通常、正しく動作します。 +.PP +組み込みの \fBls\-F\fR はファイルタイプや拡張子によってファイル名を +色分けすることができます。シェル変数 \fBcolor\fR \fItcsh\fR と +環境変数 \fBLS_COLORS\fR を参照してください。 +.RE +.PP +.B migrate \fR[\fB\-\fIsite\fR] \fIpid\fR|\fB%\fIjobid\fR ... (+) +.PD 0 +.TP 8 +.B migrate \-\fIsite\fR (+) +最初の形式では指定したプロセスまたはジョブを、指定した場所もしくは +システムパスによって決定される既定の場所に移動します。 + +2 番目の形式は `migrate \-\fIsite\fR $$' と同じ意味を持ちます。 +これは現在のプロセスを指定した場所に移動します。シェルは +その tty を失わないことになっているので、シェル自身を移動することは +予期しない動作の原因となります。(TCF のみ) +.PD +.TP 8 +.B newgrp \fR[\fB\-\fR] \fIgroup\fR (+) +`exec newgrp' と同じ意味をもちます。\fInewgrp\fR(1) を +参照してください。 +シェルがこれを使うことができるようにコンパイルされている場合に +のみ使用可能です。シェル変数 \fBversion\fR を参照してください。 +.TP 8 +.B nice \fR[\fB+\fInumber\fR] [\fIcommand\fR] +シェルのスケジューリング優先度を \fInumber\fR に設定するか、 +\fInumber\fR が指定されていない場合は 4 に設定します。\fIcommand\fR +をつけると、コマンド \fIcommand\fR を適切な優先度で実行します。 +\fInumber\fR が大きいほど、そのプロセスが獲得する +CPU 時間は短くなります。 +スーパーユーザは `nice \-number ...' とすることにより負の値を +設定することができます。コマンドは常にサブシェルから実行され、 +コマンドには単純な \fIif\fR 文の場合と同じ制限が課されます。 +.TP 8 +.B nohup \fR[\fIcommand\fR] +\fIcommand\fR をつけると、コマンド \fIcommand\fR を +ハングアップシグナルを無視して実行するようにします。 +これらのコマンドが \fInohup\fR をオーバーライドして +ハングアップシグナルに対して自分自身で応答するようにすることが +あることに注意してください。引数のない場合 (シェルスクリプト中で +のみ許されます)、スクリプトのそれ以降の部分でシェルは +ハングアップシグナルを無視するようになります。 +\fBシグナル処理\fR と、組み込みコマンド \fIhup\fR についても +参照してください。 +.TP 8 +.B notify \fR[\fB%\fIjob\fR ...] +ユーザに非同期的に指定したジョブ (%\fIjob\fR が省略された場合は +カレントジョブ)の状態に何らかの変化があった場合に非同期的に、 +通知するようにします。この場合は通常と異なり、次のプロンプトが +出力されるまで待ちません。 +\fIjob\fR は \fBJobs\fR に記述されているように番号、文字列、`', `%', +`+', `\-' のどれでも許されます。 +シェル変数 \fBnotify\fR も参照してください。 +.TP 8 +.B onintr \fR[\fB\-\fR|\fIlabel\fR] +割り込み時のシェルの動作を制御します。 +引数がなければ、シェルの既定の割り込み時の動作に設定されます。 +この場合は、シェルスクリプトは割り込みで中断され、 +コマンド実行時はコマンドの実行を中断してコマンド入力待ちに戻ります。 +`-' が指定された場合はすべての割り込みが無視されます。 +\fIlabel\fR を指定すると、割り込みが発生したり子プロセスが +割り込みで中断したりした場合に `goto \fIlabel\fR' を実行します。 +.IP "" 8 +\fIonintr\fR は、システムのスタートアップファイル +(\fBFILES\fR 参照) で割り込みが禁止されている場合には無視されます。 +.TP 8 +.B popd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] \fR[\fB+\fIn\fR] +引数がなければ、ディレクトリスタックからひとつ値を取り出して、 +そこに移動します。`+\fIn\fR' のように数値を与えると、 +ディレクトリスタックの \fIn\fR' 番目のエントリを破棄します。 +.IP "" 8 +また、すべての形式の \fIpopd\fR は \fIdirs\fR のように +ディレクトリスタックの最後のエントリを表示します。 +シェル変数 \fBpushdsilent\fR はこれを抑制し、 +\fB-p\fR フラグによって \fBpushdsilent\fR の動作を +オーバーライドすることができます。 +\fB\-l\fR, \fB\-n\fR, \fB\-v\fR フラグは \fIpopd\fRでも、\fIdirs\fR +と同じ意味をもちます。 +.TP 8 +.B printenv \fR[\fIname\fR] (+) +すべての環境変数の名前と値を表示するか、\fIname\fR を与えた場合には +環境変数 \fIname\fR の値を表示します。 +.TP 8 +.B pushd \fR[\fB\-p\fR] [\fB\-l\fR] [\fB\-n\fR|\fB\-v\fR] [\fIname\fR|\fB+\fIn\fR] +引数がなければ、ディレクトリスタックの一番上にあるふたつの +エントリを入れ換えます。もし \fBpushdtohome\fR がセットされていれば、 +引数なしの \fIpushd\fR は \fIcd\fR のように `pushd ~' +を行います。 (+) +\fIname\fR をつけると、現在の作業ディレクトリを +ディレクトリスタックに積んで \fIname\fR に移動します。 +もし \fIname\fR が `\-' であれば、ひとつ前の作業ディレクトリとして +解釈されます (\fBファイル名置換\fR を参照してください)。 (+) +\fBdunique\fR がセットされていれば、\fIpushd\fR は、スタックに +\fIname\fR を積む前にすべてのそれと同じものを指すエントリを +スタックから除去します。(+) +`+\fIn\fR' として番号をつけると、ディレクトリスタックの +\fIn\fR 番目のエントリがトップにくるようにスタックを回転します。 +\fBdextract\fR がセットされている場合、`pushd +\fIn\fR' を行うと +\fIn\fR 番目のディレクトリが展開されて、 +スタックのトップに移動されます。(+) +.IP "" 8 +また、すべての形式の \fIpushd\fR は \fIdirs\fR と同じように +ディレクトリスタックの最終的な内容を表示します。シェル変数 +\fBpushdsilent\fR をセットすることでこれをやめることができ、 +またさらにこれは \fB-p\fR フラグによってオーバーライドすることが +可能です。\fIpushd\fR に対する \fB\-l\fR, +\fB\-n\fR, \fB\-v\fR フラグの意味は \fIdirs\fR のものと同様です。(+) +.TP 8 +.B rehash +\fBpath\fR 変数の示すディレクトリの内容を保持する +内部ハッシュテーブルを再構成します。これはログインしている間に +新しいコマンドが \fBpath\fR の示すディレクトリに追加された場合に +必要です。これはあなたが自分の個人的なディレクトリにコマンドを +追加した場合か、システム管理者がシステムディレクトリの内容を変更した +場合にのみ行われるべきです。このコマンドはまた、チルダ記号を +用いたホームディレクトリ記述のキャッシュもフラッシュします。 +.TP 8 +.B repeat \fIcount command\fR +指定されたコマンド \fIcommand\fR を \fIcount\fR 回 +繰り返し実行します。\fIcommand\fR に指定するものは +一行 \fIif\fR 文で指定する \fIcommand\fR と同様の制限を受けます。 +入出力リダイレクションは \fIcount\fR が 0 であっても、 +必ず一回だけ処理されます。 +.TP 8 +.B rootnode //\fInodename \fR(+) +ルートノードを //\fInodename\fR に変更します。結果として `/' は +`//\fInodename\fR' として解釈されます。 (Domain/OS のみ) +.PP +.B sched \fR(+) +.br +.B sched \fR[\fB+\fR]\fIhh:mm command\fR \fR(+) +.PD 0 +.TP 8 +.B sched \-\fIn\fR (+) +最初の形式は、予定されているイベントのリストを表示します。 +シェル変数 \fBsched\fR は予定されているイベントのリストを +表示する形式を設定するためにセットされます。 +二番目の形式は \fIcommand\fR を予定されているイベントのリストに +追加します。たとえば、 +.PD +.RS +8 +.IP "" 4 +> sched 11:00 echo It\\'s eleven o\\'clock. +.PP +は、午前 11 時に `It's eleven o'clock.' を表示させます。 +時間は 12 時間制の AM/PM を指定する書式でも構いません。 +.IP "" 4 +> sched 5pm set prompt='[%h] It\\'s after 5; go home: >' +.PP +また、現在時刻からの相対的な時間でも構いません。 +.IP "" 4 +> sched +2:15 /usr/lib/uucp/uucico \-r1 \-sother +.PP +相対的な指定では AM/PM を使うべきではありません。 +三番目の書式では \fIn\fR 番のイベントをリストから削除します。 +.IP "" 4 +> sched +.br + 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico \-r1 \-sother +.br + 2 Wed Apr 4 17:00 set prompt=[%h] It's after 5; go home: > +.br +> sched \-2 +.br +> sched +.br + 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico \-r1 \-sother +.PP +予定イベントのリストにあるコマンドは、コマンドがリストに +入れられてから最初のプロンプトが出たあとで実行されます。 +実行の正確な時間を過ぎてしまうことはありますが、 +次のプロンプトでは遅れたコマンドが実行されます。 +シェルがユーザのコマンド入力を待っている間に実行予定時間が来た +コマンドは直ちに実行されます。しかし、既に実行されているコマンドの +実行に割り込むことはできませんし、 +予定されていたコマンドの実行についても同様です。 +.PP +この仕組みはいくつかの Unix システムに実装されている \fIat\fR(1) に +似ていますが同じではありません。 +指定した時刻通りにコマンドが実行できないことがあるのは非常に大きな +短所です。しかしこの仕組みの長所は、\fIsched\fR はシェルから +直接実行でき、シェル変数やその他の資源へのアクセスが +できるということです。これは時刻によってユーザの作業環境を +変化させることを可能にします。 +.RE +.PP +.B set +.br +.B set \fIname\fR ... +.br +.B set \fIname\fR\fB=\fIword\fR ... +.br +.B set [\-r] [\-f|\-l] \fIname\fR\fB=(\fIwordlist\fB)\fR ... (+) +.br +.B set \fIname[index]\fR\fB=\fIword\fR ... +.br +.B set \-r \fR(+) +.br +.B set \-r \fIname\fR ... (+) +.PD 0 +.TP 8 +.B set \-r \fIname\fR\fB=\fIword\fR ... (+) +最初の書式ではすべてのシェル変数の値を表示します。1 単語以上の内容を +持つ変数は括弧で括られた単語のリストとして表示されます。 +2 番目の書式では \fIname\fR を空文字列にセットします。 +3 番目の書式では \fIname\fR に単語 \fIword\fR をセットします。 +4 番目の書式では \fIname\fR には \fIwordlist\fR で示した単語の +リストがセットされます。すべての場合において値はコマンドまたは +ファイル名として展開されます。\-r が指定された場合には、 +値は読み取り専用にセットされます。\-f または \-l が +指定された場合には、単語リストの中での順番を保ちながら +重複した単語を取り除きます。 +\-f は最初に出てきたものをリストに残し、\-l は最後に出てきたものが +リストに残ります。 +5 番目の書式では変数 name の \fIindex\fR 番目の要素を \fIword\fR に +セットします。この場合この要素が既に存在しなければなりません。 +6 番目の書式は読み取り専用にセットされているシェル変数の +名前の一覧を表示します。 +7 番目の書式は \fIname\fR を、内容の有無に関わらず読み取り専用に +セットします。 +8 番目の書式は 3 番目の書式と同じですが、同時に \fIname\fR を +読み取り専用にセットします。 +.PD +.IP "" 8 +複数の変数をセットしたり、読み取り専用にセットするために +ひとつの set コマンドに複数の引数を繰り返すことができます。 +しかし、変数への代入処理を開始する前に変数展開処理が一度に +行われることに注意してください。また、`=' は \fIname\fR と +\fIword\fR に接しているか、それぞれから空白で区切られているかの +どちらかであり、単独で存在したり `=' どうしが並んだりしては +いけないことに注意してください。組み込みコマンド \fIunset\fR に +ついても参照してください。 +.TP 8 +.B setenv \fR[\fIname \fR[\fIvalue\fR]] +引数がなければ、すべての環境変数の名前と値を表示します。 +\fIname\fR を与えると、環境変数 \fIname\fR の値を \fIvalue\fR に +セットするか、\fIvalue\fR がなければ空文字列にセットします。 +.TP 8 +.B setpath \fIpath \fR(+) +\fIsetpath\fR(1) と同様です。(Mach のみ) +.TP 8 +.B setspath\fR LOCAL|\fIsite\fR|\fIcpu\fR ... (+) +システム実行パスを設定します。(TCF のみ) +.TP 8 +.B settc \fIcap value \fR(+) +シェルにターミナルケーパビリティ \fIcap\fR (\fItermcap\fR(5) で +定義) は値 \fIvalue\fR を持つことを教えます。 +この場合何のチェックも行われません。 +Concept 社の端末のユーザは、一番右の桁で適切な折り返しを行うために +`settc xn no' を行う必要があるかもしれません。 +.TP 8 +.B setty \fR[\fB\-d\fR|\fB\-q\fR|\fB\-x\fR] [\fB\-a\fR] [[\fB+\fR|\fB\-\fR]\fImode\fR] (+) +シェルがどの tty モードを使用してはならないかを設定します +(\fBTerminal management\fR を参照してください)。 +\fB\-d\fR, \fB\-q\fR, \fB\-x\fR は \fIsetty\fR に、 +それぞれ `edit', `quote', `execute' 時の tty モードをセットします。 +\fB\-d\fR, \fB\-q\fR, \fB\-x\fR が指定されない場合、 +`execute' が使用されます。 +.IP "" 8 +他の引数がなければ、\fIsetty\fR はオン (`+mode') または +オフ (`-mode') に固定されているモードを一覧表示します。 +使用可能なモードは、システムによって大きく異なります。 +\fB\-a\fR をつけると、それらが固定されているかどうかに関わらず、 +すべての tty モードを一覧表示します。 +\fB+\fImode\fR, \fB\-\fImode\fR, \fImode\fR は、それぞれモード +\fImode\fR をオン、オフ、非固定にします。 +たとえば、`setty +echok echoe' は `echok' をオンに固定し、 +`echoe' モードをシェルの実行するコマンドによって +変更可能にすることを意味します。 +.TP 8 +.B setxvers\fR [\fIstring\fR] (+) +\fIstring\fR に試験的なバージョンプリフィックスをセットし、 +\fIstring\fR が省略された場合にはそれを削除します。(TCF のみ) +.TP 8 +.B shift \fR[\fIvariable\fR] +引数がなければ、\fBargv\fR[1] を破棄してその内容を左にずらします。 +\fBargv\fR がセットされていなかったり、値が 1 単語または +それ以下の大きさの場合にはエラーになります。 +変数名 \fIvariable\fR を指定すると、変数\fIvariable\fR に +対して同じ動作を行います。 +.TP 8 +.B source \fR[\fB\-h\fR] \fIname\fR [\fIargs\fR ...] +シェルは \fIname\fR からコマンドを読み取って実行します。 +コマンドはヒストリリストには残されません。 +もし引数 \fIargs\fR が与えられればそれは \fBargv\fR に +入れられます。(+) +\fIsource\fR コマンドは入れ子にすることができます。 +もし入れ子のレベルがあまりに深くなると、シェルはファイル記述子の +不足を起こします。 +\fIsource\fR でのエラーはすべての入れ子になっている \fIsource\fR の +実行を停止します。 +\fB\-h\fR を付けると、コマンドを実行するかわりに `history \-L' の +ようにヒストリリストに入力されます。 +.TP 8 +.B stop \fB%\fIjob\fR|\fIpid\fR ... +指定したバックグラウンドで実行されているジョブまたはプロセスを +停止します。\fIjob\fR は番号か、文字列か、あるいは \fBJobs\fR に +示されているように`',`%', `+', `\-' のいずれかを指定します。 +この場合には既定の \fIjobs\fR は存在しませんので、 +ただ `stop' を実行するだけではカレントジョブを +停止することにはなりません。 +.TP 8 +.B suspend +\fB^Z\fR で送られるような stop シグナルを、シェル自身に送ります。 +これは通常 \fIsu\fR(1) で起動したシェルを停止するのに用いられます。 +.PP +.B switch (\fIstring\fB) +.br +.B case \fIstr1\fB: +.PD 0 +.IP "" 4 +\&... +.br +.B breaksw +.PP +\&... +.PP +.B default: +.IP "" 4 +\&... +.br +.B breaksw +.TP 8 +.B endsw +各 case ラベルを順に、指定された文字列 \fIstring\fR でマッチングを +行います。\fIstring\fR にはそれに先だってコマンド置換と +ファイル名置換が行われます。case ラベルには変数置換が行われ、 +ファイル名メタキャラクタの `*',`?', `[...]' を用いることができます。 +`default' ラベルが出てくるまでにどの case ラベルとも +マッチしなかった場合、default ラベルの後から実行が開始されます。 +各 case ラベルと default ラベルは行頭になければなりません。 +\fIbreaksw\fR コマンドは実行を中断して \fIendsw\fR の後から +再開させます。 +\fIbreaksw\fR を使用しない場合は C 言語と同様に case ラベルや +default ラベルを通過して実行が続けられます。 +もしマッチするラベルも default ラベルも存在しない場合は、 +実行は \fIendsw\fR の後から再開されます。 +.PD +.TP 8 +.B telltc \fR(+) +ターミナルケーパビリティのすべての値を一覧表示します +(\fItermcap\fR(5)を参照してください)。 +.TP 8 +.B time \fR[\fIcommand\fR] +コマンド \fIcommand\fR (エイリアスやパイプライン、コマンドリストや +それを括弧でくくったものなどでない単純なものでなければなりません) +を実行し、変数 \fBtime\fR の項で説明する形式で、実行所用時間に +関する要約が表示されます。必要ならば、コマンド終了時に時間を +表示するための追加のシェルが生成されます。\fIcommand\fR を +指定しなかった場合は、現在のシェルとその子プロセスが使用した時間に +関する要約が表示されます。 +.TP 8 +.B umask \fR[\fIvalue\fR] +8 進数で指定するファイル作成マスクを \fIvalue\fR に設定します。 +一般的なマスクの値としては、グループにすべての権限を与え、 +その他には読み取りと実行のみを許可する 002 や、所有者以外には +読み取りと実行しか許可しない 022 があります。 +\fIvalue\fR を省略すると、現在のファイル作成マスクを表示します。 +.TP 8 +.B unalias \fIpattern +.br +パターン \fIpattern\fR にマッチするすべてのエイリアスを削除します。 +したがって `unalias *' とすることですべてのエイリアスを +削除することができます。 +削除するものがなかった場合もエラーにはなりません。 +.TP 8 +.B uncomplete \fIpattern\fR (+) +パターン \fIpattern\fR にマッチするすべての補完候補を削除します。 +したがって `uncomplete *' とすることですべての補完候補を +削除することができます。 +削除するものが無かった場合もエラーにはなりません。 +.TP 8 +.B unhash +実行プログラムの検索を高速化する内部ハッシュテーブルの使用を +禁止します。 +.TP 8 +.B universe \fIuniverse\fR (+) +universe を \fIuniverse\fRに設定します。(Masscomp/RTU のみ) +.TP 8 +.B unlimit \fR[\fB\-h\fR] [\fIresource\fR] +リソース \fIresource\fR の制限を解除します。\fIresource\fR が +指定されない場合は、すべてのリソースに関する制限が解除されます。 +\fB\-h\fR が指定されると、対応するハードリミットが解除されます。 +これはスーパーユーザのみが行うことができます。 +.TP 8 +.B unset \fIpattern +パターン \fIpattern\fR にマッチするすべての変数を、読み取り専用の +場合も含めて削除します。したがって `unset *' とすることによって +読み取り専用のものも含めてすべての変数が削除されますが、 +これは良いことではありません。 +削除する変数がなかった場合もエラーにはなりません。 +.TP 8 +.B unsetenv \fIpattern +パターン \fIpattern\fR にマッチするすべての環境変数を削除します。 +したがって `unsetenv *' とすることによってすべての環境変数を +削除することができますが、これは良いことではありません。 +削除する環境変数がなかった場合もエラーにはなりません。 +.TP 8 +.B ver \fR[\fIsystype\fR [\fIcommand\fR]] (+) +引数が与えられなかった場合は \fBSYSTYPE\fR を表示します。 +システムタイプ \fIsystype\fR を指定した場合は、\fBSYSTYPE\fR を +\fIsystype\fR に設定します。\fIsystype\fR とコマンド +\fIcommand\fR を指定した場合は、\fIsystype\fR で \fIcommand\fR を +実行します。\fIsystype\fR は `bsd4.3' か `sys5.3' のいずれかです。 +(Domain/OS のみ) +.TP 8 +.B wait +すべてのバックグラウンドジョブの終了を待ちます。対話的にシェルが +実行されている場合、インタラプトにより wait を停止することが +できます。この時シェルはまだ終了していないすべてのジョブの名前と +その番号を表示します。 +.TP 8 +.B warp \fIuniverse\fR (+) +universe を \fIuniverse\fR に設定します。(Convex/OS のみ) +.TP 8 +.B watchlog \fR(+) +組み込みコマンド \fIlog\fR の別名です(そちらも参照してください)。 +コンパイル時に使用できるように設定されている場合にのみ使用可能です。 +シェル変数 \fBversion\fR を参照してください。 +.TP 8 +.B where \fIcommand\fR (+) +コマンド \fIcommand\fR について、エイリアスや組み込みコマンド、 +\fBpath\fR にある実行可能ファイルを含めてシェルの知っている +すべての実体を一覧表示します。 +.TP 8 +.B which\fR \fIcommand\fR (+) +コマンド \fIcommand\fR が、\fBpath\fR の検索などの処理のあとで、 +実際にどう実行されるのかを表示します。組み込みのものは +\fIwhich\fR(1) とほとんど同じですが、\fItcsh\fR のエイリアスに +ついても正しく報告し、また 10 から 100 倍高速です。 +\fIwhich-command\fR エディタコマンドについても参照してください。 +.PP +.B while (\fIexpr\fB)\fR +.br +\&... +.PD 0 +.TP 8 +.B end +指定された式 \fIexpr\fR (\fB式\fRに述べられている式) の評価結果が 0 +でない限り、\fIwhile\fR とそれに対応する \fIend\fR の間のコマンド +を繰り返し実行します。 +\fIwhile\fR と \fIend\fR はその行に単独で書かれなければなりません。 +\fIbreak\fR と \fIcontinue\fR は、ループを途中で中断したり再開する +場合に使用します。 +入力が端末の場合は、\fIforeach\fR の場合と同じように、 +ループの内容を一通り入力するまでユーザにプロンプトが出力されます。 +.PD + +.\"XX JP6 +.SS "特別なエイリアス (+)" +これらのエイリアスは、設定されている場合それぞれ指示された時刻に +自動的に実行されます。これらのエイリアスは、初期状態ではすべて +未定義です。 +.TP 8 +.B beepcmd +シェルが端末ベルを鳴らしたいときに実行されます。 +.TP 8 +.B cwdcmd +作業ディレクトリが変更されるたびに実行されます。例えば、 +ユーザが X ウインドウシステム上で作業していて、 +\fIxterm\fR(1) および \fItwm\fR(1) のように、 +タイトルバーをサポートしている +リペアレントウインドウマネージャを使用していて、 +.RS +8 +.IP "" 4 +> alias cwdcmd 'echo \-n "^[]2;${HOST}:$cwd ^G"' +.PP +を実行すると、シェルは、動作中の \fIxterm\fR(1) のタイトルを +ホスト名、コロン、そしてカレント作業ディレクトリのフルパスに +変更します。 +これをもっと面白く実行するには、次のようにします。 +.IP "" 4 +> alias cwdcmd 'echo \-n "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"' +.PP +こうすると、ホスト名および作業ディレクトリはタイトルバーに +変更されますが、アイコンマネージャのメニューにはホスト名 +しか表示されなくなります。 +.PP +\fIcwdcmd\fR 中に \fIcd\fR, \fIpushd\fR あるいは \fIpopd\fR を置くと、 +無限ループを引き起こす可能性があることに注意してください。 +そういうことをする人は、そうしてしまった代償は受けるもの +だというのが作者の見解です。 +.RE +.TP 8 +.B helpcommand +\fBrun-help\fR エディタコマンドが実行します。ヘルプが探すコマンド名は、 +単一の引数として渡されます。 +例えば、 +.RS +8 +.IP "" 4 +> alias helpcommand '\e!:1 --help' +.PP +とすると、GNU のヘルプ呼び出し方法を使った、コマンドそのものの +ヘルプ表示が実行されます。 +現在のところ、たくさんのコマンドを書いたテーブルを使う以外には、 +いろいろな呼び出し方法 (例えば、Unix の `-h' オプション)を使い分ける +簡単な方法はありません。 +.RE +.TP 8 +.B periodic +\fBtperiod\fR 分おきに実行されます。このエイリアスは、例えば新しい +メールが届いたというような、日常的ではあってもそれほど頻繁には +起こらない変更点をチェックするのに便利な手段を提供します。 +例えば、 +.RS +8 +.IP "" 4 +> set tperiod = 30 +.br +> alias periodic checknews +.PP +とすると、30 分おきに \fIchecknews\fR(1) プログラムが起動します。 +\fIperiodic\fR が設定されているが、\fBtperiod\fR が設定されていないか +あるいは 0 に設定されている場合、\fIperiodic\fR は \fIprecmd\fR +のように振る舞います。 +.RE +.TP 8 +.B precmd +プロンプトが表示される直前に実行されます。例えば、 +.RS +8 +.IP "" 4 +> alias precmd date +.PP +とすると、各コマンド用にシェルプロンプトが表示される直前に +\fIdate\fR(1) が起動します。 +\fIprecmd\fR に何を設定できるかには制限はありませんが、慎重に +選んでください。 +.RE +.TP 8 +.B postcmd +各コマンドが実行される前に実行されます。 +.RS +8 +.IP "" 4 +> alias postcmd 'echo \-n "^[]2\e;\e!#^G"' +.PP +とすると、\fIvi foo.c\fR を実行すると xterm のタイトルバーに +このコマンド文字列が書かれます。 +.RE +.TP 8 +.B shell +スクリプト中でインタプリタを指定していない実行可能スクリプト用の +インタプリタを指定します。最初の単語は、使用したい +インタプリタへのフルパスでなくてはなりません +(例えば、`/bin/csh' や `/usr/local/bin/tcsh')。 +.SS "特別なシェル変数" +このセクションで述べる変数は、シェルにとっては特別な意味のあるものです。 +.PP +シェルは、起動時に次の変数を設定します。\fBaddsuffix\fR, \fBargv\fR, +\fBautologout\fR, \fBcommand\fR, \fBecho_style\fR, +\fBedit\fR, \fBgid\fR, \fBgroup\fR, \fBhome\fR, \fBloginsh\fR, +\fBoid\fR, \fBpath\fR, \fBprompt\fR, \fBprompt2\fR, \fBprompt3\fR, +\fBshell\fR, \fBshlvl\fR, \fBtcsh\fR, \fBterm\fR, \fBtty\fR, +\fBuid\fR, \fBuser\fR そして \fBversion\fR です。 +これらの変数は、起動後はユーザが変更しない限り変更されません。 +シェルは、必要があれば、\fBcwd\fR, \fBdirstack\fR, \fBowd\fR +および \fBstatus\fR を更新し、ログアウト時に \fBlogout\fR を設定します。 +.PP +シェルは、シェル変数 \fBafsuser\fR, \fBgroup\fR, \fBhome\fR, +\fBpath\fR, \fBshlvl\fR, \fBterm\fR および \fBuser\fR と同名の +環境変数との同期を取ります。 +つまり、環境変数が変更されると、シェルは対応するシェル変数を合致するように +変更するのです (シェル変数が読み込み専用でない場合です)。また、その逆も +行います。ここで、\fBcwd\fR と \fBPWD\fR は同じ意味を持ちますが、 +この方法では同期は行われないということに注意してください。 +また、シェルは、自動的に \fBpath\fR と \fBPATH\fR の違った形式を +相互変換するということにも注意してください。 +.TP 8 +.B addsuffix \fR(+) +これが設定されている場合、ファイル名が補完の際に完全に一致するときに、 +一致したものがディレクトリの場合には末尾に `/' を付け加え、 +通常のファイルの場合には末尾にスペースを加えます。 +デフォルトで設定されています。 +.TP 8 +.B afsuser \fR(+) +これが設定されている場合、\fBautologout\fR の autolock 機能は、 +ローカルのユーザ名の代わりにこの値を kerberos 認証用に使います。 +.TP 8 +.B ampm \fR(+) +これが設定されている場合、時刻が 12 時間単位の AM/PM フォーマットで +すべて表示されます。 +.TP 8 +.B argv +シェルへの引数です。位置パラメータは \fBargv\fR から取られます。 +すなわち、`$1' は `$argv[1]' に置き換えられるといった具合です。 +デフォルトで設定されていますが、通常対話型シェルでは空です。 +.TP 8 +.B autocorrect \fR(+) +これが設定されている場合は、補完を試みる前に +自動的に \fIspell-word\fR +エディタコマンドが実行されます。 +.TP 8 +.B autoexpand \fR(+) +これが設定されている場合は、 補完を試みる前に自動的に +\fIexpand-history\fR エディタコマンドが実行されます。 +.TP 8 +.B autolist \fR(+) +これが設定されている場合は、あいまいな補完を行った後、 +可能性のあるものをリストします。 + `ambiguous' が設定されている場合、可能性のあるものを +リストするのは、補完によって何の文字も +追加されなかった場合に限られます。 +.TP 8 +.B autologout \fR(+) +1 番目の単語は、時間を分単位で表しており、 +この時間以上の間、何の処理もしていなければ +自動的にログアウトされます。2 番目の単語はオプションであり、 +ここで指定された時間以上の間、何の処理もしていなければ +自動ロックがかかります。 +シェルが自動的にログアウトする際には、 +シェルは `auto-logout' と出力し、logout 変数を `automatic' に +設定し、そして終了します。 +シェルが自動的にロックされたユーザは、作業を続けたいなら +自分のパスワードを入力することが必要になります。5 回入力に +失敗すると、自動的にログアウトします。 +ログインシェルおよびスーパユーザのシェルでは、デフォルトで +`60'(60 分後自動的にログアウトし、ロックはかけない) に +設定されています。しかし、シェルがウインドウシステムの +もとで動いていると認識した場合 +(すなわち、\fBDISPLAY\fR 環境変数が設定されている) や、 +tty が疑似 tty(pty) である場合、あるいは、シェルがそのようには +コンパイルされていない場合 (\fBversion\fR シェル変数を参照) +には設定されません。 +\fBafsuser\fR および \fBlogout\fR シェル変数も +参照してください。 +.TP 8 +.B backslash_quote \fR(+) +これが設定されている場合、バックスラッシュ (`\\') は +常に `\\', `'', および `"' でクォートされます。これによって、 +複雑なクォートをする手間が緩和されますが、 +\fIcsh\fR(1) スクリプト中で文法エラーをひき起こす +可能性が出てきます。 +.TP 8 +.B cdpath +カレントディレクトリ中にサブディレクトリが見つからなかった場合に、 +\fIcd\fR が探索すべきディレクトリのリストです。 +.TP 8 +.B color +これが設定されている場合、\fBls\-F\fR ビルドイン用の +カラー表示を有効にし、\fB\-\-color=auto\fR を +\fBls\fR に渡します。あるいは、ただ 1 つのコマンドに +対してカラー表示を有効にするため、\fBls\-F\fR +または \fBls\fR のみに設定することができます。 +何に対しても設定しない場合は、\fB(ls\-F ls)\fR に対して +設定したのと等価です。 +.TP 8 +.B colorcat +これが設定されている場合は、NLS メッセージファイルに対して +カラー用エスケープシーケンスを有効にします。これによって、 +色のついた NLS メッセージが表示されます。 +.TP 8 +.B command \fR(+) +これが設定されている場合、シェルに渡されたコマンドは、 +\fB-c\fR フラグ (参照のこと) をつけたものになります。 +.TP 8 +.B complete \fR(+) +これが `enhance' に設定されている場合、補完は、 +1) 大文字小文字を無視し、2) ピリオド、ハイフン、および +アンダースコア (`.', `-', `_') を単語の区切り文字と +みなし、ハイフンとアンダースコアを等価なものとみなします。 +.TP 8 +.B continue \fR(+) +コマンドリストに対してこれが設定されている場合、シェルは +リストされているコマンドを継続実行し、新たにコマンドを +開始しません。 +.TP 8 +.B continue_args \fR(+) +continue と同じですが、シェルは次のコマンドを実行します: +.RS +8 +.IP "" 4 +echo `pwd` $argv > ~/.<cmd>_pause; %<cmd> +.RE +.TP 8 +.B correct \fR(+) +`cmd' に設定されている場合、コマンドは自動的にスペル訂正されます。 +`complete' に設定されている場合、コマンドは自動的に補完されます。 +`all' に設定されている場合、コマンドライン全体が訂正されます。 +.TP 8 +.B cwd +カレントディレクトリのフルパス名です。 +シェル変数 \fBdirstack\fR および \fBowd\fR も参照してください。 +.TP 8 +.B dextract \fR(+) +これが設定されている場合、`pushd +\fIn\fR' はディレクトリを先頭に +持っていくのではなく、ディレクトリスタックから \fIn\fR 番目の +ディレクトリを取り出します。 +.TP 8 +.B dirsfile \fR(+) +`dirs \-S' および `dirs \-L' がヒストリファイルを探すデフォルト +の場所です。設定していない場合は、\fI~/.cshdirs\fR が使われます。 +通常、\fI~/.tcshrc\fR の方が \fI~/.cshdirs\fR よりも先に +ソースとして使われるため、\fBdirsfile\fR は、\fI~/.login\fR ではなく +\fI~/.tcshrc\fR 中で設定すべきです。 +.TP 8 +.B dirstack \fR(+) +ディレクトリスタック上の全ディレクトリの配列です。 +`$dirstack[1]' はカレントディレクトリであり、`$dirstack[2]' は +スタック上の最初のディレクトリといった具合です。 +カレントディレクトリは `$dirstack[1]' ですが、 +ディレクトリスタックの置換では `=0' であるなどということに +注意してください。\fBdirstack\fR を設定することでスタックを +任意に変更することができますが、最初の要素 (カレント +ディレクトリ) は常に正しいものになります。 +シェル変数 \fBcwd\fR および \fBowd\fR も参照してください。 +.TP 8 +.B dspmbyte \fR(+) +`euc' に設定されている場合、EUC-kanji(Japanese) コードで +表示および編集ができるようになります。 +`sjis' に設定されている場合、Shift-JIS(Japanese) コードで +表示および編集ができるようになります。 +次のようなフォーマットに設定されている場合、 +独自のマルチバイトコードフォーマットで +表示および編集ができるようになります: +.RS +8 +.IP "" 4 +> set dspmbyte = 0000....(256 bytes)....0000 +.PP +テーブルには \fBちょうど\fR 256 バイト必要です。 +256 文字それぞれは、ASCII コード 0x00, 0x01, ... 0xff に +(左から右に向かって) 対応しています。 +各キャラクタは、 +.\" (position in this table?) +数値 0,1,2 および 3 に設定されます。各数字には次のような意味があります: +.br + 0 ... マルチバイト文字に対しては使われません。 +.br + 1 ... マルチバイト文字の最初の 1 バイトに対して使われます。 +.br + 2 ... マルチバイト文字の 2 バイト目に対して使われます。 +.br + 3 ... マルチバイト文字の 1,2 バイト両方に対して使われます。 +.\" kageyama: 一応訳します。愚痴っぽいコメントですが…。 +.\" kageyama: 後半のコメントの書き方が不正で、要らない改行が空いて +.\" kageyama: いました。現在は直してあります。 +.\" +.\" SHK: 私は、次の例が文法的に正しいものになるように全力を尽くしました。 +.\" しかし、いまだに何が起こっているのか理解できていません。次の例では +.\" 3 バイトありますが、テキストは各ニブル (半バイト) を 1 文字とみなして +.\" いるようです。ここでは何が起こっているのでしょう?テーブル中にあるのは、 +.\" この 3 バイトのコードなのですか?上のテキストでは、テーブル中には +.\" 256 文字/バイトあるのだと暗に言っているように思えるのです。 +.\" この件についてもっと情報が得られたら (おそらくそれは完全な +.\" 使用例でしょう)、このテキストを文法的に正しいものにできるでしょう。 +.\" (steve.kelem@xilinx.com 1999/09/13) +.PP + 使用例: +.br +`001322' に設定した場合、最初の文字 (すなわち、ASCII コードで 0x00) +と 2 番目の文字 (すなわち、ASCII コードで 0x01) は `0' に設定されます。 +つまり、マルチバイト文字に対してはこれらの文字は使用しません。 +3 番目の文字 (0x02) は `2' に設定されます。これは、マルチバイト文字の +最初の 1 バイトにこの文字が使用されることを表しています。 +4 番目の文字 (0x03) は `3' に設定されます。この文字は、 +マルチバイト文字の 1 バイト目にも 2 バイト目にも使用されます。 +5 番目および 6 番目の文字 (0x04,0x05) は `2' に設定されます。 +これは、これらの文字がマルチバイト文字の 2 バイト目に使用されることを +表しています。 +.PP +GNU fileutils バージョンの ls では、-N ( --literal ) オプションが +ついていないとマルチバイト文字のファイル名を表示できません。 +もし、fileutils バージョンを使っている場合は、dspmbyte の +2 番目の文字を "ls" に設定してください。そうしないと、 +例えば "ls-F -l" でマルチバイト文字のファイル名が表示できません。 +.RE +.TP 8 +.B dunique \fR(+) +これが設定されている場合、\fIpushd\fR は、ディレクトリ名を +スタックに置く前に \fIname\fR である任意の要素をスタックから削除します。 +.TP 8 +.B echo +これが設定されている場合、各コマンドは、実行される直前に +引数と一緒にエコーされます。ビルドインでないコマンドについては、 +展開がすべて行われた後にエコーされます。ビルドインコマンドについては、 +コマンドおよびファイル名の置換が行われるよりも前にエコーされます。 +これは、置換がユーザの選択によって行われるものだからです。 +このシェル変数は、コマンドラインオプション \fB-x\fR で設定されます。 +.TP 8 +.B echo_style \fR(+) +echo ビルドインコマンドのスタイルです。次のように設定できます。 +.PP +.RS +8 +.PD 0 +.TP 8 +bsd +第 1 引数が `-n' である場合、改行をエコーしません。 +.TP 8 +sysv +echo 中の文字列のバックスラッシュで始まるエスケープシーケンスを +認識します。 +.TP 8 +both +`-n' フラグとバックスラッシュで始まるエスケープシーケンスの +両方ともを認識します。これがデフォルトです。 +.TP 8 +none +どちらも認識しません。 +.PD +.PP +デフォルトでは、ローカルシステムのデフォルトに設定されます。 +BSD ならびに System V オプションは、適当なシステムの +\fIecho\fR(1) マニュアルページに解説があります。 +.RE +.TP 8 +.B edit \fR(+) +これが設定されている場合、コマンドラインエディタが使われます。 +対話型シェルではデフォルトで設定されています。 +.TP 8 +.B ellipsis \fR(+) +これが設定されている場合、`%c'/`%.' および `%C' プロンプトシーケンス +(\fBprompt\fR シェル変数を参照) は、`/<skipped>' の代わりに +省略記号 (`...') つきのスキップディレクトリを示すようになります。 +.TP 8 +.B fignore \fR(+) +補完する際に無視されるファイル名のサフィックスリストです。 +.TP 8 +.B filec +\fItcsh\fR では補完は常に行われますので、この変数は無視されます。 +\fIcsh\fR で設定されている場合は、ファイル名の補完が使われる +ようになります。 +.TP 8 +.B gid \fR(+) +ユーザの実グループ ID です。 +.TP 8 +.B group \fR(+) +ユーザのグループ名です。 +.TP 8 +.B histchars +\fBヒストリ置換\fR (参照のこと) で使われる文字を決定する +文字列です。この値の最初の文字は、デフォルトの `!' の代わりに +ヒストリ置換文字として使われます。2 番目の文字は、クイック置換 +の際の文字 `^' の代わりをします。 +.TP 8 +.B histdup \fR(+) +ヒストリリスト中の重複エントリの扱いを制御します。 +この値が `all' に設定されている場合、単一のヒストリイベントが +ヒストリリストに入力されます。`prev' に設定されている場合、 +最後のヒストリイベントは現在のコマンドと同じとなり、そのため、 +現在のコマンドはヒストリには入力されません。`erase' に設定されて +いる場合、ヒストリリスト中に同じイベントが見つかったときには、 +古い方のイベントは消去され、現在のものが挿入されます。 +`prev' および `all' オプションはヒストリイベントの番号づけを +やり直しますので、すき間はあかないのだということに注意してください。 +.TP 8 +.B histfile \fR(+) +`history \-S' および `history \-L' が探すヒストリファイルの +デフォルトの場所です。これが設定されていない場合、\fI~/.history\fR が +使われます。別々のマシン間で同じホームディレクトリを共有していたり、 +端末ごとにヒストリを分けて保存していたりする場合、\fBhistfile\fR は +便利なものです。通常、\fI~/.history\fR ファイルよりも前に読み込まれる +のは \fI~/.tcshrc\fR だけなので、\fBhistfile\fR は\fI~/.login\fR +ではなく、\fI~/.tcshrc\fR で設定してください。 +.TP 8 +.B histlit \fR(+) +これが設定されている場合、組み込みコマンド、エディタコマンド +および \fBsavehist\fR 機構はヒストリリスト中のコマンド行を +文字通りの (展開しない) 形式で使用します。\fItoggle-literal-history\fR +エディタコマンドも参照してください。 +.TP 8 +.B history +最初の単語は、記録しておくべきヒストリイベント数を表します。 +オプションである 2 番目の単語 (+) は、ヒストリが +どういう形式で表示されるかを示しています。 +これが与えられていなければ、 `%h\\t%T\\t%R\\n' が使われます。 +フォーマットシーケンスは、\fBprompt\fR 下に記述されており、 +そこでは、`%R' の意味が変わることの注意がされています。 +デフォルトでは `100' です。 +.TP 8 +.B home +起動したユーザのホームディレクトリに初期化されます。 +ファイル名での `\fI~\fR の展開には、この変数が参照されています。 +.TP 8 +.B ignoreeof +これが空文字列あるいは `0' に設定されており、 +入力デバイスが端末である場合には、 +\fIend-of-file\fR コマンド (通常は、ユーザが空行に `~D' を打つことで +生成されます) を入力すると、シェルは終了してしまう代わりに +`Use "exit" to leave tcsh.' と表示します。 +これによって、シェルがうっかり kill されてしまうのを防ぐことができます。 +番号 \fIn\fR を設定している場合には、シェルは \fIn\fR - 1 回 +連続した \fIend-of-file\fR を無視し、 \fIn\fR 回目の +\fIend-of-file\fR があればそのときに終了します。(+) +これが設定されていない場合には、`1' が使われます。つまり、 +シェルは `^D' 1 回で終了します。 +.TP 8 +.B implicitcd \fR(+) +これが設定されている場合、シェルは、コマンドとして入力された +ディレクトリ名を、あたかもそのディレクトリへ移動する要求であるものと +解釈します。\fIverbose\fR に設定されている場合、ディレクトリの移動が +行われることが標準出力にエコーされるようになります。 +この振る舞いは、非対話的なシェルスクリプト、あるいは +2 語以上あるコマンド行では禁止されています。 +ディレクトリを移動するのは、ディレクトリ名のような名前を持ったコマンドを +実行するよりも優先されますが、エイリアスの置換よりは後になります。 +チルドおよび変数の展開も動作します。 +.TP 8 +.B inputmode \fR(+) +`insert' あるいは `overwrite' に設定されている場合、 +各行の先頭でエディタが入力モードに入るようになります。 +.TP 8 +.B listflags \fR(+) +`x',`a',`A' あるいはこれらの組合せ (例えば、`xA') に設定されている場合、 +これらの値は、\fIls\-F\fR へのフラグとして使われ、`ls \-xF', +`ls \-Fa', `ls \-FA' あるいはこれらの組合せ (例えば、`ls \-FxA') +のように振る舞うようになります。 +`a' はすべてのファイルを表示します (たとえ、`.' で始まるファイルで +あっても)。`A' は `.' および `..' 以外のファイルすべてを表示し、 +`x' は上から下に向かってではなく、左から右に向かってソートします。 +\fBlistflags\fR に 2 番目の単語が設定されていれば、 +それは `ls(1)' へのパスとして使われます。 +.TP 8 +.B listjobs \fR(+) +これが設定されていれば、ジョブが一時停止したときにすべての +ジョブがリストされます。`long' に設定されていれば、 +リストは長い形式のものになります。 +.TP 8 +.B listlinks \fR(+) +これが設定されていれば、ビルドインコマンド \fIls\-F\fR は +各シンボリックリンクが指しているファイルの種類を表示します。 +.TP 8 +.B listmax \fR(+) +\fIlist-choices\fR エディタコマンドがユーザに最初に尋ねてこないで +リストする最大要素数です。 +.TP 8 +.B listmaxrows \fR(+) +\fIlist-choices\fR エディタコマンドがユーザに最初に尋ねてこないで +リストする要素の最大行数です。 +.TP 8 +.B loginsh \fR(+) +シェルがログインシェルである場合に設定されます。 +シェル中でこの変数を設定したり設定を解除したりしても +何の効力もありません。\fBshlvl\fR も参照してください。 +.TP 8 +.B logout \fR(+) +通常のログアウトの前には、シェルによって `normal' が、 +自動ログアウトの前には `automatic' が、そして、 +シェルがハングアップシグナルによって終了させられた場合 +(\fBシグナルの扱い\fR を参照) には `hangup' が設定されます。 +\fBautologout\fR シェル変数も参照してください。 +.TP 8 +.B mail +届けられるメールをチェックするためのファイルあるいは +ディレクトリ名です。これは、スペースで区切られ、 +オプションで数字を前につけます。 +プロンプトを出す前に、最後にメールチェックをしてから +10 分経っていた場合、シェルは各ファイルをチェックし、 +もしファイルサイズが 0 より大きいか、あるいはアクセス時刻よりも +変更時刻の方が大きかった場合には `You have new mail.' +(あるいは、\fBmail\fR に複数のファイルが含まれていた場合、 +`You have new mail in \fIname\fR.') と表示します。 +.PP +.RS +8 +.PD +.PP +ログインシェルにいる場合には、シェルの起動時刻後にファイルが +変更されない限り、どのメールファイルも報告されません。 +これは、余計に通知しないようにするためです。 +大部分の login プログラムでは、ログイン時にメールが届いているかどうかを +教えてくれるものです。 +.PP +\fBmail\fR で指定されたファイルがディレクトリである場合、 +シェルは、ディレクトリ中の各ファイルを別々のメッセージとして計算し、 +`You have \fIn\fR mails.' とか `You have \fIn\fR mails in \fIname\fR.' +とかと適切に報告します。この機能は、主に Andrew Mail System のように、 +メールをこの方式で保存するシステム用に提供されたものです。 +.PP +\fBmail\fR の最初の単語が数値である場合、それはメールチェックの +間隔を変えるものとして受け取られます。秒単位です。 +.PP +とても稀な状況下ですが、シェルが `You have new mail.' ではなく +`You have mail.' と報告することがあります。 +.RE +.TP 8 +.B matchbeep \fR(+) +これが `never' に設定されている場合、補完が行われてもビープ音は +鳴りません。 +`nomatch' に設定されている場合、マッチするものがないときにのみ +ビープ音が鳴ります。 +`ambiguous' に設定されている場合、マッチするものが複数あるときに +ビープ音が鳴ります。 +`notunique' に設定されている場合、完全にマッチするものが 1 つあり、 +また、それとは別にもっと長くマッチするものがあったときにビープ音が +鳴ります。 +これが設定されていない場合、`ambiguous' が使われます。 +.TP 8 +.B nobeep \fR(+) +これが設定されている場合、ビープ音は完全に無効になります。 +\fBvisiblebell\fR も参照してください。 +.TP 8 +.B noclobber +これが設定されている場合、出力リダイレクションに制限がおかれるようになり、 +\fB入出力\fR セクションで述べているように、 +ファイルをうっかり壊さないように、また、`>>' リダイレクションが存在する +ファイルを指すように保証できます。 +.TP 8 +.B noding +\fBprompt\fR の時刻指定子において、時間の変わり目に `DING!' と +表示するのを無効にします。 +.TP 8 +.B noglob +これが設定されている場合、\fBファイル名置換\fR および +\fBディレクトリスタック置換\fR (参照のこと) が禁止されます。 +この機能は、ファイル名を扱わないシェルスクリプトや、ファイル名のリストを +取得した後、さらに展開をされたくないスクリプトには最も有効なものです。 +.TP 8 +.B nokanji \fR(+) +これが設定されており、シェルが漢字をサポートしている場合 +(シェル変数 \fBversion\fR を参照)、漢字のサポートを無効にし、 +メタキーが使えるようにします。 +.TP 8 +.B nonomatch +これが設定されている場合、\fBファイル名置換\fR および +\fBディレクトリスタック置換\fR (参照のこと) の際に、 +存在するファイルにマッチしなかったときに、エラーを出さずに +そのまま放置するようになります。置換が機能しないときには +相変わらずエラーになります。 +例えば、`echo [' は相変わらずエラーとなります。 +.TP 8 +.B nostat \fR(+) +補完処理が行われている間に \fIstat\fR(2) をかけるべきではない +ディレクトリのリスト (あるいは、ディレクトリにマッチするグロブパターン +です。\fBファイル名置換\fR を参照してください) です。この機能は、 +\fIstat\fR(2) を実行するととてつもない時間がかかってしまうような +ディレクトリ、例えば \fI/afs\fR などを除外するのに通常使われます。 +.TP 8 +.B notify +これが設定されている場合、シェルはジョブが完了したことを非同期に +通知します。デフォルトは、プロンプトが表示される直前に +ジョブの完了を提示します。 +.TP 8 +.B oid \fR(+) +ユーザの実組織 ID です (Domain/OS のみです)。 +.TP 8 +.B owd \fR(+) +前の作業ディレクトリで、\fIcd\fR が使う `\-' および +\fIpushd\fR と等価です。 +\fBcwd\fR および \fBdirstack\fR シェル変数も参照してください。 +.TP 8 +.B path +実行可能なコマンドを探すディレクトリのリストです。 +null 文字はカレントディレクトリを示します。 +\fBpath\fR 変数がない場合、フルパス名での指定のみ実行されます。 +\fBpath\fR は、起動時にシェルが環境変数 \fBPATH\fR から設定するか、 +あるいは \fBPATH\fR が存在しなかった場合には、システム依存の +デフォルト、例えば +`(/usr/local/bin /usr/bsd /bin /usr/bin .)' のようなものに +設定します。 +シェルは、`.' を \fBpath\fR の先頭あるいは末尾に置くことができ、 +また、コンパイルの仕方に依存しますが、 `.' を完全に省いてしまうことも +できます。\fB\-c\fR ,\fB\-t\fR オプションのどちらも与えられていない +シェルは、\fI~/.tcshrc\fR を読み込んだ後および \fBpath\fR が +リセットされるたびにディレクトリの中身をハッシュに格納します。 +シェルがアクティブである間に、ユーザが \fBpath\fR 中の +ディレクトリに新しいコマンドを追加した場合、 +シェルがそのコマンドを見つけられるように \fIrehash\fR を実行する +必要があるかもしれません。 +.TP 8 +.B printexitvalue \fR(+) +これが設定されており、対話型のプログラムが 0 以外のステータスで +終了した場合、シェルは `Exit \fBstatus\fR' と表示します。 +.TP 8 +.B prompt +端末からコマンドを読み込む前に表示される文字列です。 +\fBprompt\fR には、次のフォーマット列 (+) のどれを含んでも構いません。 +このフォーマット列は、与えられた情報で書き換えられます。 +.PP +.RS +8 +.PD 0 +.TP 4 +%/ +カレント作業ディレクトリです。 +.TP 4 +%~ +カレント作業ディレクトリですが、`~' で表現される +ユーザのホームディレクトリおよび `~user' で表現される +他のユーザのホームディレクトリを +\fBファイル名置換\fR します。 +`~user' の置換は、現在のセッションにおいて、 +シェルがパス名に `~\fIuser\fR' を使っている場合にのみ起こります。 +.TP 4 +%c[[0]\fIn\fR], %.[[0]\fIn\fR] +カレント作業ディレクトリの構成要素です。 +あるいは、\fIn\fR が与えられていれば、 +カレント作業ディレクトリの \fIn\fR 個後から続いた +構成要素になります。\fIn\fR が `0' で始まっている場合、 +スキップされる要素数が `/<\fIスキップされる要素数\fR>後に続く要素' という +形式で、後に続く要素よりも先に表示されます。 +.\" kageyama: ここは、例えば、 +.\" kageyama: set prompt="%n@%m[%c02]>" +.\" kageyama: としているとき、/usr/local/bin に移動すると、 +.\" kageyama: kageyama@myhost[/<1>local/bin]> と表示されることを +.\" kageyama: 言っていますが、良い訳はないものでしょうか…。 +\fBellipsis\fR シェル変数が設定されている場合、スキップされる要素は +ellipsis によって表現されますので、全体が `...後に続く要素' の形式に +なります。`~' の置換は、先の `%~' と同じように行われますが、 +後に続く要素を数えている間は、`~' 要素は無視されます。 +.TP 4 +%C +%c に似ていますが、`~' の置換を行いません。 +.TP 4 +%h, %!, ! +現在のヒストリイベント番号です。 +.TP 4 +%M +完全なホスト名です。 +.TP 4 +%m +最初の `.' までのホスト名です。 +.TP 4 +%S (%s) +強調表示モードを開始 (終了) します。 +.TP 4 +%B (%b) +ボールド体表示モードを開始 (終了) します。 +.TP 4 +%U (%u) +アンダーラインモードを開始 (終了) します。 +.TP 4 +%t, %@ +AM/PM の12 時間表記での時刻です。 +.TP 4 +%T +`%t' に似ていますが、こちらは 24 時間表記です +(ただし、シェル変数 \fBampm\fR も参照してください)。 +.TP 4 +%p +秒まで含めた、AM/PM の 12 時間表記での `正確な' 時刻です。 +.TP 4 +%P +`%p' に似ていますが、こちらは 24 時間表記です +(ただし、シェル変数 \fBampm\fR も参照してください)。 +.TP 4 +\e\fIc\fR +\fIc\fR は \fIbindkey\fR 中にあるものとしてパースされます。 +.TP 4 +^\fIc\fR +\fIc\fR は \fIbindkey\fR 中にあるものとしてパースされます。 +.TP 4 +%% +`%' 1 つです。 +.TP 4 +%n +ユーザ名です。 +.\"XX JP7 +.TP 4 +%d +`Day' 形式の曜日。 +.TP 4 +%D +`dd' 形式の日にち。 +.TP 4 +%w +`Mon' 形式の月。 +.TP 4 +%W +`mm' 形式の月。 +.TP 4 +%y +`yy' 形式の年。 +.TP 4 +%Y +`yyyy' 形式の年。 +.TP 4 +%l +シェルの tty。 +.TP 4 +%L +プロンプトの終わりから、 +ディスプレイの終わりまたは行末までクリアする。 +.TP 4 +%$ +`$' の直後のシェル変数または環境変数を展開する。 +.TP 4 +%# +普通のユーザは `>' (または \fBpromptchars\fR シェル変数の最初の文字)、 +スーパーユーザは `#' (または \fBpromptchars\fR の 2 番目の文字)。 +.TP 4 +%{\fIstring\fR%} +\fIstring\fR を文字通りのエスケープシーケンスとして取り込む。 +これは端末属性を変更するためにのみ使うべきで、 +カーソル位置の移動をこれで行ってはいけません。 +これは \fBprompt\fR の最後のシーケンスであってはいけません。 +.TP 4 +%? +プロンプトの直前で実行されたコマンドの戻り値。 +.TP 4 +%R +\fBprompt2\fR の中ではパーザの状態。 +\fBprompt3\fR の中では修正された文字列。 +\fBhistory\fR の中では履歴文字列。 +.PD +.PP +`%B', `%S', `%U', `%{\fIstring\fR%}' は、 +8bit クリーンなシェルでのみ利用できます。 +\fBversion\fR シェル変数を参照してください。 +.PP +ボールド・スタンドアウト・下線といったシーケンスは、 +スーパーユーザのシェルを区別するために使われることが多いです。 +例えば、 +.IP "" 4 +> set prompt = "%m [%h] %B[%@]%b [%/] you rang? " +.br +tut [37] \fB[2:54pm]\fR [/usr/accts/sys] you rang? _ +.PP +`%t', `%@', `%T', `%p', `%P' のどれかが使われていて、 +かつ \fBnoding\fR が設定されていなければ、 +毎正時 (`:00' 分) には実際の時刻の代わりに `DING!' を表示します。 +.PP +対話的シェルでのデフォルトは `%# ' です。 +.RE +.TP 8 +.B prompt2 \fR(+) +\fIwhile\fR ループや \fIforeach\fR ループの中で、 +また `\\' で終った行の次の行で、 +プロンプトとして用いられる文字列。 +\fBprompt\fR と同じフォーマットシーケンスが使えます +(\fBprompt\fR の項を参照)。 +`%R' の意味が変わることに注意してください。 +対話的シェルでのデフォルトは `%R?' です。 +.TP 8 +.B prompt3 \fR(+) +自動スペル訂正の確定時のプロンプト文字列。 +\fBprompt\fR と同じフォーマットシーケンスが使えます +(\fBprompt\fR の項を参照)。 +`%R' の意味が変わることに注意してください。 +対話的シェルでのデフォルトは `CORRECT>%R (y|n|e|a)?' です。 +.TP 8 +.B promptchars \fR(+) +(2 文字の文字列に) 設定すると、\fBprompt\fR シェル変数中の +`%#' フォーマットシーケンスが、普通のユーザでは最初の文字で、 +スーパーユーザでは 2 番目の文字で置き換えられます。 +.TP 8 +.B pushdtohome \fR(+) +設定すると、引数をとらない \fIpushd\fR は、 +\fIcd\fR のように `pushd ~' を実行します。 +.TP 8 +.B pushdsilent \fR(+) +設定すると、\fIpushd\fR と \fIpopd\fR の際に +ディレクトリスタックが表示されなくなります。 +.TP 8 +.B recexact \fR(+) +設定すると、補完の際に正確なマッチがあれば、 +より長いマッチが可能な場合でも、正確なほうに補完します。 +.TP 8 +.B recognize_only_executables \fR(+) +設定すると、コマンドリストは +パス中にある実行可能なファイルのみを表示します。遅いです。 +.TP 8 +.B rmstar \fR(+) +設定すると、ユーザは `rm *' を実行する前に確認を受けます。 +.TP 8 +.B rprompt \fR(+) +(コマンド入力後) prompt が左に表示される際に、 +スクリーンの右側 (コマンド入力の後ろ側) に表示される文字列。 +prompt と同じフォーマット文字列が使えます。 +この文字列は、コマンド入力を邪魔しないように自動的に隠れたり、 +また再度現れたりします。 +(左側の) プロンプト・コマンド入力・この文字列が +最初の 1 行に収まる場合に限り、この文字列は表示されます。 +\fBedit\fR が設定されていなければ、 +\fBrprompt\fR はプロンプトの後、コマンド入力の前に表示されます。 +.TP 8 +.B savedirs \fR(+) +設定すると、シェルは終了する前に `dirs \-S' を行います。 +最初の単語を数字に設定すると、 +その個数までディレクトリスタックのエントリを保存します。 +.TP 8 +.B savehist +設定すると、シェルは終了する前に `history \-S' を行います。 +最初の単語を数字に設定すると、その個数までの行が保存されます。 +(個数は \fBhistory\fR 以下でなければなりません。) +2 番目の単語を `merge' にすると、 +履歴ファイルが存在する場合に、置換ではなく追加を行います。 +そしてタイムスタンプによってソートを行い、 +最近のイベントを残します。(+) +.TP 8 +.B sched \fR(+) +\fIsched\fR 組み込みコマンドがスケジュールイベントを表示する書式。 +特に指定しなければ `%h\\t%T\\t%R\\n' が使われます。 +フォーマットシーケンスは上記の \fBprompt\fR 以下に書いてあります。 +`%R' の意味が変わることに注意してください。 +.TP 8 +.B shell +シェルのファイル。これはシェルをフォークして、 +実行ビットが設定されているがシステムによる実行が不可能なファイルを +実行するために用いられます。 +(\fB組み込みコマンド、非組み込みコマンドの実行\fR を参照して下さい。) +(システム依存の) シェルの置場所が初期値です。 +.TP 8 +.B shlvl \fR(+) +入れ子になったシェルの数。ログインシェルでは 1 にリセットされます。 +\fBloginsh\fR も参照してください。 +.TP 8 +.B status +最後のコマンドによって返された状態。 +コマンドが異常終了した場合には 0200 が加えられます。 +組み込みコマンドは、失敗すると終了状態 `1' を返します。 +その他の場合は、全ての組み込みコマンドは状態 `0' を返します。 +.TP 8 +.B symlinks \fR(+) +いくつか異なった値に設定でき、 +シンボリックリンク (`symlink') の解決を制御できます。 +.RS +8 +.PP +`chase' に設定すると、 +カレントディレクトリがシンボリックリンクを含むディレクトリになったら、 +リンクをそれが指しているディレクトリの実名に展開します。 +この機能はユーザのホームディレクトリでは働きません。これはバグです。 +.PP +`ignore' にすると、 +このシェルはリンクを通ってカレントディレクトリを移動する場合、 +移動先のディレクトリを現在のディレクトリに対する +相対位置として構築しようとします。 +これはすなわち、シンボリックリンクを通して cd を行い、 +続いて `cd ..' を行うと、 +元のディレクトリに戻る、ということを意味します。 +これは組み込みコマンドとファイル名補完にのみ影響します。 +.PP +`expand' に設定すると、シェルはパス名のように見える引き数を +実際に展開して、シンボリックリンクを元に戻そうとします。 +これは組み込みコマンドのみならず、全てのコマンドに影響します。 +残念ながら、これは認識しにくいファイル名 +(例えばコマンドオプションに埋めこまれたものなど) には動作しません。 +クォートすれば展開は行われません。 +たいていの場合はこの設定が便利ですが、 +展開すべき引き数を認識できないと、誤解や混乱の元になるかもしれません。 +妥協案として、 `ignore' にしておいて、 +必要な場合には編集コマンド \fInormalize-path\fR +(デフォルトでは ^X-n にバインドされています) +を使うのがいいかもしれません。 +.PP +順にいくつか例を示します。 +まずは遊び場となるディレクトリを準備しましょう。 +.IP "" 4 +> cd /tmp +.br +> mkdir from from/src to +.br +> ln \-s from/src to/dist +.PP +\fBsymlinks\fR が設定されていない場合の動作: +.IP "" 4 +> cd /tmp/to/dist; echo $cwd +.br +/tmp/to/dist +.br +> cd ..; echo $cwd +.br +/tmp/from +.PP +\fBsymlinks\fR が `chase' に設定されている場合の動作: +.IP "" 4 +> cd /tmp/to/dst; echo $cwd +.br +/tmp/from/src +.br +> cd ..; echo $cwd +.br +/tmp/from +.PP +\fBsymlinks\fR が `ignore' に設定されている場合の動作: +.IP "" 4 +> cd /tmp/to/dist; echo $cwd +.br +/tmp/to/dst +.br +> cd ..; echo $cwd +.br +/tmp/to +.PP +\fBsymlinks\fR が `expand' に設定されている場合の動作: +.IP "" 4 +> cd /tmp/to/dist; echo $cwd +.br +/tmp/to/dst +.br +> cd ..; echo $cwd +.br +/tmp/to +.br +> cd /tmp/to/dist; echo $cwd +.br +/tmp/to/dst +.br +> cd ".."; echo $cwd +.br +/tmp/from +.br +> /bin/echo .. +.br +/tmp/to +.br +> /bin/echo ".." +.br +\&.. +.PP +いくつか注意しますと、`expand' による展開は、 +1) \fIcd\fR のような組み込みコマンドに対しては `ignore' のように働きます。 +2) クォートすれば行われません。 +3) 非組み込みコマンドの場合は、ファイル名を渡す前に行われます。 +.RE +.TP 8 +.B tcsh \fR(+) +`R.VV.PP' 形式のシェルのバージョン番号です。 +`R' はメジャーリリース番号、 +`VV' はカレントバージョン、 +`PP' はパッチレベルです。 +.TP 8 +.B term +端末の種類。 +\fBスタートアップとシャットダウン\fR +で述べているように、通常は \fI~/.login\fR で設定されます。 +.TP 8 +.B time +数値を設定すると、それ以上の CPU 時間 (秒) +を消費したコマンドの実行後に、 +自動的に \fItime\fR 組み込みコマンドを実行します。 +2 番目の単語があれば、 +\fItime\fR 組み込みコマンドの出力フォーマット文字列として +使われます。(u) +以下のシーケンスがフォーマット文字列で使えます。 +.PP +.RS +8 +.PD 0 +.TP 4 +%U +プロセスがユーザモードで消費した CPU 時間 (秒)。 +.TP 4 +%S +プロセスがカーネルモードで消費した CPU 時間 (秒)。 +.TP 4 +%E +(壁時計での) 経過時間 (秒)。 +.TP 4 +%P +(%U + %S) / %E として計算される CPU 使用率。 +.TP 4 +%W +プロセスがスワップされた回数。 +.TP 4 +%X +(共有) テキスト空間の平均使用量。 Kbyte 単位。 +.TP 4 +%D +(非共有) データ/スタック空間の平均使用量。 Kbyte 単位。 +.TP 4 +%K +(%X + %D) の総使用量。 Kbyte 単位。 +.TP 4 +%M +プロセスが使用したメモリの瞬間最大値。 Kbyte 単位。 +.TP 4 +%F +メジャーページフォールトの回数 +(ディスクから取って来る必要があったページ数)。 +.TP 4 +%R +マイナーページフォールトの回数。 +.TP 4 +%I +入力操作の回数。 +.TP 4 +%O +出力操作の回数。 +.TP 4 +%r +ソケットメッセージを受け取った回数。 +.TP 4 +%s +ソケットメッセージを送った回数。 +.TP 4 +%k +シグナルを受け取った回数。 +.TP 4 +%w +自発的なコンテキストスイッチの回数 (wait の回数)。 +.TP 4 +%c +非自発的なコンテキストスイッチの回数。 +.PD +.PP +BSD 資源制限機能の無いシステムでは、 +最初の 4 つのシーケンスだけがサポートされています。 +デフォルトの時間フォーマットは、 +資源使用報告をサポートしているシステムでは +`%Uu %Ss %E %P %X+%Dk %I+%Oio %Fpf+%Ww' で、 +そうでないシステムでは `%Uu %Ss %E %P' です。 +.PP +Sequent の DYNIX/ptx では、 %X, %D, %K, %r, %s が使えませんが、 +以下の追加シーケンスが利用できます。 +.PP +.PD 0 +.TP 4 +%Y +システムコールが実行された回数。 +.TP 4 +%Z +要求に応じてゼロで埋められたページ数。 +.TP 4 +%i +プロセスの常駐サイズがカーネルによって増加させられた回数。 +.TP 4 +%d +プロセスの常駐サイズがカーネルによって減少させられた回数。 +.TP 4 +%l +read システムコールが実行された回数。 +.TP 4 +%m +write システムコールが実行された回数。 +.TP 4 +%p +raw ディスク装置から読み込んだ回数。 +.TP 4 +%q +raw ディスク装置へ書き込んだ回数。 +.PD +.PP +デフォルトの時間フォーマットは `%Uu %Ss $E %P %I+%Oio %Fpf+%Ww' です。 +マルチプロセッサでは CPU 使用率が 100% より高くなることがあります。 +.RE +.TP 8 +.B tperiod \fR(+) +特別なエイリアス \fIperiodic\fR の実行される周期 (分単位)。 +.TP 8 +.B tty \fR(+) +tty の名前。端末にアタッチされていない場合は空。 +.TP 8 +.B uid \fR(+) +ユーザの実ユーザ ID。 +.TP 8 +.B user +ユーザのログイン名。 +.TP 8 +.B verbose +設定すると、ヒストリ置換後に、 +各コマンドの単語を (あれば) 表示します。 +コマンドラインオプション \fB\-v\fR によって設定されます。 +.TP 8 +.B version \fR(+) +バージョン ID スタンプ。 +シェルのバージョン番号 (\fBtcsh\fR を参照)・ +配布元・リリース日・ベンダー・オペレーティングシステム・ +マシン(\fBVENDOR\fR, \fBOSTYPE\fR, \fBMACHTYPE\fR を参照)・ +コンパイル時に設定されたオプションのカンマで区切りリスト、 +からなります。 +ディストリビューションのデフォルトとしてセットされた +オプションが記録されています。 +.PP +.RS +8 +.PD 0 +.TP 4 +8b +シェルは 8bit クリーン。デフォルト。 +.TP 4 +7b +シェルは 8bit クリーンでない。 +.TP 4 +nls +システムの NLS を使う。 NLS のあるシステムではデフォルト。 +.TP 4 +lf +ログインシェルは \fI/etc/csh.cshrc\fR の後ではなく先に +\fI/etc/csh.login\fR を実行し、 +\fI~/.tcshrc\fR と \fI~/.history\fR +の後ではなく先に \fI~/.login\fR を実行する。 +.TP 4 +dl +セキュリティ上の理由から `.' を \fBpath\fR の最後に置く。デフォルト。 +.TP 4 +nd +セキュリティ上の理由から `.' を \fBpath\fR に含めない。 +.TP 4 +vi +\fIemacs\fR-形式ではなく \fIvi\fR-形式の編集をデフォルトにする。 +.TP 4 +dtr +ログインシェルは終了時に DTR を落とす。 +.TP 4 +bye +\fIbye\fR を \fIlogout\fR の同義語とし、 +\fIlog\fR を \fIwatchlog\fR の別名として扱う。 +.TP 4 +al +\fBautologout\fR を有効にする。デフォルト。 +.TP 4 +kan +\fBnokanji\fR シェル変数が設定されない限り、 +漢字を使い ISO 文字集合を無視する。 +.TP 4 +sm +システムの \fImalloc\fR(3) を使う。 +.TP 4 +hb +シェルスクリプトの実行時に +`#!<program> <args>' 方式をエミュレートする。 +.TP 4 +ng +\fInewgrp\fR 組み込みコマンドが利用可能。 +.TP 4 +rh +シェルは \fBREMOTEHOST\fR 環境変数を設定しようとする。 +.TP 4 +afs +シェルはもしローカルな認証が失敗したら、 +kerberos サーバにパスワードを確認する。 +\fBafsuser\fR シェル変数か \fBAFSUSER\fR 環境変数が +設定されていたら、その内容でローカルユーザ名を上書きする。 +.PD +.PP +システム管理者は、文字列を追加して +ローカルバージョンでの違いを示すようにできます。 +.RE +.TP 8 +.B visiblebell \fR(+) +設定すると、音声ベルの代わりに画面をフラッシュします。 +\fBnobeep\fR も参照してください。 +.TP 8 +.B watch \fR(+) +ログイン/ログアウトの監視対象とする、「ユーザ/端末」ペアのリスト。 +ユーザに対する端末が `any' なら、指定したユーザを全ての端末で監視します。 +逆にユーザが `any' なら、指定した端末で全てのユーザを監視します。 +\fBwatch\fR を `(any any)' に設定すると、 +全てのユーザと端末を監視します。 +例えば、 +.RS +8 +.IP "" 4 +set watch = (george ttyd1 any console $user any) +.PP +は、ユーザ `george' の ttyd1 での行動を、 +そしてあらゆるユーザのコンソールでの行動を、 +そして自分自身 (または不法侵入者) の全ての端末での行動を報告します。 +.PP +デフォルトでは、ログインとログアウトは 10 分毎に調べられますが、 +\fBwatch\fR の最初の単語に、調べる間隔を分単位で書くこともできます。 +例えば、 +.IP "" 4 +set watch = (1 any any) +.PP +は一分おきにあらゆるログイン/ログアウトを報告します。 +我慢の効かない人は、\fIlog\fR 組み込みコマンドを用いれば、 +いつでも \fBwatch\fR のレポートを見ることができます。 +\fBwatch\fR が最初に設定された時には、 +現在ログインしているユーザリストが +(\fIlog\fR 組み込みコマンドによって) 報告されます。 +.PP +\fBwatch\fR の報告形式は \fBwho\fR シェル変数で制御します。 +.RE +.TP 8 +.B who \fR(+) +\fBwatch\fR メッセージのフォーマット文字列。 +以下のシーケンスが得られた情報で置換されます。 +.PP +.RS +8 +.PD 0 +.TP 4 +%n +ログイン/ログアウトしたユーザの名前。 +.TP 4 +%a +観察された行動: `logged on', `logged off', +`replaced \fIolduser\fR on' のいずれか。 +.TP 4 +%l +ユーザがログイン/ログアウトした端末 (tty)。 +.TP 4 +%M +リモートホストの完全なホスト名。 +ローカルホストでのログイン/ログアウトの場合は `local'。 +.TP 4 +%m +リモートホストの、最初の `.' までのホスト名。 +IP アドレスや X Window System ディスプレイの場合は名前全体。 +.PD +.PP +%M と %m は \fI/etc/utmp\fR にリモートホスト名を +格納するシステムでのみ利用できます。 +設定しなければ `%n has %a %l from %m.' が用いられます。 +ただしリモートホスト名を格納しないシステムでは +`%n has %a %l.' が用いられます。 +.RE +.TP 8 +.B wordchars \fR(+) +\fIforward-word\fR, \fIbackward-word\fR 等の編集コマンドで、 +単語の一部とみなされる非英数文字のリスト。 +設定されなければ `*?_\-.[]~=' が使われます。 + +.\"XX JP8 +.SH 環境変数 +.TP 8 +.B AFSUSER \fR(+) +\fBafsuser\fR シェル変数と同じです。 +.TP 8 +.B COLUMNS +端末の桁数です (\fBTerminal management\fR を参照)。 +.TP 8 +.B DISPLAY +X Window System によって使われます (\fIX\fR(1) を参照)。 +設定されると、このシェルは \fBautologout\fR を設定しません +(\fBautologout\fR を参照)。 +.TP 8 +.B EDITOR +デフォルトのエディタのパス名です。 +\fBVISUAL\fR 環境変数と +\fIrun-fg-editor\fR 編集コマンドも参照してください。 +.TP 8 +.B GROUP \fR(+) +\fBgroup\fR シェル変数と同じです。 +.TP 8 +.B HOME +\fBhome\fR シェル変数と同じです。 +.TP 8 +.B HOST \fR(+) +シェルが実行されているマシンの名前で初期化されます。 +これは \fIgethostname\fR(2) システムコールで決定されます。 +.TP 8 +.B HOSTTYPE \fR(+) +シェルが実行されているマシンのタイプで初期化されます。 +これはコンパイル時に決定されます。 +この変数は廃止される予定であり、将来のバージョンで削除されるでしょう。 +.TP 8 +.B HPATH \fR(+) +\fIrun-help\fR 編集コマンドがコマンドの解説文書を探す +ディレクトリのリストです。区切り文字はコロンです。 +.TP 8 +.B LANG +優先的に使用される文字環境を与えます。 +\fB固有言語システムのサポート\fR を参照してください。 +.TP 8 +.B LC_CTYPE +設定されていると、 ctype キャラクタの扱いだけが変更されます。 +\fB固有言語システムのサポート\fR を参照してください。 +.TP 8 +.B LINES +端末の行数です。 +\fB端末管理\fR を参照してください。 +.TP 8 +.B LS_COLORS +この変数のフォーマットは \fBtermcap\fR(5) ファイルのフォーマットと +似ています。"\fIxx=string\fR" の形をした式をコロンで区切って並べた +リストです。"\fIxx\fR" は 2 文字の変数名です。 +変数とそれらのデフォルト値は以下の通りです。 +.PP +.RS +8 +.RS +4 +.PD 0 +.TP 12 +no 0 +Normal (non-filename) text: ファイル名を除く通常のテキスト +.TP 12 +fi 0 +Regular file: 通常のファイル +.TP 12 +di 01;34 +Directory: ディレクトリ +.TP 12 +ln 01;36 +Symbolic link: シンボリックリンク +.TP 12 +pi 33 +Named pipe (FIFO): 名前付きパイプ +.TP 12 +so 01;35 +Socket: ソケット +.TP 12 +bd 01;33 +Block device: ブロック型デバイス +.TP 12 +cd 01;32 +Character device: キャラクタ型デバイス +.TP 12 +ex 01;32 +Executable file: 実行可能ファイル +.TP 12 +mi (none) +Missing file (defaults to fi): 行方不明のファイル +.TP 12 +or (none) +Orphaned symbolic link (defaults to ln): リンク先のないシンボリックリンク +.TP 12 +lc ^[[ +Left code: 色指定シーケンス開始コード +.TP 12 +rc m +Right code: 色指定シーケンス終了コード +.TP 12 +ec (none) +End code (replaces lc+no+rc): 色出力を終えるシーケンス +.PD +.RE +.PP +デフォルトから変更したい変数だけを指定すれば OK です。 +.PP +ファイルの名前を、ファイル名の拡張子をもとに色づけすることもできます。 +これの指定は、\fBLS_COLORS\fR 変数に +\fB"*ext=string"\fR のシンタックスを用いて行います。 +例えば、ISO 6429 のコードを使いすべての C 言語のソースファイルを +ブルーに色づけするには \fB"*.c=34"\fR と指定すればよいでしょう。 +これは \fB.c\fR で終わるすべてのファイルをブルー (34) に色づけします。 +.PP +コントロールキャラクタは C スタイルのエスケープ表記か stty のような +^\- 表記のどちらかで書くことができます。C スタイルの表記では +エスケープコードの記述に \fB^[\fR, スペースコードの記述に +\fB\_\fR, デリートコードの記述に \fB?\fR を追加します。 +さらに、\fB^[\fR エスケープキャラクタを用いると、 +\fB^[\fR, \fB^\fR, \fB:\fR, \fB=\fR のデフォルトの解釈を +変更することができます。 +.PP +それぞれのファイルは \fB<lc>\fR \fB<color-code>\fR +\fB<rc>\fR \fB<filename>\fR \fB<ec>\fR のように書かれます。 +\fB<ec>\fR が未定義ならば、\fB<lc>\fR \fB<no> \fB<rc>\fR +のシーケンスが代わりに使われます。 +こちらの方が通常便利に使えますが、あまり一般的ではありません。 +left, right, end のコードを用意した理由は、 +同じシーケンスを繰り返し入力しなくてもいいように、また、 +妙な端末に対応できるようにするためです。 +通常は、ISO 6429 カラーシーケンスと異なるシステムを使っていない +限り、これらを変更する必要はほとんどありません。 +.PP +端末が ISO 6429 color コードを使っていれば、(\fBlc\fR, \fBrc\fR , +\fBec\fR コードを全く使わずに) セミコロンで区切られた数字のコマンドで +タイプコードを構成することができます。 +良く用いられるコマンドは以下の通りです。 +.PP +.RS +8 +.PD 0 +.TP 4 +0 +デフォルトの色に戻します。 +.TP 4 +1 +高輝度色 +.TP 4 +4 +アンダーライン付きテキスト +.TP 4 +5 +点滅テキスト +.TP 4 +30 +前景色黒 +.TP 4 +31 +前景色赤 +.TP 4 +32 +前景色グリーン +.TP 4 +33 +前景色黄 (ブラウン) +.TP 4 +34 +前景色ブルー +.TP 4 +35 +前景色紫 +.TP 4 +36 +前景色シアン +.TP 4 +37 +前景色白 (グレー) +.TP 4 +40 +背景色黒 +.TP 4 +41 +背景色赤 +.TP 4 +42 +背景色グリーン +.TP 4 +43 +背景色黄 (ブラウン) +.TP 4 +44 +背景色ブルー +.TP 4 +45 +背景色紫 +.TP 4 +46 +背景色シアン +.TP 4 +47 +背景色白 (グレー) +.PD +.RE +.PP +すべてのコマンドがすべてのシステムや表示装置で +動作するわけではありません。 +.PP +少なからぬ端末プログラムではデフォルトの終了コードを正しく +認識しません。ディレクトリのリストをした後ですべてのテキストに +色を付けるためには、\fBno\fR コードと \fBfi\fR コードを、 +それぞれ 0 から前景色、背景色の数値コードへ変更してみてください。 +.RE +.TP 8 +.B MACHTYPE \fR(+) +コンパイル時に決定されたマシンタイプ (マイクロプロセッサまたは、 +マシンモデル) です。 +.TP 8 +.B NOREBIND \fR(+) +設定されていると、印刷可能文字は \fIself-insert-command\fR を +繰り返し実行されません。 +\fB固有言語システムのサポート\fR を参照してください。 +.TP 8 +.B OSTYPE \fR(+) +コンパイル時に決定されたオペレーションシステムです。 +.TP 8 +.B PATH +実行可能ファイルを探すディレクトリの、コロン区切り形式のリスト。 +シェル変数の \fBpath\fR によく似ていますがフォーマットに違いがあります。 +.TP 8 +.B PWD \fR(+) +\fBcwd\fR シェル変数に似ていますが、シェル変数とは同期していません。 +実際のディレクトリ変更が行われたあとでだけアップデートされます。 +.TP 8 +.B REMOTEHOST \fR(+) +ユーザがどのホストからログインしているかを示します +(リモートからのログインで、かつこのシェルがこれらの情報を決定できる場合)。 +シェルがそのようにコンパイルされている場合だけに設定されます。 +\fBversion\fR シェル変数を参照してください。 +.TP 8 +.B SHLVL \fR(+) +\fBshlvl\fR と同じです。 +.TP 8 +.B SYSTYPE \fR(+) +現在のシステムタイプです。 (Domain/OS のみ) +.TP 8 +.B TERM +\fBterm\fR シェル変数と同じです。 +Equivalent to the \fBterm\fR shell variable. +.TP 8 +.B TERMCAP +端末のケーパビリティ文字列です。 +\fB端末管理\fR を参照してください。 +.TP 8 +.B USER +\fBuser\fR シェル変数と同じです。 +.TP 8 +.B VENDOR \fR(+) +コンパイル時に決定されたベンダ名です。 +.TP 8 +.B VISUAL +デフォルトのフルスクリーンエディタへのパス名です。 +\fBEDITOR\fR 環境変数と \fIrun-fg-editor\fR 編集コマンドも参照してください。 +.SH 関連ファイル +.PD 0 +.TP 16 +.I /etc/csh.cshrc +すべてのシェルで最初に読み込まれます。 +ConvexOS, Stellix, Intel では \fI/etc/cshrc\fR を使います。 +NeXTs では \fI/etc/cshrc.std\fR を使います。 +A/UX, AMIX, Cray, IRIX の \fIcsh\fR(1) はこのファイルを読みませんが、 +いずれにせよ \fItcsh\fR ではこのファイルが読み込まれます。 +Solaris 2.x もこのファイルを持ちませんが、\fItcsh\fR は +\fI/etc/.cshrc\fR を読み込みます。(+) +.TP 16 +.I /etc/csh.login +\fI/etc/csh.cshrc\fR の後にログインシェルによって読み込まれます。 +ConvexOS, Stellix, Intel では \fI/etc/login\fR を使います。 +NeXTs では \fI/etc/login.std\fR を使用します。 +Solaris 2.x では \fI/etc/.login\fR を使います。 +A/UX, AMIX, Cray, IRIX では \fI/etc/cshrc\fR を使います。 +.TP 16 +.I ~/.tcshrc \fR(+) +\fI/etc/csh.cshrc\fR かそれに相当するファイルの後に、 +すべてのシェルで読み込まれます。 +.TP 16 +.I ~/.cshrc +\fI~/.tcshrc\fR が存在しなければ、 +\fI/etc/csh.cshrc\fR かそれに相当するファイルの後に、 +すべてのシェルで読み込まれます。 +このマニュアルでは `\fI~/.tcshrc\fR' を +「`\fI~/.tcshrc\fR' か +`\fI~/.tcshrc\fR' が見つからなかった場合の \fI~/.cshrc\fR'」 +の意味で使用します。 +.TP 16 +.I ~/.history +\fBsavehist\fR が設定されている場合は +\fI~/.tcshrc\fR の後にログインシェルによって読み込まれます。 +ただし \fBhistfile\fR の部分も参照してください。 +.TP 16 +.I ~/.login +\fI~/.tcshrc\fR または \fI~/.history\fR の後にログインシェルによって +読み込まれます。シェルは\fI~/.login\fR を \fI~/.tcshrc\fR と +\fI~/.history\fR の後にではなく、前に読み込むように +コンパイルされているかもしれません。 +\fBversion\fR シェル変数を参照してください。 +.TP 16 +.I ~/.cshdirs \fR(+) +\fBsavedirs\fR が設定されている場合には、 +\fI~/.login\fR の後にログインシェルによって読み込まれます。 +ただし \fBdirsfile\fR も参照してください。 +.TP 16 +.I /etc/csh.logout +ログアウト時にログインシェルによって読み込まれます。 +ConvexOS, Stellix, Intel では、 \fI/etc/logout\fR を使います。 +A/UX, AMIX, Cray, IRIX では、 +\fIcsh\fR(1) はこれに対応するファイルを持ちませんが、 +いずれにしても \fItcsh\fR はこのファイルを読みます。 +Solaris 2.x も \fI/etc/logout\fR を持っていませんが、 +\fItcsh\fR は \fI/etc/.logout\fR を読み込みます。 (+) +.TP 16 +.I ~/.logout +\fI/etc/csh.logout\fR またはその相当ファイルが実行された後に、 +ログインシェルによって読み込まれます。 +.TP 16 +.I /bin/sh +`#' で始まらないシェルスクリプトを解釈実行するために使われます。 +.TP 16 +.I /tmp/sh* +`<<' 用の一時ファイルです。 +.TP 16 +.I /etc/passwd +ホームディレクトリ `~name' を代入するための情報源です。 +.PD +.PP +スタートアップファイルの読み込みの順番は、 +シェルのコンパイル時に変更されているかもしれません。 +\fBスタートアップとシャットダウン\fR と \fBversion\fR を参照してください。 +.SH "新規機能 (+)" +このマニュアルでは、\fItcsh\fR をひとつの対象として記述してきました。 +しかし \fIcsh\fR(1) の経験者は、 +\fItcsh\fR の新しい機能に特に興味があるでしょう。 +.PP +コマンド行編集: GNU Emacs スタイルや \fIvi\fR(1)-スタイルの +キーバインディングをサポートしています。 +\fBコマンド行エディタ\fR と \fB編集コマンド\fR を参照してください。 +.PP +プログラマブルで対話的な単語補完と一覧表示。 +\fB補完と一覧\fR と、組み込みコマンド \fIcomplete\fR, \fIuncomplete\fR +の記述を見てください。 +.PP +ファイル名、コマンド、変数名のスペル訂正。 +(\fBスペル訂正\fR を参照) +.PP +エディタ編集コマンドで、 +コマンドのタイプ中に他の便利な機能を実行できます。 +ヘルプファイルの参照 (\fIrun-help\fR)、 +手軽にエディタの再起動 (\fIrun-fg-editor\fR)、 +コマンド解決 (\fIwhich-command\fR) などができます +(\fB編集コマンド\fR を参照)。 +.PP +高性能化されたヒストリ機能。 +ヒストリリストのイベントにタイムスタンプをつけられます。 +\fIhistory\fR コマンドおよびそれに関連するシェル変数、 +\fBヒストリ置換\fRに記述されている、 +以前には文書化されていなかった `#' イベント記述子と新しい修正子、 +\fI*-history\fR, \fIhistory-search-*\fR, \fIi-search-*\fR, \fIvi-search-*\fR, +\fItoggle-literal-history\fR 各編集コマンド、 +シェル変数 \fBhistlit\fR なども参照してください。 +.PP +高性能化されたディレクトリ解釈 (parsing) とディレクトリスタック操作。 +\fIcd\fR, \fIpushd\fR, \fIpopd\fR and \fIdirs\fR コマンドとそれらに +関連するシェル変数、\fBディレクトリスタック置換\fRでの説明、 +\fBdirstack\fR, \fBowd\fR, \fBsymlinks\fR シェル変数、 +\fInormalize-command\fR, +\fInormalize-path\fR 編集コマンドなどを参照してください。 +.PP +グロブパターンの否定。 +\fBファイル名置換\fR を見てください。 +.PP +新しいファイル問い合わせ演算子 (\fBファイル問い合わせ演算子\fR を参照) +とそれらを用いる \fIfiletest\fR 組み込みコマンド。 +.PP +スケージューリングされたイベント、特別なエイリアス、自動ログアウト、 +端末のロック、コマンド待ち、ログインとログアウトの監視などなどを含む、 +各種の\fB自動イベント、定期イベント、時刻指定イベント\fR。 +.PP +固有言語システムのサポート +(\fB固有言語システムのサポート\fR を見てください)、 +OS 固有の各種機能のサポート +(\fBOS 固有機能のサポート\fR と \fBecho_style\fR +シェル変数を参照)、 +システム依存のファイル配置 (\fB関連ファイル\fR を参照) +.PP +拡張された端末管理能力 (\fB端末管理\fR を参照)。 +.PP +\fIbuiltins\fR, \fIhup\fR, \fIls\-F\fR,\fInewgrp\fR, +\fIprintenv\fR, \fIwhich\fR,\fIwhere\fR などの新しい組み込みコマンド +(それぞれの説明を参照)。 +.PP +新しい変数。シェルから便利な情報を簡単に入手できます。 +\fBgid\fR, \fBloginsh\fR, \fBoid\fR, \fBshlvl\fR, \fBtcsh\fR, +\fBtty\fR, \fBuid\fR, \fBversion\fR シェル変数と、 +\fBHOST\fR, +\fBREMOTEHOST\fR, \fBVENDOR\fR, \fBOSTYPE\fR and \fBMACHTYPE\fR 環境変数。 +それぞれの説明を見てください。を +.PP +有用な情報をプロンプト文字列に埋めこむための新しいシンタックス +(\fBprompt\fR を参照)。 +ループとスペル訂正用の特別なプロンプト +(\fBprompt2\fR と \fBprompt3\fR を参照)。 +.PP +リードオンリーの変数 (\fB変数置換\fR を参照)。 +.SH バグ +サスペンドされたコマンドが再開されたときに、 +カレントディレクトリが起動されたときと違っている場合には、 +起動時のディレクトリを印字します。 +ジョブが内部でディレクトリを変更することもあり得るので、 +これは間違った情報を与えてしまうかもしれません。 +.PP +シェルの組み込み機能は停止・再開できません。 +`a ; b ; c' のような形のコマンド列を停止させるときの処理も +あまり上品なものではありません。 +`b' コマンドをサスペンドさせると、 +シェルは即座に `c' コマンドを実行してしまいます。 +\fIalias\fR での展開結果を実行しているときには、 +特にこの点に注意が必要です。 +コマンド列を () の中に入れて、サブシェルに押し込めてしまうのがいいでしょう。 +つまり `( a ; b ; c )' のようにするのです。 +.PP +プロセス開始後の端末出力の制御が原始的です。 +誰かが仮想端末の良いインタフェースを作ってくれるといいのですが。 +仮想端末インターフェースの分野では、 +出力制御に関して面白いことがたくさん行えるはずです。 +.PP +エイリアス置換がシェル手続きのシミュレートに大変良く用いられますが、 +これはあまり気のきいたものではありません。 +エイリアスよりもシェル手続きを提供すべきです。 +.PP +ループの中のコマンドは、ヒストリリストに追加されません。 +制御構造は、組み込みコマンドとしては認識されず、単に解釈されます。 +したがって制御コマンドはどこにでも置くことができ、 +パイプ `|' といっしょにも、 +`&' と `;' のようなメタシンタックスといっしょにも使えます。 +.PP +\fIforeach\fR は \fIend\fR を探しているとき +ヒアドキュメントを無視しません。 +.PP +`:' 修飾子は、 +コマンド置換の出力に使えるべきです。 +.PP +ダム端末のように、端末がカーソルを上に移動できない場合には、 +スクリーン幅より長い行の更新が大変貧弱です。 +.PP +\fBHPATH\fR と \fBNOREBIND\fR は環境変数である必要はありません。 +.PP +`?' や `*' や `[]' を使わないグロブパターンや、 +`{}' や `~' を使うグロブパターンは、否定が正しく扱われません。 +.PP +\fIif\fR の単一コマンド形式では、たとえ式が偽で、 +コマンドが実行されなかったとしても、リダイレクト出力をしてしまいます。 +.PP +\fIls\-F\fR はファイル名をソートするとき、 +ファイル識別キャラクタを勘定に入れてしまいます。 +またファイル名の中の制御文字を正しく扱うことができません。 +中断させることもできません。 +.PP +バグレポートは tcsh-bugs@mx.gw.com まで送ってください。 +修正もいっしょに送っていただけるとありがたいです。 +もし tcsh のメンテナンスとテストを手伝って下さる場合には、 +本文に "subscribe tcsh <your name>" と一行書いたメールを +listserv@mx.gw.com に送ってください。 +"subscribe tcsh-bugs <your name>" を講読すれば +全てのバグレポートが取得できます。 +"subscribe tcsh-diffs <your name>" を講読すれば +開発 ML に参加でき、各パッチレベルでの diff を入手できます。 +.SH tcsh の T の由来 +1964 年 DEC は PDP-6 を開発しました。 +のちに PDP-10 が再実装されました。 +1970 年前後に DEC がそのセカンドモデル KI10 を発表したとき、 +これには DECsystem-10 という新しい名前がつけられました。 +.PP +TENEX は 1972 年に Bolt, Beranek & Newman +(Massachusetts 州 Cambridge のシンクタンク) において、 +実験的なデマンドページ型仮想記憶 OS として作られました。 +彼らは DEC PDP-10 用の新しいページャを構築し、 +それを使った OS を作りました。 +これは学術分野で非常に大きな成功を収めました。 +.PP +1975 年 DEC は PDP-10 の新しいモデル KL10 を発表しました。 +DEC は BBN から TENEX のライセンスを受け、 +KL10 は TENEX 版のみにするつもりでした。 +DEC はそれらのバージョンを TOPS-20 と呼んでいました (大文字化は商標です)。 +多くの TOPS-10 ("The OPerating System for PDP-10" の頭文字です) ユーザが +これに反対しました。 +こうして DEC は同じハードウエアにふたつの互換性のないシステムを +サポートしなければならないことになりました。 +--でもそのとき PDP-11 には 6 つの OS があったのですが! +.PP +TENEX の TOPS-20 はバージョン 3 までに、 +ULTCMD と呼ばれるユーザコードレベルのコマンド補完機能サブルーチンを +備えていました。バージョン 3 で DEC は、 +これらの機能すべてと、さらにそれ以上とをモニタ +(Unix でいうところのカーネル) に追加し、 +COMND& JSYS (`Jump to SYStem' 命令; +スーパーバイザーを呼び出す機能 [私が IBM 上がりだってバレちゃった?]) +でアクセスできるようにしました +.PP +tcsh の作者たちは TENEX と TOPS-20 における +これらの機能に影響を受け、これを模倣した版の csh を作成したのです。 +.SH 制限 +単語は 1024 文字より長くできません。 +.PP +システムは引数並びを 10240 文字までに制限しています。 +.PP +コマンドに与える引き数の数 (ファイル名展開を含む) は、 +引き数リストに許された文字数の 1/6 までに制限されています。 +.PP +コマンド置換では、 +引数リストに許された文字数より多くの文字数に置換できません。 +.PP +シェルはループを検出するために、 \fIalias\fR 置換の回数を +1 行当たり 20 に制限しています。 +.SH 関連項目 +csh(1), emacs(1), ls(1), newgrp(1), sh(1), setpath(1), stty(1), su(1), +tset(1), vi(1), x(1), access(2), execve(2), fork(2), killpg(2), +pipe(2), setrlimit(2), sigvec(2), stat(2), umask(2), vfork(2), wait(2), +malloc(3), setlocale(3), tty(4), a.out(5), termcap(5), environ(7), +termio(7), Introduction to the C Shell +.SH バージョン +このマニュアルは tcsh 6.09.01 (Astron) 2000-01-14 +に関するドキュメントです。 +.SH 作者 +.PD 0 +.TP 2 +William Joy +\fIcsh\fR(1) のオリジナル作者 +.TP 2 +J.E. Kulp, IIASA, Laxenburg, Austria +ジョブコントロールとディレクトリスタック機能 +.TP 2 +Ken Greer, HP Labs, 1981 +ファイル名補完 +.TP 2 +Mike Ellis, Fairchild, 1983 +コマンド名認識 / 補完 +.TP 2 +Paul Placeway, Ohio State CIS Dept., 1983-1993 +コマンドラインエディタ、プロンプトルーチン、新しいグロブの文法、 +たくさんの修理とスピードアップ +.TP 2 +Karl Kleinpaste, CCI 1983-4 +特別なエイリアス、ディレクトリスタックの取出し機能、 +ログイン / ログアウト監視、スケジュールイベント、 +新しいプロンプト書式のアイデア +.TP 2 +Rayan Zachariassen, University of Toronto, 1984 +\fIls\-F\fR と \fIwhich\fR の組み込み、たくさんのバクフィックス、 +修正とスピードアップ +.TP 2 +Chris Kingsley, Caltech +高速ストレージアロケータルーチン +.TP 2 +Chris Grevstad, TRW, 1987 +4.3BSD \fIcsh\fR の \fItcsh\fR へのマージ +.TP 2 +Christos S. Zoulas, Cornell U. EE Dept., 1987-94 +HPUX, SVR2, SVR3 に移植、SysV 版 getwd.c, SHORT_STRINGS をサポート、 +sh.glob.c の新バージョン +.TP 2 +James J Dempsey, BBN, and Paul Placeway, OSU, 1988 +A/UX に移植 +.TP 2 +Daniel Long, NNSC, 1988 +\fBwordchars\fR +.TP 2 +Patrick Wolfe, Kuck and Associates, Inc., 1988 +\fIvi\fR モードのクリーンアップ +.TP 2 +David C Lawrence, Rensselaer Polytechnic Institute, 1989 +\fBautolist\fR と、あいまい補完の一覧 +.TP 2 +Alec Wolman, DEC, 1989 +プロンプト中の改行 +.TP 2 +Matt Landau, BBN, 1989 +ファイル \fI~/.tcshrc\fR +.TP 2 +Ray Moody, Purdue Physics, 1989 +スペースバーの魔法によるヒストリ展開 +.TP 2 +Mordechai ????, Intel, 1989 +printprompt() の修理と追加 +.TP 2 +Kazuhiro Honda, Dept. of Computer Science, Keio University, 1989 +自動スペル訂正と \fBprompt3\fR +.TP 2 +Per Hedeland, Ellemtel, Sweden, 1990- +さまざまなバグフィックス・改良とマニュアルのアップデート +.TP 2 +Hans J. Albertsson (Sun Sweden) +\fBampm\fR, \fIsettc\fR, \fItelltc\fR +.TP 2 +Michael Bloom +割り込みハンドリングの修理 +.TP 2 +Michael Fine, Digital Equipment Corp +拡張キーのサポート +.TP 2 +Eric Schnoebelen, Convex, 1990 +Convex サポート、\fIcsh\fR の多数のバグフィックス、 +ディレクトリスタックの保存と復帰 +.TP 2 +Ron Flax, Apple, 1990 +A/UX 2.0 への (再) 移植 +.TP 2 +Dan Oscarsson, LTH Sweden, 1990 +NLS サポートと 非 NLS サイト用の NLS シミュレート機能、修理 +.TP 2 +Johan Widen, SICS Sweden, 1990 +\fBshlvl\fR, Mach サポート、\fIcorrect-line\fR, 8 ビット印字 +.TP 2 +Matt Day, Sanyo Icon, 1990 +POSIX termio サポート、SysV limit 修理 +.TP 2 +Jaap Vermeulen, Sequent, 1990-91 +vi モード修正、expand-line, ウインドウ変更の修理、Symmetry 移植 +.TP 2 +Martin Boyer, Institut de recherche d'Hydro-Quebec, 1991 +\fBautolist\fR beeping オプション、 +行の先頭からカーソルまでのすべてを対象とするヒストリ検索の修正 +.TP 2 +Scott Krotz, Motorola, 1991 +Minix に移植 +.TP 2 +David Dawes, Sydney U. Australia, Physics Dept., 1991 +SVR4 ジョブコントロールの修理 +.TP 2 +Jose Sousa, Interactive Systems Corp., 1991 +拡張 \fIvi\fR の修理、\fIvi\fR デリートコマンド +.TP 2 +Marc Horowitz, MIT, 1991 +ANSIfication の修理、新しい exec ハッシュコード、 +imake の修正、\fIwhere\fR +.TP 2 +Bruce Sterling Woodcock, sterling@netcom.com, 1991-1995 +ETA と Pyramid への移植、 +Makefile と lint の修正、\fBignoreeof\fR=n 追加、 +その他のさまざまな移植性向上のための変更、およびバグ修正 +.TP 2 +Jeff Fink, 1992 +\fIcomplete-word-fwd\fR と \fIcomplete-word-back\fR +.TP 2 +Harry C. Pulley, 1992 +Coherent に移植 +.TP 2 +Andy Phillips, Mullard Space Science Lab U.K., 1992 +VMS-POSIX に移植 +.TP 2 +Beto Appleton, IBM Corp., 1992 +移動プロセスグループの修正、\fIcsh\fR バグ修正、 +POSIX file tests, POSIX SIGHUP +.TP 2 +Scott Bolte, Cray Computer Corp., 1992 +CSOS に移植 +.TP 2 +Kaveh R. Ghazi, Rutgers University, 1992 +Tek, m88k, Titan と Masscomp への移植と修正、 +autoconf サポートの追加 +.TP 2 +Mark Linderman, Cornell University, 1992 +OS/2 に移植 +.TP 2 +Mika Liljeberg, liljeber@kruuna.Helsinki.FI, 1992 +Linux に移植 +.TP 2 +Tim P. Starrin, NASA Langley Research Center Operations, 1993 +リードオンリー変数 +.TP 2 +Dave Schweisguth, Yale University, 1993-4 +新しいマニュアルページと tcsh.man2html +.TP 2 +Larry Schwimmer, Stanford University, 1993 +AFS と HESIOD パッチ +.TP 2 +Luke Mewburn, RMIT University, 1994-6 +プロンプトの中でのディレクトリ印字の拡張、 +\fBellipsis\fR と \fBrprompt\fR +.TP 2 +Edward Hutchins, Silicon Graphics Inc., 1996 +暗黙的な cd の追加。 +.TP 2 +Martin Kraemer, 1997 +Siemens Nixdorf EBCDIC machine に移植 +.TP 2 +Amol Deshpande, Microsoft, 1997 +WIN32 (Windows/95 and Windows/NT) に移植、 +足りないライブラリ全てと、 +メッセージカタログコード全てを作成し、 +Windows と通信できるようにした。 +.TP 2 +Taga Nayuta, 1998 +色つき ls の追加 +.PD +.PP +.SH 謝辞 +以下のみなさんに感謝します。 +.br +Bryan Dunlap, Clayton Elwell, Karl Kleinpaste, Bob Manson, Steve Romig, +Diana Smetters, Bob Sutterfield, Mark Verber, Elizabeth Zwicky +そして提案と応援をしてくれたオハイオ州のすべてのみなさん +.PP +あらゆるバージョンに耐え、バグリポートをくれ、提案と新規追加をしてくれた +ネット上のすべてのみなさん。 +.PP +"tcsh の T の由来" の章を執筆してくれた Richard M. Alderson III +.\"XX JP99 +.SH 翻訳 +t_ogawa <BYH06106@nifty.ne.jp> +.br +おさな <yasu@via2000.net> +.br +ゆ〜こ <yuko@veltec.co.jp> +.br +森 浩二 <mori@tri.asanuma.co.jp> +.br +NOKUBI Hirotaka <nokubi@ff.iij4u.or.jp> +.br +中野@成蹊大 <nakano@apm.seikei.ac.jp> (JM プロジェクト) +.br +蔭山 <yt-kage@cb3.so-net.ne.jp> +.br +中村和志@神戸 <kaz@kobe1995.net> +.br +大澤千敏@岐阜 <ohsawa@catv1.ccn-net.ne.jp> +.br +熊谷 典大 <kumagai@home.com> +.br +(順不同) +.PP +翻訳にあたり、JM プロジェクトの方々の御協力を頂きました。 |