「Linux の勉強をやろうと思ったけど、どこから勉強すればいいの?」という方のために、学習ロードマップを用意しました。
(画像の各項目をクリックすると、入門記事に飛べます。)
以降では、学習の流れの詳細とそれぞれの記事のリンク先を紹介します。
まず、全く Linux を触れたことがない方は「基礎操作」から学習を始めます。
- 基本コマンド (ファイル操作/パーミッション/ユーザー・グループ管理)
- ディレクトリの標準階層構造
- パッケージ管理システム (yum 等)
- init システム (systemd)
- ロギング (jounald)
次に、「Linux カーネル」について学びます。
- 【Linux カーネル: OS 入門1】OS、カーネルとは
- 【Linux カーネル: OS 入門2】プロセス管理・CPU 割り当て
- 【Linux カーネル: OS 入門3】メモリ管理
- 【Linux カーネル: OS 入門4】ストレージ管理・ファイル
- 【Linux カーネル: OS 入門5】ファイルシステムの機能一覧
- 【Linux カーネル: OS 入門6】I/O デバイス管理
- 【Linux カーネル: OS 入門7】IPC (プロセス間通信)
上記を一通り読み終えれば、OS, Linux カーネルの役割について理解できます。
次に Linux でサーバーを構築します。
サーバー構築には、「基本的なネットワークの知識」が必要なので、OSI 参照モデル、TCP/IP を学習します。
- OSI 参照モデル、TCP/IP
- レイヤ1 物理層 イーサネット
- レイヤ2 データリンク層 イーサネット
- レイヤ3 ネットワーク層 IP
- レイヤ4 トランスポート層 TCP/UDP
- レイヤ5 セッション層 SSL/TLS
- レイヤ6 プレゼンテーション層 MIME
- レイヤ7 アプリケーション層
実際に「OSS」を利用してサーバーを構築します。「OSS」と対応する「プロトコル」は以下のとおりです。
プロトコル | サーバー OSS | 役割 |
---|---|---|
HTTP | nginx | Web・プロキシサーバー |
HTTP | Gunicorn | AP サーバー |
HTTPS (TLS) | Let’s Encrypt | HTTPS 化 |
HTTP | Squid | プロキシ・リバースプロキシ |
DNS | BIND | DNS サーバー |
LDAP | OpenLDAP | ディレクトリサービス |
SSH | OpenSSH | リモート操作 |
DHCP | – | IP アドレス・DNS の自動設定 |
「プログラミング言語」は個人でちょこっと検証するなら Python がオススメです。
一通りサーバーを構築できるようになったら、「コンテナ」を利用してサーバーの構築をできるように学習します。
【入門】Docker とは?コマンドや dockerfile の使い方
おすすめの書籍 (本)
Linux の学習を始める上でおすすめの書籍を、おすすめの学習順に並べて紹介します。
- 新しいLinuxの教科書 (必須・実践)
- Amazon Web Services 基礎からのネットワーク&サーバー構築 (必須・実践)
- Linux のしくみ (必須・基礎知識)
- 絵で見てわかるOS/ストレージ/ネットワーク (オプション・基礎知識)
- CentOS8 で作るネットワークサーバ構築ガイド (オプション・実践)
- 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つです。
- LinuCイージス (Linux の基本的な使い方)
- tutorialspoint (Linux のカーネルの機能※英語なので google 翻訳を使いましょう)
「A の記事と B の記事で矛盾したことを言っている。どっちが正しいの?」
という時は以下を見ましょう