linuxのhistoryコマンドを効率よく使う設定と手順を示します。
UNIXからやっていたことなので参考にしてみてください。

history


<目次>

1. コマンド名の短縮化

historyのコマンド名は、7文字と長いです。
毎回投入するのは大変なので、1文字に短縮しましょう。

手順を以下に示します。

①homeディレクトリーに「.bash_aliases」を作成
以下の行を追加します。

alias h='history'

②aliasの有効化
ターミナルから以下のコマンドを投入します。

>source ~/.bashrc

③historyコマンドの確認
ターミナルから「h」を投入すれば、historyが起動できます。

投入後の実行結果を以下に示します。

p

2. コマンド履歴の再実行

まず、先程のhistoryコマンドの結果を見てください。
左側にコマンド番号が表示されているのがわかります。

ターミナル上に見える「569」番は、以下となります。

569  cd /media/

例えば、569のコマンドを再実行するには、「!569」を投入します。
以下に実行結果を示します。

recmd


3. コマンド履歴の検索

コマンド履歴の検索は、記憶の状況により使い分けます。
以下の4パターンで説明していきます。

①コマンド名と投入時期の記憶がない
②投入時期の記憶があり、かなり前の場合
③コマンド名の記憶はある(手順A)
④コマンド名の記憶はある(手順B)


①コマンド名と投入時期の記憶がない
こんな場合は、pipeとlessを組み合わせて、履歴の先頭から探しましょう。
以下のコマンドを投入します。

>h | less

実行結果を以下に示します。

h-pipe-less


あとは、スペースを叩けばページ単位にスクロールします。

②投入時期の記憶があり、かなり前の場合
先程の①と同じ手順です。

③投入時期の記憶があり、現在に近い場合
はじめは、①と同じ手順です。

また、同じコマンドを投入します。

>h | less

実行結果を以下に示します。

h-pipe-less


ここで、現在に近いコマンドを探すので最新の履歴を表示します。
「Shift + g」を投入すれば、コマンド履歴の最後尾に移動できます。
実行結果を以下に示します。

h-pipe-less-G


この状態で「b」を投入すれば、ページ単位にバックスクロールします。
コマンドを探しましょう。

③コマンド名の記憶はある(手順A)
では、コマンド名を履歴から検索しましょう。

はじめは、①と同じ手順です。

また、同じコマンドを投入します。

>h | less

実行結果を以下に示します。

h-pipe-less


ここで、「/ + 探すコマンド名」を投入します。
例として、探すコマンド名は「update-grub」とします。
投入イメージを以下に示します。

slash-cmd



次に「Enter」を押せば、検索が実行されます。
実行結果を以下に示します。

slash-search


以降、「/ + Enter」のみの投入で順次検索できます。

④コマンド名の記憶はある(手順B)
ここでは、grep、pipe、lessを組み合わせて、コマンド履歴から該当コマンドを抜き出します。
例として、探すコマンド名は「update-grub」とします。
投入イメージを以下に示します。

>h | grep update-grub | less

実行結果を以下に示します。

h-pipe-grep-cmd-pipe-less


再実行したいコマンドがあれば、コマンド履歴に表示される番号を覚えておきます。
「q」を投入すれば、検索実行状態を解除できます。

次に先程説明した通りに「!コマンド番号」を投入すれば、再実行できます。

4. まとめ

●linuxのターミナルで投入したコマンドは、履歴が残ります。
●コマンド履歴から再実行することができます。
●コマンド履歴を検索することもできます。