magのOSS備忘録

使ったOSSソフトウェアについて書いていきます。

fishでhistoryの表示に日付を追加する

動機

bash等の他のシェルでは, historyコマンドの出力に日付や時間を追加することができる. これをfishで行おうとしたときに, 調べるのに少し時間がかかったので手順を残す.

前提

fish 2.4からhistoryコマンドに実装されたオプションを使う方法のため, fish 2.4以降のバージョンを使うこと.

手順

historyコマンドの–show-timeオプションを使用する.

なお, フォーマットを指定しないとコマンドを実行した日付・時刻とコマンドが2行で表示される.

日付・時刻とコマンドを一行で表示にするには下記のようにfunctionを定義する. デフォルトでは新しいものから順に表示されるため, sortコマンドで日付で昇順になるように並び替える.

# ~/.config/fish/functions/history.fish

function history
    builtin history --show-time='%Y/%m/%d %H:%M:%S ' | sort
end

参考

  1. Add an option in history builtin to show timestamps · Issue #677 · fish-shell/fish-shell · GitHub
  2. Why there isn't a number of the command and a timestamp for fish? - Unix & Linux Stack Exchange