ゼロから学ぶLinux～Linux学習環境の構築方法を知る～
・LinuC 試験の出題範囲対応「1.01.1 Linuxのインストール、起動、接続、切断と停止」など

担当：河原木忠司© LPI-Japan / EDUCO all rights reserved.

自己紹介◼河原木忠司（かわらぎただし） 20数年ほど、講師/エンジニアとして活動しております。
 最近は講師、研修コンサルティング、執筆業に従事させていただいております。
- サーバーインフラ系のコース、セキュリティ系のコースを中心に担当させていただいております。
- LinuC Lv.1/Lv.2のver.10試験開発にも協力させていただきました。
https://linuc.org/linuc/thanks.html◼最近執筆したもの「基礎からしっかり学ぶ Linux
入門」（技術評論社）
https://gihyo.jp/book/2022/978-4-297-12545-5「最短突破 LinuCレベル1
合格教本 ver.10対応」（技術評論社）
好評発売中です。
https://gihyo.jp/book/2020/978-4-297-11527-2「標準テキスト CentOS8 構
築・運用・管理パーフェクトガ
イド[CentOS Stream対応] 」（共著、SBクリエイティブ）
https://www.sbcr.jp/
product/4815602567/© LPI-Japan all rights reserved.

2

セミナーの内容◼LinuCの位置づけ / Linuxに関する一般知識◼Linuxの環境構築手順◼Linux環境の利用【想定する受講対象】
Linuxについてゼロから学習したい人◼このセミナーでお話しする内容「Linux」というものが何かを説明し、一般的なLinuxの利用環境をご紹介。
その上で、仮想環境を利用したLinux環境の構築方法をご紹介。
構築したLinux環境上で、いくつかコマンド実行を試した後、Webサーバー機能を有効化する流れを確認ご紹介した内容を実践することで、ご自分でもLinuxの利用環境を構築し、いろいろな実験等ができるようになる。

© LPI-Japan all rights reserved.

3

LINUCの位置づけ / LINUXに関する一般知識© LPI-Japan all rights reserved.

4

LinuCレベル１／レベル２ Version10.0とは◼LinuCとは
クラウド時代の即戦力エンジニアであることを証明するLinux技術者認定
https://linuc.org/✓現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化・コンテナを問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知見「Linux技術」に関する資格✓全面的に見直した「今」身につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込み✓Linuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

5Linuxとは◼Linus Torvalds氏が開発
 1991年に公開
 Linusはカーネル（OSの中核となる機能）を開発
 そのため、様々な組織が「カーネル＋必要なソフトウェア」を構成して、Linuxディストリビューション（OSとしてのLinux）を公開- 主なLinuxディストリビューション
✓ Red Hat系
» Red Hat Enterprise Linux» CentOS / CentOS Stream» Rocky Linux など✓ Debian系» Debian GNU/Linux» Ubuntu など

Linuxディストリビューション

カーネル
・プロセス管理・デバイス管理 など

必要なソフトウェア© LPI-Japan all rights reserved.

6Linuxが活用されている場面◼Linuxは様々な環境で利用されている
AndroidはLinuxカーネル
をカスタマイズしたもの

PC

サーバー

スマホ

ChromeOSはLinuxカーネ
ルをカスタマイズしたもの

IoT端末/情報家電

通信機器© LPI-Japan all rights reserved.

7

Webサーバーで利用されているOS◼UNIX系：79.9%
 w3tech https://w3techs.com/technologies/overview/operating_system より
 多くのWebサーバーがLinux環境で動作© LPI-Japan all rights reserved.

8

Webサーバー/Web通信について◼Webサーバーもプログラムで実装
 Apache httpd nginx など◼事前にインストール、起動しておくことで、クライアントからの接続に応答www.cloudtraining.tkにhttpsで接続
サーバー上のboardディレ
クトリのデータを要求
https://www.cloudtraining.tk/board/

要求

HTTP/HTTPS
ポートを待機Webサーバー(Apache httpdなど)
OS (Linuxなど)

Webブラウザ（Google Chromeなど）

応答

board
ディレクトリ© LPI-Japan all rights reserved.

9Linuxの環境例◼どのような環境でLinuxを利用できるか 物理マシンにインストール- 既存のOS環境を上書き 仮想マシン環境を用意し、インストール- 物理マシン上で、仮想マシン環境を実現- 以下のような仮想化ソフトウェアを利用し、仮想マシン環境を実現できる

今回は、Oracle
Virtualboxを利用して、仮想マシン環境を用意し、仮想マシン上でCentOS環境を構成✓ Oracle VirtualBox✓ VMWare Workstation Player✓ Microsoft Hyper-V （WSL） など

 クラウドサービス上のインスタンス（仮想マシン）を起動して、利用- 以下のようなクラウドサービスを利用し、インターネット上でLinux環境
を実現
✓ AWS
✓ GCP
✓ Microsoft Azure✓ さくらのクラウド など- インターネット上で有効なIPアドレスが割り当てられ、実践的な動作確認が可能- ランニングコストが発生© LPI-Japan all rights reserved.

10

LINUXの環境構築手順© LPI-Japan all rights reserved.

11

仮想マシン環境のインポート◼いまから紹介する「環境構築」の手順は、仮想マシン環境を事前に用意している場合、VirtualBoxでその環境をインポートするだけで環境構築が可能です。
 拙書（「合格教本」「基礎からしっ
かり学ぶLinux入門」）では、CentOSとDebianの仮想マシン環境を用意しており、インポートして、
利用していただくことができます。

© LPI-Japan all rights reserved.

12

仮想マシンの作成
 以下のサイトより、VirtualBoxのインストールファイルをダウンロードし、インストール
https://www.virtualbox.org/

 CentOS7で動作確認。公式サイトよりisoファイルをダウンロード済み

http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso①VirtualBoxを起動し、ツール画面で[新規]をクリック②仮想マシン名を入力し、OSタイプを選択し、[次へ]③メモリーサイズを入力し、[次へ]2048MBくらい④仮想ディスクについての設定。サイズの指定までは[次へ]。右下の画面で、サイズを指定し、[作成]20GB～40GB© LPI-Japan all rights reserved.

13

インストール用isoファイルの読み込み ダウンロード済みのインストール用isoファイルを以下の手順で読み込む①作成した仮想マシンが選択されている状態で[設定]③左のように読み込まれた状態になったら[OK]②設定画面で、[ストレージ] – [仮想メディアのアイコン]×2 – [ディスクフ
ァイルを選択]をクリックし、インストー
ル用isoファイルを選択© LPI-Japan all rights reserved.

14

CentOS7のインストール①仮想マシンを起動したら、[Install CentOS 7]②日本語を選択し、[続行]③インストール概要画面が表示されるので、ここで設定を行う© LPI-Japan all rights reserved.

15

インストール時の主な設定項目

タイムゾーンの設定

パッケージグループの設定
CUI/GUIの設定

インストール先デバイスの設定

ネットワークデバイスの設定© LPI-Japan all rights reserved.

16

インストール時の主な設定項目◼ソフトウェアの選択 どのような環境を構成したいか選択。選択に従い、必要なソフトウェアがインストールされる

既定の「最小限のインストール」
は文字通り、最小限のソフトウェ
アでインストール。CUI環境「GNOME Desktop」などを選択す
ると、GUI環境を構成© LPI-Japan all rights reserved.

17

インストール時の主な設定項目◼必須の設定ネットワークとホスト名の設定
ここでネットワーク接続を有効にしないと、起動時にネットワーク
接続が無効
インストール先デバイスの設定
CentOSのインストール先となるディスクを選択。1つしか存在しなくても設定しないと、インストー
ル作業を完了できない© LPI-Japan all rights reserved.

18

インストール時の主な設定項目◼パスワードの設定
 インストール開始後に設定
ここをクリックし、rootユーザーとは別の一般ユーザーも作成できる

インストールが開始されたら、この画面でrootユーザーのパスワ
ードを設定• rootユーザーとはLinuxにおけるシステム管理者となるユーザー
制限無く、様々な操作を行うことができる• 一般ユーザーとはrootユーザー以外にログイン可能なユーザー制限された範囲で、操作が可能
通常はこちらのユーザーを利用

脆弱なパスワードを設定する場
合は、[完了]を2回押さないと進めない（非推奨）© LPI-Japan all rights reserved.

19

LINUX環境の利用© LPI-Japan all rights reserved.

20

Linuxシステムへのログイン◼端末に直接ログイン◼SSHでリモート接続

 仮想マシンを含む、目の前に端末が存在するケースGUI 仮想マシン環境のほか、クラウド環
境にリモート接続も可能

CUI

パスワードは入力しても記号も表示されない

接続するアドレスは「ip a」コマンドで確認© LPI-Japan all rights reserved.

21

コマンドライン操作◼コマンドの実行端末上で、以下のようにコマンドを入力して処理を実行
 CUI環境ではログイン＝コマンドの実行端末が起動
 GUI環境では、「端末」アプリを起動[user@host ~]$ ls
プロンプト

–l

/etc

コマンド端末上で、シェル(bash)が起動して、コマンド
入力や実行を支援

コマンド オプション 引数

プロンプト

ログインしているユーザー名やホスト名、カレントディレクトリを表示$：root以外のユーザー#：root

コマンド

実行するコマンドを指定

オプション

必要に応じて、オプションを設定し、コマンドの挙動を変えることができる

引数

必要に応じて、引数を設定し、コマンド実行時に値を渡すことができる。

• Linuxでは必ずコマンド操作が必要？
ほかのOSと同様、GUIのみ
でユーザー環境を利用することも可能しかし、システム管理操作などは、コマンド操作、設定ファイルの編集を前提としているものが多い© LPI-Japan all rights reserved.

22基本コマンド/ディレクトリ操作およびテキスト処理
コマンドと引数意味

cat ファイル名

テキストファイルの内容を表示

ls ディレクトリ/ファイル名

ディレクトリの内容を表示-l: 指定したファイル/ディレクトリの詳細情報を表示

mkdir ディレクトリ名

ディレクトリの作成

head ファイル名

テキストファイルの先頭10行を表示-数値: 指定した行数表示

tail ファイル名

テキストファイルの末尾10行を表示-数値: 指定した行数表示

grep キーワード ファイル名

テキストファイルの中から指定したキーワードが書かれた行だけを表示-v：指定したキーワードが書かれていない行を表示

echo 文字列

指定した文字列の表示。シェルスクリプト内で指定してメッセージを表示した
り、リダイレクトと組み合わせて、ファイルの生成に利用

Linuxでは設定情報を設定ファイルに記述して、システム管理を行うため、テキストファイルを操作するコマンドをしっかり使いこなす必要がある。
© LPI-Japan all rights reserved.

23

ディレクトリ構造/ （ルート）設定ファイル用/etc/etc/passwd/home

ホームディレクトリ/home/user/root◼「ディレクトリ」＝WindowsやmacOSでの「フォルダ」◼「/」で区切って表記◼最上位のディレクトリは「/」（ルートディレクトリ）◼FHSという標準規格があり、異なるLinuxディストリビューションであっても、ある程度標準的なディレクトリ構造になっている。

ホームディレクトリ（rootユーザー用）© LPI-Japan all rights reserved.

24アカウント管理の設定ファイル◼/etc/passwd: ユーザー情報を格納 「ユーザー名:x:UID…」という構成
 「x」は本来パスワードを格納する列だが、現在では、shadowファイルに格納◼/etc/shadow: パスワード情報を格納 「ユーザー名:暗号化されたパスワード…」という構成
 このファイルはrootユーザー権限がないと参照できない◼実行例[testuser@centos7 ~]$ head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin[testuser@centos7 ~]$ head -3 /etc/shadow
head: `/etc/shadow' を 読み込み用に開くことが出来ません: 許可がありません© LPI-Japan all rights reserved.

25

rootユーザーについて◼UNIX/Linux系システムにおけるシステム管理用ユーザー◼システムにおけるすべての操作が可能◼パーミッションの制約がなく、すべてのファイルやディレクトリ
に対して、読み書きが可能[root@centos7 ~]# ls -l /etc/shadow----------. 1 root root 1194 5月 20 23:27
2019 /etc/shadow[root@centos7 ~]# head -3 /etc/shadow
root:$6$qowcBD7fJyfaCzar$WYO8K8FXzcmc
6T9z3wwSwL.4a96XBjpZB3ZSe2g6MASPf06O
VFf5eh8z1arjD2fZA3t82KDojTX04piJ5kjL71:1
7854:0:99999:7:::
bin:*:17246:0:99999:7:::
daemon:*:17246:0:99999:7:::
すべてのユーザーが権限がないとなっている/etc/shadow ファイルに対して、読み書きが可能© LPI-Japan all rights reserved.

26

Webサーバー環境の構築◼CentOS 7をインストールし、rootユーザーでログインした
後、以下のコマンドを実行するだけ
 httpdをインストール
yum –y install httpd httpdを起動※これらのコマンドは、すべてLinuC 101
試験の範囲に含まれるものです。

systemctl start httpd 公開用ディレクトリに、ドキュメントを作成
vim /var/www/html/index.html© LPI-Japan all rights reserved.

27

パッケージ管理◼使いたいアプリ（コマンド、サービス）がインストールされていなければ、インストー
ルして利用 多くのOSS（オープンソースソフトウェア）を利用可能◼Linuxでアプリケーションをインストールする方法
 ソースファイルを入手し、コンパイルして、インストールする。
- ソースファイルさえ入手すれば、ディストリビューションなどの環境に依存せず、インストールが可能- コンパイル＆インストールを成立させるための環境が必要✓ 慣れていないとちょっと難しい・・・ パッケージファイルを入手して、インストールする。

今回はこちらの仕組みを利用- パッケージ管理用のコマンドでシンプルにインストール- インストール後もOS側でパッケージ情報を管理- パッケージ管理の仕組みが、ディストリビューションにより異なる✓ Red Hat系：yumコマンド、rpmコマンド✓ Debian系：aptコマンド、dpkgコマンド© LPI-Japan all rights reserved.

28

yumコマンドによるパッケージ管理◼Red Hat系ディストリビューションで利用できるパッケージ管理コマンド
 リポジトリからパッケージをダウンロードして、インストールが可能 リポジトリ：パッケージの「貯蔵庫」- CentOS Projectで提供しているサーバーないしミラーサーバーなど

リポジトリ

yum install httpd

httpdをダウンロード＆インストール© LPI-Japan all rights reserved.

29

yumコマンドによるパッケージ管理◼書式：yum [オプション] サブコマンド パッケージ名
 主なオプション
オプション

意味

-y

「y」で応答 主なサブコマンド
サブコマンド意味

install パッケージ名

パッケージをインストール

update [パッケージ名]

パッケージを更新

search キーワード

パッケージを検索

info パッケージ名

パッケージの情報を表示

remove パッケージ名

パッケージをアンインストール© LPI-Japan all rights reserved.

30

yumコマンドの実行例[root@centos7 ~]# yum -y install httpd → httpdパッケージのインストール：
インストール:httpd.x86_64 0:2.4.6-97.el7.centos.4

依存性関連をインストールしました:：
httpd-tools.x86_64 0:2.4.6-97.el7.centos.4： → 依存関係のあるパッケージもダウンロードして、インストール
完了しました!
httpd-toolsパッケージがインストールされていないと、httpdパッケージが正しく動作しない
httpd-tools
パッケージ

依存

httpd
パッケージ

© LPI-Japan all rights reserved.

31

yumコマンドの実行例[root@centos7 ~]# yum search httpd → httpdというキーワードでパッケージを検索：
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server： → パッケージ名にhttpdとつくパッケージが表示[root@centos7 ~]# yum info httpd → httpdパッケージの詳細情報を表示：
要約: Apache HTTP Server
URL: http://httpd.apache.org/
ライセンス: ASL 2.0
説明
: The Apache HTTP Server is a powerful, efficient, and: extensible web server.
：
point!
Red Hat系ディストリビューションでは、yumコマンドを利用す
れば、リポジトリ上のパッケージをインストール可能© LPI-Japan all rights reserved.

32

systemd◼カーネルの後に起動し、様々なプロセス（サービス/デーモン）の起動を管理 システムの起動が完了した後も、systemctlコマンドにより、サービスの制御に利用- 以前は、環境によりサービス制御用のコマンドや処理方法が違っていた ユニットという単位で、サービスなどを管理- 名前.service → 例：httpd.service◼systemctlコマンド
 書式：systemctl [オプション] サブコマンド ユニット
 主なサブコマンド
サブコマンドstartstoprestartstatusenabledisablelist-unit-files

用途
起動
停止
再起動
状態の確認
自動起動の有効化
自動起動の無効化
ユニットの状態を表示© LPI-Japan all rights reserved.

33

サービスとは◼OS上で常時起動して、サービスを提供するプログラム
 UNIX/Linuxの世界では、デーモン（Daemon / 守護神）と呼ばれてきた 「～サーバー」のプログラム- 例：Webサーバー → httpd.service

localhost＝自機を表す名前

Webサーバーが起動しているので、Webブラウ
ザで接続可能© LPI-Japan all rights reserved.

34

systemctlコマンドの実行例[root@centos7 ~]# systemctl status httpd → httpdの状態を確認。「～.service」は省略可能● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset:
disabled)
Active: inactive (dead) → 既定ではhttpdは停止している
Docs: man:httpd(8)man:apachectl(8)[root@centos7 ~]# systemctl start httpd → httpdを起動[root@centos7 ~]# systemctl status httpd● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset:
disabled)
Active: active (running) since 日 2020-04-05 04:30:58 JST; 1s ago： → httpdが起動したことを確認© LPI-Japan all rights reserved.

35

systemctlコマンドの実行例[root@centos7 ~]# systemctl status httpd● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset:
disabled)
Active: active (running) since 日 2020-04-05 04:30:58 JST; 21min ago： → 下線部分が自動起動の設定を表す部分。disableだと自動起動は無効[root@centos7 ~]# systemctl enable httpd → 自動起動を有効化
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to/usr/lib/systemd/system/httpd.service.
[root@centos7 ~]# systemctl status httpd● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2020-04-05 04:30:58 JST; 21min ago： → 自動起動がenabled（有効）になったことを確認
point!
systemctlコマンドでインストール済みのサービスの制御が可能© LPI-Japan all rights reserved.

36

Q&A / おわりに◼ご参加いただき、ありがとうございました。
◼ご質問がありましたら、よろしくお願いいたします。
◼参考文献「最短突破 LinuCレベル1
合格教本 ver.10対応」（技術評論社）
好評発売中です。
https://gihyo.jp/book/2020/978-4-297-11527-2「Linux標準教科書」（LPIJapan）※オンラインでダウンロード
して利用できます「基礎からしっかり学ぶ Linux
入門」（技術評論社）
https://gihyo.jp/book/2022/978-4-297-12545-5「標準テキスト CentOS8 構
築・運用・管理パーフェクトガ
イド[CentOS Stream対応] 」（共著、SBクリエイティブ）
https://www.sbcr.jp/
product/4815602567/© LPI-Japan all rights reserved.

37