UNIXシェルとは? わかりやすく解説

Unixシェル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/24 01:58 UTC 版)

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

Unixシェルは、Unix系システムにおけるコマンドラインシェルである。ユーザーインターフェースとして対話的に利用したり複数のコマンド並べたシェルスクリプトを実行する。

最も影響を与えたUnixシェルとしては、Bourne ShellC Shell がある。Bourne Shell は単に sh と呼ばれ、AT&Tでスティーブン・ボーンが開発し、UNIXで広く普及していたコマンドラインインタプリタである。パイプヒアドキュメントコマンド置換英語版変数、条件式やループといった制御構造ワイルドカードによるファイル名指定などの機能が他の全てのUnixシェルに共通する機能の出発点となった。言語としては、ブロックの終りを逆から綴った (ファイル)キーワードで示すなど、ALGOL 68 に影響を受けている[1]

C Shell (csh) はビル・ジョイカリフォルニア大学バークレー校の大学院生のときに開発した。C言語をモデルとして制御構造や式の文法を設計している。対話型シェルとして、ヒストリ機能、編集機構、エイリアス、ディレクトリスタック、チルダ記法、cdpath、ジョブコントロール、パスハッシングといった機能を導入した。

これら2つのシェルがベースとなって、様々なシェルが派生していった。

概念

「シェル」を最も広い意味で捉えれば、コマンドを入力するためにユーザーが使用するプログラムといえる。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 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." - 対話型のシェルとして起動した場合に読み込む。

脚注

注釈

  1. ^ ~/.tcshrc が見つからない場合のみ
  2. ^ a b c 実際には ~/.bash_profile~/.bash_login~/.profile の順で最初に読み取り可能なファイルだけを読み込む。sh として呼び出されたときは ~/.profile のみを読み込む。

出典

  1. ^ Re: Late Bloomers Revisited USENET post to comp.lang.misc by Piercarlo "Peter" Grandi, Dept of CS, UCW Aberystwyth, UK, Dec 17, 1989.
  2. ^ The MiriBSD Korn Shell”. MirOS. 2012年7月8日閲覧。
  3. ^ Use zsh as the default shell on your Mac - Apple Support”. Apple. 2022年4月8日閲覧。
  4. ^ Harley Hahn, Harley Hahn's Guide to Unix and Linux.
  5. ^ Hamilton C shell for Windows Release Notes 4.0, retrieved June 19, 2010.
  6. ^ es-shell”. Google Code. 2012年7月8日閲覧。
  7. ^ pysh”. Sourceforge.jp. 2012年7月8日閲覧。
  8. ^ Zoidberg”. CPAN. 2012年7月8日閲覧。

参考文献

  • Ellie Quigley (2001). “Introduction to UNIX shells”. Unix Shells by Example. Prentice Hall PTR. ISBN 013066538X  — 各種シェルの歴史と使用法など

関連項目

外部リンク


UNIXシェル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/07 19:28 UTC 版)

ヒアドキュメント」の記事における「UNIXシェル」の解説

ヒアドキュメント標準入力として扱われるため、標準入力扱えるコマンド組み合わせて使用する必要がある文字列リテラルファイルし受け取らないようなコマンド使用する場合は、変数を介して渡したり、bash固有の機能Process Substitution利用したりする必要がある。 以下の例では、ヒアドキュメントテキストtrコマンドへの入力となっている。 $ tr a-z A-Z < one two three > uno dos tres > END_TEXT ONE TWO THREE UNO DOS TRES ここではEND_TEXTを区切り文字としてあり、ヒアドキュメント始め終わり位置規定している。下2行のONE TWO THREEUNO DOS TRESは、trコマンド実行して出力され結果である。 ヒアドキュメント開始するところで<<-とすると、行頭タブ無視されるようになり、シェルスクリプトインデント崩さずヒアドキュメント書けるようになる(なお、コマンドラインタブ文字入力するには特殊な操作が必要となる。また、以下の例はタブではなくスペース書いてあるので、そのままコピペしても動作しない)。 $ tr a-z A-Z <<-END_TEXT > one two three > uno dos tres > END_TEXT ONE TWO THREE UNO DOS TRES デフォルトで、変数展開やバッククオートによるコマンド展開も行われる。 $ cat << EOF > Working dir $PWD > EOF Working dir /home/user これらは、区切り文字引用符で囲むことで無効にできる。 $ cat << "EOF" > Working dir $PWD > EOF Working dir $PWD また、bashkshzshではヒアストリングという機能存在する。 $ tr a-z A-Z <<<"Yes it is a string" YES IT IS A STRING

※この「UNIXシェル」の解説は、「ヒアドキュメント」の解説の一部です。
「UNIXシェル」を含む「ヒアドキュメント」の記事については、「ヒアドキュメント」の概要を参照ください。

ウィキペディア小見出し辞書の「UNIXシェル」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「UNIXシェル」の関連用語

UNIXシェルのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



UNIXシェルのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのUnixシェル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのヒアドキュメント (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS