この記事を読むのに必要な時間:およそ 1 分
Linuxの知識は,インフラエンジニアに限らずWeb開発やアプリケーション開発を行うエンジニアにとっても有用です。しかし,Linuxという分野自体が巨大なこともあって「いつか勉強しないといけない分野」として,ToDoに留めている方も多いのではないでしょうか。
とはいえ,エンジニアをしていれば,どこかでLinuxに触れるタイミングがやってきます。それはいつ,どんなときでしょうか? 考えられるシチュエーションをいくつか挙げてみます。
Webエンジニアがサイトをデプロイするとき
Webサイトをデプロイするためには,サーバにさまざまなソフトウェアをインストールする必要があります。サーバに入っているOSの大半はLinuxですので,そのLinuxがまったくのブラックボックスでは,たとえ手順が指示されていても「もしサーバの動作をおかしくしてしまったら……?」という不安がついて回ることになります。また,実際に障害が起こったとして,自分の担当しているアプリケーションの分野以外がわからないと,どこでどんな不具合が起こったのか,チームメンバーや上司になかなか具体的な報告がしづらいでしょう。
ここでLinuxの知識があると,サーバ操作時に気をつけるべきポイントがわかり,自信を持ってデプロイできます。障害が起きても「ここが原因かもしれない」という見当をつけやすく,問題の切り分けを段取りよく進めることができます。
Dockerの仕事を任されたとき
Dockerをはじめとしたコンテナは業界標準と呼べるほど浸透しており,入社や異動の直後にいきなり使うことになるケースもあるかもしれません。DockerはLinuxの技術を基にしていますから,Docker CLIでコンテナを操作するうえでも,コンテナ同士のネットワーク通信を理解するうえでも,Linuxの予備知識があるとないとでは,難易度がまったく異なることでしょう。
クラウドサービスの操作を効率化したいとき
クラウドサービスを仕事で使うにあたって,ベンダーが用意したGUIを使うこともできますが,能率を上げるうえでは,GUIとCLIのどちらも使い分けられることが求められます。自動化スクリプトによる効率化を図ったり,複数のコマンドを組み合わせて臨機応変な対応をしたりといったことは,CLI操作でなければできません。つまり,業務をより早くこなすためには,UNIXコマンドへの習熟が必要ということになります。
column 個人開発こそLinuxが大事?
個人開発では,自前で開発環境や本番環境などのインフラを用意する必要があります。Webサービスであればクラウドがそれらの役割を担ってくれることもありますが,たとえばRaspberry Piなどのハードウェアを動かすには,CLIを使ったLinuxの操作が必要不可欠といえます。自力でファイルサーバを立てたり,PCをデュアルブートにすることも,Linuxの知識があれば夢ではありません!
本書『Linuxブートキャンプ』は『Software Design』のLinux関連記事を,大きく2つの構成に分けて再編集した書籍です。前半は,新人研修をイメージした会話形式の解説となっています。先輩にひとつひとつの工程を教えてもらうように,Linuxの環境構築からネットワークの基本まで身につけることができます。後半は著名なインフラエンジニアにヒアリングを行って厳選した,現場で使える即戦力のコマンド集になります。
Linuxはたとえ今すぐ使うものでなくても,絶対に腐らないスキルですので,学んでおいて損はありません。それに,CLI画面を自由自在に操作できると格好いいですし,コンピュータを今まさに動かしているという実感を得られるのは楽しいものですから,IT学習の道のりをモチベーションの面でも支えてくれるでしょう。