ここ数年、SNSで「エンジニアは、Linux®を勉強しないとダメ」論を見かけます。
たしかに、Linuxを知っておくことは、武器として大きいですし、開発現場で、「そこは、Linuxを知っておいてよ!」と思うこともあります。ですが、ITエンジニアと言っても職種の幅は広いですし、そもそも「Linuxを学ぶ」とは、具体的に何をやるのでしょうか。本当にエンジニア全員が、「Linuxを隅から隅まで」知っておく必要があるのでしょうか。
「誰が」「何を」学ぶべきなのか曖昧に語られることの多いLinux。今回は、「そもそもLinuxを勉強するとは?」からはじめて、「各々のエンジニアに適した知識とは何か?」を探っていきます。
- そもそも「Linuxを学ぶ」って何?
- コマンドを学ぶだけで終わる?終わらない?
- Linuxを学びたい!でもどうやって?
「Linuxを勉強するぞ!」の前に、サーバーについておさらい
「Linuxの勉強」についてお話する前に、軽く前提条件をおさらいしておきましょう。
■サーバーとは「何かの機能を提供するもの」
まず、Linuxは、サーバーでよく使われるOS(オペレーティングシステム)です。
そして、サーバーとは、「Server」の名のとおり、「何かサービスを提供(Serve)するもの」を指します。この言葉は、「何かの機能を提供するもの」という役割の名前です。ウェブ機能を提供するなら「ウェブサーバー」、メール機能を提供するなら「メールサーバー」です。
■サーバーはソフトウェアを入れて動く
サーバー機能は、ソフトウェアを入れて動かすことで提供されるものなので、該当するソフトウェアを入れれば、「その機能のサーバー」になります。Apacheなどのウェブサーバー用ソフトウェアを入れれば、ウェブサーバーになりますし、メール用ソフトウェアを入れれば、メールサーバーになります。
■物理的なマシンも「サーバー」と呼ぶ
少しややこしいのは、こうした役割だけでなく、その機能を提供する物理的なマシンも「サーバー」と呼ぶことです。ですから、現場で単に「サーバー」と言った時には、役割を指している場合と、物理的なマシンを指していることがあります。
また、マシンは、「サーバーに向いているマシン」は存在していますが、特殊なものではありません。いつも皆さんが使っているパソコンと基本的な構成は同じです。パソコンにも、ソフトウェアを入れれば、サーバーになります。
Linuxを勉強って何するの?
サーバーについておさらいしたところで、「Linuxの勉強」について考えましょう。
まず、Linuxとは何かと言えば、「OS(オペレーティングシステム)」の一種です。「そんなこと知ってるよ!」と思われるかもしれませんが、一番重要なわりに、実感してない人も多いので、もう一度言います。「OSの一種」です。
さて、OSと言えば、普段使っているパソコンでLinuxを使っているという人は稀でしょう。多くは、Windowsもしくは、Macです。
「Linuxは、サーバーでよく使われる」というと、なんだか特殊な感じがしてしまいますが、そんなことはありません。WindowsもMacもLinuxも、OSとしての役割は同じです。
つまり、「Linuxを勉強する」ということは、「WindowsやMacを勉強する」ことと、ほぼ同じなのです。
「あれ?なんか思っていたのと違うぞ」「もっと難しいはず」と思われた方は正解です。現在では、WindowsやMacを操作するにあたり、勉強する人は減っています。世代によっては、大人の操作するパソコンを横から見て覚えた人も居るでしょう。同じOSでも、あまり苦労せずに身についているWindowsやMacに対し、「Linuxは勉強しろ」と言われるのはなぜでしょう。
「コマンドを学ぶこと」が表すこと
Windows&Macと比べて、Linuxは何が違うのかと言えば、「コマンドで操作すること(CLIでの操作)も求められる」という点です。
コマンドとは、テキストでの命令文です。
WindowsやMacは、ファイルのコピーをしたり、移動をしたりする場合に、グラフィカルな画面(GUI)で、マウスを使って操作します。ノートPCの場合は、トラックパッドかもしれませんが、まあ、やっていることは同じです。ポインタを動かし、「見た目」で操作します。
Linuxでも同じように、グラフィカルな画面での操作もできるのですが、状況によっては、それは好まれません。グラフィカルな画面が用意されておらず、コマンドでの命令もできないといけない現場もあるのです。
コマンドでの操作は、具体的には、俗に言う黒い画面で、「cp ほにゃらら」のような命令文を入力します。たとえば、「peanut.txt(ピーナッツ)」という名前のファイルを「nyagoro(ニャゴロウ)」という名前のディレクトリ(フォルダのこと)から、「nyagoro2(ニャゴロウ2)」にコピーしたいとします。そうした時は、以下のように命令文を書きます。
コピーではなく、移動したい場合は、以下のように書きます。
一見難しそうに見えるコマンドですが、このようにたいしたことはしていません。Windowsであれば、ドラッグ&ドロップで移動したり、右クリックで、コピー&ペーストを選択しているだけです。
ちょっと拍子抜けしたかもしれませんが、これが「Linuxの操作」であり、「Linuxのコマンドを勉強する」ということなのです。
他にも、いくつかコマンドでの操作(CLI)に特有の癖のようなものがあります。例えば、Windowsでは、nyagoroとnyagoro2の両方のフォルダを開いている状態で、操作対象を切り替えたいときは、クリックすれば対象が変わりますが、LinuxのCLIの場合は、「cd」というコマンドで切り替えます。でも、やっていることは、Windowsにてクリックで実現されることと変わらないのです。
ニャゴロウ先生のまとめ
このように、「Linuxの操作」を学ぶことは、実はそんなに難しくありません。コマンドでの操作を戸惑うかもしれませんが、いくつかのコマンドを覚えれば、よいだけですし、後は慣れです。そもそも、Linuxであっても、グラフィカルな画面を使う現場もあります。
しかし!実はここからが難しいのです。次回は、「本来はWindowsやMacも学ぶべき」というお話とともに、更にお話をしていきます。
- そもそも「Linuxを学ぶ」って何?
- コマンドを学ぶだけで終わる?終わらない?
- Linuxを学びたい!でもどうやって?