🌐

Linuxのhistoryコマンドを活用しよう

2021/03/07に公開

はじめに

実務で開発しているとLinuxコマンドを頻繁に打つことになると思います。
長いコマンドを何回も打つ、または前打ったあのコマンドなんだったっけ…となった場合にhistoryコマンドを使えば解決すると思うので、使い方や設定を書いていきます。

環境

  • zsh

historyコマンドとは

historyコマンドはコマンド履歴を調べたり、履歴から任意のコマンドを実行したりすることができるコマンドです。

# 以下のコマンドでコマンド履歴が表示されます
$ history
    1 ls
    2 pwd
    3 cat .zshrc
    …

# 以下のコマンドで履歴から任意のコマンドを実行できます
$ !1 # 数字はhistoryコマンドの出力結果に表示されているコマンドの先頭についている数字を指定
ls # enter を押下
[lsの結果]

メモリに記憶しておくコマンドの数を増やす

~/.zshrcに以下の記述を追加します。

export HISTSIZE=10000

デフォルトは1000件のようです。

.zsh_historyに書き込まれるコマンドの数を増やす

~/.zshrcに以下の記述を追加します。

export SAVEHIST =10000

こちらもデフォルトは1000件のようです。

ちなみにhistoryでは実行中シェルのコマンド履歴をメモリ上にキャッシュし、このキャッシュされた履歴がシェル終了時に.zsh_historyに書き込まれます。

つまりHISTSIZESAVEHISTはそれぞれメモリ上にキャッシュするコマンド履歴の上限と.zsh_historyに書き込まれるコマンドの上限をそれぞれ指定しています。

コマンド履歴から検索して任意のコマンドを実行する

これめっちゃ便利です。

使い方はctrl + rで検索モードにしてからコマンドを入力すると一番近い履歴が表示されるのでenterで実行できます。

$ # ctrl + r を押下
(reverse-i-search)`l':ls # enter を押下
$ ls
[lsの結果]

一番近い履歴が表示されるので、それより前の履歴を遡りたい場合は該当のコマンドが表示されるまでctrl + rを押下すればOKです。

おわりに

「コマンド履歴から検索して任意のコマンドを実行する」はめっちゃ便利なのでおすすめです。
ぜひ使ってみてください。

Discussion