はじめに
今回はbashでCTRL+?のキーで出来る事を書いてみました。
(多分)bashでCTR+?で出来る事を全部網羅はしていません。
良く使うような事や覚えておくといいと思われる事について書きました。
動作環境
執筆時点での情報ですが、以下の環境で動作確認を行なっています。
Ubuntu 24.04.1 LTS
bash 5.2.21
1. カーソル移動
| ショートカット | 機能 | 使用例 |
|---|---|---|
| Ctrl + a | 行頭へ移動 | 長いコマンドの先頭にsudoを追加する |
| Ctrl + e | 行末へ移動 | コマンドの最後に--helpを追加する |
| Ctrl + b | 1文字前へ(←と同じ) | タイプミスの修正時に戻る |
| Ctrl + f | 1文字後へ(→と同じ) | タイプミスの修正時に進める |
実践例:
# 例1: コマンドの先頭にsudoを追加
apt-get update
Ctrl + a → カーソルを先頭に移動
sudo apt-get update
# 例2: コマンドの行末にgrepを追加
find . -name "*.txt"
Ctrl + e → カーソルを行末に移動
find . -name "*.txt" | grep "keyword"
2. 編集
| ショートカット | 機能 | 使用例 |
|---|---|---|
| Ctrl + u | カーソルから行頭まで削除 | 間違ったコマンドを素早く書き直し |
| Ctrl + k | カーソルから行末まで削除 | コマンドの後半を変更 |
| Ctrl + w | カーソル前の単語を削除 | オプションの打ち間違いを修正 |
| Ctrl + y | 最後に削除したテキストを貼り付け | 削除した内容を別の場所に移動 |
実践例:
# 例1: コマンドの再利用
git push origin master
Ctrl + u → 全体を削除して保持
git checkout -b feature
Ctrl + y → 保持していた'git push origin master'を貼り付け
# 例2: オプションの修正
docker run --nome mycontainer nginx
Ctrl + w, Ctrl + w → '--nome mycontainer'を削除
--name mycontainer → 正しいオプションを入力
3. プロセス制御
| ショートカット | 機能 | 使用例 |
|---|---|---|
| Ctrl + c | プロセスを終了 | 無限ループや長い処理の停止 |
| Ctrl + z | プロセスをバックグラウンドへ | エディタを一時的に停止(保留) |
| Ctrl + d | EOFを送信 | シェルや入力の終了 |
実践例:
# 例1: デーモンプロセスの監視
while true; do ps -efa | grep mysqld | grep -v grep; done
Ctrl + c → 実行を停止
# 例2: 複数のプロセスの切り替え
vi document.txt
Ctrl + z → viを一時停止
vi config.ini
Ctrl + z → nanoを一時停止
jobs → バックグラウンドジョブを確認
fg %1 → viに戻る
# 例3: 一時ファイルの作成
$ cat > file.txt
これは1行目です
これは2行目です
CTRL+ d → 入力終了
4. 履歴操作
| ショートカット | 機能 | 使用例 |
|---|---|---|
| Ctrl + r | 履歴の検索 | 過去のコマンドを呼び出し |
| Ctrl + g | 履歴検索モードを終了 | 検索を中止して新しいコマンドを入力 |
| Ctrl + p | 前のコマンド | 直前のコマンドを少し修正して再実行 |
| Ctrl + n | 次のコマンド | 履歴を戻りすぎた時に進める |
実践例:
# 例1: 複雑なコマンドの再利用
Ctrl + r → 検索モード開始
入力: 'docker' →
docker run -p 8080:80 -v $(pwd):/app -e ENV=prod --name myapp nginx
Enter → コマンドを実行
# 例2: 似たコマンドの連続実行
git add src/components/Header.js
git add src/components/Footer.js
Ctrl + p → 前のコマンドを呼び出してFooterに変えて実行
5. 画面制御
| ショートカット | 機能 | 使用例 |
|---|---|---|
| Ctrl + s | 画面出力を停止 | ログ出力の一時停止 |
| Ctrl + q | 画面出力を再開 | 停止したログ出力の再開 |
| Ctrl + l | 画面クリア | 画面を整理してコマンドを見やすく |
実践例:
# 例1: ログ解析
tail -f /var/log/syslog
Ctrl + s → 大量のログ出力を一時停止して特定のエントリを確認
Ctrl + q → ログ出力を再開
# 例2: 長時間の処理経過確認
find / -name "*.log" 2>/dev/null
Ctrl + s → 出力を一時停止して特定のファイルパスを確認
Ctrl + q → 検索を続行
おわりに
これらの機能は、慣れないうちは覚えるのに時間がかかると思いますが、身につければ作業効率が向上するのではないかと思います。
是非、作業時はこれらの機能を使ってみてください。