Linux Shell(シェル)

ユーザーからキーボードでコマンドを受け取り、OSがそのコマンドを実行できるようにするプログラム。

シェル(Shell)とは

シェルは、ユーザーからコマンドを受け取り、OSがそのコマンドを解釈して実行できるようにするプログラムである。

シェルは、ユーザーとシステムの対話を可能にするオペレーティングシステムのコマンドインタープリターである。一般的には、オペレーティングシステムの中核であるカーネルの周辺に存在する。 コマンドインタープリターとも表現でき、Unixには複数のシェルが存在する。ユーザーは目的や好みに応じて使いたいシェルを選択できる。

シェルの種類

Linuxで利用できるシェルにはいくつかの種類がある。ここでは、よく利用されるシェルの特徴を簡単に説明する。なお、デフォルトで利用できるシェルは通常 /bin/sh にシンボリックリンクとして設定されている。

  • bash (Bourne-Again Shell) /bin/bash

    • GNUが開発した。
    • コマンド履歴、ディレクトリスタック、コマンド置換、コマンド名やファイル名の自動補完などをサポートする高機能シェルである。
    • ほとんどの Linux システムに標準で搭載されている。
  • csh (C Shell) - /bin/sh

    • カリフォルニア大学バークレー校で開発された。
    • C言語によく似たシェルで、主にBSD系OSで利用される。
  • ksh - /bin/ksh

    • David Kornが開発した。
    • 初心者向けに標準環境が整えられた Bourne シェルのスーパーセットである。
    • Unixの知識を持つユーザーに評価されているシェルである。
  • tcsh /bin/tcsh

    • cshを改良したバージョンで、コマンド名やファイル名などの自動補完機能を持つ。
    • ユーザー指向で、動作が速い。
  • zsh (Z shell)

    • bashと互換性があり、高速に動作することが特徴のシェルである。

macOS 10.15 Catalina 以降、デフォルトシェルは bash から zsh に変更された。*

シェルコマンド

現在使用しているシェルを確認する

次のコマンドで、現在使用しているシェルを確認できる。

% env | grep SHELL
SHELL=/bin/zsh

次のコマンドでも確認できる。

% echo $SHELL
/bin/zsh

Macにインストールされているシェルを確認する

次のコマンドで、Macに現在インストールされているシェルの一覧を確認できる。

cat /etc/shells
% cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

使用しているシェルを変更する

chsh コマンドを使うと、使用するシェルを変更できる。

chsh -s /bin/bash
% chsh -s /bin/bash
Changing shell for user.
Password for user:

参考