第3章はヒストリ。「ヒストリリスト」という言葉が何十回と現れてきてゲシュタルト崩壊します。
ヒストリ利用に使う変数
- HISTFILE
- HISTSIZE
- SAVEHIST
ヒストリ展開制御
"fc -l"で一覧表示。"!"から始まる様々な展開方法がある
!N / !-N
一覧で現れた番号から直接指定、もしくは"-"で相対指定。
$ fc -l ... 10037 echo hoge 10038 ls 10039 pwd $ !10037 echo hoge hoge
!String
Stringに対し先頭からの一致でマッチしたもの。
$ echo fuga fuga $ !ec echo fuga fuga
!?String?
部分文字列一致でマッチしたもの。
$ echo hoge hoge $ !?og? echo hoge hoge
!!
直前のコマンド。
展開ヒストリの引数
ヒストリイベント選択の後に":"で繋げて展開したコマンドラインの引数を取得できる。
$ touch hoge fuga piyo $ echo !to:0 echo touch touch $ echo !to:3 echo piyo piyo
直接数字を指定するほか、
^
第1引数
$
最後の引数
%
!?String? で検索した場合のマッチしたものを含む引数全体
M-N
第Mから第Nまでの引数
*
第1から最後まで
M*
第Mから最後まで
ヒストリ編集子
このへんはzshの本を買って勉強し始めた - すぎゃーんメモで触れたやつ。引数の指定のあとにさらに繋げることができるようだ。
$ touch hoge fuga piyo foo bar baz $ !to:3*:p piyo foo bar baz $ !to:3*:u:p PIYO FOO BAR BAZ
ヒストリ制御オプション
すげーたくさんある。かなり色々カスタマイズできると思っておいてよさそう。