目次
概要
この記事では、Bash で使用できるショートカットの基本と、それらを使用して作業効率を向上させる方法について説明します。 キーボードの特定のキーやキーの組み合わせを使用して、コマンドの編集やナビゲーションを迅速に行えます。
カーソル移動のショートカット
以下は、カーソル移動に関するショートカットです。
キー | コマンド | 説明 |
---|---|---|
Ctrl + A | beginning-of-line | 行の先頭に移動します。 |
Ctrl + E | end-of-line | 行の末尾に移動します。 |
Ctrl + F | forward-char | 1 文字後に移動します。 |
Ctrl + B | backward-char | 1 文字前に移動します。 |
Alt + F | forward-word | 現在または次の単語の末尾に移動します。 |
Alt + B | backward-word | 現在または前の単語の先頭に移動します。 |
Ctrl + L | clear-screen | 画面をクリアし、現在の行を画面の先頭に表示します。 |
ターミナル制御ショートカット
以下は、画面クリアや出力の一時停止・再開に関するショートカットです。
キー | コマンド | 説明 |
---|---|---|
Ctrl + L | clear-screen | 画面をクリアします。 |
Ctrl + S | stop-output | 出力を一時停止します。 |
Ctrl + Q | resume-output | 出力を再開します。 |
履歴の検索
以下は履歴に関するショートカットです。
キー | コマンド | 説明 |
---|---|---|
Ctrl + P / ↑ | previous-history | 履歴リストから前のコマンドを取り出します。 |
Ctrl + N / ↓ | next-history | 履歴リストから次のコマンドを取り出します。 |
Ctrl + R | reverse-search-history | 履歴を末尾から逆方向にインクリメンタル検索します。 |
Ctrl + S | forward-search-history | 履歴を先頭から順方向にインクリメンタル検索します。 |
Ctrl + G | abort an incremental search | 履歴検索モードを終了 |
Ctrl + R
: 逆方向検索 (Reverse Search)
Ctrl + R
は、履歴からコマンドを逆方向にインクリメンタル検索するためのショートカットです。
インクリメンタル検索とは、文字を入力するたびに即座に一致するコマンドが表示される検索方法です。
使用方法:
Ctrl + R
を押すと、プロンプトに(reverse-i-search)
が表示されます。- 検索したい文字列を入力します。入力するたびにシェル履歴から一致するコマンドが表示されます。
- 一致するコマンドが見つかったら、
Enter
を押してそのコマンドを実行するか、Ctrl + J
を押してコマンドラインに挿入します。 Ctrl + R
を再度押すことで、さらに過去の一致するコマンドを検索できます。- 検索をキャンセルするには、
Ctrl + G
を押します。
Ctrl + S
: 順方向検索 (Forward Search)
Ctrl + S
は、シェルの履歴からコマンドを順方向にインクリメンタル検索するためのショートカットです。
使用方法:
Ctrl + S
を押すと、プロンプトに(i-search)
が表示されます。- 検索したい文字列を入力します。入力するたびにシェル履歴から一致するコマンドが表示されます。
- 一致するコマンドが見つかったら、
Enter
を押してそのコマンドを実行するか、Ctrl + J
を押してコマンドラインに挿入します。 Ctrl + S
を再度押すことで、さらに先の一致するコマンドを検索できます。- 検索をキャンセルするには、
Ctrl + G
を押します。
注意点
一部のターミナルエミュレータでは、Ctrl + S
がフロー制御 (出力の一時停止) に割り当てられている場合があります。
この場合、Ctrl + S
を使用する前に以下のコマンドを実行してフロー制御を無効にする必要があります。
stty -ixon
これにより、Ctrl + S
が順方向検索として機能するようになります。~/.bashrc
に記載することで毎回の入力を省略できます。
編集
以下はコマンドの編集に関するショートカットです。
キー | コマンド | 説明 |
---|---|---|
Ctrl + T | transpose-chars | カーソル位置の文字と 1 つ前の文字を入れ替える |
Alt + T | transpose-words | カーソル位置の単語と 1 つ前の単語を入れ替える |
Alt + U | upcase-word | カーソル位置から現在の単語の末尾までを大文字にする |
Alt + L | downcase-word | カーソル位置から現在の単語の末尾までを小文字にする |
Alt + C | capitalize-word | カーソル位置から現在の単語の末尾までをキャピタライズする (先頭文字を大文字にし、残りを小文字にする) |
文字の削除と挿入
以下は文字の削除、挿入に関するショートカットです。
キー | コマンド | 説明 |
---|---|---|
Ctrl + D | delete-char | カーソル位置の文字を削除します。 |
Ctrl + H / Backspace | backward-delete-char | カーソル位置の前の文字を削除します。 |
Ctrl + K | kill-line | カーソル位置から行の末尾までの文字を削除します。 |
Ctrl + U | unix-line-discard | カーソル位置から行の先頭までの文字を削除します。 |
Alt + D | kill-word | カーソル位置から現在の単語の末尾まで、または次の単語の末尾までの文字を削除します。 |
Alt + Backspace | backward-kill-word | カーソル位置から現在の単語の先頭までの文字を削除します。 |
Ctrl + W | unix-word-rubout | カーソル位置から直前の空白までの単語を削除します。 |
Ctrl + D: カーソル位置の文字を削除
# 例: "hello" という文字列があり、カーソルが "e" にある場合
h▌ello
# Ctrl + D を押すと
h▌llo
Backspace: カーソル位置の前の文字を削除
#
# 例: "hello" という文字列があり、カーソルが "o" の後ろにある場合
hello▌
# Backspace を押すと
hell▌
Ctrl + K: カーソル位置から行の末尾までの文字を削除
# 例: "hello world" という文字列があり、カーソルが "w" の前にある場合
hello ▌world
# Ctrl + K を押すと
hello ▌
Ctrl + U: カーソル位置から行の先頭までの文字を削除
# 例: "hello world" という文字列があり、カーソルが "w" の前にある場合
hello ▌world
# Ctrl + U を押すと
▌world
Alt + D: カーソル位置から現在の単語の末尾までの文字を削除
# 例: "hello world" という文字列があり、カーソルが "h" の前にある場合
▌hello world
# Alt + D を押すと
▌ world
Alt + Backspace: カーソル位置から現在の単語の先頭までの文字を削除
# 例: "hello world" という文字列があり、カーソルが "w" の後ろにある場合
hello w▌orld
# Alt + Backspace を押すと
world ▌orld
Ctrl + W: カーソル位置から直前の空白までの単語を削除
# 例: "hello world" という文字列があり、カーソルが "d" の後ろにある場合
hello world▌
# Ctrl + W を押すと
hello ▌
プロセス制御ショートカット
Ctrl + C
: 実行中のコマンドを強制終了します。Ctrl + Z
: 実行中のコマンドを一時停止し、バックグラウンドに移動します。Ctrl + D
: シェルを終了します(exit
と同じ効果)。
コマンドの置換と再実行
!!
: 最後に実行したコマンドを再実行します。!{文字列}
: コマンド履歴から、指定した文字列で始まる最後のコマンドを再実行します。^<old>^<new>
: 最後に実行したコマンドのold
をnew
に置換して再実行します。
コメント