履歴の重複無視と行頭空白を無視
export HISTCONTROL=ignoreboth:erasedups

履歴から除外する文字列
export HISTIGNORE="?:cd:pwd:exit"

Ctrl+n/p、上下キーで入力文字の履歴補完
bind '"\C-p": history-search-backward'
bind '"\C-n": history-search-forward'
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'

bashな俺はこんなん
行頭の空白無視は履歴に残す程じゃないコマンドに使える
bindやっとくと入力文字だけを検索してくれる
grep hの後で上下キー押すと履歴のgrep hogeやgrep hageだけ出す感じ
重複ばっかりなら直接historyから消した方が早い気もするが
!や$!や!$や$$はまだよく分からん