【Linux】シェルってなに?!その内容から具体的な役割・機能まで徹底解説!

Linuxにおけるシェルとは、Linuxの核となるカーネルへ要求を伝達するプログラムです。そして、ユーザーとLinuxOSを繋ぐインターフェイスの役割を果たしています。今回は、Linuxを知る上で必ず理解しておかなければならない「シェル(shell)」について、その具体的な役割や機能を徹底解説します。

 

シェルってなに?!

 

Linuxを扱う技術者にとって、シェル(shell)は基本知識です。

逆に、シェル(shell)を理解することである程度自由にLinuxを使いこなすことができるようになります。

 

Linuxのカーネルとユーザーを繋ぐインターフェイス

 

 

シェルは、LinuxOSの核となるカーネルとユーザーを繋ぐインターフェイスといった関係性です。

Linuxのカーネルという心臓部は、LinuxOSを支える多数のプログラムによって構成されています。ユーザーはこれらプログラムの集合体に、必要な動きを要求することで、Linuxを”コンピューター“として利用しているのです。

ユーザーによる要求はまずシェルが受け取ります。シェルは受け取った要求を翻訳してカーネルに渡します。そしてカーネルは、シェルから受け取った翻訳済みの要求を実行するわけです。

シェルは、カーネルを包む「殻」のようなポジションであることから、英単語の「shell」、つまりシェルと呼ばれているのです。

 

シェルスクリプトは要求コマンドのかたまり

 

 

一般的に「シェルを使える」という技術は、「シェルスクリプトを書くことができる」という意味で使われます。

シェルに対するコマンドを理解し、一連の要求をコマンドで組み立てることができるということです。

そして、組み立てられたコマンドのひとかたまりを「シェルスクリプト」と言います。シェルスクリプトは一種のプログラミングです。

コマンドの羅列はもちろん、以下のような条件分岐やループ文など利用できます。

 

・if文

・for文

・while文

・case文

 

これらを駆使して、Linux運用におけるバッチ処理などを操るシェルスクリプトをプログラミングすることが可能なのです。

 

シェルスクリプトの種類

 

 

ユーザーがシェルへ送るコマンドのかたまりをシェルスクリプトと言いますが、シェルスクリプトにも以下を代表する様々な種類が存在します。

 

・sh:Bourne shell

・bash:Bourne-Again shell

・csh:C shell

・ksh:Koran shell

 

などです。

Linuxでは基本的に「sh」や「bashを利用する人が多いのではないでしょうか。

 

shBourne shellBシェル)

 

sh (Bourne shell/Bシェル)は、AT&Tベル研究所のスティーブン・ボーン氏が1977年に開発したシェルで、コマンド名を「sh」としています。

Bシェルとも呼ばれており、現在では標準的なシェルプログラムとして広く使用されているシェルです。

コンパイルを不要とし、シェルスクリプトには変数などが利用できるようになったものBシェル(Bourne shell)が初めてです。

それまでのシェルに比べるとプログラミング要素を多く取り入れており、シェルスクリプトを組みやすくなったシェルでもあります。

 

bashBourne-Again shell

 

bash(Bourne-Again shell)は、sh(Bourne shell/Bシェル)をベースに様々な機能が拡張されたシェルです。Linuxでもbashが多く使われています。

bashはもちろんsh(Bourne shell/Bシェル)と互換性がありますが、更に複雑なシェルスクリプトを組むことが可能です。

 

シェルの具体的な役割と機能

 

シェルの役割と機能のイメージは掴めたと思いますので、ここでは、より具体的な例を見ていきましょう。

 

シェルの役割と機能の具体的な動き

 

 

シェルの役割は、ユーザーの要求をカーネルに伝えることでした。ユーザーは基本的に、ターミナルからLinuxに接続し、コマンドを入力することでLinuxを操作します。

ターミナルとは、CUIコマンドを受け付けるための画面で、イメージとしては“ハッカーが使う黒い画面”ですね。

例えば、今現在ユーザーが見ているディレクトリである「カレントディレクトリ」を確認する要求を、具体的な動作と順番で整理すると次のようになります。

 

1.ユーザーがPC上でターミナルを開く

2.ターミナル上で「pwd」コマンドを入力

3.エンターキーで決定

4.「pwd」コマンドがシェルに渡される

5.シェルが「pwd」コマンドの意味を「カレントディレクトリの表示要求」と解釈する

6.シェルは「カレントディレクトリの表示要求」をカーネルに伝える

7.カーネルは「カレントディレクトリ」をシェルに伝える

8.カーネルから教えてもらった「カレントディレクトリ」をシェルがターミナルに表示する

9.ユーザーはターミナルに表示されたカレントディレクトリを確認する

 

一つの要求コマンドでは、簡単にイメージするだけでもこれだけの動作が行われており、その中でもシェルは、ユーザーとカーネルの間で重要な役割を果たしているのが分かりますね。

 

Geekly Media ライター

佐久森

11+

PHPフレームワークならコレ!人気フレームワークの種類からその内容まで徹底解説!

PHPフレームワークというものを聞いたことはありますか?近年アプリ開発を行うのに必要不可欠なアイテムとして、開発者に重宝されているシステムなのです。今回はそんなPHPフレームワークの人気種類の紹介や、そもそもPHPフレームワークとは何の事なのかという基本的なところから徹底に解説していきます。

 

アプリ開発にはPHPフレームワーク

 

 

PHPフレームワークとは?

 

プログラミングをするときに言われるフレームワークとは、アプリを開発する際の土台のようなものです。

 

アプリを開発する際にすべての動作を自分で書いていたら膨大な作業量になり、時間がいくらあっても足りません。

そこで、あらかじめ必要なコードが用意されているフレームワークと呼ばれる土台を使えば、あとはオリジナルのコードを書いていくだけで良いので、スムーズに作業を進めることができます。

 

アプリを開発する際は、このフレームワークを大量に使って業務の効率化を図っています。

 

PHPフレームワークでできる事

 

PHPフレームワークを使うことで、「開発時間の短縮」「多人数開発が可能」「フリーランスとしての活動に活かせる」といった3つのメリットが生まれます。

まず「開発時間の短縮」に関しては先ほどフレームワークの説明で話した通りです。

あらかじめ必要なコードを用意しておくことで、効率的に仕事ができるような状況を作っています。

 

次に「多人数開発が可能」になる事については、考え方の統一ができるためです。

アプリによって作り方が全く違ったり、人によってもコードの書き方が変わってきます。

そのため、まっさらな状況からアプリを開発するとなると統率するのが難しく、どのようにコードを書いていくのかルール作りをして共有するという手間がかかってしまいます。

 

しかし、PHPフレームワークで基礎の部分をあらかじめ作っておくことで、コードの書き方をプログラマー全員と共有することができます。

そのため、ルール作りや共有するという手間をかけることなく、コードを統一することができます。

 

最後に「フリーランスとしての活動に活かせる」については、先ほども話した通りフレームワークはアプリ開発の場面で多用されます。

しかし、プログラミング言語とフレームワークは全く別の知識になるので、プログラミングしかできない人ではなくフレームワークも使える人になれば、業界から重宝されるのです。

 

PHPフレームワークの種類

 

一口にPHPフレームワークといっても、その中にはいくつか種類があります。

 

・CakePHP

・Symfony

・CodeIgniter

・ZendFramework

・Phalcon

・Slim

・Laravel

・Yii

・FuelPHP

・Flight

・Silex

・BEAR.Sunday

・Kohana

・Ethna

・Ice Framework

 

主なフレームワークは記載した15種類であり、その中でも有名なのは「CakePHP」と「Codelgniter」でありよく使われているフレームワークです。

 

しかし、これだけPHPフレームワークがあるとどれを使っていいか分かりませんよね。

なので次はおススメのPHPフレームとその特性について紹介していきます。

 

Geekly Media ライター

3+