- 書式
- history search [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] [ --max=n ] [ --null ] [ 'search string'... ]
- 書式
- history delete [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] 'search string'...
- 書式
- history merge
- 書式
- history save
- 書式
- history clear
- 書式
- history ( -h | --help )
概要
history
コマンドは
コマンドライン履歴の
- 検索
- 削除
- マージ
をします。
関数と ビルトイン の両方があります。
注意:後方互換性のために
各サブコマンドには
長いオプションも
用意されています。
たとえば、
history search
に対して
history --search
です。
長いオプションは非推奨で、
将来的には削除される予定です 。
サブコマンド
search
history search
は
検索文字列にマッチする
履歴を出力します。
検索文字列を
指定しなかった場合は、
全履歴を出力します。
単に history
コマンドを
実行した場合のデフォルトの挙動です。
サブコマンドのうちの
ひとつを検索文字列に
指定するときのみ、
明示的に
history search
と起動する必要があります。
- search
- delete
- merge
- save
- clear
他の検索オプションを
指定しない場合は
--contains
オプションが
使われます。
履歴の順番は
新しい方から古い方に
並びます。
標準出力が
端末につながっているとき、
history
関数はページャに
パイプされます。
history
ビルトインは
単に標準出力に出力するだけです。
delete
history delete
は
履歴のエントリを削除します。
以下のオプション
--prefix
--contains
を付けなければ、
指定された文字列に
完全一致する履歴が削除されます。
--exact
を付けなければ、
どのエントリを削除するのかを尋ねてから
エントリが削除される前に
プロンプトが表示されます。
マッチしたエントリ
すべてを削除するために
all
という単語を指定できます。
1つのエントリを削除するために、
ID([]で囲まれた数字)を入力できます。
複数のエントリを削除するには、
スペース区切りで複数のIDを入力します。
何も削除しない場合は
ただEnterを押してください。
注意:対話的な history delete
は
history
関数によるものです。
history
ビルトインは
--exact
--case-sensitive
オプションのみをサポートしています。
merge
history merge
は
他のfishセッションからの
履歴の更新をマージします。
通常、fishは
現在のセッションの後に
起動したセッションでの
履歴の更新を無視します。
history merge
は
他のセッションでの更新を
即座に適用します。
save
history save
は
すべての更新を
履歴ファイルに書き込みます。
fishは自動的に
履歴ファイルに保存します。
history save
は内部的に
使われるためのものであるため、
通常ではユーザ側で使う必要はありません。
clear
history clear
は
履歴ファイルをクリアします。
履歴を消去する前に、
全履歴を本当に削除するのか
という確認のプロンプトが表示されます。
history
ビルトインでは
いきなり全削除します。
オプション
以下のオプションがあります。
オプションは
上記のサブコマンドの
前か直後に置けます。
-C
/--case-sensitive
- 大文字小文字を区別する。
デフォルトは区別しない。
fish 2.4.0より前はデフォルトで区別していた。 -c
/--contains
-
指定された文字列が含まれる
履歴エントリを検索・削除する。
--search
のデフォルト。
現時点では
--delete
ではサポートされていない。
-e
/--exact
-
指定された文字列に
完全一致する履歴エントリを検索・削除する。
--delete
のデフォルト。
このオプションでは、
大文字小文字は区別しない。
大文字小文字も含めて
完全一致させるには
-C
/--case-sensitive
と
併用する必要がある。
-p
/--prefix
-
指定された文字列と
前方一致する履歴エントリを検索・削除する。
現時点では
--delete
ではサポートされていない。
-t
/--show-time
-
各履歴エントリに記録時の日時を加える。
デフォルトではstrftime
の
# %c%n
フォーマットを使う。
他のフォーマットも指定できる。
たとえば、
--show-time
'%Y-%m-%d %H:%M:%S'=--show-time
'%a %I %p'=
短いオプション
-t
は
strftime
の書式文字列は受け付けない。
(デフォルトのフォーマットのみが使われる)
%s
(1970/01/01からの秒数)も含め
strftime
すべてのフォーマットが使える。
注意:
--with-time
オプションも
用意されているが、
非推奨であるため将来削除される予定。
-z
/--null
-
search
サブコマンドからの出力において、
改行の代わりにヌル文字で
履歴エントリを区切る。
read -z で複数行にわたる履歴エントリを
正しく扱える出力形式である。
-<number>
/-n <number>
/--max=<number>
- マッチした最初の
number
エントリのみを表示する。
history search
のみで有効。 -h
/--help
- ヘルプを表示する。
実行例
# 全履歴を削除する $ history --clear # 文字列fooが含まれる過去に実行したコマンドすべてを表示する $ history --search --contains 'foo' # 文字列fooから始まる過去に実行したコマンドを対話的に削除する # IDはスペース区切りで指定することで複数個のエントリを削除できる $history --delete --prefix 'foo'
注意: --prefix
と --contains
の
双方を指定した場合は、
最後のオプションが使われる。
最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。