cshも、内部で動くシェルによって機能や動作が異なります。
代表的なシェルには:
- bash(Bourne Again Shell)→ 多くのLinuxで標準
- zsh(Z Shell)→ 補完機能が強力、macOSで標準に
- fish(Friendly Interactive Shell)→ カラフルでモダン
- dash(Debian Almquist Shell)→ 軽量で高速
- csh/tcsh(C Shell)→ C言語に似た構文
それぞれ独自の機能や設定方法、構文があるため、自分がどのシェルを使っているかを知ることは重要です。
使用中のシェルを確認する方法3選

方法1:echo 方法1:echo $0
echo $0
echo $0
このコマンドは、現在動いているシェルの名前を表示してくれます。
例:
bash
または
zsh
ただし、$0
はログインシェルではなくサブシェル名が表示される場合もあるので注意!
方法2:echo $SHELL
echo $SHELL
このコマンドは、ログイン時に設定されたデフォルトのシェルを表示します。
例:
/bin/bash
または
/usr/bin/zsh
方法3:psコマンドで現在のプロセス確認
ps -p $$
このコマンドで、今のプロセスID($$)が何のシェルかを確認できます。
例:
PID TTY TIME CMD
5347 pts/0 00:00:00 bash
これが最も正確に「今使っているシェル」を判別する方法です!
現在実行中のシェルプロセスを直接表示するため、最も信頼できる結果が得られます。
ログインシェルと現在のシェルの違い

混乱しがちなポイントとして、ログインシェルと現在使用中のシェルの違いがあります:
- ログインシェル: システムにログインしたときに起動されるデフォルトのシェル(
$SHELL
で確認) - 現在のシェル: 今実行中のターミナルで動いているシェル(
ps -p $$
が正確)
よくあるパターン:
$SHELL
は/bin/bash
(システムデフォルト)- でも、今のターミナルでは
zsh
が動いている(手動で切り替えた場合)
一時的なシェル切り替え
現在のターミナルセッションだけ別のシェルを使いたい場合は、単にそのシェル名を入力するだけです:
zsh # bashからzshに一時的に切り替え
元に戻るには exit
コマンドを使います:
exit # 元のシェルに戻る
シェルの設定ファイルを確認する方法
シェルの種類によって、設定ファイルの場所も異なります:
- bash:
~/.bashrc
,~/.bash_profile
- zsh:
~/.zshrc
設定ファイルの有無を確認する:
ls -la ~ | grep "\.bash" # bashの設定ファイルを確認
ls -la ~ | grep "\.zsh" # zshの設定ファイルを確認
シェルの変更方法(例:bash → zsh)

zshに永続的に切り替える
chsh -s $(which zsh)
bashに戻す
chsh -s $(which bash)
インストールされているシェルの一覧を確認
cat /etc/shells
このコマンドでシステムにインストールされている利用可能なシェルの一覧が表示されます。
シェルの特徴を見分ける方法
シェルの種類がわからない場合、以下の特徴で見分けることもできます:
bash
- プロンプトは通常
ユーザー名@ホスト名:パス$
- タブ補完は基本的な機能のみ
zsh
- プロンプトがカスタマイズされていることが多い(oh-my-zshを使用している場合)
- 高度な補完機能(オプション名の補完など)
- スペルミス修正の提案がある
まとめ
「どのシェルを使っているか」を把握しておくことは、トラブルの回避やスクリプトの書き方に直結する重要なポイントです。
使用中のシェル確認まとめ
方法 | コマンド例 | 備考 |
---|---|---|
$0 で確認 | echo $0 | サブシェル名が出ることあり |
$SHELL で確認 | echo $SHELL | デフォルトログインシェル |
ps で確認(おすすめ) | ps -p $$ | 現在のシェルを正確に把握可能 |
シェルの切り替え
chsh -s $(which zsh) # zshへ
chsh -s $(which bash) # bashへ
各シェルには長所と短所があるため、自分の作業スタイルに合わせて選ぶとよいでしょう。
初心者なら広く使われているbashから始めて、慣れてきたら高機能なzshなどを試してみるのがおすすめです。
正しいシェルを理解し、自分に合った快適なターミナル環境を構築しましょう!
コメント