.bashrc(history)の編集

.bashrc

HISTTIMEFORMAT='%F %T '
HISTSIZE=10000
HISTFILESIZE=10000
HISTIGNORE="history*"
HISTCONTROL=ignoreboth
shopt -s cmdhist
shopt -s histverify
shopt -s histreedit

HISTTIMEFORMAT='strftime形式' #詳細はman strftime
HISTSIZE=履歴保持数
HISTFILESIZE=履歴ファイル保持 #0にすると再度ログインした時に履歴が消えている
HISTIGNORE="history*:ls" #記録しないコマンドの指定、:で複数指定

HISTCONTROL=ignorespace #半角スペースで始まるコマンドは記録しない
HISTCONTROL=ignoredups #連続した重複は履歴に記録しない
HISTCONTROL=ignoreboth #ignorespaceとignoredupsの両方
HISTCONTROL=erasedups #重複した古い履歴は消える

shopt -s cmdhist #改行いりのコマンドを1行に記録してくれる
shopt -s histreedit #履歴置換を実行前に、置換後のコマンドを教えてくれる
shopt -s histverify #履歴置換で失敗した時、もう一度やり直せるだけ


履歴置換とhistreeditとhistverify

# echo 1
1
# ^1^2←履歴置換を入力し実行
# echo 2←実際に実行するコマンドが表示されるので、ENTERキー
2
# ^22^1←履歴置換を間違えると
-bash: :s^22^1: substitution failed
# ^22^1←履歴置換入力直後に戻る

履歴メモ
# !! #直近のコマンド
$ sudo !! #地味に便利
# !ls #直近に使ったlsコマンド)
# history | grep ls

    1  ls
    2  ls -l

# !2 #historyの2番目のコマンド(ls -l)

# [CTRL+r]
(reverse-i-search)`': #履歴探索モード



カレントディレクトリも履歴に表示したいのだが、これだと移動してもディレクトリ名が変わらない。
HISTTIMEFORMAT="%h %d %H:%M:%S $(pwd)> "