/【1分でわかる】シェルスクリプトとは?2016.09.07【1分でわかる】シェルスクリプトとは?シェルスクリプトTweetPocketシェルスクリプトとはシェルで実行するコマンドなどがまとまったドキュメントのようなものだ。このドキュメントを用意しておくと、上から順番にコマンドが実行されていくので、いちいちコマンドを打たなくて済む。定期的な保守作業など、シェルスクリプトを用意しておけば、コマンドを打たずにすぐに実行できる。このページではシェルスクリプトとは?について説明した。シェルスクリプトの書き方を学ぶ前に、知っておきたい事前知識だ。スクリプトの雰囲気一例そもそもシェルとは?シェルとは「オペレーティングシステムと対話するためのインターフェイス」であり、コマンドなどを制御する「環境」だ。このような形でLinuxの核となるカーネルを覆っている殻がシェルだと思ってもらうとわかりやすい。このシェルがない場合ログインしたとしても、何も表示されない、もしくはログイン画面に戻されてしまうだろう。シェルやカーネルやターミナルがわかりにくくなっていると思うが、次の図のような関係だ。シェルがあることでコマンドを受付、オペレーティングシステムとの対話ができるようになる。CUI環境においてシェルは最も身近なインターフェイスだ。Linuxにおいて現在一般的なシェルは「bash」である。小さなコマンドをパイプなどで繋ぎ、コマンドをフィルタの様にふるまうようにすること基本的に出力はプレーンテキストに、移植性を考慮してシェルスクリプトをつかおうなどといった教訓がある。Unixがもともと小さく小さくを意識されて作られたものだからだ。参考:3分間で人に説明できるようになるUnixとLinuxの違いLinuxもUnix哲学に通じるものが多い。実際パイプやリダイレクトを使うだけでも色々なことが実現できるが、シェルスクリプトは、さらにそこに制御を加えることでより高度なことが実現できる。シェルスクリプトはプログラミングの一種シェルスクリプトとは言わば「シェルが解釈できる台本」だ。簡単に言うと、コマンドが並んでまとめて実行できるようにドキュメントにしたものとでも思えばいい。次のようなものでも十分にシェルスクリプトになる。'test'ただ、文字列を表示させるだけだが、これも十分シェルスクリプトだ。これに加えてプログラミング的なこともできるようになる。Linuxのシェルは、変数や分岐や繰り返し、といった制御構造を持つことができる。詳しくは後にご説明するが、人間が手で書くのだと大変なものを、プログラムが自動的に処理してくれるようになる。シェルスクリプトはテキストで記述され、同じシェルとコマンドが動作する環境であれば、どこでも動作するので移植性が高く便利だ。積み木を組み立てる感覚でプログラミングと聞くと拒否反応を起こしてしまう人もいるかもしれない。シェルスクリプトはまったく難しくない。他のプログラミング言語を覚えるのに比べたら苦労はほとんどないと言っていい。率直に言うと、苦労するような複雑なものはシェルスクリプトで書かないほうがいい。基本的にコマンドを並べ制御し、作業を自動化するための手段であり、例えるなら、「積み木をするような感覚でコマンドをつみあげていく」のである。それらコマンドを「条件分岐」でときおりスイッチしたり、「繰り返し」でループをしたり、といった制御をすることになる。アルゴリズムやデータ構造などを意識しないわけではないが、システム記述言語であるC言語やJava言語などと比較すると、圧倒的に楽である。そもそも細かいアルゴリズムなどはコマンドレベルで吸収されているため、中身を知らなくても、入力と出力される結果さえわかっていればなんとかなることが多い。インタプリタとしてのシェル実行方法もスクリプトをテキストで記述、実行権限を与え、実行する。この手順のなかでコンパイルは存在しない。コンパイルとは機械語への翻訳作業のことで、Javaなどのプログラミング言語ではコンパイルしないと実行できない。「シェルはインタプリタ」だからだ。上から順番にとにかく、コマンド、制御文、変数などを解釈しながら順を追って実行する。基本的にインタプリタ、シェルスクリプトはコンパイルがないので、即実行結果がわかる。いった意味でも簡単だ。反対にコンパイル型の言語に比べて速度が落ちる。上でも述べた通り、そんな大規模なものであればシェルスクリプトを使わないほうがいい。シェルスクリプトはコマンドの羅列が若干便利になったものくらいに考えておこう。細かいところは後々紹介するが雰囲気としては以下のようなものになる。徐々にご紹介していこう。まとめこのページでは「シェルスクリプトとは?」について簡単に紹介した。シェルやカーネル、ターミナルなどの用語も混ざってしまうとわかりにくくなっていくので、この機会に消化してしまおう。TweetPocketこのページの続きや関連ページは下記から一覧で確認できる。・「プログラマーとして転職をしたい!」という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。エンジニアの入り口に立つために必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報が詰まっています。無料で2,3日中にお手元にお届けします。資料を見てみるSNSでもご購読できます。IT研修専門企業のリナックスアカデミーです。】エンジニアの入り口に立つために役立つようなコンテンツを日々ご提供していきます。講師や代表やスタッフ陣が毎日楽しく書いています。ご質問・ご指摘等はぜひコメントください。PMいつもご愛読いただきありががとうございます。引き続き、ご愛読いただけますと幸いです。PMウィンドウ右下のポップアップ?(資料を見てみるボタン)がでないようにする方法を教えてください。AMいつもご愛読いただきありがとうございます。記事を読み進めると画面の右下に出てくる資料の案内につきましては全ての記事で共通に出てくるもので、申し訳ございませんが消すことが出来ないようになっております。今後とも、ご愛読のほどよろしくお願いいたします。PMシェルスクリプトとはというのが何となくつかめました。ありがとうございます。AMいつもご愛読いただきありがとうございます。お役に立てて嬉しい限りです。引き続き、何卒よろしくお願いいたします。*メールアドレス(公開はされません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け資料を見てみる。