Unix-what-is-shell
Unix/Linux-シェルとは何ですか?
*Shell* は、Unixシステムへのインターフェースを提供します。 ユーザーからの入力を収集し、その入力に基づいてプログラムを実行します。 プログラムの実行が終了すると、プログラムの出力が表示されます。
シェルは、コマンド、プログラム、およびシェルスクリプトを実行できる環境です。 オペレーティングシステムのフレーバーが異なるように、シェルのフレーバーも異なります。 シェルの各フレーバーには、認識されるコマンドと関数の独自のセットがあります。
シェルプロンプト
*command prompt* と呼ばれるプロンプト *$* は、シェルによって発行されます。 プロンプトが表示されている間に、コマンドを入力できます。
*Enter* を押すと、シェルは入力を読み取ります。 入力の最初の単語を見て、実行するコマンドを決定します。 単語は切れ目のない文字のセットです。 スペースとタブで単語を区切ります。
以下は、現在の日付と時刻を表示する date コマンドの簡単な例です-
$date
Thu Jun 25 08:30:19 MST 2009
環境チュートリアルで説明されている環境変数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よりも大きい、大量のデータを通過できるループ、データの読み取りと保存を行うファイル、データの読み取りと保存を行う変数などの条件付きテストがあり、スクリプトには関数が含まれる場合があります。
次のセクションで多くのスクリプトを作成します。 これは、シェル環境に何をいつ実行するかを指示するすべてのコマンドといくつかの他の必要なコンストラクトを配置する単純なテキストファイルです。
シェルスクリプトと関数は両方とも解釈されます。 これは、それらがコンパイルされていないことを意味します。
サンプルスクリプト
*test.sh* スクリプトを作成するとします。 すべてのスクリプトの拡張子は *.sh* であることに注意してください。 スクリプトに何かを追加する前に、シェルスクリプトが開始されていることをシステムに警告する必要があります。 これは、 *shebang* コンストラクトを使用して行われます。 たとえば-
#!/bin/sh
これは、後続のコマンドがBourneシェルによって実行されることをシステムに伝えます。 _ *#*記号はハッシュと呼ばれ、! シンボルはbang_と呼ばれます。
これらのコマンドを含むスクリプトを作成するには、最初にシェバン行を入れてからコマンドを追加します-
#!/bin/bash
pwd
ls
シェルコメント
次のようにスクリプトにコメントを入力できます-
#!/bin/bash
# Author : Zara Ali
# Copyright (c) finddevguides.com
# Script follows here:
pwd
ls
上記のコンテンツを保存し、スクリプトを実行可能にします-
$chmod +x test.sh
これで、シェルスクリプトを実行する準備ができました-
$./test.sh
実行すると、次の結果が表示されます-
/home/amrood
index unix-basic_utilities unix-directories
test.sh unix-communication unix-environment
注-現在のディレクトリで利用可能なプログラムを実行するには、*。/program_name *を使用します
拡張シェルスクリプト
シェルスクリプトには、シェル環境に何をいつ実行するかを指示するいくつかの必要な構造があります。 もちろん、ほとんどのスクリプトは上記のものよりも複雑です。
シェルは、結局のところ、変数、制御構造などを備えた実際のプログラミング言語です。 スクリプトがどんなに複雑になっても、それはまだ順番に実行されるコマンドのリストにすぎません。
次のスクリプトは、キーボードから入力を受け取り、変数PERSONの値として割り当て、最終的にそれをSTDOUTに出力する read コマンドを使用します。
#!/bin/sh
# Author : Zara Ali
# Copyright (c) finddevguides.com
# Script follows here:
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
スクリプトのサンプル実行はここにあります-
$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$