designetwork

ネットワークを軸としたIT技術メモ

Macのzshでコマンド履歴(上キー・history)の重複を排除する

Maczshで上キーでコマンド履歴をたどるときに、同じコマンドを複数回打った履歴を除外する。

ネットワークエンジニアだと複数のコマンドを繰り返し実行するようなケースが多い。例えば、pingやtracerouteで複数への疎通・経路確認を繰り返すパターンなど。

デフォルトだと、このように、同じコマンドを複数回実行した場合は全て履歴に保存される。そのため、ターミナルで履歴をたどるときに上キーを押す回数が多くなってしまう。

$ history
  174  traceroute google.com
  175  traceroute google.com
  176  traceroute google.com
  177  traceroute example.com
  178  traceroute example.com
  179  traceroute example.com

zshの設定によりコマンド履歴の重複を排除する。

コマンド履歴の重複を除外する

.zshrcに以下のコマンドを追加することで、上キーでの履歴、historyでの重複を除外できる。

vi ~/.zshrc

setopt hist_ignore_dups

設定を反映させる。

source ~/.zshrc

このようにhistoryに重複して表示されない。実際の操作は冒頭と同様に3回ずつ同じコマンドを実行している。

$ history
  181  vi .zshrc
  182  source .zshrc
  183  traceroute google.com
  184  traceroute example.com

なお、この設定を無効化したい場合は以下の通りunsetする。

unsetopt hist_ignore_dups

参考情報

ぴったりのタイトルのものがなかったため新規に記事を書きましたが、zsh関連では以下の記事が参考になりました。

qiita.com

minus9d.hatenablog.com

まとめ - Maczshでコマンド履歴(上キー)の重複を排除する

zshrcの設定でコマンド履歴の重複を排除した。これで、2,3個のコマンドを繰り返し実行するような作業の効率が向上する。