現在のセッションのbash履歴

現在のセッションのbash履歴

たぶん私は何かを見落としているかもしれませんが、現在使用中のセッションの現在のbashレコードを取得する方法はありますか?

走れば

ssh host
$ pwd
$ ls
$ cd /tmp

この3つのコマンドだけを見たいです。他にはありません。

答え1

ややバイパス方法:

history -a ~/current_history

これにより、現在のセッションの未保存のbash履歴がに保存され、表示されます~/current_history

答え2

history問題があり、現在の記事を書きたいです。文書しかし、まだエントリがデフォルトのbashに書き込まれることを望みます。history

私は追加してこの問題を解決しました。文書そしてcat

history -a current-history
cat current-history >> .bash_history

答え3

history -aファイル名で作業します。などのデバイスファイルにすることができます/dev/stdout

その後、必要に応じてパイプできます。たとえば、現在のセッション履歴を表示するには、less次のようにします。

history -a /dev/stdout | less

答え4

compフルレコード(現在のBashセッションを含む)を保存されたレコードと比較し、.bash_history現在のセッションに関連する行のみを印刷するために使用されます。これは、現在のBashシェルが開始されてから実行されたコマンドのみを表示する必要があります。

comm -23 <( history | cut -c 8- ) ~/.bash_history

編集する:@Wildcardが指摘したように、このコマンドはすべてのディストリビューションでは機能しませんcomm。私はこれをMac OSでテストしました。

同じアイデアの次のバリエーションを使用してくださいdiff

diff <( history | cut -c 8- ) ~/.bash_history | sed -n 's/^< //pg'

関連情報