Linuxをどう学ぶのか?
【連載コラム:Linuxを学ぼう(2)】
サーバーを扱う上で必須と言える技術が「Linux」。今回のコラムではどうやって学習を進めるのかについて、俯瞰して紹介します。
サーバーを管理する上で必須の技術「Linux」の学習の仕方について解説することコラムの2回目は、少し広い視野でLinuxの学習をするための準備と心構えについて紹介します。
前回はLinuxとは何か、ということについて解説しました。
Linuxは狭い意味ではLinuxカーネルを、広い意味ではLinuxディストリビューションを指しました。LinuxカーネルはOSの中心でもあり専門的な知識が要求される領域ですので、Linuxを使うと言った場合、一般的には後者のLinuxディストリビューションを使って様々な処理を行わせる、サービスを動かすことになります。
では、Linuxをどう学んでいけばよいのでしょうか。今日はスキルとしてのLinuxを俯瞰してみたいと思います。
Linuxディストリビューション
まず、Linuxディストリビューションを実際にインストールしてLinuxを動かしてみる必要があります。
Linuxディストリビューションは、インストールするためのメディアがISOイメージファイルとして用意されており、ダウンロードできます。ISOイメージはインストールに使うDVDメディアの内容をファイル化したもので、仮想マシンソフトウェアなどであれば物理メディアを作成しないでもそのままインストール用に使うことができます。
Linuxをどこで動かす?
Linuxを動かす場合、いくつかの方法があります。
- 物理マシンで動かす
- 仮想マシンで動かす
- クラウドで動かす
物理マシンで動かす
最も基本的な方法です。
Linux用のマシンを用意し、DVDメディアでOSインストールします。ハードウェアの知識も得られるため、学習という観点でおすすめできます。ただし、前提として「Linux用のマシンを別途用意する」ということが必要なため、初学者には特にハードルが高い方法です。
最初から用意するのが難しい場合でも、どこかのタイミングでやってみて欲しい方法です。
仮想マシンで動かす
仮想マシンは、仮想マシンソフトウェアが必要になりますが、普段使っているPCでも行える方法なので、最も手軽です。
仮想マシンはCPUやメモリ、ディスクなどを消費しますが、学習用の環境であればこれらのリソースの消費を抑えることもできます。
VirtualBoxのように一般のアプリケーションと同じように扱える仮想マシンソフトウェアの利用がおすすめです。
クラウドで動かす
クラウドサービス上でLinux環境を動作させます。
クラウドサービスは課金制ですが、無料枠などを上手に使えば低コストに環境を用意できます。ただし、クラウドサービスの利用などについて理解する必要があります。
いずれの方法も一長一短がありますので、自分にあったやり方を選択して学習用の環境を構築してみてください。この連載では、一番バランスのよい仮想マシンを使った方法を想定して解説を進めていく予定です。
学習の目標を立てる
Linuxは多岐に渡って使われている分、学習の目標も多様となるため、何を目標に学習を進めればいいのか分かりにくい点があります。一方で、用途が変わるとしても共通の部分と、個別に設定や操作が異なる部分に分けることもできます。
そこでお勧めしているのが、まず1つ特定の目標を設定して、そこまでゼロから始めて到達する方法です。大体、以下のようなシナリオをお勧めしています。
- 学習用の環境を準備
学習で使用するマシンを用意したり、仮想マシンソフトウェアをインストールするなどの準備を行います。 - Linuxディストリビューションのインストール
インストールしたいLinuxディストリビューションのISOイメージをダウンロードし、仮想マシンを作成してOSをインストールします。 - 基本的な設定とネットワーク接続の確認
OSにログインし、IPアドレスの設定やネットワーク接続の確認などを行います。 - ソフトウェアのインストールと設定
動作させたいソフトウェアをインストールしたり、基本的な設定を行って動作させます。たとえばWebサーバーなど、とりあえず入れるだけで動作するものを想定しています。
このような流れは、どんなことをやろうとしても基本的には共通のやり方になるので、手順書などを見なくても行えるぐらい繰り返しやって欲しい内容です。
ここから、たとえば動作環境を変えれば前半でやることが変わりますし、やりたいことが変わるのであればインストールするソフトウェアや設定が変わります。より複雑なシステムになれば、複数用意した環境をネットワークで接続して相互に連携させることになります。
たとえばDNSを用意したり、メールサーバーを用意したり、データベースを動かしたりといった、実務で必要とされる構成です。このような複雑な構成で構築ができるようになるのが、その次の目標となるでしょう。
ネットワークについて学ぶ
Linuxを学ぶ際に大きな課題となるのがネットワークです。Linuxの主な目的はWebサーバーなどのネットワーク向けサービス用ソフトウェアを動かすことですので、その際にはネットワークの知識が必要になります。
そこまで幅広く、かつ詳しくネットワークの知識が必要とされるわけではありません。とりあえず、TCP/IPの仕組みと、できれば暗号化通信の仕組み(SSL/TLSやVPNなど)について併せて習得することをお勧めします。
特にTCP/IPについては、IPアドレスの割り当てや、TCPポートとサービスの紐付けなど、基礎の基礎について早めに理解しておく必要があるでしょう。
まとめ
今回は学習の進め方、特に学習環境の準備を中心に解説しました。
いろいろな選択肢がある分、迷うところも多いと思いますが、習うより慣れろ、あとは繰り返し手を替え品を替えで学んでいくべきところも多いので、次回は実際に学習環境を構築する方法を解説します。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
バックナンバー
第20回:Webサーバーを動かす
第19回:Webサーバーをインストールする
第17回:ネットワークの状態確認を理解する
第15回:ファイルのアクセス権を理解する
第14回:パッケージをアップデートする dnf編
第13回:PAMを理解する
第12回:グループとは何かを理解する
第11回:sudoコマンドについて理解する
第10回:suコマンドで特権ユーザーになる
第9回:ユーザー権限を理解する
第8回:SSHによるリモートログイン
第6回:Linuxイストールの実際
第5回:Linuxインストールの準備
第3回:学習環境を用意する
第2回:Linuxをどう学ぶのか
第1回:Linuxを学ぼう