about_History
簡単な説明
コマンド履歴でコマンドを取得および実行する方法について説明します。
長い説明
コマンド プロンプトでコマンドを入力すると、コマンドがコマンド履歴に保存されます。 履歴のコマンドは、作業の記録として使用できます。 また、コマンド履歴からコマンドを呼び出して実行できます。
PowerShell には、組み込みの履歴と PSReadLine モジュールによって管理される履歴という 2 つの異なる履歴プロバイダーがあります。 履歴は個別に管理されますが、両方の履歴は PSReadLine が読み込まれるセッションで使用できます。
PSReadLine 履歴の使用
PSReadLine の履歴では、すべての PowerShell セッションで使用されるコマンドが追跡されます。
履歴は、ホストごとに中央ファイルに書き込まれます。 その履歴ファイルは、すべてのセッションで使用でき、過去のすべての履歴が含まれています。 セッションが終了しても履歴は削除されません。 また、その履歴はコマンドレットで *-History
管理できません。 詳細については、「about_PSReadLine」を参照してください。
組み込みのセッション履歴の使用
組み込みの履歴では、現在のセッションで使用されているコマンドのみが追跡されます。 履歴は他のセッションでは使用できません。セッションが終了すると削除されます。
履歴コマンドレット
PowerShell には、コマンド履歴を管理するコマンドレットのセットがあります。
コマンドレット | エイリアス | 説明 |
---|---|---|
Get-History |
h |
コマンド履歴を取得します。 |
Invoke-History |
r |
コマンド履歴でコマンドを実行します。 |
Add-History |
コマンド履歴にコマンドを追加します。 | |
Clear-History |
clhy |
コマンド履歴からコマンドを削除します。 |
履歴を管理するためのキーボード ショートカット
PowerShell コンソールでは、次のショートカットを使用してコマンド履歴を管理できます。
- UpArrow - 前のコマンドを表示します。
- DownArrow - 次のコマンドを表示します。
- F7 - コマンド履歴を表示します。
- ESC - 履歴を非表示にします。
- F8 - コマンドを検索します。 1 つ以上の文字を入力し、 F8 キーを押します。 次のインスタンスをもう一度 F8 キーを押します。
- F9 - 履歴 ID でコマンドを検索します。 履歴 ID を入力し、 F9 キーを押します。 F7 キーを押して ID を見つけます。
- #
<string>
Tab - 履歴*<string>*
を検索し、最新の一致を返します。 Tab キーを繰り返し押すと、履歴内の一致する項目を順番に切り替えます。
Note
これらのキー バインドは、コンソール ホスト アプリケーションによって実装されます。 Visual Studio Code やWindows ターミナルなどの他のアプリケーションでは、異なるキー バインドを使用できます。 バインドは PSReadLine モジュールによってオーバーライドできます。 PowerShell セッションを開始すると、PSReadLine が自動的に読み込まれます。 PSReadLine が読み込まれた場合、 F7 と F9 はどの関数にもバインドされません。 PSReadLine には同等の機能はありません。 詳細については、「about_PSReadLine」を参照してください。
MaximumHistoryCount
ユーザー設定変数は $MaximumHistoryCount
、PowerShell がコマンド履歴に保存するコマンドの最大数を決定します。 既定値は 4096 です。
たとえば、次のコマンドを実行すると、 コマンドが $MaximumHistoryCount
100 に下げられます。
$MaximumHistoryCount = 100
設定を適用するには、PowerShell を再起動します。
すべての PowerShell セッションの新しい変数値を保存するには、代入ステートメントを PowerShell プロファイルに追加します。 プロファイルの詳細については、「about_Profiles」を参照してください。
基本設定変数の $MaximumHistoryCount
詳細については、「 about_Preference_Variables」を参照してください。
履歴内のコマンドの順序
コマンドは、コマンドの入力時ではなく、コマンドの実行が完了したときに履歴に追加されます。 コマンドの完了に時間がかかる場合、またはコマンドが入れ子になったプロンプトで実行されている場合は、コマンドが履歴の順序がずれているように見える場合があります。 入れ子になったプロンプトで実行されているコマンドは、プロンプト レベルを終了した場合にのみ完了します。