久しぶりのLinux関係。

 

数年前に、Linuxの勉強をはじめたのだがなかなか続かない。

そこで、「どう学んだらよいのか」「何を勉強したらよいのか」、一度メモとして残すことにした。

しっかり記録した上で、あとあと見返してみようというのが目的。

 

参考にした本はこちら。

日経Linux2018年9月号付録「基礎からわかる最新Linuxマスターブック」

 

この本から「学び方」をメモしようと思います。

まずは、Linuxの基礎知識となる要素

P.7 Linuxの6つの基礎知識
  • インストール
  • 基本的なコマンド
  • Linuxの構成要素
  • ブートフロー
  • プログラムの実行フロー
  • ネットワーク

基礎知識に何を含めるかは目的によって異なるが、示した6つの基礎知識は最低限知っておいた方が良いもの。

「インストール」、「基本的なコマンド」は何となくやってたけど、他はきちんと学んだことないなー。

 

次に、どのように学習をしていったら良いか

P.8 Linux学習の基本的な流れ
  1. 目的設定
  2. インストール
  3. コマンド操作の学習
  4. Linuxの構造理解
  5. 目的に関する学習
  6. 目的達成

目的設定以降の学習は、「実践」(試す、動かす)して、「理論」(動作原理や手順の意味など)を理解することを反服する。

 

◆ 目的設定

例えば、「サーバーを構築する」「プログラムの開発環境を作る」など。

おすすめは「Webサーバー構築を目的にすること」

作成したWebサーバーを公開してクライアントPCから閲覧するという身近なテーマであり、サーバー構築はネットワーク環境作りの要素も含んでいるから。

たしかに「目的設定」というのは重要かなと思う。

 

◆ インストールについて

インストール手順は、学習要素がさまざま。これらの要素の中にはブートプログラム、パッケージ管理システム、ユーザー管理、セキュリティなどLinuxを構成する仕組みや概念が含まれている。

P.8 インストールの学習要素
  • ディスクパーティション
     ⇒ストレージの分割
  • ファイルシステム
     ⇒複数種類のファイルシステムの選択と割り当て
  • Linuxのディレクトリー構造
     ⇒ファイルシステムに割り当てるディレクトリー
  • マルチユーザー
     ⇒管理者ユーザー(root)、一般ユーザーの作成
  • ローカライズ
     ⇒タイムゾーン、言語などの設定
  • インストールタイプ(クライアントやサーバーなど)
     ⇒インストールするソフトウェアの選択

まずは、「インストール」「いろいろ触る」「壊す」を繰り返す。

壊したって、インストールしなおせるのがLinuxのとても良いところ。これらは、ディストリビューションのインストールしまくったからだいたいわかる。

 

◆ コマンド操作の学習

Linuxには無数のコマンドが存在するのですべてを記憶するのは困難。コマンドを学習する際は、次のポイントを押さえておくのが良い。

P.9 コマンド操作のポイント
  • シェルについて
     ⇒シェルの考え方、シェルの機能
     (コマンド補完、ショートカットキー、環境変数など)
  • コマンドの構造
     ⇒コマンド名、オプション、引数の組み合わせ
  • 絶対パス、相対パスの概念
  • コマンド実行の方法
     ⇒環境変数PATHからの実行、相対パス実行、絶対パス実行
  • コマンドの組み合わせ
     ⇒リダイレクト、パイプなど

「シェル」とは、ユーザーとOS(Linuxカーネル)の間に立ち、ユーザーの入力(コマンド)をOSに伝え、OSの処理結果(出力)をユーザーに伝える役割を持っている。

コマンドの入力、実行、結果の出力などの機能をユーザーに提供するソフトウェアが「シェル」と考える。

こうやってポイントを並べてみると、良くわからない言葉が多い。これらもしっかり学んでみたい。

 

◆ Linuxの構造理解

P.10 Linuxの構造を学習するときの主な要素
  • ディレクトリー構造
     ⇒ファイルシステムと紐づいたLinuxのファイル管理構造
  • ファイル構成
     ⇒Linuxを構成するファイル群の構成
  • 起動関連(ブートプロセス)
     ⇒ブートローダーやintプロセスなどのLinuxが起動する仕組み

これらのLinuxの構造は、ディストリビューションにより差異が大きい。そのため、目的に関する学習の中やその後でも問題なし。

また、ブートプロセスは、奥が深く、難しい構造になっているが、どのような流れでLinuxが起動していくかを知っておくことはLinuxの構造を理解する上で不可欠。

ディレクトリー、ファイルなんかは大まかにはわかる。ブートプロセスは良くわかってない。

 

◆ 目的に関する学習

設定した目的により学習する内容が異なるが、「なぜこのようなことをしなければならないのか」「どうしてこういうことになるのか」といった理論も同時に知ることが重要。

 

例として「Webサーバーの構築での学習」の場合

P. 10 Webサーバー構築での学習要素
  • ネットワーク設定(実践)
  • TCP/IPの知識(理論)
  • Webサーバーの設定(実践)
  • HTTPの知識(理論)

「実践」と「理論」を両方まなぶことが重要。

Linuxでは『Apache HTTP Server』というソフトウェアをよく使う。

最初は最低限動作できる範囲で設定し、動きを確認できるようにする。資料はインターネット上の解説記事や書籍など。

実際に動作が確認できたら、『Apache』のマニュアルや公式サイトの資料を読みながら、一つずつ各設定を変更して動作を確認する。

『Apache』の設定には、『Apache』専用のものと『HTTP』の仕様に基づくものがあるので、『HTTP』関連の仕様書などを読むのもよい。

おそらく、Webサーバーを作ることはネットを調べればできそうだが、その理論や仕様までは考えてなかった。

 

◆ 目的達成

具体的に自分でいろいろ動かして、その動作結果を確認し、その理論を学ぶことができれば目的達成。

Linuxをより理解したければ、次の目的を設定してそれを繰り返す。

 

おまけ 資格取得

技術習得の目的の一つとして、資格の取得がある。

Linuxの資格で、人気の高いものとして、LPI認定資格というものがある。特徴として、ベンダー系の資格と異なり、特定のディストリビューションに偏らない(一部依存あり)、Linux全般に必要とされる総合的な知識を認定するとのこと。

本のメモは以上。

 

さて、これまでを振り返ってみると、Linuxのディストリビューションをインストールして、PCとして使いながら、たまに端末からコマンドをいじるくらいだった。

一度、Raspberry PiでNASをつくったが、さすがに理論までは学ぼうと思わなかった。

とうことで、まずは『Webサーバー構築』を目的に勉強スタートしてみよう

何か良い教材ないかしら・・・。

 

ポチっとしてくれたら、うれしいです。

にほんブログ村 ライフスタイルブログ 田舎暮らしへ
にほんブログ村