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

PRODUCED BY RECRUIT

そもそも「Linuxを学ぶ」って何?

ここ数年、SNSで「エンジニアは、Linux®を勉強しないとダメ」論を見かけます。

たしかに、Linuxを知っておくことは、武器として大きいですし、開発現場で、「そこは、Linuxを知っておいてよ!」と思うこともあります。ですが、ITエンジニアと言っても職種の幅は広いですし、そもそも「Linuxを学ぶ」とは、具体的に何をやるのでしょうか。本当にエンジニア全員が、「Linuxを隅から隅まで」知っておく必要があるのでしょうか。

「誰が」「何を」学ぶべきなのか曖昧に語られることの多いLinux。今回は、「そもそもLinuxを勉強するとは?」からはじめて、「各々のエンジニアに適した知識とは何か?」を探っていきます。

  1. そもそも「Linuxを学ぶ」って何?
  2. コマンドを学ぶだけで終わる?終わらない?
  3. 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 サーバー超入門Ubuntu 対応版』p.93より

ニャゴロウ先生のまとめ

このように、「Linuxの操作」を学ぶことは、実はそんなに難しくありません。コマンドでの操作を戸惑うかもしれませんが、いくつかのコマンドを覚えれば、よいだけですし、後は慣れです。そもそも、Linuxであっても、グラフィカルな画面を使う現場もあります。

しかし!実はここからが難しいのです。次回は、「本来はWindowsやMacも学ぶべき」というお話とともに、更にお話をしていきます。

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

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

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