オンラインカウンセリング実施中

新規登録者向けAmazonギフトキャンペーン

Shellの仕事|求人案件の概況や初心者の勉強法、シェルスクリプトを解説

Shellを扱うエンジニアの仕事には、Shellによるバッチ処理の開発、インフラ系のスクリプトやツールの作成、C言語やSQLといった他言語の起動スクリプトの作成などがあります。また、Shellの仕事を行う場合には、そのプラットフォームとしてLinuxを含むUnix系のOSを利用することがほとんどであるため、Unixのコマンドの知識、利用スキルなども必要になるでしょう。今回はShellエンジニアの仕事について、詳しくお伝えします。

Shell案件を提案してもらう

目次

Shellとは?
Shellの仕事内容
Shellの求人案件
Shellを扱うエンジニアの年収
Shellの種類
Shell入門・初心者向けの勉強方法
Shellの仕事に関するよくある質問

フリーランスの収入見込みをチェック

 

簡単60秒! 無料登録

Shellとは?

Shellとは、OS(オペレーティングシステム)を利用するコンピューターシステムにおいて、ユーザーのためにインターフェースを提供し、OSの各機能ヘのアクセスを可能にするソフトウェアです。OSの中核のソフトウェアであるカーネルを包み込むような存在であり、外部からの要求をカーネルに引き渡す役目を果たすため、「シェル(shell、英語で「貝殻」)」と呼ばれるようになりました。

Shellには、CUIベースのものもGUIを用いたものも存在します。ただし、エンジニア向けの求人ではCUIベースのShellおよびシェルスクリプトを扱う仕事が多いでしょう。

シェルスクリプトとは?

シェルスクリプトとは、Shellで実行するコマンドライン処理を集めて集合体としたスクリプトの一種です。繰り返し実施するコマンドの組み合わせを記載しておくことで、何度もコマンドを打ち直す必要がなくなります。外部プログラムの呼び出しやループ、CUIでの対話型なども実装できます。狭義にはUnixシェルで用いられるスクリプト言語を指しています。

関連記事 : インフラエンジニアとは?仕事内容やスキル、年収、未経験からの勉強法などを徹底解説

Shell案件を提案してもらう

Shellの仕事内容

Shellを扱うエンジニアの仕事内容には、シェルスクリプトによるバッチ処理の開発、インフラ系のスクリプトやツールの作成、C言語やSQLなど他言語での起動スクリプトの作成などがあります。

シェルスクリプトによるバッチ処理の開発

バッチ処理を行うシェルスクリプトを記述する仕事です。処理をまとめて記載でき繰り返し実行しやすいため、Shellが動かせる環境ではShellでバッチ処理を記載することが多いでしょう。OSが持つ各種のコマンドやユーザーの作成したプログラムをコールする処理を組み合わせることで、バッチ処理を構築します。

利用されるShellの種類はOSによりさまざまで、Bシェル系、Cシェル系のいずれも利用されています。また、バッチ処理の場合にはcronなどのスケジューラーとの組み合わせを行うことが多いため、スケジューラーを扱うスキル、バッチ処理のフローの設計スキルなども必要とされることがあります。

インフラ系のスクリプトやツールの作成

Unix系のOSにおいては、マシン起動時の各種ソフトウェア・ミドルウェアはシェルスクリプトにより起動されることが多いでしょう。マシン起動時に必ず呼び出される処理としてシェルスクリプトを指定することにより、起動時に立ち上げが必要なソフトウェア・ミドルウェアの起動も自動化することができます。

インフラ系のスクリプトやツールを作成する場合には、OSやミドルウェアの動作、仕様に精通し、起動/停止コマンドなどの組み立てができるスキルが必要となります。

C言語やSQLなど他言語での起動スクリプトの作成

Shellはカーネルの提供するコマンドだけでなく、ユーザーが作成したC言語やSQLでの処理を起動する際にも有効です。特に、手動で繰り返し行うオペレーションが存在する場合、その処理をスクリプトとしておくことで、誰でも同じ処理を繰り返し行えるというメリットがあります。DBの管理を行うDBAやシステム運用とも相性のいい利用方法です。

関連記事 : C言語プログラマの仕事内容

Shellの求人案件

レバテックフリーランスのShell案件を見てみると、2020年12月15日時点での掲載案件数は198件となっています。

Shellの求人・案件一覧

案件の内容を見てみると、金融系、官公庁、通信系など幅広い業界のクライアントが存在します。Shellの特性から、インフラ系に近い求人案件、ツール作成やシステム運用、バッチ処理作成、SQLと組み合わせたDBA寄りの案件、一般的なシステム開発のバッチ部分でShellを利用する案件などがありました。

インフラ系の求人案件ではOS、クラウド、ネットワーク、VMなどのインフラに関する知識、実務経験を必要とする条件が設けられていることが多いでしょう。3年以上など長い実務経験を求める場合やインフラの上流工程経験がある場合は、単価が高くなる傾向が見られます。

また、Shellでのバッチ処理構築、ツール作成、システム運用、多言語と組み合わせた案件などでは、Shellスクリプトを作成するスキルとともにLinuxなど各種の動作環境におけるコマンドの知識、利用スキルが求められることが多いでしょう。上流工程の経験やShell以外の言語での開発が組み合わさった案件は、単価が高い傾向にあります。

Shell初心者向けの求人案件

初心者でも応募しやすいShellに関連する求人案件の例としては、インフラエンジニア、サーバーサイドエンジニアとしての求人案件が挙げられるでしょう。こうした案件では、Shellを扱う作業が仕事内容の中心ではない場合もあるため、Shellのスキルに関する応募のハードルが低いこともあります。

Shellの経験が求められる求人案件では、正社員の求人、クラウドソーシングで募集される業務委託案件ともに、ShellおよびUnix系OSの1年以上の使用経験が求められるものが多いと言えます。

関連記事 : サーバーサイドエンジニアとは?仕事内容やフリーランス事情を解説

Shellを扱うエンジニアの年収

2020年12月時点でレバテックフリーランスに掲載されているShellの求人案件の月額平均単価は64万円となっています。この金額で12ヶ月稼働したと想定すると、税金や保険料を差し引く前のShellエンジニアの平均年収は768万円と試算されます。ただし、これはあくまでレバテックフリーランスの求人案件をもとに算出した金額であり、一般的なShellを扱うエンジニアの年収相場とは異なります。また、同時点での最低月額単価は45万円、最高月額単価は95万円となっています。

関連記事 : インフラエンジニアの平均年収|転職して狙える収入は?年収1000万円は可能?

Shellの種類

ここでは、代表的なShellの特徴や用途について記載します。これらのShellはLinuxのディストリビューションに含まれていることが多く、プロジェクトでのルールや利用者の多さなどでShellが選択されます。

sh(Bourne Shell)

1977年にスティーブン・ボーンによって開発されたシェルで、現在利用される多くのShellの派生元となりました。コマンドラインで使用するだけでなく、スクリプトとして作成できるよう制御フローやループ、変数が導入され、関数型に近い形で記載できます。

bash(Bourne Again Shell)

shをベースに、拡張機能を足したものがbashです。オープンソースのGNUプロジェクトにより開発され、Linuxの標準Shellとなっています。shの拡張であるため後方互換性を持ち、shと置き換えることが可能です。コマンドヒストリーやコマンドライン編集、環境変数、コマンド補完も利用できます。

csh(C Shell)

cshは、C言語と似た構文を持ちます。C言語を学んだユーザーが利用しやすく、また対話型の利用に便利な機能を強化しており、コマンドやファイルの補完機能を導入しています。BSD Unixで採用され、広く知られました。

zsh(Z Shell)

zshはshの拡張版であり、bashやksh、tcshなどの有用な機能を取り込んでいます。対話型としても、シェルスクリプトコマンドプロセッサとしても利用できる、他のShellの便利な機能を合わせたShellとも言われています。macOS10.15から、macOSの標準シェルに採用されました。

関連記事 : Linux系エンジニアの仕事内容

Shell入門・初心者向けの勉強方法

ここでは、Shell初心者がShellを学ぶための具体的な方法について解説します。

参考書、Webサイトを読む

UnixのコマンドやShellについて記載された参考書やWebサイトを読むことで、Shellについて学ぶことができます。後述する環境を自分のPCなどに構築し、動かしながら学ぶと理解しやすいでしょう。

eラーニング、プログラミングスクールを利用する

eラーニングやプログラミングスクールにも、Shellを学べるものがあります。多くの場合コストがかかりますが、学習のサポートを受けやすく、疑問が発生した場合に質問できるなどの点でメリットがあるでしょう。

仮想環境を作り実際にコマンド、スクリプトを試してみる

PC上に仮想環境を作ってUnixやLinuxの環境を構築し、手元で動かしてみることも、Shellコマンド、スクリプトを学ぶ方法の一つとして有効です。無料で利用できる仮想環境やUnixのOSもあるので、PCがあれば低コストで理解を深められる学習方法と言えます。

関連記事 : Webエンジニアになるための勉強法と学んでおきたい10のこと

Shellの仕事に関するよくある質問

Shellの仕事に関して、よくある質問とその回答をまとめました。

Q. Shellを扱う仕事にはどんなものがありますか?

A. Shellエンジニアには、ミドルウェアの起動・停止などの制御スクリプトを記述するインフラ系エンジニア、サーバーサイドでのバッチ処理を記述するサーバーサイドエンジニア、システム運用やDBの管理を行うエンジニアなどが存在します。

また、Webアプリケーションをはじめとした各種システム開発プロジェクトにおいても、Shellやシェルスクリプトが利用されていることがあります。

Q. Shellと併せて勉強すると仕事で役立つスキルはありますか?

A. サーバー、OS、ネットワーク、クラウド、仮想化などのインフラの知識・スキルとShellを併せて勉強することにより、インフラエンジニアとしてのスキルセットを身につけることができます。

また、Unix系のサーバーを利用する環境でのバッチプログラムはC言語との親和性が高く、Shellとセットで役立つ機会も想定できます。Unix系のシステム運用では、シェルスクリプトと各OSに備えられたコマンドを組み合わせて利用するため、OSやコマンドについての知識・スキルもShellと併せて勉強するといいでしょう。

Q. Shellの仕事に役立つ資格はありますか?

A. NPO団体LPI-Japanが運営している、「LinuC(リナック)」というLinux技術者の認定試験があります。日本の市場に最適化したLinux技術者を認定する試験で、出題範囲にはShell・シェルスクリプトも含まれており、Linux技術者として一定以上のShellに関する知識・スキルを持っていることを示せる資格です。IPA(独立行政法人情報処理推進機構)が作成するITスキル標準(ITSS)にもマッピングされています。

参考 : LPI-Japan「LinuC」

関連記事 : インフラエンジニアを理解するのに役立つ|Linux技術者認定試験/シスコ技術者認定試験

最後に

簡単4ステップ!スキルや経験年数をポチポチ選ぶだけで、あなたのフリーランスとしての単価相場を算出します!

※相場算出に個人情報の取得はおこないません。

Shell案件を提案してもらう

  • このエントリーをはてなブックマークに追加

関連記事

関連案件

もっとShellの案件を見る

かんたん60秒!無料で登録する

フリーランスのご経験はありますか?

プライバシーマーク

© 2014-2021 Levtech Co., Ltd.