テキストエディターでシェルコマンド履歴を検索するにはどうすればよいですか?


8

私はことを知っているCtrl+ Rレットを使用すると、コマンド履歴を検索するのですが、それは少し原始的です。すべてのコマンド履歴(現在のターミナルセッションだけでなく、完全な履歴)をテキストファイルにエクスポートする方法はありますか?その後、テキストエディタを使用して快適に検索できます。または、履歴ファイルがすでに存在する場合、どこにありますか?


私はあなたがあなたのシェルのコマンド履歴を意味し、デフォルトのシェルであるbashを使うように編集したと仮定します。
muru

回答:


13

からman bash

HISTFILE
    The name of the file in which command history is saved.
    The default value  is  ~/.bash_history.
    If unset, the command history is not saved when a shell exits.

したがって、変数HISTFILEには履歴が保存されるファイル名が含まれます。

$ echo "$HISTFILE"
/home/user/.bash_history

これでパターンを検索できます:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt

@Dennisが指摘したように、必要に応じて実行history -aして、実行中のセッションのコマンド履歴を$HISTFILEファイルに追加できます。基本的に、コマンドはセッションを閉じると自動的に追加さhistory -aれ、その瞬間に同じことを行います。

ビルトイン自体help historyについてさらにアイデアを得るために実行してくださいhistory


1
通常、履歴ファイルには、現在のbashセッションの開始以降に入力された行は含まれませんhistory -a。これは、を実行することで修正できます。
デニス

@Dennis:Good point..added ..
heemayl

4

これを試して:

history > output.txt
less output.txt

次に「/+」と入力して検索しますsearchterm


3

bashの履歴はホームディレクトリに保存されます~/.bash_history

基本的にCtrl+ Rこのファイルから検索します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.