🐧

Linux学習のための書籍紹介

2023/06/16に公開

個人的にLinuxをお勉強する上でのルートを考えてみました。

Introduction

なんだか、バイト先や研究室でLinuxの基本知識的な部分を聞かれたり、教えたりすることが多い。
最近、Linux関連の良い本が増えていて、初級者~中級者くらいまで一気に駆け抜けられる環境が整いつつある。
そこで、Linuxをユーザとして、開発者として使うための(個人的)最短ルートを考えてみた。

まだまだブラッシュアップ段階で、特にWebの資料について触れられていないので、随時更新していく予定。

ユーザとして(初級編)

ユーザとしての入門「新しいLinuxの教科書

「新しいLinuxの教科書」は、まさにLinuxの教科書的な存在で、「ディストリビューションってなに?」なところから丁寧に解説してくれて、Linuxの基本的な使い方を学べる。
とりあえず、Linux触ったことない人にはこれを読んで欲しい。

https://amzn.asia/d/4FxBUVO/

シェル入門 「シェルスクリプト基本リファレンス

「新しいLinuxの教科書」では、当然シェルの基本的な使い方やメジャーなコマンドについては紹介されている。
一方で、少し発展的な使い方やシェル(bash)自体の機能について網羅的に紹介されているわけではない。

シェルスクリプト基本リファレンスには、シェル自体の機能から応用的なコマンドまで幅広く辞書的に載っている。
当然、manコマンドを使って調べることもできるが、予めパラパラと見ておくことで、「この機能はたしかコマンドとして提供されたな」みたいなあたりを付けることができる。
「できる、できない」の判断がついていると、Webで検索する際にも迷子になりにくい。

(最近では、ChatGPTに聞けばほとんどのコマンド、オプションを教えてくれるため、わざわざ逆引き的に覚えておく必要はないかもしれない)

https://amzn.asia/d/0P3ifBP

開発者、管理者として(初級編)

Linuxの上でソフトを開発したり、Linuxサーバにアプリをデプロイしたりする場合、ユーザとしての知識だけでは足りないことがある。
例えば、Docker(仮想化技術)を使う場合、ファイルシステムやネットワークについての基本的な知識が必要になる。

Linuxの裏側に入門する「[試して理解]Linuxのしくみ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識

この本はLinuxの中身、特にカーネルと呼ばれる根幹部分で何をしているかを知るための入門書である。
最近のニーズに対応するため、仮想マシン、コンテナという副題がついているものの、OSとしてのLinuxの上に広がる概念、用語を初学者にもわかりやすく解説している。
(個人的には、ここ最近出たLinux関連本の中ではイチオシ)

著者の武内覚(sat)さんは、YouTubeチャンネルでもLinux関連のトピックを解説しておられて、こちらもおすすめ。
こちらは体系的というより、動画ごとにトリビアルな内容となっている。
興味のある分野から観てみることをおすすめする。

https://amzn.asia/d/3R2po8u

https://www.youtube.com/@satlinuxtube5260

ユーザ、開発者、管理者として(中級編)

ちょっと扱いに迷ったが、このレベルになるとユーザ、開発者、管理者という区分けはあまり意味がなく、どの立場においても知っておくべき内容になってくる。
よって、「中級編」としてまとめることにした。

更にシェルでできることを増やす「シェル・ワンライナー160本ノック

この本は、シェルのコマンドを組み合わせて1行のコマンド列で何かを実現するという「ワンライナー」を中心に、コマンド、シェルの機能を学べるドリルである。
本当に160本の例題が載っており、それぞれの例題に解説、別解が丁寧に付いている。
全部通すのはかなりしんどいが、やりきると多分シェルについてはかなり理解が深まるはず。
(僕はパラパラ読みで全部手を動かしたわけではない…ハズカシイ)

https://amzn.asia/d/evNorc6

最近のLinuxツールチェイン、ユースケースを知る「入門 モダンLinux

Linuxはカスタム性が強く、ツールなどのトレンドが変わりやすい
(もちろん変わらないインタフェースもあるが)。
この本では、最近のLinux周辺ツール、環境、ユーザがどんな使い方をしているか、などについて解説している。

例えば、シェルと一口に言っても、bash、zsh、fishなど様々なシェルがある。
この本には、各シェルがどんな特徴を持っているか、注意点はなにか、といったことが載っている。
また、eBPFなど最近のLinuxカーネルの機能についても解説がある。
これら最新の動向、流行りを知っておくと、Webや雑誌の技術記事に関する解像度がクリアになり、情報収集のスピードが加速度的に上がる。
そんな意味でもこの本はおすすめ。

ちなみに、この本の翻訳には先述したsatさんも関わっている。
再度になるが、satさんのYouTubeチャンネルではこの本で扱うような最新のトピックにも言及しており、本と一緒に楽しむことができる。

https://amzn.asia/d/7rN5Rz5

管理者としての知識を深める「スーパーユーザーなら知っておくべきLinuxシステムの仕組み

名前のとおり、スーパーユーザ(管理者)が知っておくべきLinuxの仕組み、使い方についてかなり広範に、詳細に扱っている本である。
ぶっちゃけ、僕も読めていない節があったり、これまで紹介してきたリソースに比べて相当に難しく、実践的な内容になっている。

全ては理解できなくても、仮想マシンなどで手を動かしながら読み進めることで、周辺知識も含めたLinuxの理解がかなり深まる。
また、必要となってからリファレンス的に用いることも出来るので、一度パラ読みしてみることをおすすめする。

https://amzn.asia/d/cIgPqfv

まとめ

こんな感じのルートを最近はおすすめしている。
また、シェルについて省略したこんなルートも良いかもしれない。

  1. 新しいLinuxの教科書
  2. Linuxのしくみ
  3. 入門 モダンLinux
  4. スーパーユーザーなら知っておくべきLinuxシステムの仕組み

この記事については、特にWebのリソースを中心にまだまだ漏れがありそうなので、都度更新していく予定。
なにかおすすめのリソースがあったら教えてください。

あとは、上級編としてカーネルのソース、デバドラみたいな山を登っていくルートを考えてもおもしろいかもしれない。
が、そもそも僕が登らないと書けない…。
頑張ります、はい。

GitHubで編集を提案

Discussion