bashの初心者でもエキスパートでも、非常に便利なbash履歴機能を使用せずにコマンドラインで作業を続けることはできません。
Linuxターミナルで上矢印キーまたは下矢印キーを使用すると、以前に実行したコマンドを実行できることをすでにご存知でしょう。
これは、bashhistoryコマンドのおかげで利用できます。
1。 bashの履歴を表示する
以前に入力したコマンドを確認する最も簡単な方法は、コマンド履歴を使用することです。
history
履歴に保存されているコマンドが100個またはおそらく1000個表示されます。サイズはHISTSIZE変数によって異なります。

画面を乱雑にしたくない場合は、表示する行数を制限できます。たとえば、履歴の最後の7つのコマンドのみを表示するには、次のように使用します。
history 7

2。 bash履歴からコマンドを実行する
履歴を見ているときは、!
でその番号を使用してコマンドを実行できます。 、このように:
!#

!!
を使用して最後のコマンドを再実行できます 。これをうまく利用するには、コマンドでの使用を忘れてから、次のようにすばやくsudoで実行する必要があります。
sudo !!

次のような特定のテキストで始まる最後のコマンドを実行することもできます:
!text
以前にecho$HISTCONTROLを実行し、それを再度実行したいとします。次のように使用できます:
!echo
上記のコマンドは、履歴から最後に実行されたechoコマンドを実行します。

履歴を検索するためのより良いオプションがあります。次のセクションで紹介します。
ボーナスのヒント:コマンドを実行する代わりに、コマンドがわからない場合は、:p
を追加して印刷してください。 それの終わりまで。したがって、!echo:p
のように使用します 、!23:p
など
3。 bashの履歴を検索する
次のような履歴を検索するには、grepコマンドを使用する方が簡単だと思うかもしれません。
history | grep text
履歴を検索するためのより優れた非常に便利な方法は、ctrl+r
を使用することです。 キーを押して逆検索を開始し、探している文字列を入力します。
ctrl+r
を押すと、選択肢を切り替えることができます 繰り返し、探しているコマンドが見つかったら、ctrl+o
を押します。 または単にenter
キーを押して、そのコマンドを選択して実行します。
たとえば、次の例では、「aud」が含まれているコマンドを検索します。

コマンドが見つからない場合は、検索文字列を変更するか、ctrl+g
を押します。 逆検索から抜け出すために。
4。履歴内の以前のコマンドの引数を再利用する
これがbashの履歴でできるもう1つのクールなことです。以前のコマンドの引数を新しいコマンドで使用できます。
前のコマンドの最後の引数は次のように使用できます:
new_command !$
たとえば、lessコマンドでファイルを読み取っていて、このファイルを編集する必要があると判断したとします。完全に入力する代わりに、!$
を使用します ショートカット。

上記のオプションは、前のコマンドの最後の引数のみを提供します。すべての引数が必要な場合は、次を使用してください:
new_command !*
5。冗長なエントリの履歴をクリーンアップする
bash履歴の冗長なエントリを支援するHISTCONTROLと呼ばれる環境変数があります。 3つの値のいずれかを割り当てることができます:
- ignorespace:この変数を設定すると、コマンドの前にスペースを入れてコマンドを実行できます。コマンドは通常どおり実行されますが、履歴には含まれません。
- ignoredups:同じコマンドが2つある場合は、連続して実行されます。 、そのうちの1つだけが履歴に記録されます。
- ignoreboth:上記の両方の機能を設定します。
bashシェルを使用するたびに設定されるように、bashrcファイルに変数を設定する必要があります。
bashの履歴にあるコマンドが多すぎますか?オプション-c
でクリアできます 。これにより、bashの現在の履歴がクリアされ、今後からコマンドの追加が開始されます。
history -c

ここで説明したこれらの5つのヒントよりも、bashの履歴には多くのことがあります。追加情報については、historyコマンドのマニュアルページをいつでも参照できます。興味があれば、歴史の組み込みについて学びたいと思うかもしれません。
この記事がお役に立てば幸いです。お気に入りのbash履歴機能がある場合は、コメントで共有してください。