古い記事
ランダムジャンプ
新しい記事

zsh-history-viewer

2003-02-03-3
zsh の履歴ファイル (.zsh-history) の中味は、以下のようになっている。
: 1044232977:0;ls -l
: 1044232943:0;cat hoge
: 1044232709:0;mv *jpg image/

しかし、これだとコマンドを実行した時間が分かりづらいので、簡単な変
換ツール zsh-history-viewer を作った。自分の作業時間を分析するのに
便利かも。振り返れ、過去を!
#!/usr/bin/env perl
use POSIX;
while (<>) {
    my ($t, $c) = /(\d+).+;(.+)/;
    print strftime("[%Y-%m-%d %H:%M:%S] ", localtime($t)),
        substr($c, 0, 57), "\n";
}

使い方の例:
% tac ~/.zsh-history | zsh-history-viewer | less
出力例:
[2003-02-03 09:42:57] ls -l
[2003-02-03 09:42:23] cat hoge
[2003-02-03 09:38:29] mv *jpg image/

と、ここまで書いたところで、history コマンドを使えば同じ結果が得ら
れる、と satoru-t から指摘を受ける。以下のようにすれば OK。
% history -nir 0 | less
% history -nir 0 | cut -c-78 | less
history のオプション一覧は、"history -" と入力してこの場でタブを打
つと見れます。知らなかったよ...。

"cd -" につづけてタブを打つと、これまで行ったディレクトリが一覧で
出て、数字で選択すると移動できる。ふむ。
この記事に言及しているこのブログ内の記事