Readline ショートカット入門 - Ctrl+R / Ctrl+A でターミナル操作高速化
ターミナル操作、もっと速くできる
コマンドを打ち間違えて、矢印キーで延々とカーソルを戻す。さっき打った長いコマンドをもう一度入力する。——こういう「地味に遅い操作」は、ショートカット(キーバインド)を覚えるだけで一気に解決する。
この記事では、ターミナルでの入力を高速化する Readline ショートカットを、ライナとライニー先輩の会話でやさしく整理していく。bash でも zsh でも、ほぼ同じキーが使えるよ。
この記事でわかること
- ショートカットの正体が「Readline」というライブラリであること
- カーソルを一瞬で行頭・行末へ飛ばす方法(Ctrl+A / Ctrl+E)
- 入力ミスをまとめて消す行編集(Ctrl+U / Ctrl+K / Ctrl+W)
- 過去のコマンドを検索して再利用する Ctrl+R
- 今日から使える厳選ショートカット早見表
1. そもそもショートカットの正体は?
結論: Ctrl+A などのショートカットは bash 固有ではなく、「Readline」という行編集ライブラリの機能。だから多くのシェルで共通して使える。
Readline は「行を編集する係」
ターミナルに表示される1行のコマンドを、入力・修正・履歴呼び出しまで面倒みているのが Readline。標準では Emacs というエディタ風のキー割り当てになっている(だから Ctrl 系が多い)。
2. カーソルを一瞬で行頭・行末へ
結論:
Ctrl+Aで行頭、Ctrl+Eで行末へ即移動。長いコマンドの先頭を直すとき、矢印キー連打が不要になる。
sudo を付け忘れた、なんてとき、Ctrl+A で一瞬で行頭に飛べる。echo これはとても長いコマンドの例です
| キー | 動作 | 覚え方 |
|---|---|---|
Ctrl+A |
行頭へ移動 | Ahead(先頭) |
Ctrl+E |
行末へ移動 | End(末尾) |
Ctrl+F |
1文字右へ | Forward |
Ctrl+B |
1文字左へ | Backward |
Alt+F |
1単語右へ | Forward word |
Alt+B |
1単語左へ | Backward word |
1文字ずつなら矢印キーでもいいけれど、単語単位で飛べる Alt+F / Alt+B を覚えると、パスやオプションの修正がぐっと速くなる。
3. 入力ミスをまとめて消すには?
結論:
Ctrl+Uでカーソルより前を全削除、Ctrl+Kで後ろを全削除、Ctrl+Wで直前の単語を削除。Backspace 連打を卒業できる。
| キー | 動作 |
|---|---|
Ctrl+U |
カーソルより前をすべて削除 |
Ctrl+K |
カーソルより後ろをすべて削除 |
Ctrl+W |
カーソル直前の単語を削除 |
Ctrl+Y |
直前に削除した内容を貼り付け |
消す → 貼る はセット
Ctrl+U / Ctrl+K / Ctrl+W で消した内容は「キルリング」という場所に一時保存される。Ctrl+Y(Yank=引き出す)でそのまま貼り付け直せる。間違えて消しても慌てなくて大丈夫。
4. さっき打ったコマンドをもう一度使うには?
結論:
Ctrl+Rで履歴を逆順に検索できる。一部のキーワードを打つだけで、過去の長いコマンドを呼び戻せる。
docker コマンド、もう一度使いたいんですけど、また全部打つしかないですか?Ctrl+R を押して、コマンドの一部、例えば docker って打ってみて。(reverse-i-search)`docker': docker compose up -d --build
Ctrl+R の操作の流れ
Ctrl+Rを押す((reverse-i-search)表示になる)- コマンドの一部を入力する(部分一致で候補が出る)
- もう一度
Ctrl+R:さらに古い候補へ Enter:そのまま実行 /Ctrl+G:キャンセル
上下の矢印キーや Ctrl+P(Previous)/ Ctrl+N(Next)でも履歴を1つずつたどれる。直前のコマンドをちょっと直したいだけなら、こちらが手早い。
5. 画面と操作をリセットしたいときは?
結論:
Ctrl+Lで画面クリア、Ctrl+Cで実行中コマンドの中断、Ctrl+Dで入力終了。混乱したら使える「逃げ道」キー。
Ctrl+L で画面がスッと綺麗になるよ。clear コマンドと同じだけど、打つより速い。それと、コマンドが終わらなくて固まったように見えるときは Ctrl+C で中断できる。Ctrl+D は「入力の終わり」を伝えるキー。プロンプトで何も入力せずに押すとログアウト(シェル終了)になる。cat で入力待ちになったときに終わらせる、なんて使い方もするよ。| キー | 動作 |
|---|---|
Ctrl+L |
画面をクリア(clear 相当) |
Ctrl+C |
実行中のコマンドを中断(SIGINT) |
Ctrl+D |
入力の終わり / 空のプロンプトでシェル終了 |
Ctrl+C と Ctrl+D は役割が違う。Ctrl+C は「今動いているものを止める」、Ctrl+D は「もう入力しないと伝える」。固まったように見えたらまず Ctrl+C を試すのが基本。
6. まず覚える厳選ショートカット
結論: いきなり全部は不要。「行頭/行末移動・行削除・履歴検索」の5つだけ先に体に入れると、操作スピードが体感で変わる。
| 優先 | キー | 動作 |
|---|---|---|
| 1 | Ctrl+A |
行頭へ移動 |
| 2 | Ctrl+E |
行末へ移動 |
| 3 | Ctrl+U |
カーソルより前を全削除 |
| 4 | Ctrl+R |
コマンド履歴を逆順検索 |
| 5 | Ctrl+L |
画面をクリア |
覚えたショートカットは、実際にコマンドを打つ場で使ってこそ定着する。ターミナルの使い方 のページで、手を動かしながら試してみよう。
まとめ
- Ctrl 系ショートカットの正体は Readline ライブラリ。bash でも zsh でも共通して使える
Ctrl+A/Ctrl+Eで行頭・行末へ一瞬移動できるCtrl+U/Ctrl+K/Ctrl+Wで入力をまとめて消し、Ctrl+Yで貼り戻せるCtrl+Rで過去のコマンドをキーワード検索して再利用できるCtrl+L(画面クリア)・Ctrl+C(中断)・Ctrl+D(入力終了)は覚えておくと安心- まずは5つだけ。使って慣れるのが上達の近道