高機能シェル tcsh

シェル

シェルの本来の意味は「貝殻」や「殻」と云ったものです。 イメージしにくいかも知れませんが、シェルを「一番外側に在るもの」 と解釈してください。 UNIX でのシェルも計算機からみて一等外側に存在し、 人間との情報の遣取りをする窓口の約割りを担っています。 例えば、ファイル名を確認するときに ls コマンドを使いますが、 ユーザーがプロンプトで ls と打ってリターンキーを押すと、 シェルがその命令を受け取って、 ls コマンドを計算機の中から探してきて、 実行してくれるのです。

コマンドライン編集

tcsh では、Emacs などのエディタのように入力位置を移動でき、すでに入力した 文字列に対して文字の挿入などの編集が可能です。 キー操作の一覧を以下に示します。

表記のルール 以下で,C-<文字> は コントロールキーを押したまま、<文字>キーを押すことを意味します。例えば、C-f はコントロールキーを押しながら f のキーを押すことです。

カーソルを1つ進める C-f, →(右カーソル)
カーソルを1つ戻す C-b, ←(左カーソル)
カーソルを先頭に移動 C-a
カーソルを文字列の最後に移動 C-e
カーソルの文字を削除 C-d, Delete キー
カーソルの一つ前の文字を削除 C-h, BackSpace キー
カーソルより後ろに続く文字列を全て削除 C-k
画面を再描画 C-l

ヒストリ

ヒストリとは、コマンドの履歴です。history という内部コマンドを実行すると、 最近実行したコマンドが以下のように表示されます。 (内部コマンドとは、シェルの中に組み込まれたコマンドのことで、 ls コマンドの様に一つの独立したコマンドではありません。)

% history                                                                 
     1  15:34   man tcsh
     2  15:35   history
     3  15:36   cd
     4  15:36   pwd
     5  15:36   ls
     6  15:36   cd public_html
     7  15:37   ls
     8  15:37   cd
     9  16:00   history

tcsh では、これらのヒストリをたどることにより、 以前と同じ文字列を入力するときの手間を省くことができます。 当然、現在表示されている文字列を編集することも可能です。

ヒストリの一つ前に戻る C-p, ↑(上カーソル)
ヒストリの一つ先に進む C-n, ↓(下カーソル)

% cc keyboard.c -o keyboard
% ls -l
-rw-r--r--   1 hsv98068 others        248 Apr 17 14:35 keyboard.c     
-rwxr-xr-x   1 hsv98068 others       2977 Apr 17 14:35 keyboard     
% cc keyboard.c -o keyboard           <-- 前々回の入力     
    --- C-p を 2 回入力 ---     
% ls -l                               <-- 前回の入力     
    --- C-n を 1 回入力 ---

入力補完機能

tcsh ではファイル名の一部を入力するだけで、途中までの入力にあうファイルの一覧を表示したり、残りの入力を補完してくれる機能があります。 例えば program といったディレクトリ名を入力しようとして、うっかり入力するディレクトリ名を忘れた場合、次の操作で一覧を表示できます。

% set ignoreeof     <--  間違って C-d で logout しないように禁止
% ls
Mail         Wnn6         program          public_html  paint.c
% cd p      <-- p まで打って C-d を押す     
program/           public_html/          paint.c
% cd pr     <-- pr まで打てば候補は program に確定する。ここで Tab (or C-i)     
% cd program

このように補完機能を使って、ファイル名やディレクトリ名を入力すれば、タイプする量を減らして速く入力できるだけでなく、タイプミスをすることが無くなります。積極的に使うようにして下さい。

(注) tcsh で補完候補を表示したときの program/ などに付いている "/" は、 候補がディレクトリであることを表しています。

ファイル名(ディレクトリ名)の補完候補一覧を表示 C-d
ファイル名(ディレクトリ名)の補完 C-i, Tabキー


TOP / UNIX の基礎 (2)