1分で分かる!ShellScriptとは?
ジャバード先生、キリンさんが困っているらしいんだけど、相談にのってくれるかな?
そうそう!実は相談っていうのは、そのLinuxのサーバーのことなんだよ。
ふむふむ。どうしたの??
キリンさん、RubyでプログラミングしたWebアプリケーションが完成したらしいんだ!それでLinuxに構築 (デプロイ)して公開したみたいだよ!
すごいね!キリンさん、とっても頑張ったんだね!
うん!ただ、困ったことに、たまにWebアプリケーションでエラーが発生しているみたいなんだ。
あ、そうなんだ。それは困ったね。
そうなの。だから、原因を調査するために、毎日手動でログを取得して分析しているみたいなんだ。でも、手動だからたまに作業を忘れてしまうこともあるし、眠たいときに作業していると間違ったファイルを消してしまうこともあるみたいで、困っているんだよね。
なるほどね。
きっとプログラミングしてアプリケーションを開発すれば解決するんだろうけど、ちょっとした運用作業のためにあんまり手間をかけたくないってキリンさんが言っててさ。何かほかにいい案がないかな?
それならシェルスクリプトで対応すればいいんじゃないかな?
シェルスクリプト??それって何ができるの?
シェルスクリプトは、OSに出す命令を集めたファイルのことだよ。
OSに出す命令?それってどんなことができるの?
OSができることなら、シェルスクリプトで大抵のことはできるよ。ファイルのコピー、移動、削除といった操作はもちろん、ファイルから特定の文字列を検索したり、抽出することもできるんだ。
あ、なんかログファイルも何とかなりそうだね。
それだけじゃなくて、別のプログラミング言語で書かれたプログラムを呼び出したり、既存のソフトウェアを実行することもできるよ。
なんか結構自由度が高そうだね?
そうだね。だから、例えば「ログファイルから特定の文字列を検索して、ヒットしたものをメールで担当者に送信する」といったことも可能なんだよ。
そんなことができるんだ!
ただ、シェルスクリプトの書き方を少しだけミスしただけで、削除するつもりがなかったファイルを削除してしまったり、意図せずファイルを上書きしてしまう というリスクもあるんだ。そのあたりはプログラミング言語でプログラムをつくるときと比較にならないほど、発生しやすいという点は気を付けたいところだね。
リスクもあるけど、使いこなせばかなり良さそうだね!じゃあ、キリンさんにシェルスクリプトをおすすめしてみるよ!ジャバード先生、ありがとう!
はーい!キリンさん、首を長ーくして待ってるはずだから、急いで行ってあげて!
シェルスクリプトとは?採用に役立つシェルスクリプトの基礎知識
シェルスクリプトとは、OSのシェルと呼ばれる中核部分を成すプログラムに対して、何らかの処理を依頼する際に、その依頼をまとめたファイルのことを指します。シェルスクリプトは以下のような命令を実現可能です。
- ディレクトリ操作
- ファイル操作
- ファイル検索
- テキスト処理
- プロセス表示・終了
- ファイルの圧縮や展開
- ネットワーク設定の確認や変更
シェルスクリプトを使うエンジニア
シェルスクリプトは様々なエンジニアが使います。インフラ系のエンジニアであるインフラ(サーバー)エンジニア、インフラ(ネットワーク)エンジニアなどは、OSやネットワークの確認、および設定時にシェルスクリプトを使用します。
また、社内SE、サーバーサイド(バックエンド)エンジニアなどが使用することもあります。
シェルスクリプトを使うエンジニアの特徴と在籍業界
前述したとおり、シェルスクリプトは自由度が高く、OSにできることはある程度実現することができます。そのため、突き詰めれば突き詰めるほど、色々なことができるようになります。それはある意味「職人技」のようなものです。シェルスクリプトを使うエンジニアは、このような職人技をコツコツと磨きあげる労力を厭わない人が多いという特徴があります。
なお、シェルスクリプトしている業界としては、Web業界やSIer業界などに多く在籍しています。
採用する時に知っておくとよいこと
シェルスクリプトは廃れない
シェルスクリプトというと古い技術というイメージをお持ちの方も多いかもしれません。確かに最新の技術ではありませんが、現在でも、様々なシーンでシェルスクリプトを利用します。その1つはクラウドサービスです。
たとえば、Amazon社のS3は、同サービスからシェルスクリプトを起動できるようになっています。また、AzureやGCPも同様です。
このように、IT業界では、一見レガシーな技術に見えても、最先端技術の一部として使われることが多々あります。また、リスクはあるものの、使いこなせば強力なツールとなる可能性もあるのです。そのような視点で考えると、シェルスクリプトは当分の間廃れることがなく、エンジニアにとっては学ぶべき有用なスキルだといえるでしょう。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス
シェルスクリプトの豆知識
シェルスクリプト関連の資格
シェルスクリプトに関連する資格としては以下のようなものがあります。
- LPI-Japan主催 Linux技術者認定資格 LinuC
- CompTIA主催 CompTIA Linux+
シェルスクリプトに関するトピックス
京都大学のスーパーコンピューターシステムにアップされていたファイルが削除されてしまったというニュースについては記憶に新しいのではないでしょうか。同行のストレージに存在していた約3400万ファイルが、日本ヒューレットパッカードが開発したプログラムの誤動作によって意図せず削除されてしまいました。
実は、この問題の原因は、シェルスクリプトの動作によるものでした。