Unix-shell
Unix-シェルとは何ですか?
シェルは、UNIXシステムへのインターフェースを提供します。 ユーザーからの入力を収集し、その入力に基づいてプログラムを実行します。 プログラムの実行が終了すると、プログラムの出力が表示されます。
シェルは、コマンド、プログラム、およびシェルスクリプトを実行できる環境です。 オペレーティングシステムのフレーバーが異なるように、シェルのフレーバーも異なります。 シェルの各フレーバーには、認識されるコマンドと関数の独自のセットがあります。
シェルプロンプト:
コマンドプロンプトと呼ばれるプロンプト$は、シェルによって発行されます。 プロンプトが表示されている間に、コマンドを入力できます。
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._と呼ばれます
これらのコマンドを含むスクリプトを作成するには、最初にshebang行を追加してからコマンドを追加します。
#!/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 *を使用して実行します。
拡張シェルスクリプト:
シェルスクリプトには、シェル環境に何をいつ実行するかを指示するいくつかの必要な構造があります。 もちろん、ほとんどのスクリプトは上記のものよりも複雑です。
シェルは、結局のところ、変数、制御構造などを備えた実際のプログラミング言語です。 ただし、スクリプトがどんなに複雑になっても、それはまだ順番に実行されるコマンドのリストにすぎません。
次のスクリプトは read コマンドを使用します。このコマンドはキーボードから入力を受け取り、変数PERSONの値として割り当て、最終的にSTDOUTに出力します。
#!/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
$