Unixシェル

From Wikipedia, the free encyclopedia

Unixシェルは、Unix系オペレーティングシステムで用いられるコマンドラインシェルの総称である。

KDE Plasma 5セッションのzsh、bash、およびkshシェルウィンドウ

1970年代にUnix環境向けに設計されたコマンド解釈言語およびその処理系として成立し、以後のUnix系システムにおける標準的な操作手段およびスクリプト実行環境として位置づけられる。

システム管理、プログラム起動、処理自動化などに用いられ、パイプライン処理入出力リダイレクト制御構造を備えた独自のコマンド言語を特徴とし、その実装は多様な派生シェルを生んだ。

概念

「シェル」を最も広い意味で捉えれば、コマンドを入力するためにユーザーが使用するプログラムといえる。Unix系OSでは、対話型セッションのためのコマンドラインインタフェースには様々な選択肢がある。ユーザーがシステムにログインすると(GUI環境でない場合は)シェルプログラムが自動的に実行開始する。このログインシェルはユーザー毎にカスタマイズできる。passwdファイルで起動するシェルプログラムを指定でき、passwd -eコマンドまたはchsh英語版コマンドで変更することもできる。また、ユーザーは別のシェルプログラムを対話的に起動することもできる。

Unixシェルが登場した当時、このようなプログラムは珍しかった。対話型のコマンド言語であると同時にスクリプト言語としても使え、システムの制御ファシリティとしてOS自体もそのスクリプトを使用している。シェルの考え方はUNIX以外にも広まっていった。

ウィンドウシステムを持つシステムでは、ユーザーがシェルを直接使わないことも多い。Unix系OSでは、システムの立ち上げスクリプト群がシェルスクリプトで書かれており、ウィンドウシステムの起動もインターネットへのアクセスのためのプログラム起動もその他の様々な機能の起動もそのようなスクリプトで行う。

初期のシェル

Bourne Shell

Bourne Shellはスティーブン・ボーンベル研究所で開発し、1977年ごろVersion 7 Unix の一部として配布され、当時のデファクトスタンダードであった。Unix系OSには必ずBourne Shellかその互換シェルが含まれていた。コマンドとしての名称はshで、UNIXのファイル階層では一般に/bin/shというパスにある。/bin/shはBourne Shellと互換性がある機能拡張されたシェルへのソフトリンクまたはハードリンクである。POSIXでは標準のシェル機能としてKornShellのサブセットを指定しており、現在はPOSIXシェルに置き換わったためBourne Shellは使われていない。

C Shell

C Shellはビル・ジョイカリフォルニア大学バークレー校Unix系OSの一系統の元となったBSD向けに開発した。Version 6 UnixThompson shellをベースとしている。C言語をモデルとして構文規則を設計した。対話型の端末で使用することを第一に考えて設計されており、スクリプト言語としてはあまり使われない。C Shellには様々な対話用コマンドがある。

分類

Bourne Shell 互換

C Shell 互換

その他

様々なシェルの一覧はwww.freebsd.orgにある。

歴史的シェル

主なUnixシェルの設定ファイル

シェルは様々な場面で設定ファイルを読み込むが、詳細はシェルの種類によって異なる。設定ファイルにはそのシェル向けのコマンド群が書かれており、ロードされると同時に実行される。実行ファイルの探索パスを指定する $PATH のような重要な変数を設定したり、シェルの振る舞いや見栄えを制御する変数を設定したりする。次の表は代表的なUnixシェルの設定ファイルについてまとめたものである。

さらに見る sh, ksh ...
sh ksh csh tcsh bash zsh
/etc/.login login login
/etc/csh.cshrc yes yes
/etc/csh.login login login
~/.tcshrc yes
~/.cshrc yes yes[注釈 1]
~/.login login login
~/.logout login login
/etc/profile login login login login
~/.profile login login login[注釈 2] login
~/.bash_profile login[注釈 2]
~/.bash_login login[注釈 2]
~/.bash_logout login
~/.bashrc int.+n/login
/etc/zshenv yes
/etc/zprofile login
/etc/zshrc int.
/etc/zlogin login
/etc/zlogout login
~/.zshenv yes
~/.zprofile login
~/.zshrc int.
~/.zlogin login
~/.zlogout login
閉じる

凡例:

  • 空白のマスは、そのシェルではそのファイルを全く読み込まないことを意味する。
  • "yes" - そのシェルの起動時に必ず読み込む。
  • "login" - そのシェルがログインシェルだった場合に読み込む。
  • "n/login" - そのシェルがログインシェルでなかった場合に起動時に読み込む。
  • "int." - 対話型のシェルとして起動した場合に読み込む。

脚注

参考文献

関連項目

外部リンク

Related Articles

Wikiwand AI