next up previous contents
Next: 6 ディレクトリ Up: UNIX 基礎演習 B 組 資料 Previous: 4 ファイル

Subsections


5 入力の終わりとコマンドの強制終了

5.1 入力の終わり -- CTRL-d

次の操作を試してみましょう。
  1. wc .cshrc を実行し,wc がどんな コマンドだったかを思い出してください18
  2. 次に,引数を与えないで wc を実行してみましょう。
    何も起きないどころかプロンプトも表示されません。
  3. ここで,キーボードから ls と打って,<ENTER> を押しましょう。
    プロンプトが表示されないままでコマンドを打っても,そのコマンドは 実行されません。
  4. キーボードから I like you. と打ち込んで <ENTER> を押しましょ う。
    まだ何も起こりませんね。
  5. 今度は CTRL キーを押しながら d キーを押してください。これからは CTRL キーを押しながら d キーを押すことを CTRL-d と表記します。
    wc の実行結果が出力され,プロンプトが現れました。wc は実行を終 えました。

ファイル名を指定せずに wc を実行すると,wc はキーボードからの入力を処理 します19。2. においてプロンプトが表示されなかったのは, wc が実行中であり,キーボードからの入力を待っている状態だったからです。

4. の終りに入力した CTRL-d は,UNIX で一般的に使われる「入力の終 わり (正確には,ファイルの終り; EOF = End Of File)」 を示すもの です。wc は CTRL-d が入力されたのでキーボードからの読み込みを終了し, 実行結果を画面に出力しました20

なお,上の操作ではキーボードから 2 行 4 単語を入力しましたから,行数と単 語数に関しては wc は正しい結果を出力しています。一方,文字数については, 画面に表示されている入力文字数(空白文字を含む)より 2 文字分多いはずです。 これは,行末に入力した <ENTER> を,wc が文字として数えているからです。 実際,<ENTER> で入力したものは特殊な文字であって,通常の文字として表示 される代りに,画面上では改行として表示されているのです。

5.2 コマンドの強制終了 -- CTRL-c

次の操作をしてください。
  1. 再び,引数を何もつけずに wc を実行してみましょう。
  2. キーボードから I hate you. と打ち込んで <ENTER> を押しま しょう。
  3. CTRL-c を押してください。(今回は CTRL-d ではありません)
    wc は実行を終えプロンプトが戻りましたが,CTRL-d を押したときと違っ て,wc の実行結果が出力されません21
CTRL-c はコマンドの実行を強制的に終了させる働きをします。この例 では CTRL-d による入力の終了を行わずに CTRL-c を押しましたので,wc は読み込みを完了する前に途中で終わってしまいました。したがって,文字数等 を数える処理は行われず,出力も得られませんでした。

コマンドを実行したのだけれど動作がおかしい,とか,プロンプトが戻るまでの 時間が長すぎる,といった場合には CTRL-c によるコマンドの終了を試してみ るといいでしょう。コマンド行でタイプミスをしてしまい,最初から打ち直した い場合にも,CTRL-c が使えます。ただし,コマンドを正常終了できる場面で は,正規の終了操作をすべきです。

5.3 練習

cat コマンドを引数なしで実行すると,wc と同様にキーボードから入力を与え ることができます。これを実際に試してみてから,cat コマンドを正常終了させ ましょう。 強制終了も試しましょう。

また,cat コマンドに引数を与えて実行した場合の動作から類推して,引数なし の cat がどんなことをしているのか,考えてみましょう。


next up previous contents
Next: 6 ディレクトリ Up: UNIX 基礎演習 B 組 資料 Previous: 4 ファイル

平成17年12月7日