はじめに
この記事では、Bash のコマンドライン操作を、便利なショートカットだけに絞って整理します。
Linux コマンドは覚えてきたのに、入力そのものは毎回カーソルキーや Backspace に頼っている、ということはよくあります。
ただ、Bash の操作はコマンドそのものと同じくらい効きます。
特に次のような場面です。
- 長いコマンドを少しだけ直したい
- 前に打ったコマンドを探したい
- 先頭や末尾にすぐ移動したい
- 単語単位で消したい
このあたりをマウスや矢印キーだけでやると、地味に遅くなります。
ここで紹介する操作の多くは Bash だけでなく、Readline を使うシェルでも使えます。
この記事では、Bash のショートカットを網羅するのではなく、実務でよく使うものだけを扱います。
対象読者は、Linux や Bash を触り始めた初学者から、実務に入りたてでターミナル操作がまだ遅いと感じている人です。
先に結論
まずは次の操作だけ覚えるとかなり楽になります。
-
Ctrl+A: 行頭へ移動 -
Ctrl+E: 行末へ移動 -
Ctrl+U: カーソル前を全部消す -
Ctrl+K: カーソル後を全部消す -
Ctrl+W: 手前の1単語を消す -
Ctrl+C: 実行中のコマンドや入力中の行を中断する -
Ctrl+L: 画面をきれいにする -
Ctrl+R: 履歴検索 -
Tab: 補完
このあたりは派手ではありません。
ただ、毎日使うので、覚えるとかなり差が出ます。
まず覚えるなら Ctrl+A と Ctrl+E
一番最初に覚えるならこの2つです。
-
Ctrl+A: 行頭へ移動 -
Ctrl+E: 行末へ移動
例えば長いコマンドを打っていて、最初の方だけ直したいとします。
docker compose exec app bash
このとき、行頭へ戻るために左矢印を何回も押すより、Ctrl+A のほうが圧倒的に楽です。
逆に末尾へ戻るなら Ctrl+E です。
これはかなり基本ですが、最初に効く操作でもあります。
Ctrl+U と Ctrl+K で前後をまとめて消せる
削除系でまず便利なのは次の2つです。
-
Ctrl+U: カーソルより前を全部消す -
Ctrl+K: カーソルより後を全部消す
例えば次のようなコマンドがあったとします。
kubectl logs -f my-app-pod-1234567890
カーソルが途中にあるとき、手前だけまとめて消したいなら Ctrl+U、後ろだけ消したいなら Ctrl+K が便利です。
Backspace を連打するよりかなり速いです。
特に Ctrl+U は、「この行をやっぱり全部打ち直したい」というときにも便利です。
Ctrl+W は1単語だけ消したいときにかなり使う
全部消すほどではないが、直前の単語だけ消したいことがあります。
そのときは Ctrl+W です。
例えば次のようなコマンドです。
grep -R "ERROR" /var/log/nginx
最後のパスだけ消して別の場所にしたいなら、Ctrl+W で単語単位に消せます。
厳密な単語の区切りは環境によって少し変わります。
ただ、直前のまとまりを消す操作として覚えるとかなり便利です。
これは地味ですが、かなり実用的です。
Ctrl+C は止めたいときにまず使う
これは初心者ほど早めに覚えた方がよい操作です。
Ctrl+C
実行中のコマンドを止めたいときや、入力中の行をやめたいときに使います。
例えば次のような場面です。
-
pingを止めたい - 長く動いているコマンドを中断したい
- 打ちかけのコマンドを全部やめたい
何か変になったときに、まず Ctrl+C で止める、という感覚はかなり大事です。
Ctrl+L は clear より軽く使える
画面がごちゃごちゃしてきたら Ctrl+L が便利です。
これは clear コマンドを打つより軽いです。
- 画面だけきれいにしたい
- でも今の入力行はそのまま残したい
というときに向いています。
ログを見たりコマンドを何本も打ったあと、少し見やすくしたいときにかなり使います。
Ctrl+R は履歴検索で一番便利
Bash のキーボード操作で、一番「世界が変わる」感があるのは Ctrl+R かもしれません。
これは履歴検索です。
例えば前に打った kubectl logs をもう一度使いたいとき、Ctrl+R を押して kubectl や logs の一部を打つと、履歴から候補が出ます。
毎回上矢印を何回も押すよりずっと速いです。
特に次のようなコマンドで便利です。
- 長い
docker composeコマンド -
kubectlコマンド -
grepやfindのように少し長くなりがちなもの - たまにしか使わないが、毎回調べるほどではないもの
まずは「前に打ったコマンドを探すには Ctrl+R」と覚えるだけで十分です。
Tab 補完は思っているより重要
Tab 補完は地味ですが、かなり重要です。
例えば次のような場面です。
- 長いファイル名を補完したい
- ディレクトリ名を最後まで打ちたくない
- コマンド名の候補を出したい
例えば次のように途中まで打って Tab を押します。
cd /var/lo
これで /var/log に補完されることがあります。
補完は単なる入力短縮ではありません。
打ち間違いを減らす効果も大きいです。
特にパス入力ではかなり効きます。
上矢印より Ctrl+R のほうが強い場面が多い
履歴を使うとき、最初は上矢印を使いがちです。
もちろんそれでもよいのですが、履歴が長くなると探すのが大変です。
例えば次のような違いがあります。
- 直前の1〜2件をもう一度使うなら上矢印
- 少し前の長いコマンドを探すなら
Ctrl+R
この使い分けを知っているだけで、履歴操作がかなり楽になります。
history と履歴再実行も知っておくと便利
キーボード操作だけではありませんが、履歴まわりで次の形も便利です。
history
これでコマンド履歴の一覧を見られます。
履歴番号を使って再実行するなら次のような形です。
!123
直前のコマンドをもう一度実行するなら次です。
!!
これは便利ですが、何が再実行されるかを理解しないまま使うと危ないです。
特に rm や本番環境向けのコマンドを履歴再実行する場合は、実行前に必ず内容を確認した方が安全です。
そのため、最初は Ctrl+R を優先して、!! や !123 は補助くらいでよいと思います。
まずは「移動」「削除」「検索」だけで十分
ショートカットは増やし始めるときりがありません。
ただ、最初に本当に効くのは次の3系統です。
- 移動
- 削除
- 履歴検索
つまり次です。
Ctrl+ACtrl+ECtrl+UCtrl+KCtrl+WCtrl+CCtrl+R
このあたりを覚えるだけで、かなり操作感が変わります。
Bash のキーボード操作は、コマンド知識とは別の基礎
ここは強調しておきたいです。
Linux コマンドをたくさん知っていても、入力操作が遅いと毎回少しずつ時間を失います。
逆に、Bash のキーボード操作を少し覚えるだけで、次のようなことが楽になります。
- コマンドの打ち直しが減る
- 長い入力の修正が速くなる
- 履歴の再利用がしやすくなる
- マウスや矢印キーへの依存が減る
つまり、これは便利テクニックというより、コマンドラインを使うための基礎に近いです。
よく使うものだけ覚えるならこのあたりで十分
まずは次のものだけでもかなり足ります。
Ctrl+A
Ctrl+E
Ctrl+U
Ctrl+K
Ctrl+W
Ctrl+C
Ctrl+L
Ctrl+R
Tab
これ以上を最初から増やす必要はありません。
むしろ、少ない数を毎日使えるようにする方が効果が大きいです。
まとめ
Bash のキーボード操作は、コマンドをたくさん覚える前でもかなり効きます。
-
Ctrl+AとCtrl+Eで行頭、行末へすぐ移動する -
Ctrl+UCtrl+KCtrl+Wでまとめて消す -
Ctrl+Rで履歴検索する -
Tabで補完する -
Ctrl+Lで画面を整える
こういう操作は、派手ではありません。
ただ、毎日使うからこそ、覚えるとかなり楽になります。
Linux や Bash に慣れるには、コマンドそのものだけでなく、入力を速く直す操作もあわせて覚えるとかなり楽になります。