Shellを活かせる仕事は?仕事内容や年収相場、プロジェクト例について紹介 | レバテックフリーランス
Shellを活かせる仕事は?仕事内容や年収相場、プロジェクト例について紹介
Shellを扱うエンジニアの仕事には、Shellによるバッチ処理の開発、インフラ系のスクリプトやツールの作成、C言語やSQLといった他言語の起動スクリプトの作成などがあります。また、Shellの仕事を行う場合には、そのプラットフォームとしてLinuxを含むUnix系のOSを利用することがほとんどであるため、Unixのコマンドの知識、利用スキルなども必要になるでしょう。今回はShellエンジニアの仕事について、詳しくお伝えします。
なお、さまざまなエンジニアの仕事について知りたい方は「エンジニアの種類」の記事をご覧ください。
レバテックフリーランスはITエンジニア専門の
フリーランスエージェントです案件を探してみる
■この記事の監修
中崎 まりか
大学卒業後、ゲーム制作会社に入社。ゲームプランナーとしてゲーム開発に従事。 その後、IT系専門学校へ教員として転職。 約10年間に渡り、Webシステム開発やデータベース運用、ネットワーク構築、サーバ運用、国家資格対策などの講座を担当する。 退職後、個人事業を開業。Webライティング事業、IT学習教材制作事業を展開し、現在に至る。 所持資格はデータベーススペシャリスト、情報セキュリティスペシャリスト、応用情報技術者など。 趣味は資格の勉強で、IT系資格以外にも日商簿記2級、FP技能検定2級、保育士資格などを所持している。
Shellとは?
Shellとは、OS(オペレーティングシステム)を利用するコンピューターシステムにおいて、ユーザーのためにインターフェースを提供し、OSの各機能ヘのアクセスを可能にするソフトウェアです。OSの中核のソフトウェアであるカーネルを包み込むような存在であり、外部からの要求をカーネルに引き渡す役目を果たすため、「シェル(shell、英語で「貝殻」)」と呼ばれるようになりました。
Shellには、CUIベースのものもGUIを用いたものも存在します。ただし、エンジニア向けの求人ではCUIベースのShellおよびシェルスクリプトを扱う仕事が多いでしょう。
シェルスクリプトとは?
シェルスクリプトとは、Shellで実行するコマンドライン処理を集めて集合体としたスクリプトの一種です。繰り返し実施するコマンドの組み合わせを記載しておくことで、何度もコマンドを打ち直す必要がなくなります。外部プログラムの呼び出しやループ、CUIでの対話型なども実装できます。狭義にはUnixシェルで用いられるスクリプト言語を指しています。
インフラエンジニアの仕事内容について知りたい方は、こちらの記事をご覧ください。
インフラエンジニアとは?仕事内容やスキル、年収、未経験からの勉強法などを徹底解説
Shellの仕事内容
Shellを扱うエンジニアの仕事内容には、シェルスクリプトによるバッチ処理の開発、インフラ系のスクリプトやツールの作成、C言語やSQLなど他言語での起動スクリプトの作成などがあります。
シェルスクリプトによるバッチ処理の開発
バッチ処理を行うシェルスクリプトを記述する仕事です。処理をまとめて記載でき繰り返し実行しやすいため、Shellが動かせる環境ではShellでバッチ処理を記載することが多いでしょう。OSが持つ各種のコマンドやユーザーの作成したプログラムをコールする処理を組み合わせることで、バッチ処理を構築します。
利用されるShellの種類はOSによりさまざまで、Bシェル系、Cシェル系のいずれも利用されています。また、バッチ処理の場合にはcronなどのスケジューラーとの組み合わせを行うことが多いため、スケジューラーを扱うスキル、バッチ処理のフローの設計スキルなども必要とされることがあります。
インフラ系のスクリプトやツールの作成
Unix系のOSにおいては、マシン起動時の各種ソフトウェア・ミドルウェアはシェルスクリプトにより起動されることが多いでしょう。マシン起動時に必ず呼び出される処理としてシェルスクリプトを指定することにより、起動時に立ち上げが必要なソフトウェア・ミドルウェアの起動も自動化することができます。
インフラ系のスクリプトやツールを作成する場合には、OSやミドルウェアの動作、仕様に精通し、起動/停止コマンドなどの組み立てができるスキルが必要となります。
C言語やSQLなど他言語での起動スクリプトの作成
Shellはカーネルの提供するコマンドだけでなく、ユーザーが作成したC言語やSQLでの処理を起動する際にも有効です。特に、手動で繰り返し行うオペレーションが存在する場合、その処理をスクリプトとして作成しておくことで、誰でも同じ処理を繰り返し行えるというメリットがあります。データベースの管理を行うDBAやシステム運用とも相性のいい利用方法です。
C言語のプログラミングについては、こちらの解説をご覧ください。
C言語プログラマの仕事内容
Shellの求人案件
レバテックフリーランスのShell案件を見てみると、2023年10月時点での掲載案件数は654件となっています。
参考:Shellの求人・案件一覧
案件の内容を見てみると、金融系、官公庁、通信系など幅広い業界のクライアントが存在します。Shellの特性から、インフラ系に近い求人案件、ツール作成やシステム運用、バッチ処理作成、SQLと組み合わせたDBA寄りの案件、一般的なシステム開発のバッチ部分でShellを利用する案件などがありました。
インフラ系の求人案件ではOS、クラウド、ネットワーク、VMなどのインフラに関する知識、実務経験を必要とする条件が設けられていることが多いでしょう。3年以上など長い実務経験を求める場合やインフラの上流工程経験がある場合は、単価が高くなる傾向が見られます。
また、Shellでのバッチ処理構築、ツール作成、システム運用、多言語と組み合わせた案件などでは、Shellスクリプトを作成するスキルとともにLinuxなど各種の動作環境におけるコマンドの知識、利用スキルが求められることが多いでしょう。上流工程の経験が必要な案件やShell以外の言語での開発が組み合わさった案件は、単価が高い傾向にあります。
Shell初心者向けの求人案件
初心者でも応募しやすいShellに関連する求人案件の例としては、インフラエンジニア、サーバーサイドエンジニアとしての求人案件が挙げられます。こうした案件では、Shellを扱う作業が仕事内容の中心ではない場合もあるため、Shellのスキルに関する応募のハードルが低いこともあります。
Shellの経験が求められる求人案件では、正社員の求人、クラウドソーシングで募集される業務委託案件ともに、ShellおよびUnix系OSの1年以上の使用経験が求められるものが多いと言えます。
サーバーサイドエンジニアの仕事内容を知っておきたい方は、こちらの記事もチェックしてみてください。
サーバーサイドエンジニアとは?仕事内容やフリーランス事情を解説
Shellを扱うエンジニアの年収
2023年10月時点でレバテックフリーランスに掲載されているShellの求人案件の月額平均単価は65万円となっています。この金額で12ヶ月稼働したと想定すると、税金や保険料を差し引く前のShellエンジニアの平均年収は768万円と試算されます。ただし、これはあくまでレバテックフリーランスの求人案件をもとに算出した金額であり、一般的なShellを扱うエンジニアの年収相場とは異なります。また、同時点での最低月額単価は40万円、最高月額単価は145万円となっています。
インフラエンジニアの年収については、こちらもご覧ください。
インフラエンジニアの平均年収|転職して狙える収入は?年収1000万円は可能?
Shellの種類
ここでは、代表的なShellの特徴や用途について記載します。これらのShellはLinuxのディストリビューションに含まれていることが多く、プロジェクトでのルールや利用者の多さなどからよく選択されているものです。
sh(Bourne Shell)
1977年にスティーブン・ボーンによって開発されたShellで、現在利用される多くの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系エンジニアの仕事内容を知りたい方は、こちらも参考にしてみてください。
Linux系エンジニアの仕事内容
Shell入門・初心者向けの勉強方法
ここでは、Shell初心者がShellを学ぶための具体的な方法について解説します。
参考書、Webサイトを読む
UnixのコマンドやShellについて記載された参考書やWebサイトを読むことで、Shellについて学ぶことができます。後述する環境を自分のPCなどに構築し、動かしながら学ぶと理解しやすいでしょう。
eラーニング、プログラミングスクールを利用する
eラーニングやプログラミングスクールにも、Shellを学べるものがあります。多くの場合コストがかかりますが、学習のサポートを受けやすく、疑問が発生した場合に質問できるなどの点でメリットがあるでしょう。
仮想環境を作り実際にコマンド、スクリプトを試してみる
PC上に仮想環境を作ってUnixやLinuxの環境を構築し、手元で動かしてみることも、Shellコマンド、スクリプトを学ぶ方法の一つとして有効です。無料で利用できる仮想環境やUnixのOSもあるので、PCがあれば低コストで理解を深められる学習方法と言えます。
Shellの仕事に関するよくある質問
Shellの仕事に関して、よくある質問とその回答をまとめました。
Q. Shellを扱う仕事にはどんなものがありますか?
Shellエンジニアには、ミドルウェアの起動・停止などの制御スクリプトを記述するインフラ系エンジニア、サーバーサイドでのバッチ処理を記述するサーバーサイドエンジニア、システム運用やデータベースの管理を行うエンジニアなどが存在します。
また、Webアプリケーションをはじめとした各種システム開発プロジェクトにおいても、Shellやシェルスクリプトが利用されていることがあります。
Q. Shellと併せて勉強すると仕事で役立つスキルはありますか?
サーバー、OS、ネットワーク、クラウド、仮想化などのインフラの知識・スキルとShellを併せて勉強することにより、インフラエンジニアとしてのスキルセットを身につけることができます。
また、Unix系のサーバーを利用する環境でのバッチプログラムはC言語との親和性が高く、Shellとセットで役立つ機会も想定できます。Unix系のシステム運用では、シェルスクリプトと各OSに備えられたコマンドを組み合わせて利用するため、OSやコマンドについての知識・スキルもShellと併せて勉強するといいでしょう。
Q. Shellの仕事に役立つ資格はありますか?
NPO団体LPI-Japanが運営している、「LinuC(リナック)」というLinux技術者の認定試験があります。日本の市場に最適化したLinux技術者を認定する試験で、出題範囲にはShell・シェルスクリプトも含まれており、Linux技術者として一定以上のShellに関する知識・スキルを持っていることを示す資格です。IPA(独立行政法人情報処理推進機構)が作成するITスキル標準(ITSS)にもマッピングされています。
参考 : LPI-Japan「LinuC」
最後に
簡単4ステップ!スキルや経験年数をポチポチ選ぶだけで、あなたのフリーランスとしての単価相場を算出します!
※相場算出に個人情報の取得はおこないません。
役に立った/参考になったと思ったら、シェアをお願いします。