".bash_history"に加えて、bash履歴ファイルの内容を表示するために使用される "history"コマンドは何ですか?

一部のインストールを実行するときに使用されたコマンドを記録するために、「HISTFILE」変数を別のファイルに変更しました。これで、基本的にファイルを使用するコマンドをhistory使用するのと同じように、このコマンドを使用して表示したいと思います。history.bash_history

historyコマンドにどのオプションを渡す必要がありますか?試行するとhistory ~/.history.d/alternate_historyエラーメッセージが表示されます。

-bash: history: /home/vfclists/.history.d/alternate_history: numeric argument required.

ヘルプには、man私が望んでいない他の履歴ファイルをいくつか変更するように見えるいくつかのオプションがリストされています。

ベストアンサー1

これhistoryこのコマンドはファイルでは機能せず、インメモリ履歴リストでのみ機能します。ファイルからリストを読み取り(r)書き込み(-w)追加( )してから、-aメモリ内のリストにアクセスまたは操作することができます。ファイルを読み取ると、現在のシェルセッションの履歴が置換または拡張されます。

ただし、別のシェルを作成してその履歴を操作して、現在のシェルの履歴に影響を与えずに目的のコマンドを実行できます。

bash -c 'history -cr file ; history'

または

( history -cr file ; history )

historyどちらの場合も、2番目のコマンドに希望の履歴オプションを追加できます。これを頻繁に実行する場合は、ファイルを引数として受け入れ、サブシェルバ​​ージョンを実行する関数を定義できます。

histfile() {
    ( history -cr "$1" ; history )
}

保存したタイムスタンプを表示するには、以下も設定する必要があります。HISTTIMEFORMAT。サブシェルを使用してホストシェルからタイムスタンプを取得する場合は、タイムスタンプは自動的に存在する必要がありますが、bash -cビルドまたはスクリプトの場合はこれを設定する必要があります。

bash -c 'history -cr file ; HISTTIMEFORMAT="%Y%m%d%H%I%S " history'

export親シェルの変数を使用することもできます。

おすすめ記事