tcsh が持つコマンドの入力支援機能のうち,代表的なものを紹介します。 ここで取り上げる以外にもシェルには様々な機能がありますが,それらに興味が あればマニュアルや書籍,雑誌記事等を読んでみてください。
次のコマンドを実行すると,これまでに実行したコマンド行の履歴 (ヒストリ; history) 一覧を表示できます。試してみましょう。
history
ヒストリを利用して,過去に実行したコマンドを再実行できます。
ここで n には正の整数を,str には適当な文字列(通常はコマンド 名またはその始めの一部) を記述します。これらに続いて <ENTER> を押すと,当 該コマンド行の内容が実行されます。
ls -l .cshrc
!!
!-1 (数字の一)
!! .login
!l (エル)
GNU Emacs において,ファイル読み込み時などに <TAB> による入力の補完 (completion) ができるように,コマンド行でもコマンド名やファイル名の入力 補完を利用できます。
<TAB> (補完)CTRL-d はコマンド行に何か文字列をタイプした後で押してください。プロン プトに続いて CTRL-d を押すと,ワークステーション室のシステム (tcsh の 標準設定) では,シェルが終了してしまいます (ウィンドウが閉じる) 4。
CTRL-d (複数の補完候補がある場合の一覧表示)
GNU Emacs でのキー操作を用いて,コマンド行の内容を編集することができます 5。
Emacs でカーソルを上下方向に移動するための操作は,コマンド行では次の意味 を持ちます。
CTRL-p (一つ前のヒストリを表示), CTRL-n (一つ先のヒストリを表示)Emacs におけるカーソルの上移動のキー操作 (CTRL-p) は,コマンド行ではヒ ストリを遡って表示するために使います。すなわち,CTRL-p を一回押すと, 一つ前に実行したコマンド行の内容が表示され,続いて CTRL-p を押すと二つ 前に実行したコマンド行の内容が表示されます。このようにヒストリを遡ってか ら,下移動のキー(CTRL-n) を押すと,最近のヒストリに戻っていきます。 この操作でコマンド行に現れる文字列は,以下に紹介するカーソル移動や消去, 貼り付けによって編集してから <ENTER> を押して実行することができます。
コマンド行でのカーソル移動には
CTRL-a (行頭), CTRL-b (左), CTRL-f (右), CTRL-e (行末)などが使えます。なお,カーソルをコマンド行の途中に移動させた状態で <ENTER> を押すと,カーソルの左側のみではなく,コマンド行の全体が実行され ます。従って,<ENTER> を押す前にカーソルを行末まで移動させる必要はありま せん。
コマンド行において文字や文字列を消去するときにも Emacs のキー操作が使え ます。 また,消去した文字列をコマンド行に貼り付けることもできます。 よく使うのは次のものでしょう。
CTRL-d (カーソル位置の一文字削除; delete),これらは,CTRL-pやCTRL-nによるヒストリの表示と組み合わせて使うと便利 です。
CTRL-k (カーソル位置から行末まで消去; kill),
CTRL-y (消去した文字(列)の貼り付け; yank)