対話型シェルは、入力したコマンドの記録を保持できます。このレッスンでは Bash を扱い、history 組み込みコマンドで記録を表示、管理します。ほかのシェルでは、ショートカット、ファイル、設定が異なる場合があります。
コマンドライン · レッスン 9
history コマンド
Bash でコマンド履歴を確認、検索、再利用、管理する方法を学びます。
Bash の履歴を表示する
history を実行して現在の履歴一覧を表示します。
$ history
101 pwd
102 ls -la
103 cat notes.txt
各行には履歴番号とコマンドが含まれます。
現在の番号付き履歴一覧を表示する Bash コマンドはどれですか?
以前のコマンドを再利用する
Bash には、コマンドを呼び出す、またはただちに実行するためのショートカットがあります。
- 上矢印:以前のコマンドを呼び出し、確認または編集する
- **
!!**:直近のコマンドへ展開して実行する - 番号で実行:
!102で履歴番号 102 のコマンドを実行する - 接頭辞で実行:
!catでcatから始まる直近のコマンドを実行する
! で始まる履歴展開は、Enter を押すとすぐにコマンドを実行することがあります。特に権限を高める場合や重要なファイルを操作する前は、少しでも疑問があれば一致結果を先に確認してください。
直近に実行したコマンドを繰り返す Bash の履歴展開はどれですか?
履歴を対話的に検索する
Ctrl+R を押して逆方向のインクリメンタル検索を始め、探すコマンドの一部を入力します。もう一度 Ctrl+R を押すと、さらに古い一致へ移動します。
Enter を押すと表示中の一致を実行します。先に確認または編集する場合は、矢印キーを使ってコマンドを編集行へ置きます。
以前の Bash コマンドの一部を覚えており、対話的に探したい場合、最初に何を押しますか?
履歴一覧を管理する
history 組み込みコマンドは、現在の一覧を変更または保存できます。
history -c:現在のメモリ内履歴一覧を消去するhistory -w:現在の一覧を、通常は~/.bash_historyである設定済み履歴ファイルへ書き込むhistory -d <offset>:指定した履歴位置のエントリを削除する
例を示します。
$ history -d 101
$ history -w
メモリ内の一覧を消去しても、古いコマンドがすべてのファイル、バックアップ、ほかの動作中シェルから消えたとは限りません。履歴の動作は Bash の設定と、セッションがファイルを読み書きするタイミングにも依存します。
現在の Bash 履歴一覧を設定済みの履歴ファイルへ書き込むコマンドはどれですか?
画面の消去と名前の補完
見えている端末領域を新しくしたい場合は clear を使います。
$ clear
Bash の履歴一覧は消去されません。端末によっては、以前の表示内容がスクロールバックに残ることもあります。
再入力を減らすには Tab 補完も使えます。コマンド、ファイル名、ディレクトリ名を入力し始めて Tab を押します。一意に決まれば Bash が補完し、複数候補があれば候補を表示することがあります。
コマンドラインは履歴へ保存されることがあるため、より安全な入力方法が利用できる場合、パスワード、トークン、そのほかの秘密情報をコマンドへ直接書かないでください。
メモリ内のコマンド履歴を削除せず、見えている端末を更新したい場合、どのコマンドを実行しますか?
レッスン完了
history コマンド を完了しました
これで履歴を意図的に管理しながら、Bash コマンドを見つけて再利用できるようになりました。
現在の番号付き履歴一覧を表示する。
以前のコマンドを注意して呼び出す、または展開する。
Ctrl+Rで履歴を対話的に検索する。履歴エントリを削除、消去、書き込みする。
コマンド履歴と端末表示を区別する。