next up previous contents index
Next: 4.7 コマンドラインの編集 Up: 4. シェルを利用する Previous: 4.5 入出力のリダイレクションとパイプ


    
4.6 ヒストリ機能

シェルは過去に実行したコマンドラインをヒストリとして記憶している.これ をシェルのヒストリ機能という.ヒストリ機能を利用して過去に入力したコマ ンドを簡単に再実行できる.

4.6.1 ヒストリリスト

  ユーザが入力したコマンドラインは,入力の順番と共に記憶されている.これ をヒストリリストと呼ぶ.ヒストリリストを確認するには,historyコ マンドを用いる.引数を指定すると,最後に実行されたコマンドから引数の数 字の数だけヒストリを表示する.引数を省略した場合には,記憶しているすべ てのヒストリを表示する.

% history [数字]<RET>
% history<RET>
    1  15:34   cd report
    2  15:34   ls
    3  15:35   more micro
    4  15:37   a2ps -p micro | lpr -Pnps2
    5  15:37   lpq -Pnps2
    6  16:12   history
% history 5<RET>
    3  15:35   more micro
    4  15:37   a2ps -p micro | lpr -Pnps2
    5  15:37   lpq -Pnps2
    6  16:12   history
    7  16:23   history 5
% _

   
4.6.2 コマンドラインの再実行

ヒストリ機能を用いて,ユーザはコマンドラインを再実行できる.再実行の方 法には表に示す4種類がある.


 
表: コマンドラインの再実行法
 
書式 意味
!! 直前のコマンドラインの再実行
!n n番目(ヒストリ番号)に実行したコマンドラインの再実行
!-n 最も大きいヒストリ番号からnをひいたヒストリ番号のコマンドライン の再実行
!str 指定された文字列( str)で始まる1番最近に実行したコマンドラインの再実行

% history 4<RET>
    10  15:18   ls
    11  15:29   more history.txt
    12  15:29   a2ps history.txt | lpr -Pnps2
    13  15:32   history	
% !more<RET>
more history.txt
% _

実行する前にコマンドラインを確認する

ヒストリ指定をしてコマンドを実行する前に,あらかじめコマンドラインの内 容を確認できる.

ヒストリ指定の直後に(スペースを空けずに) ``:p''を入力すると,ヒ ストリリストから指定されたコマンドラインを表示する.そのままコマンドを 実行する場合には,続けて``!!''を入力する.次にヒストリ番号9の コマンドの内容を確認し,それを再実行する例を示す.

% !9:p<RET>
ls -l
% !!<RET>
ls -l 
total 2
-rw-r--r--  1 s98000hf      13450 Nov 18 10:40 history.ps
-rw-r--r--  1 s98000hf       3402 Nov 22 09:35 report.tex
% _