コマンドライン経由で `.bash_history`ファイルを表示するには?


72

.bash_historyファイルの内容を表示したいのですが、コマンドラインを使用してそこにアクセスする方法がわかりません。


7
どうですかhistory | less
-MadMike

2
チェックしました/home/username/.bash_history か?
ミッチ

2
NB:.bash_history端末が閉じられている場合にのみ追加されます。
ニコラスヴェルヘルスト

回答:


56

実際のファイル自体にアクセスしたい場合は、お好みのテキストエディターを使用してください(私は使用してemacsいますがplumageditまたはvimその他何でも使用できます)。

emacs ~/.bash_history

これが履歴ファイルのデフォルトの場所です。そこに何も見つからない場合は、履歴ファイルの名前を変更した可能性があります。これは$HISTFILE変数に保存されるため、現在の値を確認するために出力します。

echo $HISTFILE

ファイルの代わりに、単に履歴を見たいだけなら、history@ minerz029の提案通りに実行できます。コマンドオプションなしでは、ちょうどあなたの内容を印刷し、まだ行番号と、そのファイルに書き込まれていない現在のシェルで実行したコマンドが続いています。history$HISTFILE


49

あなたが実際にした場合必要なの出力.bash_historyファイルを置き換えるhistory
cat ~/.bash_history、以下のコマンドをすべてインチ

実際に前に数字なしのコマンドが必要な場合は、次の代わりにこのコマンドを使用しますhistory

history | cut -d' ' -f 4-

それ以外の場合、違いはありません(別のシェルを使用している場合を除く)。


最後の15コマンド

使用できます

history | tail -n 15

履歴の最後の15行のみを取得し、最後に実行されたものを最後に(下部に)印刷します。


コマンドを検索する

または、

history | grep "apt-get" | tail -n 15

apt-get最後に実行されたものが最後に印刷された(下部)に含まれる最後の15個のコマンドを取得します。apt-get検索する任意のコマンド(またはコマンド引数)に置き換えることができます(正規表現でもかまいません)。


履歴をスクロールする

使用できます

history | tac | less

一番上にある最新のものから実行されるすべてのコマンドをスクロールします。を押しqて終了します。

同様に、使用

history | grep "apt-get" | tac | less

「」(引数を含む)が含まれるすべてのコマンドapt-getを、一番上にある最新のものから順にスクロールします。を押しqて終了します。


15

minerz029の優れた答えに加えて。

繰り返しになりますが、「history」コマンドは、履歴とその隣の数字を出力します。

履歴の出力をgrep、lessなどにパイプできます。

履歴の出力には、出力の横の左側にも数字が表示されます。例えば

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

この番号を使用すると、コマンドを再実行できます。

たとえば、473を再実行するには、端末に入力します

 admin@xen1~$ !473

次に、Enterキーを押して、履歴出力の473の横にあるコマンドを繰り返します。

また、キーを入力してコマンド履歴を逆方向インタラクティブに検索し、コマンドctrl + rの内容の一部を入力し始めると、検索して入力します。見つかったら、Enter [tab]キーを押して繰り返すか、キーを押してコマンドラインにコピーし、最初にコマンドを編集します。

もちろん、最後の2つのオプションはbashシェルで機能します。これらの機能が他のシェルで機能するかどうかはわかりません。ただし、bashはUbuntuのデフォルトシェルであるため、そこにあるはずです。


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