派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

コマンドを学ぶだけで終わる?終わらない?

第一回では、「そもそも『Linuxを学ぶ』とは」についてお話ししました。Linuxは、コマンド(命令文)で操作することも多いので、難しく見えるけれど、実際にやっていることは、Windowsなら右クリックでコピー&ペーストを選んだり、ドラッグ&ドロップをすることと同じでしたね。

しかし、ここで考えて欲しいのは、果たして「Linuxで、ファイルのコピーをできたら、それはスキルと呼べるのか?」ということなのです。

  1. そもそも「Linuxを学ぶ」って何?
  2. コマンドを学ぶだけで終わる?終わらない?
  3. Linuxを学びたい!でもどうやって?

コマンドを学ぶと「スキル」になるか?

「Linuxのコマンドを打てるようになったら、それはスキルと呼べるようになるのか?」の答えは、「呼べる」です。 コマンド操作は、慣れてしまえば、簡単なのですが、そもそも「多くの人は、簡単であることを知らない」のです。身につけようとする人が少ないジャンルなので、スキルと呼べるかどうかと問われれば、「呼べる」が答えです。

ただし、これで「仕事が受注できるかどうか」は、また別の話です。できるかできないかで言えば、「プロジェクトと、担当業務による」といったところでしょうか。

コマンド操作ができるだけでも、シンプルなサーバーの保守には、大きな戦力です。また、プログラマや、小さいプロジェクトのPM・SEなどは、「専門外なのに、サーバーを操作しなければならない事態」に遭遇することもあるでしょう。そうした人は、積極的に身につけるべきです。

*本来は、専門外の人がサーバーを触るべきではないですが、万年人手不足の業界では、引っ張り出されることもままあります。「本来は」が、まかりとおるのであれば、事故なんて起こらないのです。

なので、「サーバーの専門家」としては、極めて初歩的なスキルであっても、小さいプロジェクトや、サブスキルとしては、十分有効です。

コマンドの先を学ぶなら、何からはじめる?

では、サーバーの専門家なら、Linuxにおいて、何を知るべきでしょうか。

サーバーの専門家になりたいのであれば、少なくとも、Linuxの構造や、サーバーの構築方法を知らねばなりません。特に最初の一歩としては、「サーバー用ソフトウェアの設定」を知ることが必須でしょう。

「Linuxのコマンドを学ぶ」ことでできるのは、ファイルの操作や、ユーザーの作成、ファイルの書き換えなどです。これだけでは、サーバーの構築はできません。なぜなら、サーバーとは、前回でも解説した通り、「何かサービスを提供(Serve)する」という役割を指す言葉だからです。実際に「何かの役割を果たす機能」を持たせなければなりません。

その機能は、Apache ®、NGINX ®(どちらもウェブサーバー用ソフトウェア)などのソフトウェアを入れて動かすことで、提供されますが、それだけでは不十分です。それぞれのプロジェクトに応じた設定が必須です。そのままで動かなくもないですが、パイナップルを丸ごと食べる人はいないように、通常は専用の設定をすることが前提だと思ってください。

ですから、それぞれのソフトウェアについてよく知るとともに、Linuxについてもよく理解し、設定ファイルを書けるだけの知識と技術が必要です。

一口にLinuxと言っても、ディストリビューション*があり、Red Hat® Enterprise Linux®とUbuntuとでは、性質や文化が異なります。どれか一つを知っていれば、他のLinuxもおおよそわかるのですが、意外なところに落とし穴があったりもするので、仕事として請け負うのであれば、そうした違いもよく理解しておきましょう。

*簡単に言うとLinuxの種類のこと。詳しい解説はこちらから。

「『Linuxを学ぶ』のに、ソフトウェアも知らなくちゃいけないのか」と思われるかもしれませんが、WindowsやMacでも、ファイルのコピーだけでは、あまり大きな仕事とは言えないでしょう。WordやExcelが使えてようやく「パソコン使えますよ」と名乗る人が多いのではないでしょうか。

Linuxでも同じです。ソフトウェアが設定できることは、サーバー屋さんには、初歩の技術なのです。

(出典)『ゼロからわかるLinux サーバー超入門Ubuntu 対応版』p.135より

WindowsやMacだって「学ぶ」べき?

また、ソフトウェアを開発する場合、知っておくべき重要なことは、「Linuxの仕組み・セキュリティ」です。

前回のお話で、「WindowsやMacを学ぶ人は少ない」と書きましたが、それはあくまで操作方法に限った話です。たしかに、マウス(トラックパッド)での操作は、グラフィカルで横から見ていても身につく人は身につきます。

しかし、Windowsや、Macで動くソフトウェアを開発する人は、それだけでは不十分です。WindowsやMacも、本来なら学ぶべきことなのです。Windowsの中がどうなっているのか、どんな仕組みになっているのかを理解しないで、ソフトウェアは作れません。

Linuxだけが、なんだか特殊なような気がしてしまいますが、そうではなく、「OS(オペレーティングシステム)」であることは、WindowsもMacも同じなのですから、マウスを使ったグラフィカルな画面での操作は、どのOSでも簡単に身につきますし、コマンドでの操作はどのOSも練習が必要です。

そして、そのOSの上で動くソフトウェアを開発したいなら、仕組みについて深く理解せねばなりません。

Linuxは、「コマンドでの操作が多く、ソフトウェアを開発することが多い」だけなのです。

ニャゴロウ先生のまとめ

そろそろ「Linuxを学ぶ」の正体は見えてきたでしょうか。 Linuxにおいて「自分は」「何を」学ぶべきなのかをはっきりさせると、ターゲットが定まってくるはずです。コマンド操作を覚えたい人も居れば、仕組みやセキュリティを知った方がよい人も居るでしょう。

場合によっては、ざっくり概要だけわかればよい人だって居るはずです。

エンジニアは忙しいのです。なんでもかんでも学ぶ時間はありません。興味があるならば追求することは良いことですが、そうでないなら、まずは自分周りの知識から埋めていきましょう。

  1. そもそも「Linuxを学ぶ」って何?
  2. コマンドを学ぶだけで終わる?終わらない?
  3. Linuxを学びたい!でもどうやって?
【筆者】小笠原種高さん(ニャゴロウ先生)
技術ライター、イラストレーター。システム開発のかたわら、雑誌や書籍などで、データベースやサーバー、マネジメントについて執筆。図を多く用いた易しい解説に定評がある。主な著書に『なぜ?がわかるデータベース』(翔泳社)、『仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん』(マイナビ出版)、『これからはじめる MySQL入門』『図解即戦力 Amazon Web Serviceのしくみと技術がこれ1冊でしっかりわかる教科書』、最新刊には『ゼロからわかるLinuxサーバー超入門 Ubuntu対応版』(技術評論社)がある。

※本記事に記載されている会社名、製品名はそれぞれ各社の商標および登録商標です。

リクルートスタッフィング