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. Amazon Web Services 基礎からのネットワーク&サーバー構築 (必須・実践)
  2. Linux のしくみ (必須・基礎知識)
  3. CentOS8 で作るネットワークサーバ構築ガイド (オプション・実践)

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

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

  • わかりやすさ:★★★★★
  • 情報の希少性 (google 検索で HIT するか):★★★★★
  • 分野全体の網羅度:★★★★☆
  • 総合おすすめ度:★★★★★

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

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

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

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

Linux のしくみ

  • わかりやすさ:★★★★★
  • 情報の希少性 (google 検索で HIT するか):★★★☆☆
  • 知識の網羅度:★★★★☆
  • 総合おすすめ度:★★★★★

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

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

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

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

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

  • わかりやすさ:★★★★★
  • 情報の希少性 (google 検索で HIT するか)::★★★★
  • 知識の網羅度:★★★★★
  • 総合おすすめ度:★★★★★

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

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

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

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

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

おすすめの学習サイト

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

残念ながら英語なので、google 翻訳を使いながら見るのをおすすめします。

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

Linux 記事の一覧

Linux

【入門】負荷テスト/ボトルネック/パフォーマンス調査の方法

本記事では、以下の流れで負荷テストやパフォーマンス調査の方法を説明します。 stress コマンドで実際にシステムに負荷を掛けるvmstat コマンドでパフォーマンスのボトルネックとなる箇所を特定top, iotop コマンドで原因...
Linux

udev とは【Linux 入門】

udev とは udev とは、Linux カーネル 用のデバイス管理ツールです。 新しいデバイスがコンピュータに接続もしくは接続解除された時に、udevは事前に定義したルールを実行することでデバイスを管理します。 なお...
基礎知識

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

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

【入門】systemd とは?設定ファイルの書き方や自動起動の設定

systemd systemd とは、Linux の起動処理 (init) やサービスの管理を行うソフトウェア一式です。 init - カーネルが最初に起動するプロセスで、他の全てのプロセスを起動する役割を持つ ...
カーネル

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

本記事は以下の書籍を参考にしています。 また、本記事は Linux カーネルの解説のうち第3回「メモリ管理」に関する記事です。 その他の Linux カーネルの解説については以下の記事をご覧ください。 【Linu...
カーネル

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

本記事は以下の書籍を参考にしています。 また、本記事は Linux カーネル解説の第5回「ファイルシステムの機能一覧」に関する記事です。 その他の Linux カーネルの解説については以下の記事をご覧ください。 ...
カーネル

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

本記事は以下の書籍を参考にしています。 また、本記事は Linux カーネルの解説のうち第6回「I/O デバイス管理」に関する記事です。 その他の Linux カーネルの解説については以下の記事をご覧ください。 ...
カーネル

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

本記事は以下の書籍を参考にしています。 また、本記事は Linux カーネル第4回「ストレージ管理・ファイルシステム」に関する記事です。 その他の Linux カーネルの解説については以下の記事をご覧ください。 ...
カーネル

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

本記事は以下の書籍を参考にしています。 また、本記事は Linux カーネルの解説のうち第1回「OS、カーネル」に関する記事です。 その他の Linux カーネルの解説については以下の記事をご確認ください。 【L...
カーネル

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

本記事は以下の書籍を参考にしています。 また、本記事は Linux カーネル解説の第2回「CPU・プロセス管理」に関する記事です。 その他の Linux カーネルの解説については以下の記事をご覧ください。 【Li...