.bash_history
ファイルの内容を表示したいのですが、コマンドラインを使用してそこにアクセスする方法がわかりません。
実際のファイル自体にアクセスする場合は、お好みのテキストエディターを使用します(emacs
を使用しますが、pluma
またはgedit
またはvim
を使用できます)。
emacs ~/.bash_history
これが履歴ファイルのデフォルトの場所です。そこに何も見つからない場合は、履歴ファイルの名前を変更している可能性があります。これは$HISTFILE
変数に格納されるため、現在の値を確認するために出力します。
echo $HISTFILE
ファイルの代わりに、履歴を表示したいだけの場合は、@ [minerz029]が推奨するようにhistory
を実行できます。 オプションなしのhistory
コマンド は、$HISTFILE
の内容と、そのファイルにまだ書き込まれていない現在のシェルで実行されたコマンドを行番号とともに出力するだけです。 。
実際に必要.bash_history
ファイルの出力である場合、history
を置き換えますcat ~/.bash_history
以下のすべてのコマンド。
実際に数字のないコマンドが必要な場合は、history
の代わりに次のコマンドを使用します。
history | cut -d' ' -f 4-
それ以外の場合、違いはありません(別のシェルを使用している場合を除く)。
使用できます
history | tail -n 15
履歴の最後の15行のみを取得し、最後に実行されたものを最後に(下部に)印刷します。
または、使用
history | grep "apt-get" | tail -n 15
apt-get
を含む最後の15個のコマンドを取得するには、最後に実行されたものが最後に(下部に)出力されます。 apt-get
は、検索するコマンド(またはコマンド引数)に置き換えることができます(正規表現でもかまいません)。
使用できます
history | tac | less
allをスクロールして、最新のコマンドを先頭に実行します。押す q 出る。
同様に、使用
history | grep "apt-get" | tac | less
allをスクロールするには、「apt-get
」で実行されたコマンド(引数を含む)を先頭の最新のものから開始します。押す q 出る。
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のデフォルトのシェルであるため、そこにあるはずです。
「提案ボックス」のような履歴を試してみることもできます https://github.com/dvorka/hstr -Bash履歴を読み取り、迅速なナビゲーションを可能にします。