historyがあふれている・・・
こまめにapt upgradeをかけるため、毎回コマンドの手打ちは面倒なのでhistroyの履歴を使っていました。199番の履歴だったのですが、実行するとそんなものはないと怒られます
~$ !199
bash: !199: event not found
履歴を確認してみると
抜粋
1205 lsusb
1206 sudo reboot now
1207 history
1208 apt update && apt upgrade -y
1209 whatis -w "*hist*"
1210 man history
1211 alias
1212 l
1213 la
履歴の先頭までたどっても199番はなくなっていました。この履歴内の1208番と全く同じことをしたかったのですが。
そういえばhistoryには上限があったはず。
~$ cat .bashrc
〜途中省略〜
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
HISTSIZE=1000ということで、番号はどんどん追加されていくけれど上限1000件ということですね。上限を2000件とか増やすことも対策として考えられますが、そんなにたくさん履歴を持っても使うことは多くはないと思われるため別の方法を考えます。
よく使うコマンドをaliasで登録する
.bashrcに以下の記述があります。
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
〜途中省略〜
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
lsコマンドのエイリアスを参考に
alias 登録名 ='登録するコマンド'
として登録すれば、よく使うコマンドを短縮した独自のコマンド名で登録できます。
これを.bashrc内に記述しても実現はできるのですが、~/.bash_aliasesに登録もできるよと記述されているので、管理上は.bash_aliasesを作成して登録するほうが良さそうです。
.bash_aliasesに登録する
デフォルトで.bash_aliasesは存在しないのでホームディレクトリ上にファイルを作成して記述します。
~$ vi .bash_aliases
(.bash_aliases中身の記述&保存)
alias aptup='apt update && apt upgrade -y'
(.bashrcの読み直し)
~$ source .bashrc
以上の作業で「aptup」というエイリアス名で apt update と apt upgradeを実行する別名(エイリアス)ができました。
後処理 historyをクリアする
historyコマンド実行時に表示される番号を1番からに戻すためにファイルをクリアします
~$ cat /dev/null > .bash_history
確かに.bash_historyのファイル内はクリアされているのですが、historyコマンドを実行すると過去の履歴が番号付きで表示されてきます。どこを見て呼び出しているのか?
~$ history -c
これで過去履歴が消えてまた履歴が1番から作成されるようになりました。