LinuxまたはmacOS端末であなたのbash履歴を使用する方法
bashシェルは、ほとんどのLinuxディストリビューションに含まれ、macOSに含まれ、Windows 10にインストール可能な標準の端末環境です。入力したコマンドを記憶し、それらを履歴ファイルに保存します。あなたはおそらくbashの歴史のいくつかの基本を知っていますが、それはあなたが理解するよりもずっと強力です。.
キーボードショートカット
bashの履歴をスクロールするには、bashの便利なキーボードショートカットをいくつか使用できます。これらのショートカットを押すと、以前に使用したコマンドがプロンプトに表示されます。.
- 上矢印 または Ctrl + P:あなたの歴史の前のコマンドに行きなさいキーを複数回押すと、使用したコマンドを逆方向に進むことができます。.
- 下矢印 または Ctrl + N:あなたの歴史の中の次のコマンドに進んでください。キーを複数回押すと、使用したコマンドを順に確認できます。.
- Alt + R:現在の行で編集した場合は、履歴から取得したコマンドへの変更を元に戻します.
Bashには、1つずつスクロールするのではなく、以前に実行したコマンドを検索するために使用できる特別な「呼び戻し」モードもあります。.
- Ctrl + R:指定した文字に一致する最後のコマンドを思い出してください。このショートカットを押して入力を開始すると、bashの履歴からコマンドが検索されます。.
- Ctrl + O:Ctrl + Rで見つけたコマンドを実行する.
- Ctrl + G:コマンドを実行せずに履歴検索モードを終了する.
あなたのBashの履歴を見る
単一のコマンドを実行することで、bashの履歴全体を画面に印刷することができます。
歴史
あなたのbashの履歴にあるすべてのコマンドのリストが、それぞれの左側にある番号とともに表示されます。その隣に「1」が付いているコマンドがあなたのbash履歴の中で最も古いコマンドであり、最も高い番号を持っているコマンドが最も新しいコマンドです。.
あなたはその出力を使って好きなことを何でもすることができます。例えば、あなたはそれをにパイプすることができます grep
コマンド履歴を検索するコマンド.
歴史| grep your_search
それをにパイプすることもできます 尾
最近実行したコマンドのごく一部のみを表示するためのコマンド。たとえば、次のコマンドは履歴の最後の5つのエントリを表示します。.
歴史|尾-5
履歴からコマンドを実行する
Bashは以前のコマンドをすばやく「展開」することも、展開して変更することもできます。この機能は「履歴拡張」として知られており、「強打」として知られている感嘆符を使用します。他のコマンドを実行するのと同じように、プロンプトでそれらを入力してEnterキーを押すだけで実行できます。.
履歴から特定のコマンドを番号で実行するには、次のコマンドを使用します。
!#
たとえば、あなたのバッシュ履歴から12番目のコマンドを実行したいとしましょう。これを実行すると、コマンドの左側に「12」が付きます。 歴史
コマンド。次のように入力します.
!12年
最後に実行したコマンドを再実行するには、次のように入力します。これは、上矢印を1回押して前のコマンドを表示してからEnterを押すのと同じ効果があります。.
!!
特定の行数だけ前のコマンドを参照することもできます。例えば, !-2
最後に実行した最後から2番目のコマンドを実行します。. !!
と同じ意味 !-1
.
この展開は行のどこでも機能します。前後に好きなものを追加できます !!
またはこのセクションの他の表現たとえば、次のコマンドを入力して、最後に実行したコマンドを再実行できます。 スード
, root権限を与えます。追加を忘れた場合、これは特に便利です。 スード
コマンドを実行する前に.
スード !!
あるいは、たとえば、前のコマンドを再実行し、その出力をgrepにパイプしてテキストを検索することもできます。.
!! | grepテキスト
履歴内のコマンドを検索して実行するには、次のように入力します。これにより、指定したテキストと一致する最後のコマンドが実行されます。
!テキスト
あなたが最近始めたコマンドを実行したのであれば、 ping
, あなたはそれを検索するために次のコマンドを実行することができます。これはあなたの履歴を逆方向に検索し、“で始まる最新のコマンドを見つけます。パイ
「そしてすぐに実行してください。
!パイ
あなたが追加することができます :P
上記の展開とbashのいずれかを実行することなく端末にコマンドを表示します。実行前に正しいコマンドを選択していることを確認したい場合に便利です。.
!12:p
!!:P
!テキスト:p
あなたの歴史からの議論を再利用
Bashでは、新しいコマンドを実行することもできますが、履歴内の前のコマンドの引数を使用することができます。これは、長く複雑な引数を再入力することなく素早く再利用するのに役立ちます。.
コマンド!
例えば、あなたがコマンドを実行したとしましょう。 touch / home / chris / some_long_file_name_you_dont_want_to_type_again
. 今すぐコマンドを実行します。 nano / home / chris / some_long_file_name_you_dont_want_to_type_again
. 最初から全部を入力するのではなく、実行することができます。
nano!$
の !$
前回のコマンドの最後の引数をbashが自動的に入力するようにします。.
これは最後の議論を埋めるだけです。だから、あなたが走れば ping google.com -c 4
そして走る ping!$
, これは「ping 4
「.
この状況を修正するには、次のトリックを使用して、最後の引数ではなく、行の最初の引数を拡張できます。
コマンド!
あなたが走ったのであれば ping google.com -c 4
そして走った ping!^
, bashはこれを「ping google.com」
.
単一の引数ではなく、前のコマンドで使用されたすべての引数を埋めるには、次のようにします。
コマンド!*
あなたが走ったのであれば ping!*
代わりに、bashは前のコマンドで使用したすべての引数を自動的に埋めます。.
履歴からコマンドを実行して引数を取得するのに使用するのと同じトリックを使用できます。次のフォームを使う.
コマンド!abc:#
たとえば、次のコマンドを実行しました sudoのホスト名
早く。次のコマンドを実行すると、bashは履歴を逆方向に検索して、入力した文字で始まる最後のコマンドを見つけ、指定した引数を入力します。だから、走れば エコー!su:2
, bashは "で始まる最後のコマンドを探すために検索します。す
そして2番目の引数、つまり「ウブントゥ
「.
他のトリックはあなたが期待するように働く。たとえば、ワイルドカードとして知られているアスタリスクと番号を取り替えることはbashがコマンドからのすべての引数を記入するようにします:
コマンド!abc:*
前のコマンドを再実行して変更する
Bashでは、前のコマンドを再実行して変更する必要があるものを指定することもできます。これはコマンドのタイプミスを修正するのに役立ちます。たとえば、次のコマンドは前のコマンドを再実行し、テキスト“を置き換えます。abc
その中に「xyz
「.
^ abc ^ xyz
たとえば、誤って実行した場合 ping gogle.com
, あなたはその後実行することができます ^ゴッグ^グーグル
そしてbashはコマンドを実行します ping google.com
代わりに.
あなたの歴史が保存されている場所、およびそれをクリアする方法
bashシェルはあなたが実行したコマンドの履歴をあなたのユーザーアカウントの履歴ファイルのデフォルトで〜/ .bash_historyに保存します。たとえば、ユーザー名がbobの場合、このファイルは/home/bob/.bash_historyにあります。.
あなたの履歴はファイルに保存されているので、それはセッション間で持続します。いくつかのコマンドを実行し、サインアウトし、次の日に戻っても、それらのコマンドは履歴ファイルに表示され、使用できるようになります。各ユーザーアカウントには、個別のコマンド履歴を含む独自の履歴ファイルがあります。.
あなたのbashの履歴をクリアするためには、次のコマンドを実行することができます。これにより、ユーザーアカウントの.bash_historyファイルの内容が消去されます。
履歴-c
Bashはデフォルトでは限られた数のコマンドしか覚えていないため、履歴ファイルが大きくなりすぎるのを防ぎます。 bashが覚えている履歴エントリの数は、 HISTSIZE
変数。デフォルトは通常500または1000エントリです。あなたのシステムのbash履歴のサイズを見るために次のコマンドを実行することができます。.
echo $ HISTSIZE
履歴をゼロに設定するには、次のコマンドを実行します。.
HISTSIZE = 0
現在のセッションでは、bashはあなたが以下のようなコマンドを実行しない限り履歴エントリを保存しません。 HISTSIZE = 1000
特定の数のエントリに戻す.
スペースと重複を無視する方法
Bashを設定すると、スペースで始まる履歴エントリを無視できます。 ヒストコントロール
に可変 無視する.
HISTCONTROL = ignorespace
bashシェルでコマンドを実行する前にコマンドの前にスペースを入力すると、コマンドは正常に実行されますが、この変数を有効にしていると履歴に表示されません。これにより、履歴を少しきれいにして、履歴に表示されずにコマンドを実行することを選択できます。.
Bashでは、履歴を乱す可能性のある重複したコマンドを無視することもできます。そうするには、 ヒストコントロール
に 無視する.
HISTCONTROL =無視する
両方を使用する 無視する
そして 無視する
機能は、 ヒストコントロール
に可変 無視する.
HISTCONTROL = ignoreboth
設定したbash変数は現在のセッションの間だけ持続することに注意してください。必要に応じて、開始するすべてのbashセッションでこれらの値を自動的に設定するには、ユーザーアカウントの.bashrcファイルにこれらを追加する必要があります。.
bashシェルは、これら以外にもたくさんのオプションがある複雑なツールです。公式のbashマニュアルのBash History BuiltinsとHistory Expansionのセクションを参照してください。.