Unix-what-is-shell
Unix/Linux-シェルとは何ですか?
シェルは、コマンド、プログラム、およびシェルスクリプトを実行できる環境です。 オペレーティングシステムのフレーバーが異なるように、シェルのフレーバーも異なります。 シェルの各フレーバーには、認識されるコマンドと関数の独自のセットがあります。
シェルプロンプト
以下は、現在の日付と時刻を表示する date コマンドの簡単な例です-
環境チュートリアルで説明されている環境変数PS1を使用して、コマンドプロンプトをカスタマイズできます。
シェルタイプ
Unixでは、シェルの2つの主要なタイプがあります-
- * Bourneシェル*-Bourneタイプのシェルを使用している場合、 $ 文字がデフォルトのプロンプトです。
- * Cシェル*-Cタイプのシェルを使用している場合、%文字がデフォルトのプロンプトです。
Bourne Shellには次のサブカテゴリがあります-
- ボーンシェル(sh)
- Kornシェル(ksh)
- Bourne Againシェル(bash)
- POSIXシェル(sh)
さまざまなCタイプのシェルが続きます-
- Cシェル(csh)
- TENEX/TOPS Cシェル(tcsh)
オリジナルのUnixシェルは、1970年代半ばにStephen Rによって書かれました。 ニュージャージー州のAT&T Bell Labsにいたときのボーン。
Bourneシェルは、Unixシステムで最初に登場したシェルであるため、「シェル」と呼ばれます。
Bourneシェルは通常、ほとんどのバージョンのUnixで /bin/sh としてインストールされます。 このため、異なるバージョンのUnixで使用できるスクリプトを作成するのに最適なシェルです。
この章では、Borne Shellに基づいたシェルの概念のほとんどについて説明します。
シェルスクリプト
シェルスクリプトの基本概念はコマンドのリストであり、実行順にリストされています。 優れたシェルスクリプトには、ステップを説明する*#*記号が前に付いたコメントがあります。
値Aが値Bよりも大きい、大量のデータを通過できるループ、データの読み取りと保存を行うファイル、データの読み取りと保存を行う変数などの条件付きテストがあり、スクリプトには関数が含まれる場合があります。
次のセクションで多くのスクリプトを作成します。 これは、シェル環境に何をいつ実行するかを指示するすべてのコマンドといくつかの他の必要なコンストラクトを配置する単純なテキストファイルです。
シェルスクリプトと関数は両方とも解釈されます。 これは、それらがコンパイルされていないことを意味します。
サンプルスクリプト
これは、後続のコマンドがBourneシェルによって実行されることをシステムに伝えます。 _ *#*記号はハッシュと呼ばれ、! シンボルはbang_と呼ばれます。
これらのコマンドを含むスクリプトを作成するには、最初にシェバン行を入れてからコマンドを追加します-
シェルコメント
次のようにスクリプトにコメントを入力できます-
上記のコンテンツを保存し、スクリプトを実行可能にします-
これで、シェルスクリプトを実行する準備ができました-
実行すると、次の結果が表示されます-
注-現在のディレクトリで利用可能なプログラムを実行するには、*。/program_name *を使用します
拡張シェルスクリプト
シェルスクリプトには、シェル環境に何をいつ実行するかを指示するいくつかの必要な構造があります。 もちろん、ほとんどのスクリプトは上記のものよりも複雑です。
シェルは、結局のところ、変数、制御構造などを備えた実際のプログラミング言語です。 スクリプトがどんなに複雑になっても、それはまだ順番に実行されるコマンドのリストにすぎません。
次のスクリプトは、キーボードから入力を受け取り、変数PERSONの値として割り当て、最終的にそれをSTDOUTに出力する read コマンドを使用します。
スクリプトのサンプル実行はここにあります-