お久しぶりです。KWです。
去年の2022年の12月担当はこのKWが担当させて頂いたのですが、今年も12月はKWが担当することになりました。
このまま12月の顔として覚えてもらえると嬉しいです(笑)

さて、最近シェルスクリプトを学ぶ機会がありましたので今回はシェルスクリプトについて、どんなことを学んだのかを自分なりにまとめてみようかなと思いました。

スクリプトファイルについて

まずシェルスクリプトについて話す前に、スクリプトファイルについて紹介したいと思います。

スクリプトファイルの特徴は、、、
速い、正確、何度でも行うことが出来ることです。

皆さん、身に覚えがありませんか?
LinuxやUNIXでコマンド操作を行う時、
・毎回の作業が同じで疲れちゃうなあ。。。
・作業が慣れてくるとコマンドを打ち間違えちゃう。
・速さを求められると困るなあ。。。

そんなあなた!!
スクリプトファイルならそれらの悩み全て解決します!

…..。
すみません。よくテレビにある広告みたいな真似事をしてみたかっただけです。
気を取り直してスクリプトファイルはリスト化されたコマンドまたはスクリプト言語などの命令文を上から順番に実行してくれるファイルを指します。タイトル通り速く、そして正確に実行してくれます。


※スクリプトをカレーで例えてみるの図

もう一つストリートファイターという有名な格闘ゲームで例えてみたいと思います。
リュウの使い手であるあなたなら分かると思いますが、
・昇龍拳を出したいなら「↓↘→(下、斜め、前)+パンチ」
・波動拳を出したいなら「下・右下・右+パンチ(↓↘→+P)の入力(右向き)」
・竜巻旋風脚なら「↓↙←+キック(右向き)」
でそれぞれ技を繰り出せるようです。
私はスイッチのスマブラを少しやってたくらいで、こんな感じの感覚なのかなあと思っているのですが、コントローラーで一つずつ技を出すのは指が忙しくて大変だと思うのは一目瞭然で分かりますよね。(格ゲー経験者でそうでもないという方、先に謝ります。すみません。)
シェルスクリプトならコントローラーのボタン一つで一気に昇龍拳、波動拳、竜巻旋風脚を順番に出してくれるような感覚だと思ってください。
ボタン一個で3つの技をすぐに出してくれるなんて余裕勝ちですね。

■シェルスクリプトについて

①シェルについて
Linuxの世界ではユーザーから入力されたコマンドを受け付け、適切な処理をして結果を表示しているプログラムをシェルが行っています。
シェルはユーザーから入力されたコマンドをカーネルに実行させる翻訳者、通訳者のような役割となってくれます。
Windowsに搭載しているコマンドプロンプトも実はシェルです。

そう、普段私たちがパソコンを使って操作をする時、
実は私たちはシェルとやり取りをして、シェルが私達の要望をカーネルとやり取りをしてくれています。

またシェルは貝殻のようにカーネルを包み込んで隠しているように見えるのでシェルと呼ばれています。

※私の中のシェルの脳内のイメージ

②シェルスクリプトについて
前提知識としてシェルについてなんとなく分かってきたところで
シェルスクリプトについてお話しします。
シェルには、もう一つの役割というか特技みたいなものを持っています。
それはシェル言語を使ったスクリプト言語と似ている機械語のようなものでコンピューターにプログラム機能として備わっています。
そのシェル言語を使って自動化するための簡易的なプログラミング言語です。
それをシェルスクリプトと言います。
簡単に言うとLinux上で沢山のコマンドを実行する時の面倒な場合もシェルスクリプトを使うことによって代わりに操作を行ってくれます。

ちなみにWindowsでよく使われているバッチファイルはコンピューターが実行可能な形式に変換する必要があるのですが(コンパイルと言います)、シェルスクリプトはそれが必要ありません。


■シェルの種類
シェルにはいろいろな種類があります。一部主なシェルを紹介します。
目的によってシェルが使い分けられているので機能性も、もちろん違いますがさほど変わりません。
ゲームで例えるなら恐らく皆さんもプレイしているであろうゲームボーイソフトのポケットモンスターの赤か緑、もしくは青、ピカチュウ版かの仕様の違いだと思ってください。え、世代が違う?

①bash
「Bourne Again Shell」の略で、一般的なLinuxのデフォルトのシェルとなります。みんな大好きCentOSをインストールすると初めから設定されていると思います。
またLinuxだけでなくMacOSやWindowsにも対応しています。

②sh
「Bourne Shell Unix」と呼ばれる昔のUNIXで使われていた古いシェルの名前になります。最終的なバージョンは1992年でかなり前になるのですが最も基本的で一般的なシェルになります。

③dash
UbuntuなどのDebian系のデフォルトシェルになります。

④ksh
UNIX系 Bourne Shellの上位互換シェルになります。
私KWが現在所属している現場もkshを使用しています。

⑤zsh
BSD系 Bourne Shellの機能拡張シェルになります。
BSDは「Berkeley Software Distribution」のそれぞれの頭文字のものでアメリカの大学にあるバークレーで開発されました。

⑥ash
正式名称は「Almquist Shell」と言い、Bourne Shellの代替Shell で高速小型で尚且つ軽量となるのでスマートフォンや音楽・動画を再生するプレイヤー、カーナビなどの家電機器などの組み込みLinuxに使用されています。

■最後に
皆さんいかがでしたか?
今回は軽くシェルスクリプトの概要について紹介させて頂きました。
次回はシェルスクリプトの作法などの詳細を紹介出来れば良いなと思っています。
このシェルスクリプトを学ぶ機会があったおかげで現在UNIX、Linuxの現場なのでシェルスクリプトの動き方や見方が変わってすごく助かっています。
またこのシェルスクリプトは業務では「この時間帯にこのシェルが動く」という業務が自動化になっていることが多いのですが、時々時間通りに動かなかったり、もしくは段々時間がずれていったりすることが現場ではありました。
私KWも休日の午前中は自転車で運動、午後はNetflixで過ごすというルーティーンで過ごしているのですが、シェルスクリプトのように事故無く安全に過ごすことが出来たら良いですね。
皆さん、来年もシェルスクリプトのように事故無く安全にお過ごしください。
おっと、今日は巷の美味しいラーメンを食べに行く予定だった。それでは予定通り行ってきます。

P.S. UNIX、Linux、Netflixと並べると、Netflixは結構語呂合わせが良い。

The following two tabs change content below.

KW

一度IT業界から離れましたが再挑戦しました。まだまだ学ぶことが多く日々業務に奮闘中。好きなものはラーメン、野球、自転車、散歩、猫です。時々一人自転車で遠出をして自然のある風景に私の心の飢えを癒すのが好きです。

最新記事 by KW (全て見る)