このサイトはジャパニアス株式会社をスポンサーとして、
Zenkenが運営しています。
市場価値の高いITエンジニアへの道~エンジニアQUEST~

shell

目次

shellとは

shellは、ユーザーとコンピューターとを仲立ちするプログラムであり、ユーザーのコマンドをOSに伝達してコンピューターの動作に反映させています。
shellを巧みに扱えるようになると、コンピューターを操作するうえで非常に役立つ手段となります。
特にUNIX系のOSに関わっているシステム開発者やシステム管理者にとってshellは必須です。

特徴

Shellの利点は、カーネルリクエストを容易に行えることです。ここで言うカーネルとはコンピュータの処理を切り替えるためのソフトウェアのことです。これまでのプログラミングでは、システムアクセスのために専用のプログラムコードを開発する必要がありましたが、shellを使用すると、追加の開発作業も不要となり、操作をコマンドラインで実行できます。
shellを用いることで色々な作業の手順を1度で行え、そのクオリティも一定のものにすることができます。

役割

shellは、ユーザーとカーネルの中間に位置する役割を果たします。ユーザーのコマンドを理解し、それをカーネルに処理させて、画面に結果やメッセージとして反映させます。
これにより、ユーザーはコマンドプロンプトで望む操作を指定し、反映された結果を確認してから次のコマンドを入力するといった対話的な作業サイクルを得られます。

shellとシェルスクリプトの違い

Shellとシェルスクリプトは言葉では似ていますが厳密な違いがあります。
Shellは、処理をカーネルに伝達する媒介役として機能するプログラムです。ユーザーの指示はshellを通じて各ソフトウェアに伝えられます。
対してシェルスクリプトは、shellがカーネルに伝達する指示をまとめたスクリプトファイルのことを言います。

シェルスクリプトの使用例やできること

シェルスクリプトによって次のような使用例やできることがあります。

  • アプリケーションの起動と停止操作
  • 業務の効率化
  • 定例作業などの自動化
  • データ抽出
  • ストレージの管理

shellの主な種類

shellにはいくつかの種類があるため、ここでは主なものを紹介します。

bash

bashは「Bourne Again shell」の頭文字を取った名称で、Unix系のシステムで利用されています。
bashの主な特徴の1つは、さまざまなオペレーティングシステムで動作することです。各OSには細かい違いがあるかもしれませんが、基本的な操作はどのOSでも共通しています。
また、特にLinuxではbashが標準のshellとして組み込まれており、拡張子は通常「.sh」です。
bashは、変数・関数・演算処理といったプログラミングに必要なさまざまな機能を提供しており、単純なプログラムならbashだけで書くこともできます。

tcsh

tcshはもともとchsから由来しています。

chsはc言語のような構文を備え、対話型の機能を向上させることを目的として開発されており、そのためCシェルとも呼ばれています。

tcshはこのchsの一種で、ユーザーインターフェースの拡張に焦点があてられています。ビデオ端末で用いることを想定して利用しやすいコマンドライン編集機能や、効果的なヒストリ編集機能がプラスされています。

zsh

zshには「ゼットシェル」「ジーシェル」「ゼッシュ」といった複数の呼び名があり、さまざまなshellにおいて特に汎用性が高いとされています。コマンドライン編集機能・グロビング機能・パス展開機能などの主なもの以外にも、多彩な機能が盛り込まれているのが特徴です。

土台はshからなり、ksh・csh・bashそれぞれの良いところ取りのような機能を持ち、さらには独自性の高い機能も追加されてパフォーマンスを向上させています。
なお、MacOSではCatalina以降zshが標準shellに指定されています。

固定バナー固定バナー
目次