(macOS)ターミナルでよく使うショートカット一覧

macOSのターミナルアプリでよく使う便利なショートカットの一覧です。インクリメンタル検索によるコマンド履歴の検索・操作やブックマーク機能などについても説明しています。カーソル移動やコマンド操作の作業効率やスピードを上げたい方は、参考にしてみてください。

環境

最終更新日:2022/8/22

■開発環境やバージョン情報です。
パソコン:MacBook Pro (Retina, 15-inch, Late 2013)
OS:macOS Big Sur(バージョン11.0.1)
シェル:GNU bash, version 3.2.57

ターミナルで使っているシェルとbashのバージョンの確認方法です。

$ echo "$SHELL"
/bin/bash
$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin20)

ターミナルアプリとは?

macOSのターミナルアプリ
ターミナルアプリは、macOSに標準で付いているUNIXベースのCLIツールです。CLIはcharacter user interfaceの略称で、ターミナル上で文字列のコマンドを入力して実行する事でパソコンを操作する事ができます。

ターミナルアプリを使う場合、基本的にキーボード操作になるのですが、ショートカット機能を使用する事で、より効率よくターミナルを使いこなす事が可能になります。

という事でターミナルを使用する上で、便利なショートカットキー操作の一覧を書いていますので、ターミナルを使い始めた方、ターミナル操作の作業効率をアップしたい方は参考にしてみてください。

ターミナルでよく使う便利なショートカットの一覧

macのターミナルアプリのキー操作でよく使う便利なショートカット(キーバインド)の一覧です。

マウスや方向キー(カーソルキー)やdeleteキーを使う代わりに下に書いたショートカットキーを使う事で、慣れてしまえばカーソルやコマンド操作の効率が良くなりスピードも速くなりますので、是非活用してみてください。
(一部便利な操作については、方向キーやマウス操作について書いています。)

■カーソル移動や文字・単語操作

コマンド ショートカットキー 説明
行の先頭へ移動 control + A
行の末尾へ移動 control + E
1文字進む control + F 方向キーの→(右矢印)と同じ。
1文字戻る control + B 方向キーの←(左矢印)と同じ。
次の単語へ移動 option(⌥) + F "option(⌥) + →(右矢印)"と同じ。
"Esc + F"と同じ。ただ連続で入力する場合、Escキーを押し直せなければならない。
英単語のみで日本語は無効。
前の単語へ移動 option(⌥) + B "option(⌥) + ←(左矢印)"と同じ。
"Esc + B"と同じ。ただ連続で入力する場合、Escキーを押し直せなければならない。
英単語のみで日本語は無効。
カーソル上の文字を削除 control + D ただ、何も入力されていない状態で"control + D"を押すと、ターミナルを閉じて終了する(複数のタブを開いている状態なら、タブを閉じて終了する)。
カーソル前の文字を削除 control + H deleteキー同じ。
カーソル上の文字から行末までを削除(カット) control + K 削除(カット)した文字列は、"control + Y"で貼り付ける事(ヤンク)ができる。
行頭からカーソル前の文字までを削除(カット) control + U 削除(カット)した文字列は、"control + Y"で貼り付ける事(ヤンク)ができる。
カーソル位置より前にある単語を1つ削除 control + W
カーソル位置より後にある単語を1つ削除 option(⌥) + D
行削除 "control + A" + "control + K" "行の先頭へ移動"と"行末までを削除"の組み合わせでできる。
"control + U" + "control + K"でも可能。
また、行削除をするショートカットを新たに割り当てる事も可能です。設定方法については、別ページで説明しています。
カーソル上の単語を削除 "option(⌥) + B" + "option(⌥) + D" "前の単語へ移動"と"カーソル位置より後にある単語を1つ削除"の組み合わせでできる。ただカーソルが単語の合間スペースにある場合、カーソル位置より前の単語を削除する。
矩形選択 option(⌥) + マウス操作 option(⌥)キーを押すと矩形選択モード(カーソルが十)になるので、矩形選択モードでマウス操作すればできる。
行選択 トリプルクリック マウス操作ですが、トリプルクリックで1行全体を選択できる。
カーソル位置より後にある単語を大文字にして、次の単語まで移動 option(⌥) + U
カーソル位置より後にある単語を小文字にして、次の単語まで移動 option(⌥) + L

他にもカーソル移動操作のショートカットで"マーク"と"ブックマーク"という機能がありますが、少し説明も必要だと思うので、ここではなくページの下の方で書いています


■コマンド履歴の検索・操作

コマンド ショートカットキー 説明
コマンド履歴から1つ前のコマンドを表示 control + P 方向キーの↑(上矢印)と同じ。
コマンド履歴から1つ後のコマンドを表示 control + N 方向キーの↓(下矢印)と同じ。
インクリメンタルサーチ(逆方向に検索) control + R コマンド履歴を検索してコマンド実行できる機能です。直近から過去へ向かって検索します。便利な機能なので、後でもう少し詳しく説明しています
インクリメンタルサーチ(順方向に検索) control + S これもコマンド履歴を検索します。違いは順序が逆で、過去から直近へ向かって検索します。
ただ、このショートカットは初期設定ではターミナルの別の機能に割り当てられているため、使えないと思います。これを使えるようにする設定については、後で説明しています


■その他の基本操作

コマンド ショートカットキー 説明
環境設定ウインドウを開く command(⌘) + ,(カンマ)
ターミナル画面をクリア control + L clearコマンドと同じ。
画面をクリアするが、ターミナルのスクロールバーを上に持っていけば、過去に実行したコマンドは見れる。
ターミナル画面をクリア command(⌘) + K clearコマンドや"control + L"と違い、ターミナル上で過去に実行したコマンドは見れなくなるので、スクロールバーは上に持っていけない。
検索 command(⌘) + F ターミナル画面上部に検索窓が出て、ターミナル上を検索できる。
"command(⌘) + G"かリターンキーで次を検索、
"shift + command(⌘) + G"で前を検索できる。
検索窓を閉じるには、"shift + command(⌘) + F"かEscキー。
undo(直前のコマンドを取り消す) control + _(アンダースコア) undoだけど、入力したコマンドをスペース区切りの単語単位で取り消さずに行ごと取り消してしまうなど、少し使い勝手が悪い。
"control + X" + "control + U"と同じ。
ターミナル画面と文字フォントを大きくする command(⌘) + +(プラス)
ターミナル画面と文字フォントを小さくする command(⌘) + -(マイナス)
ターミナル画面をフルスクリーンにする control + command(⌘) + F フルスクリーンの状態でもう一度"control + command(⌘) + F"を押すと元に戻る。
新規タブを開く command(⌘) + T
現在のタブを閉じる command(⌘) + W タブが1つの場合、ターミナル自体を閉じて終了する。
次(右)のタブに移動 control + Tab "shift + command(⌘) + ](閉じカッコ)"、"shift + command(⌘) + →(右矢印)"と同じ。
前(左)のタブに移動 shift + control + Tab "shift + command(⌘) + [(開くカッコ)"、"shift + command(⌘) + ←(左矢印)"と同じ。
新規ウインドウを開く command(⌘) + N
ターミナルアプリを終了する command(⌘) + Q
ターミナル画面を上下に分割する command(⌘) + D
分割したターミナル画面を閉じる(元に戻す) shift + command(⌘) + D
インスペクタを表示 command(⌘) + I
使用しているシェルのバージョンを表示 "control + X" + "control + V"

Kindle Unlimitedなら対象の本が定額で読み放題 [広告]
対象本には、プログラミングなどのIT関連本、マンガ、雑誌、ビジネス書などがたくさんあります!

インクリメンタルサーチ(検索)機能でコマンド履歴の検索

インクリメンタルサーチ(検索)についてです。インクリメンタルサーチは、過去に実行したコマンド履歴を検索して実行する事ができます。上のコマンド履歴操作のショートカット一覧でも紹介しましたが、とても便利な機能なのでもう少しだけ説明します。

インクリメンタルサーチ機能は、macのターミナルの機能ではなく、bash(シェル)の機能です。ですので、LinuxやUnixでbashを使用しているコマンドライン環境なら、インクリメンタルサーチを使用する事ができます。

まず、ターミナル上で"control + R"を押すと、プロンプトが"(reverse-i-search)"となります。

$ 
(reverse-i-search)`': 
この時に例えば"ls"と入力すると、過去に実行したコマンド履歴の中から"ls"が含まれる直近のコマンドが候補として表示されます。
(reverse-i-search)`ls': ls -lht works
この状態でリターンキーを押せば候補のlsコマンドが実行されますし、もう一度"control + R"を押せば、さらに過去にさかのぼって"ls"が含まれるコマンドを表示してくれます。

また、入力途中で文字を削除したい場合は、"control + H"でできます(deleteキーと同じ)。

また、インクリメンタルサーチの状態からコマンドを実行せずに元のプロンプトの状態に戻りたい時は、"control + G"かEscキーでできます(他にも"control + A"や"control + E"などでも元に戻れます)。
"control + G"は、候補として表示されたコマンド文字列を削除して元に戻ります。

また、"control + R"を何度も押して進みすぎて、反対に1つ戻りたい時は、"control + S"でできます。
その際、プロンプトは"(i-search)"に変わります。

(i-search)`ls': ls -lht
"control + R"と"control + S"は両方ともコマンド履歴を検索できるショートカットですが、"control + R"は直近から過去へ向かって検索(逆方向に検索)、"control + S"は過去から直近へ向かって検索(順方向に検索)します。
この2つのショートカットを使う事で、コマンド履歴検索が戻ったり進んだりできるようになるのでとても便利です。

ただ、初期設定では"control + S"によるインクリメンタルサーチは使用する事ができないと思います。ターミナルでは"control + S"は別機能のコマンド実行時の画面への出力の停止(スクリーンロック)に割り当てられていて、そちらが優先されるためです。

ですので、この画面への出力の停止のショートカットを無効化してあげれば、"control + S"をインクリメンタルサーチのショートカットとして使用する事が可能になります。

人に寄ると思いますが、個人的には画面への出力の停止(スクリーンロック)機能はほとんど使用しませんし、それよりも頻繁に使用するインクリメンタルサーチにショートカットの"control + S"を割り当てたいです。

画面への出力の停止(スクリーンロック)のショートカットを無効化する設定についてですが、まずsttyコマンドで現状の設定を確認してみます。sttyコマンドは、ターミナルの設定を変更・表示するためのコマンドです。

$ stty -a
speed 9600 baud; 32 rows; 114 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
	-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
	-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
	-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
	-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
	eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
	min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
	stop = ^S; susp = ^Z; time = 0; werase = ^W;
実行結果を見ると、最後の行で"stop = ^S;"と出力されていますが、これがショートカットの"control + S"の設定ですので、これを無効化するためのコマンドを実行します。
$ stty stop undef
そして、再度sttyコマンドで設定を確認します。
$ stty -a
speed 9600 baud; 32 rows; 114 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
	-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
	-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
	-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
	-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
	eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
	min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
	stop = <undef>; susp = ^Z; time = 0; werase = ^W;
実行結果を見ると、"stop = <undef>;"と変更されています。undefは未定義という意味です。
これで、ショートカットの"control + S"が、インクリメンタルサーチとして使えるはずです。

ただ、この設定だとターミナルアプリを新規に起動した時に設定が元に戻ってしまうため、ホームディレクトリ直下のbashの環境設定ファイルの"~/.bashrc"か"~/.bash_profile"に、"stty stop undef"の一行を追記する必要があります。

追記したら設定を有効にするために、sourceコマンドを実行します(下は"~/.bash_profile"に追記した場合です)。

$ source ~/.bash_profile

設定については以上で終了です。sttyなどの説明で少し話がそれましたが、インクリメンタルサーチは、ターミナル上でコマンド操作をするのにとても便利な機能ですし、コマンド操作をするスピードも劇的に速くなりますので、まだ使ってない方は是非活用してみてください。

ターミナルのマークとブックマーク機能の操作

ターミナルには、マークとブックマークという機能があります。この2つはカーソル移動に使えますし、ブックマークを付けたコマンドには後からジャンプして見れるので便利です。

マークとブックマークは、両方ともプロンプトの左側に付ける事が可能です。
macOSのターミナルのマークとブックマーク

少しわかりにくいかもしれませんが、プロンプトの左側にある開きカッコのような物(画像の赤枠)がマークで、マークより太めの縦線(画像の青枠)がブックマークです。

マークはデフォルト(初期設定)で付いているはずですが、付いていないならメニューバーから"表示"->"マークを表示"にすれば見れるようになります。また、メニューバーの"編集"->"マーク"->"プロンプトの行を自動的にマーク"にチェックを入れれば、プロンプトを改行してもずっとマークは表示されるようになります。

後で見返したいコマンドやコマンド出力結果があって、それにブックマークを付けたい時は、対象箇所をマウスで選択ながら"option(⌥) + command(⌘) + U"でできます。
また、カーソル位置にブックマークをつけたい時は、"shift + command(⌘) + M"でできます。
付けたブックマークの一覧は、メニューバーの"編集"->"ブックマーク"で見る事ができます。

最後に、マークとブックマーク関連のショートカットの一覧です。

コマンド ショートカットキー 説明
1つ前(上)のマークへ移動 command(⌘) + ↑(上矢印) プロンプトをハイライトしながら移動します。コマンドの実行結果の出力文字列が長い時などは、移動にマウスを使う必要がなくなるので便利です。
1つ次(下)のマークへ移動 command(⌘) + ↓(下矢印)
マークをつける command(⌘) + U
マークを消す shift + command(⌘) + U
1つ前(上)のブックマークへ移動 option(⌥) + command(⌘) + ↑(上矢印)
1つ次(下)のブックマークへ移動 option(⌥) + command(⌘) + ↓(下矢印)
ブックマークをつける option(⌥) + command(⌘) + U 対象箇所をマウスで選択ながら、"option(⌥) + command(⌘) + U"

個人的には、マークとブックマーク機能は便利だけど使用頻度は少ないと思うので、移動系はともかくマークを付けたり消したりはわざわざショートカットを覚えるよりはメニューバーから使えればいいかなと思います。

Figをインストールしてターミナルでのコマンド入力を簡単で効率よく行う

ショートカットとは関係ない話ですが、Figという非常に便利なツールを紹介します。macOSにFigをインストールする事で、ターミナルでコマンド入力する時にコマンドの入力候補を提案してくれるようになります。
Figのコマンド操作の自動補完機能の例

プログラミングの統合開発環境(IDE)を使った事がある人なら知っていると思いますが、これを自動補完機能(もしくはオートコンプリート機能)と言います。

Figの自動補完機能も強力で、Figを導入すればコマンド操作が快適になるので、コマンドをよく使う人だけでなく、コマンド操作にまだ慣れていない初心者の人の助けになると思います。

Figのインストール方法については別ページで紹介していますので、興味のある方は参考にしてください。
Figをインストールしてコマンド操作を自動補完で快適にする

capsキーをcontrolキーとして使う。macの修飾キーの動作を変更する

Caps Lockキーは邪魔なので、普段からCaps Lockキーを無効にしている方もいるのではないでしょうか。
そういう方もそうでない方も、上で書いたショートカット一覧を見ると、Caps Lockキーをcontrolキーとして使うのはアリだと思います。
特に、Windowsパソコンに慣れている方がmacパソコンを使い始めた場合、Caps Lockキーはcontrolキーとして使いたいと思う人が多いと思います。

という事で、そのための設定方法についてです。システム環境設定を開き、キーボードを選択します。そして、キーボード画面のキーボードタブで、右下にある修飾キーボタンを押します。
macのキーボードの修飾キーの設定

修飾キーボタンを押すと、各修飾キーのキーバインドの設定画面が出ますので、"Caps Lock(⇪)キー:"を、"⌃ Control"に選択すればできます。
macのcapsキーをcontrolとして使う設定

設定については以上です。ただ、エンジニアの方などは自分のパソコンだけでなく、他の環境や他人のパソコンを使用するケースもあるでしょうから、そういう時のために普段からcontrolキーで使い慣れている方が良いかもしれません。

ターミナルのショートカット一覧の確認、新たにショートカットを割り当てる設定方法

実はターミナルで使えるショートカットの一覧は、bindコマンドで確認できます。また、bindコマンドは、新たにショートカットキーを割り当てたり、変更したりする事が可能です。例えば、カーソルの上下キーでコマンド履歴の前方一致検索をできるようにしたり、行削除をするショートカットを新たに割り当てる事ができます。

bindコマンドについては難易度が高くなるのと説明が長くなるため、別ページで説明しています。興味のある方は、そちらも参考にしてください。
(macOS)bindでターミナルのショートカット一覧確認、新規ショートカットの割り当て設定

その他の便利な機能

ターミナルで使えるその他の便利な機能を書いていきます。

■別アプリにあるファイルの絶対パスをターミナル上に表示する

Finderなどにあるファイルをドラッグしてターミナル上に持っていくと、ファイルの絶対パスをターミナル上に表示してくれます。

■ターミナル上のURLを開く

ターミナル上にURL文字列がある場合、commandを押しながらURLをダブルクリックすると、ブラウザで開いてくれます。

■環境設定

ターミナルの背景色やウインドウサイズの変更、文字コードの設定は環境設定からできます。環境設定ウインドウは、"cocommand(⌘) + ,(カンマ)"で開けます。