【HISTCONTROL】ターミナルに入力したコマンドで同じものは履歴に残さない

コンピュータ関連
スポンサーリンク

ターミナルを開いてコマンドを入力する際、
矢印キーの上下で履歴をたどれます。

いちいち入力せずに済むから便利。

ただ同じものが何度も出て来てしまう時がある。
(自分で入力したのだから当前)

そのへん上手くやってほしいよね。
(謎上目線)

そしてそう、あるんです、
上手くやってくれるまさにそういう設定が。

ということで備忘録的な記事です。

スポンサーリンク

bash.profile(bashrc)に設定

作業環境:High Sierra(10.13.6)です。Catalina(10.15)からはデフォルトがbash→zshに変更されているようなので違いがあることに注意してください。

ホームディレクトリに隠しファイルとして

~/bash.history

というファイルがあり、ここに入力したコマンドの履歴が残っています。

普通にテキストファイルなので開けばずらっと並んだ履歴一覧が確認できます。

そして同じ場所にある

~/bash.profile

ここに書き込んで保存することで設定できます。
基本的にターミナルを開いてコマンドを打ち込む、つまりログインシェルで使うのでそれで良いかと。

何を言っているのかを含め、bashrcとbash.profileの違いについてはこちらの参考サイトからどうぞ。
参考サイト:「macOSのターミナル(bash)のプロンプトを変えました。」「macの.bash_profileと.bashrc

HISTCONTROL

bashのマニュアルを表示させてみる。

$ man bash

他でも沢山紹介されていますが一応念のため列挙。

PARAMETERS > Shell Variables > HISTCONTROL

A colon-separated list of values controlling how commands are saved on the history list. If the list of values includes ‘ignorespace’, lines which begin with a space character are not saved in the history list. A value of ‘ignoredups’ causes lines which match the previous history entry to not be saved. A value of ‘ignoreboth’ is shorthand for ‘ignorespace’ and ‘ignoredups’. A value of ‘erasedups’ causes all previous lines matching the current line to be removed from the history list before that line is saved. Any value not in the above list is ignored. If HISTCONTROL is unset, or does not include a valid value, all lines read by the shell parser are saved on the history list, subject to the value of HISTIGNORE. The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of HISTCONTROL.

スポンサーリンク
内容
ignorespace 空白文字を先頭につけて打ち込んだコマンドについては履歴に残らなくなります
ignoredups 直前のものとダブった場合は保存しない
ignoreboth ‘ignorespace’と‘ignoredups’の両方(省略形)
erasedups 履歴の中でダブっているものは消去。残るのは最新の行のみ

ここにない値は無視されます。

ということで
~/bash.profile

HISTCONTROL=erasedups

を追記。
これでOK

まとめ

常にコマンドを打ち込んでいるわけではないのでどうしても忘れてしまいますよね。

で、履歴から拾い出してくるわけですが、
同じものが続くのもどうかなぁと。

ちょっとしたことですが、
なんか痒いところに手が届いた、的な。
そんな感覚。

これで同じコマンドが履歴に保存されなくなりました。

快適快適。

コメント

タイトルとURLをコピーしました