KEYBOARD — キーボードとターミナル入力
ターミナルのショートカット — Bashの行編集と実行中の操作を分ける
Ctrl+A・E・RなどBashの行編集と、Ctrl+C・D・Zの違いを解説。キーが効かないときに、シェル・tmux・アプリを切り分ける方法も紹介します。
この記事の目次
ターミナルで同じCtrlキーを押しても、入力中のシェルと、実行中のアプリでは結果が違います。ショートカットを覚える前に「いま誰がキーを受け取っているか」を確認すると、予想外の終了や中断を避けやすくなります。
以下の行編集は、BashのReadlineで標準のEmacs形式のキーバインドを使う場合の例です。Zsh、Fish、Viモード、IDE内のターミナル、独自設定では異なることがあります。キーの意味はGNU Bashの公式マニュアルを基準にしています。
入力中の行を編集する
| キー | Bashの行編集での役割 | 使う場面 |
|---|---|---|
| Ctrl+A | 行頭へ移動 | コマンド名を直す |
| Ctrl+E | 行末へ移動 | 引数を足す |
| Ctrl+U | カーソルから行頭までを削除 | 入力の前半をやり直す |
| Ctrl+K | カーソルから行末までを削除 | 不要な後半を消す |
| Ctrl+W | 手前の単語を削除 | 引数を直す |
| Ctrl+Y | 削除した文字列を戻す | 消しすぎを戻す |
ここでの「削除」は、入力している文字列への操作です。ファイルそのものを消す操作ではありません。ただし、修正後にEnterを押せばその行が実行されるので、コマンド全体を読んでから確定します。
履歴検索は、確認してから実行する
Ctrl+Rは入力履歴を逆方向に検索するためのキーです。前に使った語を入力して候補を探し、見つかった行の接続先やファイル名を確認します。以前成功したコマンドでも、今いるディレクトリで同じ結果になるとは限りません。
練習するなら、まず自分で入力したpwdなどの無害なコマンドを探してください。履歴には秘密情報や誤って打ったコマンドが残る場合もあります。画面共有やスクリーンショットに出す前に、内容を確認します。
Ctrl+C・D・Zは同じ「終了」ではない
| キー | 典型的な役割 | 注意点 |
|---|---|---|
| Ctrl+C | 実行中の前面プロセスへ割り込み | アプリが独自に処理することもある |
| Ctrl+D | 入力終端として扱われる | 空のシェル入力で終了につながることがある |
| Ctrl+Z | 前面のジョブを一時停止 | 終了したわけではなく、停止したジョブが残る |
Ctrl+Dは万能の終了コマンドではありません。Ctrl+Zで停止したジョブは、対応するシェルではjobsで確認し、fgで前面に戻せます。作業内容を保存する前に、分からないキーを試して抜けようとしないでください。

画像を選ぶと拡大できます。
- 入力中の行では、移動や部分削除の操作を使います。
- 履歴から呼び出した行は、宛先やファイル名を確認してから実行します。
- 実行中の割り込み、入力終端、中断は同じ操作ではありません。
キーが効かないときの切り分け
- 今の画面がシェルの入力待ちか、エディターやCLIアプリの中かを確認する。
- tmux内なら、キーがtmuxに割り当てられていないか確認する。
- 端末アプリやOSが先にショートカットを使っていないか確認する。
- シェルの編集モードや、自分で変更したキーバインドを確認する。
たとえばtmuxの標準では、Ctrl+Bを押してから次のキーを押す形で操作します。Ctrl+Bが単独のアプリ操作として届かない場合、キーボードの故障と決めつける前に、この層を確認します。
小さな練習で覚える
Bashの入力待ちでecho sampleと入力し、まだEnterを押さずにCtrl+AとCtrl+Eで移動します。次にCtrl+Wで末尾の単語を消し、Ctrl+Yで戻します。行がecho sampleになっていることを読んでから実行すると、表示と操作の対応を確認できます。
スマホではCtrlキーの出し方も道具ごとに違います。AndroidのSSHクライアントの確認表を使い、頻繁に使うキーを無理なく送れるかを調べてください。
行を編集する練習と、処理を止める練習を混ぜない
ショートカットの練習では、まず入力待ちの行を扱います。文字が消える、カーソルが移る、削除した文字を戻す、という結果を画面で確認できるためです。実行中の処理で中断キーを試す練習とは分けてください。
たとえば、入力途中の引数を直す場面では、最初にカーソル位置を見ます。行頭や行末へ移動したあと、どの範囲が削除されたかを読み、必要なら戻します。最後にコマンド名と引数を通して確認してから Enter を押します。キーを覚えることより、編集後の行が意図した内容になったことを確認するのが先です。
| 操作の段階 | 確認する対象 |
|---|---|
| 移動する | カーソルが目的の位置にあるか |
| 消す・戻す | 入力行のどの文字が変わったか |
| 実行する | 行全体が意図したコマンドか |
| 結果を見る | エラーの有無と、必要な結果が出たか |
慣れてくると入力行を読まずに実行したくなりますが、履歴から呼び出した行には前の作業のパスが残ります。練習で速く押せるようになることと、今の対象に正しく適用できることは分けて考えます。
効かなかったキーを、再現できる記録にする
キーが期待どおりに働かないときは、「Ctrl が効かない」だけでは原因を探しにくくなります。どのキーを組み合わせ、どの画面で、何を期待し、何が起きたかを書きます。
例として「SSH 接続後、tmux 内のシェル入力待ちで Ctrl+A を押したが、行頭へ移動しなかった」という記録なら、受け取り先と経路がわかります。続いて tmux の外でも同じか、別の入力方法でも同じかを一つずつ比べます。設定を変えた場合は、その内容と戻し方も残します。
また、入力が止まったように見える状態と、処理が終わった状態を同一視しないようにします。画面の表示だけで判断できない場合は、現在動いているアプリの操作案内を確認します。別のアプリで覚えた終了キーを繰り返すより、今の画面で何が入力を受け取っているかを確かめることが、作業を失わずに戻る手掛かりになります。
参考リンク
- GNU Bash:Readline Interaction — 行編集の基本。
- GNU Bash:Bindable Readline Commands — 移動・削除・履歴検索などの定義。
- GNU Bash:Job Control Basics — 割り込み、一時停止、ジョブ管理。
- tmux公式:Getting Started — プレフィックスキーと操作の基本。