Macのzshで上キーでコマンド履歴をたどるときに、同じコマンドを複数回打った履歴を除外する。
ネットワークエンジニアだと複数のコマンドを繰り返し実行するようなケースが多い。例えば、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関連では以下の記事が参考になりました。
まとめ - Macのzshでコマンド履歴(上キー)の重複を排除する
zshrcの設定でコマンド履歴の重複を排除した。これで、2,3個のコマンドを繰り返し実行するような作業の効率が向上する。