Mac のターミナル使う時のノウハウ
現在のMacの標準ターミナルのシェルは zsh です。(2026年5月時点)
よって、zsh のノウハウを中心に説明します。
zsh 導入手順
zsh のプロンプトの色を変えて見やすくする方法
ショートカットキー
| ショートカットキー | 効果 | 説明 |
|---|---|---|
Control + A |
行頭にカーソルを移動 | |
Control + E |
行末にカーソルを移動 | |
Control + U |
行削除 |
zshでは行削除(カーソルが行中のどの位置にあっても行を丸ごと削除する)になるが、bashだとカーソルより前を削除する動作になるので注意 |
Option + ← |
単語単位でカーソルを左方向に移動 | |
Option + → |
単語単位でカーソルを右方向に移動 | |
Control + W |
カーソル位置から単語の先頭までを削除 | |
ESC , D |
カーソル位置から単語の末尾までを削除 | |
Control + C |
コマンドを実行せずにキャンセル | 途中まで打っていたコマンドで入力ミスっていたことに気づいて、最初から打ち直したい!という時に使う。(打ったコマンドをログとして保存する場合、実行したかのように見えるので注意) |
ショートカットキーの見方
-
{キー1} + {キー2}: {キー1} を押しながら {キー2}を押す -
{キー1} , {キー2}: {キー1} を押した後、指を離してから {キー2}を押す
ショートカットキーの組み合わせ
上記のショートカットキーを組み合わせることでさらに効果を発揮する。例えば
「mkdir {DIR}でディレクトリを作成した後、cd {DIR}でその作成したディレクトリに移動したい」みたいな場合は
mkdir {DIR}を実行した後で上矢印キーでmkdir {DIR}をもう一回呼び出した後、
Control + A(行頭に戻る)とESC , D(カーソル位置から単語の末尾まで削除)した後で
実行したいコマンド(cd)を打てば
cd {DIR} が入力された状態になるのでENTERで実行すればそのディレクトリに移動できる
他のショートカットキーも覚えたい場合…
bindkey -Lを実行すると割当たっているキーバインドが確認できる
zshの入力補完色々
その他のzshの情報
ファイルのフルパスをピンポイントで取得する(zshのグロブ修飾子)
特定のファイル1つのフルパス(絶対パス)を知りたいことがあります。zsh には、ファイル名を絶対パスに変換してくれるグロブ修飾子という機能があるので、これを使うと簡単です。
# ファイル名の後ろに (:a) をつけると絶対パスに変換される
$ echo sample.txt(:a)
/Users/username/work/sample.txt
ポイントは、Tabキーの入力補完でファイル名を打てるため、フルパスを自分でタイプする必要が無いことです。サブディレクトリ内のファイルでも同様に使えます。
$ echo src/index.ts(:a)
/Users/username/work/src/index.ts
:a と :A の違い
修飾子には :a と :A の2種類があり、シンボリックリンクを解決するかどうかが異なります。
| 修飾子 | 効果 |
|---|---|
:a |
絶対パスに変換する(シンボリックリンクはそのまま) |
:A |
絶対パスに変換する+シンボリックリンクも実体パスに解決する(realpath相当) |
例えば linkdir が realdir へのシンボリックリンクだった場合、以下のように結果が変わります。
# :a はリンク名のまま
$ echo linkdir/target.txt(:a)
/Users/username/work/linkdir/target.txt
# :A はリンクを辿った実体のパスになる
$ echo linkdir/target.txt(:A)
/Users/username/work/realdir/target.txt
普段は :a で十分ですが、シンボリックリンクの実体を確認したい時は :A を使い分けると便利です。
変数(パラメータ展開)でも使える
グロブ修飾子はファイル名を変数に入れた場合のパラメータ展開でも同じ書き方で使えます。
$ f=src/index.ts
$ echo ${f:a}
/Users/username/work/src/index.ts
(:a) / (:A) は zsh 固有の機能であり、bash では動作しません。macOS の標準シェルは Catalina 以降 zsh になっているため、そのまま使えます。
その他、知っておくと便利なこと
上記事に「カーソルを単語ごとに移動」するためのショートカットキーESC-fとESC-bが紹介されている。
同じことが、⌥→と⌥←でも出来る。誤ってfやbが入力される事故を防げるので、自分はこっちの方が好みかもしれない。