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


15

たぶん私は何かを見落としていますが、あなたが使用している現在のセッションの現在のbash履歴を取得する方法があります

私が走ったら

ssh host
$ pwd
$ ls
$ cd /tmp

これら3つのコマンドだけを見たいです。


historyコマンドをチェックしましたか?
ハッカホリック14

屋私は知っているhistoryが、それはちょうど私のセッションを与えるものではありません
マイク

セッション間で節約される量は、思い出すとSAVEHISTシェル変数によって制御されます。したがって、前回保存した履歴の量がゼロの場合、現在のシェルセッションの履歴を取得します(もちろんサブレベルではありません)
mdpc 14

@mdpc、あなたはどんなドキュメントを読んでいますか?Bashのマニュアルページには、SAVEHISTへの参照はなく、HISTSIZEとへの参照のみが見つかりましたHISTFILESIZE
ワイルドカード

回答:


15

少し回り道:

history -a ~/current_history

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


これは動作する可能性がありますが、複数のセッションを処理しません。ランダムな一時ファイルを作成して、それを保存できると想定しました
Mike

1
@Mikeは、おそらくシェルPIDに関連付けられた名前を使用します~/$$_history
ムル14

4
これは、履歴を消去したり、通常の履歴保存に何らかの影響を与えたりしないことに注意してください!テストするまではわかりませんでした。:)
NHDaly

history -a以前の履歴とともに〜/ .bash_historyにそれを投げるだけで便利です。これは、履歴がカットオフよりも長い場合に問題になる可能性があります。これは、centos7およびfedora 24システムで1000です。
レイ・フォス

0

現在historyファイルに書き込みたいが、メインbashにエントリを記録したいという問題がありましたhistory

ファイルを添付するだけでこれを解決しましたcat

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

-1

使用すると、compすでに持続歴史と全体の歴史(。含現在のバッシュセッション)を比較する.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'

良い考えですが、私のテストでは非常に信頼できません。 commソートされた入力を想定しています。 しかし、Stack Exchangeへようこそ!:)
ワイルドカード

@Wildcard、入力の両側はcomm上記の私の例で本質的にソートされます。実行しましたか?そして、それはあなたの現在のBashセッション履歴を生成しませんでしたか?
クリスチャンカドナー

はい、そうでした、そして、そうではありませんでした。いいえ、コンテンツ~/.bash_historyはソートされていません。また、history先頭の行番号が削除されると、ソートされた出力は一切削除されません。(それ以外に、comm数値的にソートされた入力ではなく、辞書式にソートされた入力が必要です。)
ワイルドカード

正しいcomm例では、コマンドの両方の引数は同じ順序であり、辞書式にソートされているわけではありません。FreeBSDのバージョンでは、comm辞書順でソートされた入力を必要としない
クリスチャンKadner

私はMac OS Xを使用しています。それはそれとは何の関係もありません。よく見ると、メモリ内の履歴からの初期コマンドであるように見えます。これは、その後、終了する他のシェルによって履歴ファイルに上書きされます。
ワイルドカード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.