13.12. コマンドライン履歴とタブ補完

同じコマンドを何回も繰り返すことは考えるだけで、操作が 魅力のないものになります。そして、1つのタイプエラーがコマンド 全体を無駄にしてしまうこともあります。

その解決法の1つは、コマンドライン履歴を使用することです。 [上向きの矢印]キーと[下向きの矢印] キーを使用して以前に実行された多くのコマンドを表示することが できます。

項13.9.1で作った sneakers.txtを使って、試してみましょう。まず、シェル プロンプトから次のように入力します。

cat sneakrs.txt

もちろん、sneakers.txtというファイルは ありませんから何も表示されません。これはまったく問題がありません。 次に、「↑」矢印キーを使用してコマンドを呼び戻し、「←」矢印キーを 使って入力し忘れた「e」の挿入位置まで移動します。「e」を挿入して [Enter]キーをもう1度押してください。

今度はsneakers.txtの内容が正しく表示 されます。

デフォルトでは、bashのコマンド ライン履歴ファイルには最大500個のコマンドを保存できます。

ティップヒント
 

env コマンドをシェル プロンプトでタイプすると、コマンドライン履歴のサイズをコントロール する環境変数を見付けることができます。そのラインは HISTFILESIZE=500という表示で、bash が保存できるコマンドの数量を示します。

コマンドライン履歴は実際にはログインディレクトリ内の .bash_historyというファイルの中に保存されて います。これはvicatlessmore、などその他 いろいろな方法で表示することができます。

このファイルが長いことに注意してください。more コマンドでこれを読むには、ホームディレクトリで次の ようにタイプします。

more .bash_history

画面を進めるときは[スペース]キー、 戻るときは[b]キー、終了するときは[q ]キーを押します。

ティップヒント
 

矢印キーを使用したり、履歴ファイルを 見て回ることをしないで履歴の中のコマンドを検索するには、強力な 検索ユーティリティであるgrepを使用します(参照 項13.11.3)。ここで迅速に以前使用された コマンドを探す方法を示します。例として、cat sneak -something(不明部分)とだけ判っている物を検索していると想定します。 このコマンドは以前使用したことがあり、履歴ファイルの中にあると思う 場合は、シェルプロンプトで、次の入力をします。

history | grep sneak

もう1つの時間節約のツールは、コマンド補完です。ファイル、 コマンド、又はパス名の一部を入力して[Tab]キーを 押すと、bashはファイル/パス名の残り の部分を表示するか、又はビープ音を出します(サウンドが有効に なっている場合)。ビープが出ると、[Tab]キーを もう一度押して、 ファイル/パス名を表示させて、自分がタイプした 物と一致するものを見付けます。

例えば、updatedbコマンドを忘れたと します。しかしそのコマンドの一部を覚えている場合、su で rootに入ってから、シェルプロンプトでup と入力します。そこで[Tab]キーを2回押す とupdatedbuptimeを含む 可能性のあるコマンド補完が表示されます。部分的コマンドとして updと入力して[Tab]キーを押すと、 コマンドは完全な形となります。