LinuxにはHistoryコマンドという超便利なコマンドがあるのをご存じでしょうか?
自分は存在は認知していましたが,つい最近初めてHistoryの便利さを学びました。
ということで,Historyコマンドの便利な機能をまとめようと思います。

Historyコマンドとは?
まずHistoryコマンドをご存じでない方のために簡単に解説すると,履歴をさかのぼることができるコマンドです。
Historyは歴史・履歴といった意味があるので,そのままですね。
つまり,過去に実行したコマンドを表示してくれるコマンドです。

基本の機能
ただ履歴を表示するだけなら,
history
これだけでいけます。
実行すると,以下のように表示されます。
... ...
... ...
498 ...
499 ls
500 history
環境にもよるのかもしれませんが,自分が触ってきたOSではたいてい過去500回分のコマンドが表示されます。
履歴の呼び出し
結論から述べると,履歴の番号を指定することで簡単に過去に打ったコマンドを実行できる,というものです。
!履歴の番号
ご存じの方も多いかと思いますが,コマンド入力画面で↑キーを押すことで,ひとつ前に実行したコマンドに戻ることができます。
その状態でもう一度↑キーを押すことで,さらにさかのぼることできます。
ただこれを永遠と繰り返すのって,面倒じゃないですか?
そこで活用できるのがHistoryコマンドです。
例えば直前の履歴が以下の通りだったとしましょう。
... ...
300 sudo apt update && sudo apt upgrade -y
... ...
... ...
498 ...
499 ls
500 history
この場合に300回目時点の「sudo apt update && sudo apt upgrade -y
」と打ちたいとします。
しかし,この時に矢印キーをわざわざ200回打って戻ろうとは思いませんよね?
そんなとき,実は以下のコマンドでいけちゃいます。
!300
!のあとにスペースを空けずにhistoryで出てくる番号を打つだけです。
自分はこれをつい最近まで知らず,恥ずかしい思いをしました…
一つや二つさかのぼるくらいなら↑キーでいいですが,一気にたくさんさかのぼるならこっちのほうが便利ですよね。

絞り込み
grepコマンドと組み合わせることで,コマンドを絞り込むことができます。
コマンドにどんなワードを使ったかは覚えているけど細かい順番とかは忘れてしまった,みたいなときに便利です。
また先ほどと同じように,履歴が以下だったとします。
... ...
300 sudo apt update && sudo apt upgrade -y
... ...
... ...
498 ...
499 ls
500 history
ここで「アップデートしたいけどコマンド忘れたな…『update』っていうワードが含まれていたことは覚えてるんだけどなあ…」といったとき,検索ができます。
history | grep update
これにより,「update」という文字列が含まれる行のみが出力されます。
いくつか引っかかる場合があるかもしれませんが,そのときはその中から適切なものを選んで実行しましょう。
まとめ
# 履歴の表示
history
# 番号をもとに履歴を呼び出す
!履歴の番号
# 履歴から検索
history | grep 検索ワード
これらを覚えておけば,どこかで役に立つこと間違いなしです!
ぜひ覚えておきましょう!

コメント