C シェル・コマンドの説明

C シェルは、以下の組み込みコマンドを提供します。


項目 説明
alias [Name [WordList]] パラメーターを何も指定しないと、すべての別名を表示します。 それ以外の場合は、このコマンドは指定された Name の別名を表示します。 WordList が指定されると、このコマンドは WordList の値を別名 Name に割り当てます。 指定された別名 Name を、alias または unalias にすることはできません。
bg [%Job ...] 現在のジョブまたは Job で指定されたジョブをバックグラウンドに入れて、停止していればそのジョブを続行します。
break foreach コマンドまたは while コマンドのループの最も近い end の後から実行を再開します。
breaksw switch コマンドから抜け出して、endsw コマンドの後から再開します。
case Label: switch コマンドに Label を定義します。
cd[Name] chdir コマンドと同じです (下の説明を参照してください)。
chdir [Name] 現行ディレクトリーを Name 変数で指定されたディレクトリーに変更します。 Name を指定しないと、このコマンドはディレクトリーをユーザーのホーム・ディレクトリーに変更します。 Name 変数の値が現行ディレクトリーのサブディレクトリーではなく、また /./../ のいずれでも始まっていない場合は、シェルは cdpath シェル変数のそれぞれのコンポーネントを調べて、Name 変数に一致するサブディレクトリーがあるかどうか確認します。 Name 変数がスラッシュ (/) で始まる値を持つシェル変数の場合は、シェルはこれを試行して、ディレクトリーであるかどうか確認します。 chdir コマンドは、cd コマンドと同等です。
continue while コマンドまたは foreach コマンドのループの end の後から実行を継続します。
default: switch ステートメントの default ケースにラベルを付けます。 default は、その他のすべての case ラベルの後に置く必要があります。
dirs ディレクトリー・スタックを表示します。
echo 文字列をシェルの標準出力に書き出します。
else if ( Expression) then ... else if (Expression2) then ... else ... endif というコマンドのシーケンスの 2 番目の else の後のコマンドを実行します。
注: if(expr) then ..else ...endif を使用するとき、else ステートメント は csh 組み込みコマンドです。(expr) が真である 場合、else ステートメントまでのコマンドが実行されます。 (expr) が偽 である場合、else および endif ステートメント間のコマンドは実行されます。 単一引用符 内のものはすべて逐語的に取られ、解釈されません。
end Name 変数を List 変数で指定された個々のメンバーに連続して設定し、foreach ステートメントとそれに対応する end ステートメントの間の一連のコマンドを実行します。 foreach ステートメントと end ステートメントは、それぞれ別個の行に単独で置く必要があります。

ループを継続するには continue 文を使用し、ループを途中で終了するには break ステートメントを使用します。 foreach コマンドが端末装置から読み取られると、C シェルは、? でプロンプトを表示し、コマンド を入力できるようにします。 ? プロンプトのとき入力したループ内のコマンドは、ヒストリー・リストに入りません。

endif Expression 変数が真である場合は、最初の then ステートメントの後のコマンドを実行します。 else if Expression2 が真の場合は、2 番目の then ステートメントの後のコマンド を実行します。 else if Expression2 が偽の場合は、else の後のコマンド を実行します。 else if のペアは、いくつでも使用できます。 endif ステートメントは 1 つだけ必要です。 else セグメントはオプションです。 ワード elseendif は、入力行の先頭でしか使用できません。 if セグメントは、入力行上に単独で指定するか、または else コマンドの後に指定しなければなりません。
endsw 個々の case ラベルを、連続的に string 変数の値と比較します。 string は、最初に展開されたコマンド名とファイル名です。 変数展開されている case ラベル内のパターン・マッチング文字 *?[ . . . ] を使用します。default ラベルの前のどのラベルとも一致しない場合は、default ラベルの次から実行が開始されます。 case ラベルと default ラベルは、必ず各行の先頭になければなりません。 breaksw コマンドを使用すると、endsw コマンドの後から実行が継続されます。 それ以外の場合は、制御は、C プログラミング言語の場合のように、case ラベルと default ラベルを通って下へ流れます。 どのラベルとも一致せず、default がない場合には、endsw コマンドの後から実行が継続されます。
eval Parameter  .  . .  Parameter 変数の値をシェルへの入力として読み取り、その結果の 1 つ以上のコマンドを現在のシェルの流れで実行します。 このコマンドを使用して、コマンド置換または変数置換の結果として生成されたコマンドを実行してください。これらの置換の前に構文解析が行われるからです。
exec Command 指定された Command を現在のシェルの代わりに実行します。
exit (Expression) status シェル変数の値 (Expression が指定されていない場合)、または指定された Expression の値でシェルを終了させます。
fg [%Job ...] 現在のジョブまたは Job で指定されたジョブをフォアグラウンドに持ってきて、そのジョブが停止している場合は継続させます。
foreach Name (List) Command.  . .   end コマンドに達するまで、List 変数およびコマンドのシーケンスで指定された個々のメンバーに対して Name 変数を連続して設定します。
glob List ヒストリー、変数、ファイル名の展開を使用して、List を表示します。 ワード間にヌル文字を置いて、終わりに復帰を含めません。
goto Word Word 変数で指定された行の後から、引き続き実行します。 指定された Word は、Label: 変数で指定された形式の文字列を生成するために展開されたファイル名とコマンドです。 シェルは、入力をできる限り前に戻して、Label: 形式の行 (おそらく、その行の前にはブランクかタブが付いている) を探します。
hashstat ハッシュ・テーブルがコマンドを見つけた度合いを示す統計を表示します。
history [-r | -h] [n] ヒストリー・イベント・リストを表示します。 最も古いイベントが最初に表示されます。 数値 n を指定すると、指定された数の最新のイベントのみが表示されます。 -r フラグは、イベントの表示順序を逆にするので、最新のイベントが最初に表示されます。 -h フラグは、先頭に番号を付けないでヒストリー・リストを表示します。 このフラグを使用すると、source コマンドの -h フラグで使用するのに適したファイルが作成できます。
if (Expression) Command 指定された Expression が真である場合に、指定された Command (その引数を含む) を実行します。Command 変数に対する変数置換は、その他の if ステートメントに対する変数置換と同じタイミングで、初期に行われます。指定する Command には、単純コマンド (パイプライン、コマンド・リスト、括弧で囲まれたコマンド・リストではない) を使用してください。
注: 入出力リダイレクトは、Expression 変数が偽であり、Command が実行されない場合でも行われます。
jobs [-l] アクティブ・ジョブをリストします。 -l (L の小文字) フラグをセットすると、jobs コマンドは、ジョブ番号とジョブ名に加えて、プロセス ID もリストします。
kill -l | [[-Signal] % Job...|PID...] TERM (終了) シグナルまたは Signal で指定されたシグナルのいずれかを、指定された Job または PID (プロセス) に送ります。 シグナルは、番号または名前 (/usr/include/sys/signal.h ファイルに SIG 接頭部を除去して記述) のいずれかで指定します。 -l (L の小文字) フラグは、シグナル名をリストします。
limit [-h] [Resource [Max-Use]] 現在のプロセスと現在のプロセスが生成する各プロセスによる、指定されたリソースの使用を制限します。 プロセス・リソースの制限は、/etc/security/limits ファイルに定義されます。 制御できるリソースには、中央演算処理装置 (CPU) 時間、ファイル・サイズ、データ・サイズ、メモリー・ダンプ・サイズ、メモリー使用量があります。 これらのリソースの最大許容値は、ユーザーがシステムに追加されるときに、mkuser コマンドで設定されます。 これらの値の変更は、chuser コマンドで行われます。

制限はソフトまたはハードとして分類されます。 ユーザーは、ハード制限として課される上限まで、ソフト制限を上げることができます。 ハード制限よりもソフト制限を高くしたり、ハード制限を変更するには、root ユーザー権限が必要です。 -h フラグは、ソフト制限ではなくハード制限を表示します。

Max-Use パラメーターを指定しないと、limit コマンドは指定されたリソースの現在の制限を表示します。 Resource パラメーターを指定しないと、limit コマンドはすべてのリソースの現在の制限を表示します。 limit サブコマンドで制御されるリソースについて詳しくは、getrlimit サブルーチン、setrlimit サブルーチン、または vlimit サブルーチン』を参照してください。

CPU 時間の Max-Use パラメーターは、hh:mm:ss フォーマットで指定します。 その他のリソースの Max-Use パラメーターは、浮動小数点数または整数 (この後に、オプションでスケール係数を付けることができます) として指定します。 スケール係数は、k (キロバイト = 1024 バイト)、m (メガバイト)、または b (ブロック) (ulimit サブルーチンが使用する単位) です。 スケール係数を指定しないと、すべてのリソースに対して k が指定されているものと見なされます。 リソース名とスケール・ファクターはどちらも、名前が明確になる接頭部を指定すれば十分です。
注: このコマンドは、システム・メモリーが他のアクティブなプロセスと競合している場合にのみ、プロセスが使用できる物理メモリー (メモリー使用量) を制限します。
login ログイン・シェルを終了し、それを /usr/bin/login コマンドのインスタンスで置き換えます。 これは、ログアウトするための 1 つの方法です (ksh コマンドおよび bsh コマンドとの互換性を確保するために含まれています)。
logout ログイン・シェルを終了します。 ignoreeof オプションが設定されている場合は、このコマンドを使用する必要があります。
nice [+n] [Command] 値を指定しないと、このシェルで実行されるコマンドの優先順位が 24 に設定されます。 +n フラグを指定すると、指定した数字を優先順位に加算したものを設定します。 +n フラグと Command を指定すると、指定した数字を 24 に加算した優先順位で Command が実行されます。 root ユーザー権限を持っている場合は、負数で nice ステートメントを実行できます。 この Command は常にサブシェルで実行され、単純な if ステートメントのコマンドに対する制限が適用されます。
nohup [Command] Command がなにも指定されない場合、スクリプトの残りの部分に対して hangups が無視されるようにします。 Command が指定された場合には、指定された Commandhangups を無視して実行されるようにします。 コマンドのパイプラインやリストを実行するには、パイプラインまたはリストをシェル・スクリプトに記述し、そのスクリプトに実行権限を与え、そのシェル・スクリプトを Command 変数の値として使用します。アンパーサンド (&) を使用してバックグラウンドで実行するプロセスはすべて、ユーザーがログアウトしても、hangup シグナルが送られないよう効果的に保護されています。 しかし、nohup ステートメントが使用されていない場合は、これらのプロセスにも hangups シグナルが明示的に送信されます。
notify [%Job...] 現在のジョブまたは指定された Job の状況が変化したときに、シェルがその旨をユーザーに非同期で通知するようにします。通常、シェルはシェル・プロンプトを表示する直前に通知を行います。 notify シェル変数が設定されていれば、この機能は自動的に実行されます。
onintr [- | Label] 割り込み時のシェルのアクションを制御します。 引数を指定しないと、割り込み時にシェルのデフォルト・アクションが復元され、その結果、シェル・スクリプトが終了するか、コマンド入力レベルに戻ります。 - フラグを指定すると、割り込みはすべて無視されます。 Label を指定すると、シェルが割り込みを受け取ったとき、または割り込みが原因で子プロセスが終了したときに、シェルに goto Label ステートメントを実行させます。 いずれにしても、シェルが独立して実行され、割り込みが無視される場合には、onintr ステートメントのすべての形式が意味を持たなくなります。 シェルおよび呼び出されたすべてのコマンドが、割り込みを無視し続けます。
popd [+n] ディレクトリー・スタックをポップして、新しいトップ・ディレクトリーに変更します。 +n 変数を指定すると、コマンドはスタックの n 番目のエントリーを廃棄します。ディレクトリー・スタックのエレメントは、先頭から番号が振られます (先頭は 0)。
pushd [+n|Name] 引数を指定しないと、ディレクトリー・スタックの先頭の 2 つのエレメントが交換されます。 Name 変数を指定すると、コマンドは新しいディレクトリーに変わり、古い現行ディレクトリー (cwd シェル変数で指定) をディレクトリー・スタックにプッシュします。 +n 変数を指定すると、このコマンドは、ディレクトリー・スタックの n 番目のコンポーネントを循環させて先頭のエレメントにし、それに変更します。 ディレクトリー・スタックのメンバーには、先頭から番号が付けられます (先頭は 0)。
rehash path シェル変数内のディレクトリーの内容の内部ハッシュ・テーブルの再計算を実行させます。 このアクションは、ログイン中に path シェル変数に記述されているディレクトリーに新しいコマンドが追加された場合に必要です。 rehash コマンドは、ユーザー自身のディレクトリーのいずれかにコマンドが追加された場合や、システム・ディレクトリーのいずれかの内容が変更された場合にのみ必要です。
repeat Count Command 単純な if ステートメント内のコマンドと同じ制限に従って、Count で指定された回数だけ、指定された Command を実行します。
注: Count 変数が 0 であっても、入出力のリダイレクトは、正確に 1 回行われます。
set [[Name[n]] [ = Word]] | [Name = (List)] 引数を指定しないで使用した場合、すべてのシェル変数の値を表示します。 複数のワードを値として持つ変数は、括弧で囲まれたワード・リストとして表示されます。 Name のみを指定すると、C シェルは Name 変数をヌル文字列に設定します。 それ以外の場合は、NameWord 変数の値に設定するか、Name 変数を List 変数で指定されたワードのリストに設定します。n を指定すると、Name 変数の n 番目のコンポーネントが Word 変数の値に設定されます。n 番目のコンポーネントは、既に存在している必要があります。 どの場合も、値は展開されたコマンド名や展開されたファイル名です。 これらの引数は、1 つの set コマンドで複数の値を設定するのに、繰り返して指定されることもあります。 しかし、変数の展開は、設定が行われる前にすべての引数に対して行われます。
setenvName Value Name 変数で指定された環境変数の値を、単一文字列である Value に設定します。 最もよく使用される環境変数 USERTERMHOMEPATH は、C シェル変数 usertermhomepath に対して自動的にインポートおよびエクスポートされます。 このような変数には setenv ステートメントを使用する必要はありません。
shift [Variable] argv シェル変数または指定された Variable のメンバーを左にシフトします。 argv シェル変数または指定された Variable が設定されていなかったり、値に含まれているワードが 1 つ未満の場合は、エラーが発生します。
source[-h] Name Name ファイル内のコマンドを読み取ります。 source コマンドはネストすることができます。 しかし、ネストが深すぎると、シェルがファイル・ディスクリプターを使い果たしてしまいます。source コマンドでエラーが発生すると、どのレベルのエラーでも、ネストされている source コマンドはすべて終了します。 通常、source コマンドの実行中の入力は、ヒストリー・リストには置かれません。 -h フラグを指定すると、コマンドは実行されずにヒストリー・リストに入ります。
stop [%Job ...] 現在のジョブまたは指定された Job のバックグラウンドでの実行を停止します。
suspend STOP シグナルを受け取った場合のようにシェルを停止します。
switch (string) コマンド・シーケンス switch (String) case String : ... breaksw default: ... breaksw endsw を開始します。 このコマンド・シーケンスは、個々の case ラベルを String 変数の値と連続的に比較します。 デフォルト・ラベルの前のどのラベルとも一致しない場合は、デフォルト・ラベルの次から実行が開始されます。
time [Command] time コマンドは、コマンドの自動タイミングを制御します。 Command 変数を指定しないと、time コマンドは、このシェルとその子が使用した時間の要約を表示します。 Command 変数を付けてコマンドを指定すると、このコマンドの時間が計測されます。 次に、シェルは、time シェル変数に記述されているように、時間の要約を表示します。 コマンドの完了時に、必要に応じて別のシェルが作成され、時間統計を表示します。
以下は、sleep コマンドで time を使用した例です。
time sleep
このコマンドの出力は、次のようなものになります。
0.0u 0.0s 0:00 100% 44+4k 0+0io 0pf+0w

出力フィールドは以下のとおりです。

1 番目
ユーザー・プロセスに当てられた CPU 時間の秒数です。
2 番目
ユーザー・プロセスのためにカーネルが消費した CPU 時間の秒数です。
3 番目
コマンドについての経過 (壁時計) 時間です。
4 番目
経過時間のパーセンテージとしての、合計ユーザー CPU 時間とシステム時間です。
5 番目
使用された共有メモリーの平均量と、使用されたデータ・スペースで共用されていないものの平均量です (キロバイト単位)。
6 番目
ブロック入出力操作の数です。
7 番目
ページ・フォールトとスワップの数です。
umask [Value] ファイル許可を判別します。 この Value は、作成プロセスの許可と共に、ファイル作成時のファイル許可を判別します。 デフォルトは 022 です。 Value を指定しないと、現在の設定が表示されます。
unalias *|Pattern Pattern 変数と一致する名前を持つすべての別名を廃棄します。 unalias * コマンドですべての別名が除去されます。別名がなくても、エラーにはなりません。
unhash 実行中のプログラムを探すための内部ハッシュ・テーブルを使用不可にします。
unlimit [-h][Resource] Resource 変数に関する制限を除去します。 Resource 変数を指定しないと、すべてのリソースの制限が除去されます。 Resource 名のリストに関しては、limit コマンドの説明の項を参照してください。

-h フラグは、対応するハード制限を除去します。 ハード制限を変更できるのは、root ユーザー権限を持つユーザーだけです。

unset *|Pattern Pattern 変数と一致する名前を持つすべての変数を除去します。 すべての変数を除去するには、unset * を使用してください。 変数を設定しなくても、エラーにはなりません。
unsetenvPattern 指定された Pattern と一致する名前を持つ環境からすべての変数を除去します。 (setenv 組み込みコマンドの説明を参照。)
wait すべてのバックグラウンド・ジョブを待ちます。 シェルが対話式である場合は、INTERRUPT (通常は Ctrl-C キー・シーケンス) は待ち状態を中断します。 そしてシェルは、未完了と認識されるすべてのジョブの名前とジョブ番号を表示します。
while (Expression) Command.  . .  end Expression 変数で指定された式を評価した結果がゼロ以外の間、while ステートメントと、それに対応する end ステートメントの間のコマンド を評価します。 break ステートメントを使用してループの処理を途中で終了したり、continue ステートメントを使用してループの途中からループの先頭に戻って処理を継続できます。 while ステートメントと end ステートメントは、入力行に単独で指定する必要があります。 入力が端末装置から行われる場合は、foreach ステートメントと同様に while (Expression) の後でプロンプトが表示されます。
@ [Name[n] = Expression] 引数を指定しないで使用すると、すべてのシェル変数の値を表示します。 それ以外の場合は、Name 変数で指定された名前を Expression 変数の値に設定します。 式に <>&| などの文字が含まれている場合は、式のこの部分は括弧で囲む必要があります。n を指定すると、Name 変数の n 番目のコンポーネントが Expression 変数に設定されます。 Name 変数とその n 番目のコンポーネントはどちらも、既に存在していなければなりません。

*=+= などの C 言語演算子が使用できます。 Name 変数と割り当て演算子を区切るスペースは、オプションです。 しかし、Expression 変数のコンポーネントを区切るスペースは必要です。このスペースがないと、複数のコンポーネントが 1 つのワードとして読み取られてしまいます。 特殊な接尾演算子である、正符号 2 つ (++) とハイフン 2 つ (--) は、それぞれ Name 変数の値を増加および減少させます。