Linux 学習ロードマップ

「Linux の勉強をやろうと思ったけど、どこから勉強すればいいの?」という方のために、学習ロードマップを用意しました。

(画像の各項目をクリックすると、入門記事に飛べます。)

以降では、学習の流れの詳細とそれぞれの記事のリンク先を紹介します。
まず、全く Linux を触れたことがない方は「基礎操作」から学習を始めます。

次に、「Linux カーネル」について学びます。

上記を一通り読み終えれば、OS, Linux カーネルの役割について理解できます。

次に Linux でサーバーを構築します。

サーバー構築には、「基本的なネットワークの知識」が必要なので、OSI 参照モデル、TCP/IP を学習します。

実際に「OSS」を利用してサーバーを構築します。「OSS」と対応する「プロトコル」は以下のとおりです。

プロトコルサーバー OSS役割
HTTPnginxWeb・プロキシサーバー
HTTPGunicornAP サーバー
HTTPS
(TLS)
Let’s EncryptHTTPS 化
HTTPSquidプロキシリバースプロキシ
DNSBINDDNS サーバー
LDAPOpenLDAPディレクトリサービス
SSHOpenSSHリモート操作
DHCPIP アドレス・DNS の自動設定

「プログラミング言語」は個人でちょこっと検証するなら Python がオススメです。

目的言語推奨フレームワーク
フロントエンドエンジニアJavaScriptReact, Vue
JavaScript だけでバックエンドもしたい人Node.js (Javascript)Express
簡単、ビッグデータ機械学習などPythonFlask, Django
大規模案件、サーバー OSS のコードを読むJavaSpring Boot
Linux カーネルのコードを読むC

一通りサーバーを構築できるようになったら、「コンテナ」を利用してサーバーの構築をできるように学習します。

【入門】Docker とは?コマンドや dockerfile の使い方

おすすめの書籍 (本)

Linux の学習を始める上でおすすめの書籍を、おすすめの学習順に並べて紹介します。

  1. 新しいLinuxの教科書 (必須・実践)
  2. Amazon Web Services 基礎からのネットワーク&サーバー構築 (必須・実践)
  3. Linux のしくみ (必須・基礎知識)
  4. 絵で見てわかるOS/ストレージ/ネットワーク (オプション・基礎知識)
  5. CentOS8 で作るネットワークサーバ構築ガイド (オプション・実践)
  6. Linux教科書 LPICレベル1 (オプション・基礎知識)

知識から入ってもよくわからないと思うので、まずは実践経験を積んで Linux に慣れる方がいいと思います。

新しいLinuxの教科書

まずは Linux の操作やできることを把握するためにコマンドを実際に叩くことをおすすめします。

コマンド自体はググれば出てきますが、学習を始めたばかりの時はググるキーワードすらわからないと思うので、書籍を利用することをおすすめします。

Amazon Web Services 基礎からのネットワーク&サーバー構築

サーバー構築の実践経験を積みたい場合におすすめの書籍です。また、ネットワークの知識が全く無い状態でも読むことができる本です。

上記と同じく、本書籍の情報自体は全て google 検索で取得可能ですが、学習を始めたばかりの時はググるキーワードすらわからないかと思います。

そのため、何もわからない段階では書籍を利用して、順を追って学習することをおすすめします。

本書を読み終え、自分でキーワードが自分で思い浮かぶようになれば後は google 検索だけで知識を収集できるようになります。

Linux のしくみ

OS、カーネルの機能を知識として学ぶことができる本です。

誤字はあるものの、図を使って説明してくれるため、とにかくわかりやすいです。

初学時は、ネット上にある OS、カーネルの解説が難しすぎて挫折するので、この本から入ることをおすすめします。

Linux について広く浅くキャッチアップできるので、インフラエンジニアとして生きていく上での必要最小限の知識は網羅されているかと思います。

絵で見てわかるOS/ストレージ/ネットワーク

ある程度基礎ができている方は、こちらの書籍をおすすめします。

バラバラな「OS/ストレージ/ネットワーク」の知識を繋げ、実際の動作がイメージできるようになります。この総合力は、新規技術の習得やトラブルシューティングの際に大きな力となります。

CentOS8 で作るネットワークサーバ構築ガイド

Linux (CentOS) でサーバーを構築する場合の手順書的な本となっています。

そのため、実際に手を動かしながら学びたい場合におすすめの書籍となります。

先程の「Amazon Web Services 基礎からのネットワーク&サーバー構築」よりも少しだけ難易度が上がってます。

一方で網羅性が高く、ネットに全然情報の無い情報等もまとめられているため、サーバー構築を行う際に非常に助けになる書籍です。

とても分厚い本なので、業務の必要に応じて各章をつまみ読みするのがおすすめです。

Linux教科書 LPICレベル1

Linux の基礎知識を網羅的に勉強するなら、やはり LPIC です。

世界的な技術者資格だけあって、幅広い範囲を学習できます。

おすすめの学習サイト

Linux を学習する上でおすすめのサイトは以下の2つです。

「A の記事と B の記事で矛盾したことを言っている。どっちが正しいの?」
という時は以下を見ましょう

Linux 記事の一覧

基礎知識

【入門】初心者が練習すべき Linux コマンドの一覧

初めて Linux のコマンドを学ぶ時は、ググるキーワードがわからなかったり、1つずつ調べるのが面倒だったりしました。 そのため、本記事の上から順にコピペして実行することで、Linux でよく利用するコマンドを網羅的に理解できるよう...
カーネル

【Linux カーネル: OS 基礎入門2】CPU、プロセス管理

CPU CPUとは、コンピュータの構成要素の1つで、データを処理するための機械です。 プロセス プロセスとは、CPU で処理するために、メモリにロードしたプログラムのことです。 ...
command

【入門】ssh コマンドとは?接続方法やオプションの使い方

ssh ssh とは、コンピュータを遠隔操作するコマンドです。 【第1回】SSH プロトコル【第2回】ssh コマンド (SSH クライアント、サーバー) ...
カーネル

【Linux カーネル: OS 入門3】メモリ管理

メモリとは メモリとは、CPU が直接読み書きする領域です。CPU で実行するプログラム (プロセス) を置いたり、実行した結果を読み書きする領域です。 なお、本記事は Linux カーネルの解説のうち第...
カーネル

【Linux カーネル: OS 入門4】ストレージ管理、ファイル

ストレージとは ストレージとは、電源を切ってもデータが残るデバイス (SSD, HDD 等) です。実際にデータを CPU で処理する場合、メモリにロードします ファイルとは ファイルとは、「名...
カーネル

【Linux カーネル: OS 入門8】IPC (プロセス間通信)

IPC (Inter Process Communication) IPC とは、プロセス間で通信 (データをやりとり) する仕組みです。 本記事では、以下の IPC について説明します。 IPC の種類特...
カーネル

【Linux カーネル: OS 入門7】I/O デバイス管理

I/O デバイスとは I/O デバイス とは、カーネルに対して Input や Output を行うデバイスのことです。 I/O デバイスは、下図の USB Drive (USB メモリ等)・Disk (SSD等...
カーネル

【Linux カーネル: OS 入門6】RAID

RAID (Redundant Array of Inexpensive Disks) とは RAID とは、複数のストレージ (SSD/HDD など) にデータを分散することで「高速/大容量/冗長性」を実現する技術です...
カーネル

【Linux カーネル: OS 入門1】OS、カーネルとは

OS (Operating System) OS (Operating System) とは、主に以下の2つの役割を持つソフトウェアです。 ・ハードウェアの管理 ・プロセス (実行中のソフトウェア) からハードウェアにア...
カーネル

【Linux カーネル: OS 入門5】ファイルシステムの機能

ファイルシステムとは ファイルシステムとは、ストレージ等を「ファイル」単位で管理するカーネルの機能です。これにより、ファイル名を経由してストレージ上のデータへアクセスできるようになります。 各アドレスにどんな...