端末で実行した古いコマンドを見つけるにはどうすればよいですか?
私はappengineコマンドを使用し、オンラインで再度調査することなく、ローカルコマンド履歴でそれを見つけたいだけです。
History はあなたが探しているものです。
history
を実行して最新の1000個のコマンドのリストを取得するか、次を実行します。
history | grep command_to_search
履歴生成リスト内のパターンを検索するには、例えば:
history | grep apt
apt
関連コマンドを検索するには、grep
がパターンを文字列の両端に固定しないため、ほとんどの場合、ワイルドカードは不要です。
history
リストはから生成されます~/.bash_history
(デフォルトで最後の2000を格納)に格納された最後の1000コマンド(デフォルト)、およびそのようなファイルはいつでも更新されますBashセッションをきれいに終了します。つまり、現在のセッションからのすべてのコマンドは、ターミナルを閉じるまでそのファイルに含まれません。また、シェルプロセスを強制終了した場合も書き込まれません。
したがって、コマンド履歴(最後の2000個のコマンド)は、次のいずれかの方法で~/.bash_history
にもあります。
less ~/.bash_history
または、たとえばgedit ~/.bash_history
.bash_history
ファイルを検索します。~/.bash_history
のオプションを追加または変更することで、history
と~/.bashrc
の両方の動作変更可能は、いくつかの例です。
export HISTCONTROL=ignoreboth:erasedups
を追加するか、既存のHISTCONTROL
行を変更して、重複コマンドを削除します。つまり、echo Hello
の直後にecho Hello
を実行すると、bash_history
には1つだけが表示されます。
HISTSIZE=1000
を変更して、history
で表示されるコマンドの量を増減します
HISTFILESIZE=2000
を変更して、bash_history
に保存されているコマンドの量を増減します。 HISTFILESIZE=-1
を無制限に設定します。
HISTFILE=/path/to/file
を追加して、履歴を別の場所に保存します。
ソースと詳細情報:
最近実行されたコマンドを見つけるには多くの方法があります。
最も簡単なのは ↑ キーを押して、探しているものを見つけるまで、コマンド履歴を1行ずつ繰り返します。
を押すこともできます Ctrl+R いわゆる(reverse-i-search)
モードに入る。
これは、この文字列を含む最後に実行したコマンドで入力を開始するものを自動的に補完する検索プロンプトです。探していたものが表示されたら、を押します Enter 実行する、または Esc コマンドをプロンプトに保持したまま検索プロンプトを終了し、編集できるようにします。結果を破棄して検索を終了するには、ヒット Ctrl+C。
history
Bashビルトインを使用して、履歴から記録されたコマンドの完全なリストを表示できます。
を使用して、特定のパターンに一致する行のリストをフィルタリングできます。 grep
、history | grep 'appengine'
など。
Bashのhistory
組み込みコマンドの詳細については、help history
と入力してください。
Bang-expansionを使用して、文字列を含む最後に実行されたコマンドを直接実行します。これにより、入力した行が履歴の一致する行に置き換えられ、確認なしですぐに実行されるため、注意してください。
単に!string
と入力すると、「string」で始まる最新のコマンドラインに置き換えられます。
「string」で終わる最後のコマンドを実行する場合は、代わりに!?string
と入力します。
または、「string」を含む最後のコマンドラインが必要な場合は、!?string?
と入力します。
man history
と入力すると、履歴の拡張に関する詳細が表示されます。
少し最近使用した場合は、ターミナルを開いてキーボードの上下矢印を使用して最後に使用したコマンドを実行することで、簡単に見つけることができます。