Unix / Linux-シェルとは何ですか?

A ShellUnixシステムへのインターフェースを提供します。それはあなたからの入力を収集し、その入力に基づいてプログラムを実行します。プログラムの実行が終了すると、そのプログラムの出力が表示されます。

シェルは、コマンド、プログラム、およびシェルスクリプトを実行できる環境です。オペレーティングシステムにはさまざまな種類があるのと同じように、シェルにもさまざまな種類があります。シェルの各フレーバーには、認識されたコマンドと関数の独自のセットがあります。

シェルプロンプト

プロンプト、 $、と呼ばれる command prompt、はシェルによって発行されます。プロンプトが表示されている間に、コマンドを入力できます。

を押すと、シェルが入力を読み取ります Enter。入力の最初の単語を見て、実行するコマンドを決定します。単語は途切れのない文字のセットです。スペースとタブは単語を区切ります。

以下は、の簡単な例です。 date 現在の日付と時刻を表示するコマンド-

$date
Thu Jun 25 08:30:19 MST 2009

環境チュートリアルで説明されている環境変数PS1を使用して、コマンドプロンプトをカスタマイズできます。

シェルタイプ

Unixには、2つの主要なタイプのシェルがあります-

  • Bourne shell −ボーンタイプのシェルを使用している場合、 $ 文字がデフォルトのプロンプトです。

  • C shell − Cタイプのシェルを使用している場合、%文字がデフォルトのプロンプトです。

Bourne Shellには、次のサブカテゴリがあります-

  • ボーンシェル(sh)
  • Kornシェル(ksh)
  • ボーンアゲインシェル(bash)
  • POSIXシェル(sh)

さまざまなCタイプのシェルが続きます-

  • Cシェル(csh)
  • TENEX / TOPS Cシェル(tcsh)

オリジナルのUnixシェルは、1970年代半ばにニュージャージーのAT&Tベル研究所にいたStephen R.Bourneによって作成されました。

Bourneシェルは、Unixシステムに最初に登場したシェルであるため、「シェル」と呼ばれます。

Bourneシェルは通常次のようにインストールされます /bin/shUnixのほとんどのバージョンで。このため、さまざまなバージョンのUnixで使用できるスクリプトを作成するための最適なシェルです。

この章では、BorneShellに基づくShellの概念のほとんどについて説明します。

シェルスクリプト

シェルスクリプトの基本的な概念は、実行順にリストされたコマンドのリストです。優れたシェルスクリプトにはコメントがあり、その前に# 手順を説明する署名。

値Aが値Bより大きい、ループを使用して大量のデータ、データを読み取って保存するファイル、変数を読み取ってデータを保存するなどの条件付きテストがあり、スクリプトには関数が含まれる場合があります。

次のセクションでは、多くのスクリプトを作成します。これは単純なテキストファイルであり、すべてのコマンドと、シェル環境に何をいつ実行するかを指示するその他の必要な構造をいくつか配置します。

シェルスクリプトと関数の両方が解釈されます。これは、それらがコンパイルされていないことを意味します。

スクリプト例

を作成するとします test.sh脚本。すべてのスクリプトに.sh拡張。スクリプトに何かを追加する前に、シェルスクリプトが開始されていることをシステムに警告する必要があります。これは、shebang構築します。例-

#!/bin/sh

これは、後続のコマンドがBourneシェルによって実行されることをシステムに通知します。それはシバンと呼ばれています#シンボルはハッシュと呼ばれ、!シンボルはバングと呼ばれます。

これらのコマンドを含むスクリプトを作成するには、最初にシバン行を配置してから、コマンドを追加します-

#!/bin/bash
pwd
ls

シェルコメント

次のようにスクリプトにコメントを入れることができます-

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

上記のコンテンツを保存し、スクリプトを実行可能にします-

$chmod +x test.sh

これで、シェルスクリプトを実行する準備が整いました-

$./test.sh

実行すると、次の結果が得られます-

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

Note −現在のディレクトリで利用可能なプログラムを実行するには、 ./program_name

拡張シェルスクリプト

シェルスクリプトには、シェル環境に何をいつ実行するかを指示するいくつかの必須の構造があります。もちろん、ほとんどのスクリプトは上記のスクリプトよりも複雑です。

結局のところ、シェルは実際のプログラミング言語であり、変数や制御構造などを備えています。スクリプトがどれほど複雑になっても、それは順番に実行されるコマンドのリストにすぎません。

次のスクリプトは、 read キーボードからの入力を受け取り、それを変数PERSONの値として割り当て、最後にSTDOUTに出力するコマンド。

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Tutorialspoint.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
$