はじめに
Cursor(およびVS Code)は、macOSのシステム設定とは独立してターミナルを制御しています。そのため、macOSでbashをデフォルトシェルに設定しても、Cursorの統合ターミナルではzshが起動してしまうことがあります。
本記事では、Cursorで統合ターミナルのシェルをbashに固定する方法を詳しく解説します。加えて、.bash_profile と .bashrc の関係や、設定ファイル(settings.json)の具体的な記述例も紹介します。
1. 現在のシェルを確認する
まずは、Cursorの統合ターミナルがどのシェルを使用しているか確認します。
echo $SHELL
もし /bin/zsh と表示される場合、Cursorがzshを使用しています。bashに変更するには次のステップに進みましょう。
2. macOS側のデフォルトシェルをbashに変更する
macOSではデフォルトでzshが有効になっているため、システム全体でbashを使いたい場合は以下のコマンドを実行します。
chsh -s /bin/bash
設定が反映されたか確認するには、以下のコマンドを使用します。
dscl . -read ~/ UserShell
結果が次のようになればOKです:
UserShell: /bin/bash
ただし、この設定はmacOS全体に対して有効であり、Cursorの統合ターミナルには自動で反映されない点に注意してください。次のステップでCursor側の設定を行います。
3. Cursorの設定でbashを明示的に指定する
Cursor(VS Codeベース)は、内部設定に基づいて統合ターミナルを起動します。そのため、settings.json にbashを明示的に指定する必要があります。
手順
- Cursorを開きます。
-
Cmd + Shift + Pを押してコマンドパレットを開きます。 - 検索バーに「
基本設定: ユーザー設定を開く (JSON)」または「Preferences: Open User Settings (JSON)」と入力します。 -
settings.jsonが開かれたら、次の内容を追加します。
{
"terminal.integrated.defaultProfile.osx": "bash",
"terminal.integrated.profiles.osx": {
"bash": {
"path": "/bin/bash",
"args": ["-l"],
"icon": "terminal-bash"
},
"zsh": {
"path": "/bin/zsh"
},
"fish": {
"path": "/usr/local/bin/fish"
}
},
"terminal.integrated.shellIntegration.enabled": true
}
設定項目の詳細解説
| 設定項目 | 内容 | 説明 |
|---|---|---|
terminal.integrated.defaultProfile.osx |
bash | macOSでデフォルトとして起動するターミナルをbashに指定します。 |
terminal.integrated.profiles.osx |
各シェルの設定 | 複数のシェルを登録できます。ここではbash/zsh/fishを例示しています。 |
path |
/bin/bash |
実際に使用するbashの実行ファイルパスです。macOS標準のbashを指定しています。 |
args |
["-l"] |
ログインシェルとして起動します。.bash_profile が読み込まれるようになります。 |
icon |
terminal-bash |
CursorのUI上でbashアイコンを表示します。 |
terminal.integrated.shellIntegration.enabled |
true |
シェル統合機能を有効化し、プロンプト検出やコマンド履歴連携を可能にします。 |
4. .bash_profile と .bashrc の関係
bashには2種類の設定ファイルがあります:
| ファイル名 | 読み込まれるタイミング | 主な用途 |
|---|---|---|
~/.bash_profile |
ログインシェル起動時 | PATHや環境変数の設定 |
~/.bashrc |
非ログインシェル起動時 | エイリアスやプロンプト設定 |
Cursorの統合ターミナルは非ログインシェルとして起動するため、通常は .bashrc のみが読み込まれます。もし .bash_profile にPATHや環境変数を設定している場合、以下のようにして共通化しておきましょう。
# ~/.bash_profile
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
これにより、どちらの起動方法でも同じ環境が反映されます。
5. 設定を反映して確認する
Cursorを再起動し、統合ターミナルで以下を実行します。
echo $0
結果が以下のように表示されれば成功です:
bash
または:
/bin/bash
6. よくあるトラブルと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
chsh で変更してもCursorではzshが起動する |
Cursor独自の設定が優先されている |
settings.json に /bin/bash を明示的に設定する |
.bash_profile の設定が反映されない |
Cursorは非ログインシェルで起動する |
.bash_profile から .bashrc を呼び出すように変更する |
| 「The default interactive shell is now zsh.」という警告が出る | Appleがzshを推奨する案内 |
.bash_profile に以下を追記して抑制:export BASH_SILENCE_DEPRECATION_WARNING=1
|
7. まとめ
| ステップ | 内容 |
|---|---|
| 1 | macOSのデフォルトシェルをbashに変更 (chsh -s /bin/bash) |
| 2 | Cursor設定(settings.json)に /bin/bash を指定 |
| 3 |
.bash_profile と .bashrc の内容を共通化 |
| 4 |
$SHELL または $0 コマンドで確認 |
これで、Cursorでも統合ターミナルが常にbashで起動するようになります。bash特有のスクリプト互換性や、既存開発環境との統一が必要な場合に最適な設定です。