このハンドブックは、C シェル (csh) にあり Bourne シェル (bsh) にない機能を解説します。これらの機能により、csh はより対話的で使いやすいシェル環境を提供し、その後の ksh, bash, zsh, dash など多くの後発のシェルで模倣されました。

コマンド履歴機能

編集

csh では、以前実行したコマンドを簡単に呼び出して再利用できます。

使用方法
  • 上矢印キー: 直前のコマンドを表示
  • !!: 直前のコマンドを再実行
  • !n: n番目のコマンドを再実行
  • !string: 'string' で始まる最新のコマンドを再実行
% ls -l
% !!  # 直前の 'ls -l' コマンドを再実行

コマンド別名(エイリアス)

編集

頻繁に使用するコマンドに短い別名を付けられます。

使用方法
  • alias name 'command': 別名を設定
  • unalias name: 別名を削除
% alias ll 'ls -l'
% ll  # 'ls -l' と同じ

ファイル名補完

編集

ファイル名の一部を入力し、タブキーを押すと残りを自動補完します。

使用方法
  • ファイル名の先頭数文字を入力し、タブキーを押す
% cat /etc/pas[TAB]  # '/etc/passwd' に自動補完

算術演算

編集

シェル内で直接数学的な計算ができます。

使用方法
  • @ 変数名 = 式
% @ result = 5 + 3 * 2
% echo $result  # 11 と表示

ジョブ制御

編集

バックグラウンドジョブの管理が容易です。

使用方法
  • command &: コマンドをバックグラウンドで実行
  • jobs: 実行中のジョブを表示
  • fg %n: n番目のジョブをフォアグラウンドに
  • bg %n: n番目のジョブをバックグラウンドに
% long_running_command &
% jobs
% fg %1

コマンドラインの編集

編集

cshでは、コマンドラインの編集が他のシェルに比べて柔軟です。特に、矢印キーを使用して履歴のスクロールや編集を行うことができます。

ディレクトリスタック

編集

ディレクトリスタックを使用すると、複数のディレクトリをスタック(積み重ね)に保存し、簡単に移動することができます。

ディレクトリのスタックへの追加
pushd コマンドを使用して、現在のディレクトリをスタックに追加し、指定したディレクトリに移動します。
% pushd /path/to/directory
スタックの内容の表示
dirs コマンドを使用して、現在のディレクトリスタックの内容を表示します。
% dirs
スタックからのディレクトリの削除
popd コマンドを使用して、ディレクトリスタックのトップにあるディレクトリを削除し、その下にあるディレクトリに移動します。
% popd
ディレクトリの入れ替え
pushd コマンドを使用して、現在のディレクトリとスタックトップのディレクトリを入れ替えます。
% pushd

これにより、頻繁に使用するディレクトリ間を効率的に移動することができます。

プロンプトのカスタマイズ

編集

より柔軟にプロンプトの外観を変更できます。

使用方法
  • set prompt = "文字列"
% set prompt = "%n@%m:%~> "
username@hostname:current_directory>

変数の設定と使用

編集

変数の操作がより直感的です。

使用方法
  • set 変数名 = 値: 変数を設定
  • $変数名: 変数の値を参照
% set name = "John"
% echo $name  # John と表示

まとめ

編集

これらの機能により、csh は対話的な使用に適したシェルとなっています。ただし、スクリプト作成においては bsh系の方が一般的に使用されることに注意してください。csh の独自機能を活用することで、コマンドラインでの作業効率を向上させることができます。