bash historyを効果的に利用する方法
Nid: 770
- セッション終了を待たずに複数ターミナルでhistoryを共有できるようにする。
$ vim ~/.bashrc export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
- 不要なものはhistoryに保存しない。
$ vim ~/.bashrc export HISTIGNORE="pwd:ls:ls -ltr:"
- historyからよく使うコマンドの一覧を出力
$ awk '{print $0}' ~/.bash_history | sort | uniq -c | sort -n
- Word Designators
$ file /usr/share/doc/manpages /etc/sysctl.d
1番目の引数
$ cd !!:1 cd /usr/share/doc/manpages
その他
$ cd !^ # 最初の引数(省略形) $ cd !$ # 最後の引数(省略形) $ ls !* # 引数全体(省略形) $ ls !!:2* # 2番目以降の引数 $ ls !!:1-$ # 1番目から最後の引数
- Modifiersでコマンドを加工
先頭から/まで取得する"h" modifier。hはheadの意。
$ cat /usr/share/doc/manpages/copyright $ cd !!:$:h cd /usr/share/doc/manpages
末尾から/まで取得する"t" modifier。tはtailの意。
$ less !cat:$:t less copyright
拡張子を削除する"r" modifier。
$ tar xzvf openvpn-2.3.11.tar.gz $ cd !$:r:r cd openvpn-2.3.11
printする"p" modifier。
$ ls -l ../!tar:$:p ls -l ../openvpn-2.3.11.tar.gz
文字列を置換する。
$ touch file1 file2 file3 $ mkdir !!:*:gs/file/dir/ mkdir dir1 dir2 dir3