1週間でLPICの基礎が学べる本のレビュー:LPIC・LinuCレベル1対策の基礎学習本

IT資格

1週間でLPICの基礎が学べる本のレビューをまとめました。

本記事の内容はYouTubeの動画で解説しています。

  1. そもそもLPICとは
    1. LPICはLinuxに関する資格
  2. 本の公式サイト
  3. 実際に本書を読んでみた感想
  4. LinuCレベル1の取得に役立った
  5. LinuCレベル1はLinuxサーバーの運用保守に関する資格
  6. LPIC/LinuCの概要
  7. LinuCの概要
  8. 実際にLinuxを使ってみるのがおすすめ
  9. 企業で一般的に使われるOSはRed Hat Enterprise Linux
  10. Red Hat Enterprise Linuxも個人で無償で使える
  11. LPIC・LinuCは実務で使うLinuxに関連する内容だが、Red Hat Enterprise Linuxの資格はRed Hat Enterprise Linuxを使えることを証明する資格
  12. 1日目の内容
    1. Linuxのカーネルとは
    2. Linuxのディストリビューションとは
      1. Red Hat系ディストリビューション
        1. Fedora
        2. Red Hat Enterprise Linux
        3. CentOS
      2. Debian系ディストリビューション
        1. Ubuntu
        2. Linux Mint
        3. Raspbian(現在ではRaspberry Pi OSに改名されている)
    3. 実はAndroidやiPhone(Mac OSも)はLinuxベースのOS
    4. Linuxの特徴
      1. UNIXライクなOS
      2. 多彩なディストリビューション
      3. 無償で使える
    5. Linuxを利用できる領域
    6. オープンソースとは
    7. オープンソースライセンス
    8. Linuxをパソコンで使うには
  13. 2日目の内容
    1. Linuxの操作方法
    2. GUIとCUI
    3. ログインとログアウト
      1. 管理者ユーザーroot(スーパーユーザー)と一般ユーザー
    4. コマンドによるLinuxの操作
      1. コマンドの引数(ひきすう)
      2. コマンドのオプション
    5. Linux上で参照できるLinuxのマニュアル
      1. manコマンドでマニュアルを参照する
      2. マニュアルのセクション
      3. whatisコマンドの概要
      4. 各コマンドの–helpオプション
    6. Linuxのファイルとディレクトリ
    7. Linuxのファイル
      1. Linuxのファイル名
      2. ファイルの種類
      3. ファイルの一覧表示
    8. Linuxのディレクトリ
      1. パス
      2. 絶対パスと相対パス
      3. 絶対パス
      4. 相対パス
      5. パスの記述で使える記号
      6. Linuxのディレクトリ階層
      7. catコマンドでファイルの中身を参照する
      8. lessコマンドで行数の多いファイルを分割して表示する
      9. cdコマンドでディレクトリを移動する
    9. ハードリンクとシンボリックリンク
      1. ファイルとiノード
      2. ハードリンク
      3. シンボリックリンク
  14. 3日目の内容
    1. Linuxのファイル管理
      1. ファイルのコピー
      2. ファイルの移動
      3. ファイルの削除
    2. ディレクトリの管理
      1. ディレクトリの作成
      2. ディレクトリのコピーと移動
      3. ディレクトリの削除
    3. ファイルとディレクトリの圧縮と展開
      1. gzipコマンドとgunzipコマンド
      2. zipコマンドとunzipコマンド
      3. tarコマンドとアーカイブ
      4. 圧縮アーカイブの作成と展開
    4. Linuxのユーザーとグループ
      1. ユーザー名とユーザーID
      2. ユーザーの種類
      3. rootユーザーの利用
      4. sudoコマンド
    5. ユーザーとグループの管理
      1. ユーザーの作成
      2. ユーザーの削除
      3. /etc/passwdファイル
      4. グループの作成と管理
      5. /etc/groupファイル
  15. 4日目の内容
    1. Linuxのファイル・ディレクトリのパーミッション
      1. 所有者と所有グループの管理
      2. ファイルのアクセス権
      3. パーミッションの変更
    2. Linuxのテキストファイルの編集方法
      1. viエディタの起動と終了
      2. コマンドモードと挿入モード
  16. 5日目の内容
    1. シェル
      1. 標準入出力
      2. リダイレクト
      3. パイプ
      4. メタキャラクタ
    2. シェルの便利な機能
      1. コマンド履歴
      2. ファイル名の補完
      3. エイリアス
    3. シェルスクリプト
      1. シェルスクリプトの決まりごと
      2. シェルスクリプトの実行方法
      3. 引数と終了ステータス
      4. 引数の利用
      5. 終了ステータス
  17. 6日目の内容
    1. ファイルの検索
      1. locateコマンド
      2. findコマンド
      3. 正規表現
      4. grepコマンド
    2. テキストファイルを扱う便利なコマンド
      1. ファイルの一部を表示するコマンド
        1. ファイルの先頭を表示するheadコマンド
        2. ファイルの末尾を表示するtailコマンド
      2. ファイルの内容を加工して出力するコマンド
        1. sortコマンド
        2. nlコマンド
        3. cutコマンド
      3. ファイルの情報を表示するコマンド
        1. wcコマンド
    3. パッケージとは
    4. パッケージの管理
      1. RPMパッケージ
      2. YUMの概要
    5. ファイルシステム
      1. コンピュータの構成
      2. デバイスとデバイスドライバ
      3. デバイスとファイル
      4. パーティションの作成
      5. ファイルシステムの作成
    6. マウントとは
      1. /etc/fstabファイル
    7. ディレクトリの配置と役割
  18. 7日目の内容
    1. プロセスとは
    2. プロセスの表示方法
    3. プロセスの実行状況
    4. プロセスの終了
    5. ジョブの管理
    6. フォアグランドジョブとバックグラウンドジョブ
    7. ジョブの操作
    8. ネットワークの利用
    9. プロトコルとは
    10. TCP、IP、UDP
      1. TCP
      2. IP
      3. UDP
    11. IPアドレスとサブネットマスク
    12. IPアドレスのクラス
    13. プライベートIPアドレスとグローバルIPアドレス
    14. ポート番号
    15. ネットワークの設定と管理
      1. /etc/hostnameファイル
      2. /etc/hostsファイル
      3. /etc/resolv.conf
    16. ネットワークインターフェイスの情報
    17. ポートの確認
    18. ルーティングテーブルの確認
    19. ネットワークを利用するコマンド
      1. hostコマンド
      2. sshコマンド
      3. pingコマンド
    20. ログとログファイル
    21. システムの状態を確認するコマンド
  19. 付録 – Linuxコマンドリファレンス
  20. まとめ
  21. 本書を読み終えたら

そもそもLPICとは

LPICは「Linux Professional Institute Certification」の略で、エルピックと読みます。

LPICはLinuxに関する資格

LPICはLinuxのサーバーに関する資格です。レベル1から3まであり、それぞれ、サーバーの運用保守・設計構築など、技術力に応じて高いレベルの資格となります。

本の公式サイト

以下がインプレス社に記載のある本件で紹介している本の概要です。1週間でLPICについての学習を進めることを前提として著書されています。

実際には、1週間以上かかる人、1週間かからない人と読者の技術的理解度によって本書を読み進める進度には差があると思いますが、おおむね1週間でLPICで出題される技術の内容に関する理解が深まります。

1週間でLPICの基礎が学べる本 第4版 - インプレスブックス
Linux入門の「定番書」でよくわかる!

実際に本書を読んでみた感想

実際に本書を手に取って購入して読んでみた感想としては、1週間かけて確かにLPICに関する理解を深めることができます。

この本を読んで、他にping-tなどの試験対策を行ったうえで実際にLPICではなくLinuCを取得した感想としては、LinuxとLinuxに関連する技術に対する理解がある程度深まった、という感じです。

LinuCレベル1の取得に役立った

本書は、LPICの対策本といったタイトルになっていますが、LinuCレベル1の取得に役立ちました。

LPI-Japan My Account

LPICとLinuCの違いは、LinuCがLPICより日本市場向けに最適化されている、という特徴があるということです。実際にはLinuCのほうがテストの実施と管理している団体が日本の組織なので資格の管理がしっかりしているという程度の違いにすぎず、実際に問われる技術的内容に関しては違いがないものと認識して問題ありません。

LinuCレベル1はLinuxサーバーの運用保守に関する資格

LinuCレベル1はLinuxサーバーの運用と保守に関する資格です。Linuxの基本的な操作方法などを理解していることを証明できます。

LPIC/LinuCの概要

LPIC/LinuCは、Linuxに関連する技術を証明する資格です。Linuxっぽい名前の資格ですがなにもLinuxだけの内容を問う資格ではなく、Linuxに関連する業務を扱う環境で使われる技術全般を問う資格です。

LPICとLinuCの違いは、LPICが全世界共通資格、LinuCが日本市場最適化資格、という違いがあります。LinuC設立の経緯はLPICが日本市場向けに最適なコンテンツを提供していないことに由来しているとのことです。

前述の通り、試験の内容自体はLPIC/LinuCで大きな差はありません。

LinuCの概要

LPICは英語を日本語に翻訳している試験という性質から、日本の市場に最適化していない技術の試験内容であったり、試験問題文が日本語に最適化していないというデメリットがありました。そういった問題を解決したのが日本版のLPICであるLinuCです。LinuCの詳細は以下の記事でまとめています。

実際にLinuxを使ってみるのがおすすめ

本の1日目にも記載がありますが、実際にLinuxの操作をしてみるのは重要です。当サイトでも以下の記事でLinuxを実際に使う方法をまとめています。

企業で一般的に使われるOSはRed Hat Enterprise Linux

一般的にサーバーの構築・運用というと、RHEL(レル)と呼ばれるディストリビューションが使用されます。Red Hat Enterprise Linuxの頭文字で、Red Hat社が提供しています。

Red Hat Enterprise Linuxも個人で無償で使える

RHELもCentOS同様個人で無償で使うことが可能です。

LPIC・LinuCは実務で使うLinuxに関連する内容だが、Red Hat Enterprise Linuxの資格はRed Hat Enterprise Linuxを使えることを証明する資格

LPIC/LinuCは、Linuxをベースにした技術の資格ですが、Red Hat Enterprise Linux認定資格はRed Hat Enterprise Linuxを実際に操作することができることを証明する資格です。

1日目の内容

1日目は以下の内容に触れています。

  • Linuxのカーネルとディストリビューション
  • オープンソースに関する詳細な概要
  • Linuxをパソコンで使う方法

Linuxのカーネルとは

Linuxは実際にはOSの名前ではなく、カーネルにつけられた名前です。LinuxというOSの中にあるカーネルの名前がLinuxということです。

ただし、LinuxはOSに対してもLinuxと呼ぶので、OSとしてLinuxの名称を使うときは「Linux OS」と呼びます。

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

ひとことでLinuxといっても、Red Hat Enterprise Linux、Ubuntuなど様々なLinuxがあります。Linuxのディストリビューションは、Linuxカーネルに対してライブラリやツール、インストーラを組み込んで一つの製品としているLinuxのことです。

前述のRed Hat Enterprise Linux、Ubuntuなどはディストリビューションの一つです。

ディストリビューションとは
このように、カーネルだけではユーザはOSを利用することが困難です。そこで一般的なOSの形にするために様々なソフトウェアと組み合わせる必要があります。しかし、1から構成を自分で構築するのは時間と労力、そしてある程度の知識が必要になります。
そこで、LinuxカーネルとOSを構成するその他のソフトウェアを組み合わせる煩雑さをユーザから解放するために、最初からそれらを組み合わせた形で配布するという形が生まれます。これがディストリビューションです。つまり、ディストリビューションとはカーネルとそれをとりまくソフトウェアセットということになります。通常Linuxといった場合、このディストリビューションを指していることがほとんどです。

第2回 ディストリビューションとは|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]
Linux学習に役立つ情報や入門書籍、解説書、コラムの他、オープンソース情報や解説書、参考情報の紹介ページです。入門編・ネットワーク編・Linux学習環境構築編の各コラムもあります。

Red Hat系ディストリビューション

Red Hat系ディストリビューションは、Red Hat社によって開発されているRed Hat Enterprise Linux(RHELと略す、読み方はレル)をベースに開発されているディストリビューションのことです。

Red Hat ブランド標準:Red Hat の歴史
Red Hat は、1995 年に Bob Young と Marc Ewing が力を合わせて Ewing の Linux® ディストリビューションを CD として販売したのが始まりでした。

Red Hat社のRed Hatは、創業者の赤帽子に由来します。

Fedora
Fedora Linux
An innovative platform for hardware, clouds, and containers, built with love by you.

Fedoraは、Red Hatが支援するコミュニティが開発する、最新技術を早期に取り入れるLinuxディストリビューションです。Fedora環境はRed Hatにアップストリーム(開発の上流)と呼ばれることもあります。

Fedora と Red Hat Enterprise Linux (RHEL) の違いとは?
Fedora と Red Hat Enterprise Linux はどちらも Linux OS ですが、Fedora はオープンソース・コミュニティが開発する OS、RHEL は Red Hat が企業用に提供する OS です。
Fedora - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

余談ですが、Fedoraは以下の画像のような中折れ帽のことを指します。

Essential Fedora - Hats Classic Italy
Delivery:3-6 biz days. 50 days return policy. $ 50.70 (January 24). This hat enjoys a timeless elegance through a 100% w...
Red Hat Enterprise Linux
Red Hat Enterprise Linux オペレーティングシステム
ハイブリッドクラウドのどこでも重要なワークロードの実行を支援する、組み込みセキュリティと管理機能を備えた、安定性に優れた高性能の Linux プラットフォーム。

Red Hat Enterprise Linuxは、Red Hat社が提供している、企業向けのLinuxディストリビューションです。

CentOS

CentOS(セントオーエス)は、Red Hat Enterprise LinuxのクローンになっているLinuxディストリビューションです。RHELはライセンスが必要なのに対してCentOSは、ライセンス不要でRHELと互換性のあるOSとして使うことができます。

現在はCentOSはRed Hat社によってサポートされておらず、CentOS Streamがサポートされています。CentOS Streamは完全なRHELのクローンではなく、FedoraとRed Hat Enterpriseの中間程度の位置に位置するディストリビューションです。

CentOS Streamの詳細は以下のRed Hat公式サイトで紹介されています。

CentOS Stream とは
CentOS Stream は、オープンソース・コミュニティのメンバーが Red Hat の開発者と連携して Red Hat® Enterprise Linux に貢献することができる Linux® 開発プラットフォームです。

CentOS とは?をわかりやすく解説
CentOSはオープンソースのLinux OSであり、CentOS Stream(RHELのアップストリーム開発基盤)とCentOS LinuxというLinuxディストリビューションを提供するコミュニティです。
「CentOS」と 「Scientific Linux」 - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

Debian系ディストリビューション

Debian JP Project - Debian JP Project

フリーソフトウェアだけを採用する無償ディストリビューションとして、Debian Projectというコミュニティが開発しているのがDebian GNU/Linuxです。Debian GNU/Linuxをベースとして様々なディストリビューションが開発されています。

CentOSは「Community ENTerprise Operating System」の頭文字です。

Ubuntu
Ubuntu
Ubuntuは、デスクトップPCやクラウド、インターネットに接続されたあらゆる機器まで、すべての環境において動作可能なオープンソースのソフトウェアオペレーティングシステムです。

Ubuntuは個人のパソコンのデスクトップ用途で使用されることが多い人気のディストリビューションです。

Ubuntuは、とりわけ個人ユーザーの間で高い人気を誇る無償ディストリビューションです。Ubuntu Foundationというコミュニティを中心に開発されていますが、Canonical社が支援しています。それまでないがしろにされがちだった初心者に配慮し、使いやすさを重視しているため、とりわけデスクトップ用途で高い人気があります。最近ではパソコンに搭載して販売されることも多く、Windowsに取って代わるOSとしても注目されています。

「Ubuntu(ウブントゥ)」の語源は、南アフリカのズールー語やコサ語などに由来する言葉で、「他者への思いやり」「人間性」「皆があっての私(共に生きる)」といった意味を持ちます。

Linux Mint
Home - Linux Mint
Linux Mint is an elegant, easy to use, up to date and comfortable desktop operating system.

LinuxMintはUbuntuから派生したディストリビューションです。

Ubuntuから派生したディストリビューションで、使いやすいデスクトップOSを目指して開発されています。多くのパッケージはUbuntuと共通していますが、独自の管理ツール群を備えています。

Raspbian(現在ではRaspberry Pi OSに改名されている)

Raspbianは、小型のワンボードコンピュータとして知られるRaspberry Pi(ラズベリーパイ)で使われているLinuxのディストリビューションです。

Just a moment...

ラズベリーパイは以下の画像のような、パソコンの最低限の部品のみで動作します。もともとはITの教育向けに作られていましたが、現在では、小型家電の開発用途(IoT)等で用いられることもある注目の製品です。

実はAndroidやiPhone(Mac OSも)はLinuxベースのOS

本書籍には掲載されていませんが、実は、私たちが生活で使用するスマートフォンの中にインストールされているAndroidや、iPhoneMac OSはLinuxをベースにして開発されたOSです。

Linuxの特徴

Linuxには次の特徴があります。

  • UNIXライクなOS
  • 多彩なディストリビューション
  • 多彩なプラットフォーム
  • 無償で利用可能
  • 最適なシステム構築が可能

UNIXライクなOS

本書には詳しく書かれていませんが、もともとLinuxが登場するまではオープンソースで誰でも開発に参加できるOSは存在しませんでした。そこで、AT&T(アメリカ版NTT、アメリカ版旧日本電電公社のような会社)がライセンスを提供していたUnixを参考に、リーナス・トーバルズによって開発が進められたのがLinux(リナックス)です。Linuxという名称はリーナス氏の名前と、Unixをかけたものです。

多彩なディストリビューション

Linuxはオープンソースであることから、様々な用途に最適化された形でOSが開発されています。

例えば、大規模なサーバーであればRed Hat Enterprise Linux、個人がデスクトップ用途で使用したい場合はUbuntuなど、場面に合わせて様々なLinuxを適切に利用することができます。

前述の通り、AndroidやiPhone、MacOSなどもLinuxのディストリビューションの一つと考えることもできます。

無償で使える

Linuxはライセンスが必要なディストリビューションもありますが、Linuxそのものに対して課金は必要ありません。ソースコードが公開されているため、誰でも無償で使うことができ、また、カスタマイズしてディストリビューションとして公開することもできます。

Linuxを利用できる領域

Linuxは以下の領域で使用されます。

  • ネットワークサーバ
  • 組み込み機器
  • パソコン
  • 大規模システム

オープンソースとは

ソフトウェアの中には、ソフトウェアのソースコードが公開されていて自由に開発に参加することができるものがあります。こういったソースコードが公開されているスタイルをオープンソースといいます。

オープンソースライセンス

代表的なオープンソースライセンスは次のようなものがあります。ライセンスについてはLinuCレベル1 102試験で出題されます。

ライセンスソフトウェア
GNU GPLLinux(OS)、Samba、GCC
BSD LicenseOpenSSH、FreeBSD(OS)
Artistic LicensePerl(プログラミング言語、パールと読む)
Apache LicenseApache HTTP Server(ブラウザからサーバにアクセスしたときに、サーバ側でブラウザに対してWEBサイトの情報を表示させる処理を担うソフト)

GNUはグヌーと読みます。Apacheはアパッチと読みます。

Linuxをパソコンで使うには

1日目では、「学習の準備」というタイトルでパソコンでLinuxを使う方法について詳細がまとめられています。

Linuxをパソコンで使うにはVirtual BoxかVMware workstationを使いましょう。

Virtual BoxやVMware workstationのイメージとしては以下の画像のようなイメージの技術になります。

本書ではVirtual Boxでの使い方が紹介されています。

当サイトでは、多くの大規模サーバーで使われているRed Hat Enterprise Linux(通称RHEL、レルと読む)での作業方法を紹介します。

まず、RHELは自宅のサーバーで使用が可能です。

Windowsのパソコンでは、VMware workstationを使うことができます。以下の記事でVMware workstationの使い方をまとめています。MacではVMware workstationが使えないため、Virtual Boxを使用します。MacでVirtual Boxを使う方についても記事でまとめています。

以下の2記事でMac でVirtual Box上でRHEL(Red Hat Enterprise Linux)を使う方法をまとめています。

2日目の内容

2日目は以下の内容です。

  • Linuxの操作
  • Linuxで使われるファイルとディレクトリ(WindowsでいうフォルダのことをLinuxではディレクトリと呼ぶ)

コマンドでのLinuxの操作について触れ、その他に相対パスや絶対パスなどの説明がされています。

Linuxの操作方法

Linuxを画面操作(GUI)、もしくはコマンドで操作する方法(CUI)をまとめて紹介しています。

GUIとCUI

Windows Server などのOSは、GUIでの操作が基本になっています。Linuxは、サーバーで使用するOSで、軽量で操作が可能なCUIでの操作がメインになります。

LinuxをGUIで使用するときは、X Window Systemというソフトウェアを使用します。 X Window Systemの詳細は以下のLinuC公式サイトで詳細がまとめられています。

デスクトップ環境 - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

LinuxでGUIを使用する際に使用するGNOMEやKDEなどは、このX Window Systemの上で動作するソフトウェアです。本書では以下のような図で「ウィンドウマネージャ」として紹介されている、図の部分がGNOMEやKDEなどが該当します。

ログインとログアウト

以下はUbuntuでのログイン画面例です。

以下はRed Hat Enterprise Linux 10.0のランレベル5で起動した際のログイン画面です。

ログアウトは以下のいずれかのコマンドで行います。

$ exit
$ logout

コマンド以外では、Ctrl+Dを同時に押下することでもログアウトできます。

管理者ユーザーroot(スーパーユーザー)と一般ユーザー

Linuxにはrootという名前の管理者アカウントが存在します。このアカウントは、システムの設定変更、再起動、ソフトウェアのインストール等のあらゆる管理作業が可能な権限を持ちます。rootユーザーはスーパーユーザーとも呼ばれます。root以外のユーザーは一般ユーザーと呼びます。

コマンドによるLinuxの操作

Linuxには大量のコマンドが用意されています。コマンドの使い方について紹介します。

コマンドを入力する行のことはコマンドラインと呼びます。

以下はカレンダーを表示することができるcalコマンドの実行例です。

コマンドは以下のようにオプションと引数を組み合わせて使用することができます。

コマンド [オプション] [引数]

コマンドの引数(ひきすう)

コマンドには引数を指定することができます。コマンドの後ろに任意の文字列や数字を入力してコマンドを実行します。このときの任意の文字列や数字を引数といいます。

例えばカレンダーを表示するコマンド、calコマンドの引数に2026を指定して実行すると以下のような結果が得られます。

コマンドのオプション

コマンドには、オプションを指定することができます。例えば、calコマンドの後ろに-mをオプションとして記載して実行することで、州の開始を月曜日に指定してカレンダーを表示することができます。

$ cal -m

以下は上記のcal -mコマンドの実行結果です。

calコマンドには他にもオプションがあり、-3オプションは現在の月の前後3カ月を表示することができるオプションです。

実際に以下のコマンドをRed Hat Enterprise Linux 10.0で実行してみます。

$ cal -m -3

Linux上で参照できるLinuxのマニュアル

Linux内には、参照することができるマニュアルのデータが格納されています。

Linux内部のマニュアルはmanコマンドで参照します。

manコマンドでマニュアルを参照する

manコマンドを実行すると、「オンラインマニュアル」と呼ばれるLinux内に保存されているコマンドやファイルのマニュアルを参照できます。

たとえば、カレンダーを表示させるコマンドcalのマニュアルを参照したい場合は以下のようにmanコマンドを実行します。

$ man cal

マニュアルのセクション

オンラインマニュアルには、セクションがあります。

本書籍では1から3のセクションについて紹介されています。

セクションには以下のように用途が決められています。

セクション説明
1ユーザコマンド
2システムコール
3ライブラリ関数
4デバイスファイル等
5ファイルフォーマット
6ゲーム
7規格等
8システム管理用コマンド

例えばpasswdファイルのマニュアルを参照したい場合は、セクション5を引数として指定するため以下のようにmanコマンドを実行します。

$ man 5 passwd

whatisコマンドの概要

whatis コマンドを使用すると、オンラインマニュアルの最初の行だけを抜き出して表示できます。

ただし、whatis コマンドを利用するにはmandbコマンドをあらかじめ実行する必要があります。

以下はmandbコマンド実行後にwhatisコマンドでpasswdを引数にして実行した例です。

各コマンドの–helpオプション

コマンドによっては、マニュアルだけでなくヘルプが用意されていることがあり、コマンドの後ろにオプションで「–help」もしくは「-h」を指定することでコマンドのヘルプを参照できます。

Linuxのファイルとディレクトリ

Linuxのデータは「ファイル」と「ディレクトリ」という形で管理します。ファイルはWindowsでも使用するのでイメージしやすいと思いますが、ディレクトリはWindowsでいうところの「フォルダ」に該当する概念です。

Linuxのファイル

Linuxのファイルについて詳細を解説します。

Linuxのファイル名

Linuxのファイル名には基本的に以下を用います。

  • アルファベット
  • 数字
  • 記号(アンダーバー「_」、ハイフン「-」、ドット「.」)

ファイルの種類

Linuxのファイルは以下の4種類に大別できます。

  • 通常ファイル
  • ディレクトリ
  • リンクファイル
  • 特殊ファイル

ファイルの一覧表示

Linuxの保存されているファイルの一覧は以下のコマンドで参照できます。

ls

ls -lコマンド(-lをオプションとして指定)を実行するとファイルに設定されている詳細な情報を確認できます。

Linuxのディレクトリ

WindowsやMacOSでは、フォルダと呼んでいる概念をLinuxでは「ディレクトリ」といいます。

パス

ファイルやディレクトリの保存場所のことを「パス」といいます。

絶対パスと相対パス

ファイルやディレクトリの場所を表す「パス」には絶対パスと相対パスがあります。

絶対パス

絶対パスは「/(ルートディレクトリ)」を基点としてファイルやディレクトリの場所を示す方法のことです。

相対パス

相対パスは、ログインしているユーザーがいるディレクトリ(カレントディレクトリ)を基点として考えるパスのことです。

パスの記述で使える記号

パスの記述で使うことができ記号は以下です。

記号説明
.(ドット1文字)カレントディレクトリ(省略可)
..(ドット2文字)1つ上のディレクトリ
~(チルダ)ホームディレクトリ

Linuxのディレクトリ階層

Linuxのディレクトリ階層の構成について説明しています。

catコマンドでファイルの中身を参照する

catコマンドでテキストファイルの中身を参照することができます。

cat [ファイル名]

lessコマンドで行数の多いファイルを分割して表示する

lessコマンドでファイルを参照すると、行数を区切ってファイルの中身を参照できます。

less [ファイル名]

cdコマンドでディレクトリを移動する

cdコマンドを実行することでユーザーがいるディレクトリを移動できます。

cd - [移動先ディレクトリ]

ハードリンクとシンボリックリンク

Windowsではショートカットリンクをリンクとして使用しますが、Linuxではハードリンクとシンボリックリンクの2種類のリンクが存在します。ハードリンクとシンボリックリンクには以下の特徴があります。

  • ハードリンクを使うと1つのファイルに複数の名前でアクセスできる
  • シンボリックリンクはファイルに別名を付ける仕組みである
  • ハードリンクやシンボリックリンクはlnコマンドで作成できる

ファイルとiノード

iノードには、ファイルサイズや最終更新日時、アクセス権情報やディスク上のどの場所にファイルの内容が書き込まれているかなどの情報が書かれています。

ハードリンク

ハードリンクは、iノード番号とファイル名を対応させたリンクのことです。

Linuxでは、1つのiノードに複数のファイル名をリンクさせることもできます。

ハードリンクの作成は以下のコマンドで行います。

ln 元のファイル 作成するリンクファイル

シンボリックリンク

シンボリックリンクは、ファイルに別名を付ける仕組みで動作するリンクのことです。

シンボリックリンクの仕組みはWindowsのショートカットリンクと同じ仕組みです。

シンボリックリンクの作成はlnコマンドに-sオプションを付けて以下の書式で実行します。

ln -s 元のファイル 作成するリンクファイル

3日目の内容

3日目は以下の内容です。

  • ファイルの管理(ファイルのコピー、移動、削除)
  • ディレクトリの作成、コピー、移動、削除
  • ファイルの圧縮と解答
  • ユーザーとグループの概要と管理方法
  • rootユーザーの概要

3日目は、ファイルの作成、移動、削除等の基本的な操作に加えて、ユーザーの作成と削除、ユーザーをユーザーグループに所属させる方法等がまとめられています。

Linuxのファイル管理

以下の操作について取り上げています。

  • ファイルのコピー
  • ファイルの移動
  • ファイルの削除

ファイルのコピー

Linuxでファイルをコピーするにはcpコマンドを実行します。

cpコマンドの書式は以下です。

cp コピー元のファイル コピー先のファイル

ファイルの移動

Linuxでファイルを移動するにはmvコマンドを実行します。

mvコマンドの書式は以下です。

mv 移動元のファイル名 移動先のディレクトリ名

ファイル名を変更する場合は以下のように実行します。

mv 変更前のファイル名 変更後のファイル名

ファイルの削除

Linuxでファイルを削除するにはrmコマンドを実行します。

rmコマンドの書式は以下です。

rm 削除するファイル名

ディレクトリの管理

以下の操作について取り上げています。

  • ディレクトリの作成
  • ディレクトリのコピーと移動
  • ディレクトリの削除

ディレクトリの作成

Linuxでディレクトリを作成するには以下のコマンドを実行します。

mkdir [ディレクトリ名]

複数の階層のディレクトリを作るには以下のいずれかの方法で行います。

  • 複数の階層のディレクトリを一つずつ作る
  • -pオプションを追加して複数の階層のディレクトリを1度に作る

まずは複数の階層のディレクトリを一つずつ作るには以下のように実行します。

$ mkdir top
$ mkdir top/sub

-pオプションを指定すると以下のように実行できます。

$ mkdir -p top/sub

ディレクトリのコピーと移動

ディレクトリをコピーするには、cpコマンドに-rオプションを付けて実行します。

以下の例では、topディレクトリを/tmpディレクトリに移動するコマンドの実行例です。

$ cp -r top /tmp

ディレクトリ名の変更はmvコマンドで行います。

例えばtopという名前のディレクトリをnewという名前にするには以下のように実行します。

$ mv top new

treeコマンドを実行すると、ツリー状にディレクトリを確認できます。

ディレクトリの削除

ディレクトリを削除するには、rmコマンドに-rオプションを付けてコマンドを実行します。

rm -r [削除したいディレクトリ]

ファイルとディレクトリの圧縮と展開

ファイルとディレクトリの圧縮と展開について取り上げています。

gzipコマンドとgunzipコマンド

Linuxで使える圧縮形式にはいくつか種類があります。その中でも最も利用されているのがGNU ZIP(gzip)形式です。gzip形式はファイルの末尾が.gzになり、gzipコマンドで圧縮を行います。

gzipコマンドの書式は以下です。

gzip [ファイル名]

.gzを解凍するには以下のコマンドを実行します。

gunzip [圧縮ファイル名]

zipコマンドとunzipコマンド

WindowsやMac OSでも使用するzip形式の圧縮ファイルを作成するには、zipコマンドを使用します。

zip [圧縮したいファイル名] [圧縮後のファイル名]

zipコマンドは、圧縮したいファイルの名前を指定した後に、圧縮後に設定するファイル名も指定する必要があります。

ディレクトリを圧縮するには-rオプションを追加します。

zip -r [圧縮したいディレクトリ] [圧縮後のディレクトリ名]

圧縮されたzipファイルを解凍するにはunzipコマンドを使用します。unzipコマンドの書式は以下です。

unzip [圧縮ファイル名]

tarコマンドとアーカイブ

ディレクトリ内のファイルやサブディレクトリをディレクトリごと圧縮するにはまずtarコマンドを使って一つのファイルにまとめます。複数のファイルを一つにまとめたものをアーカイブ(Archive、日本語で書庫を意味)といいます。アーカイブを作成するにはtarコマンドにcvfを指定して実行します。

tar cvf [アーカイブファイル名] [ディレクトリ名]

作成した.tarファイルは以下のコマンドで圧縮できます。

gzip [.tarファイル]

アーカイブファイルを展開するには、以下のコマンドを実行します。

tar xvf [アーカイブファイル名]

圧縮アーカイブの作成と展開

圧縮アーカイブを作成・展開するには以下のコマンドを実行します。

tar czvf [アーカイブファイル名] [ディレクトリ名]
tar xzvf [アーカイブファイル名]

tarコマンドの主なオプションは以下です。

オプション説明
cアーカイブを作成する
xアーカイブを圧縮する
v詳細を表示する
fアーカイブファイルを作成する
jbzip2圧縮を利用する
Jxz圧縮を利用する
zgzip圧縮を利用する

Linuxのユーザーとグループ

LinuxもWindowsのようにユーザーが存在し、ユーザーをまとめて管理しているグループという概念も存在します。

ユーザー名とユーザーID

ユーザーにはユーザーID(UID)と呼ばれる固有のIDが割り振られています。UIDはidコマンドで確認できます。

$id [ユーザー名]

ユーザーの種類

Linuxのユーザーには以下の種類があります。

  • 管理者ユーザー(root)
  • システムユーザー
  • 一般ユーザー

それぞれのユーザーに割り当てられるユーザーIDは以下です。

ユーザーの種類ユーザーID
rootユーザー0
システムユーザー1~99
一般ユーザー100以上

管理者ユーザーは、設定ファイルの編集やOSの再起動などの操作ができる権限を持ったユーザーです。rootユーザーとも呼ばれます。管理者ユーザーはWindowsのAdministratorユーザーに相当します。

システムユーザーは、システムプログラムやサーバソフトウェアを実行するための使われるユーザーです。ログインして人間が操作するユーザーではありません。

一般ユーザーはシステムを利用するためのユーザーで、ログインして作業したり、メールアカウントに利用したりします。

rootユーザーの利用

rootユーザーはシステム全体に影響する操作ができる権限を持ったユーザーです。

rootユーザーに切り替えるにはsuコマンドを使用します。suコマンドはSubstitute Userの頭文字です。

su

オプションに-(ハイフン)を指定することで、rootユーザーのホームディレクトリに移動しつつユーザーをrootユーザーに切り替えられます。

su -

su コマンドはroot ユーザー以外の一般ユーザーにも切り替えるのに使えます。例えば、userAに切り替えたい場合は以下のように実行します。

su - userA

切り替えたユーザーから切り替える前のユーザーに戻るには以下のコマンドを実行します。

exit

sudoコマンド

suコマンドでrootユーザーに切り替えるにはrootユーザーのパスワードを知っている必要があります。rootユーザーに切り替えずにrootユーザーとしてコマンドを実行するにはsudoコマンドを実行します。

sudo [実行したいコマンド]

ユーザーとグループの管理

Linuxのユーザーは必ずグループに所属しています。以下のコマンドでユーザーが所属しているグループを確認できます。

groups [ユーザー名]

ユーザーの作成

ユーザーの作成は以下のコマンドで行います。

useradd [ユーザー名]

以下のコマンドを実行することで作成したユーザーのパスワードを設定します。

passwd [ユーザー名]

ユーザーの削除

ユーザーの削除は以下のコマンドで行います。

userdel [ユーザー名]

/etc/passwdファイル

ユーザーの情報は/etc/passwdファイルに格納されています。

グループの作成と管理

グループを作成するには以下のコマンドを実行します。

groupadd [グループ名]

グループの削除は以下のコマンドで行います。

groupdel [グループ名]

ユーザーをグループに参加させるには以下のコマンドを実行します。

usermod -G [グループ名] [ユーザー名]

/etc/groupファイル

グループの情報は/etc/groupに保存されています。

4日目の内容

4日目は以下の内容に触れています。

  • ファイル・ディレクトリのパーミッション
  • テキストファイルの編集方法

Linuxのファイル・ディレクトリのパーミッション

ファイル・ディレクトリのパーミッションは権限のことで、わかりやすくいうと、各ユーザーごとに種類があり、どの種類のユーザーがどのファイル、ディレクトリにどこまでアクセスすることができるのかを制御しているかについての概要をパーミッションと呼んでいます。

所有者と所有グループの管理

ファイルやディレクトリの所有者と所有グループはコマンドで変更することができます。

rootユーザーで以下のコマンドを実行することで所有者・所有グループを変更します。

chown [所有者]:[所有グループ] [ファイル名またはディレクトリ名]

オプションに-Rを指定することで、ディレクトリ配下のすべてのサブディレクトリ、ファイルの所有者・所有グループを変更します。

chown -R [所有者]:[所有グループ] [ファイル名またはディレクトリ名]

ファイルのアクセス権

Linuxのファイルやディレクトリには、「読み込み」「書き込み」「実行」の3種類の権限が存在します。

パーミッションの変更

ファイルのパーミッションを変更するコマンドはchmodです。

chmodは以下の書式で実行します。

chmod [アクセス権] [ファイル名またはディレクトリ名]

-Rをオプションとして指定することでディレクトリ配下のサブディレクトリ、ファイルのすべてのパーミッションを変更します。

Linuxのテキストファイルの編集方法

viエディタを使用してファイルの編集を行います。

viエディタの起動と終了

以下のコマンドを実行してviエディタを起動します。

$ vi

viコマンドでファイル名を指定することで、テキストファイルの編集を行います。

vi [ファイル名]

viエディタを終了するには、コマンドモードで以下のコマンドを実行します。

:q

コマンドモードと挿入モード

viエディタには、コマンドモードと挿入モードがあります。

コマンドモードでは、viエディタがコマンドを受け付ける状態になります。

挿入モードでは、テキストファイルの文字の編集ができます。

viエディタのコマンドはLPIC/LinuCで出題されるため覚えておきましょう。本書籍の章末の次にある付録でviエディタのコマンド一覧がまとめられています。

5日目の内容

5日目はシェルに関する内容を学びます。

  • シェル
  • シェルスクリプト

シェルスクリプトはコマンドを一つにまとめているファイルです。シェルスクリプトを実行させることで意図した作業を自動で行う、という想定のものファイルが使用されます。

シェル

シェルは、Linuxでユーザーからコマンドを受け付けてカーネルに実行するように橋渡ししているプログラムです。

コマンドの入力を受け付け、適切な処理をして結果を表示しているプログラムをシェルといいます。

現在のLinuxではbashと呼ばれるシェルが標準で使われています。

標準入出力

Linuxで実行するプログラムの出力方法について以下のように紹介されています。

Linuxで実行されるプログラムには、デフォルトで3つの出入り口が用意されます。それが標準入力、標準出力、標準エラー出力です。

リダイレクト

コマンドの実行時に出力結果をリダイレクトすることができます。

リダイレクト(リダイレクション)を使うと、コマンドの標準出力を端末画面ではなく、任意のファイルに切り替えることができます。

リダイレクトの書式は以下です。

コマンド > ファイル名

パイプ

パイプは、コマンドをつなげて実行することで、コマンドの実行結果に対してさらにコマンドを実行することができます。

パイプの書式は以下です。

コマンド | コマンド

メタキャラクタ

メタキャラクタはシェルが扱う特別な意味を持つ文字です。

主なメタキャラクタは以下です。

メタキャラクタ説明
*0文字以上の任意の文字列
?任意の1文字
[][]ないの任意の1文字
\(日本円の表記に見えるかもしれないが、バックスラッシュ)メタキャラクタの打ち消し 

シェルの便利な機能

シェルの便利な機能を紹介します。

コマンド履歴

↑キーを押下することで、過去に実行したコマンドを表示することができます。

historyコマンドを実行すると実行したコマンドの履歴が表示されます。

ファイル名の補完

CUIの操作では、文字が一つでも間違っているとコマンドが実行できません。

Tabキーを押下することで、コマンドを補完できます。例えば、hisと入力して途中でTabキーを押下宇することでhistoryと表示されます。

history

エイリアス

コマンドには別名を付けることができます。

エイリアスの設定はaliasコマンドで行います。

alias 設定するエイリアス名=コマンド

シェルスクリプト

シェルスクリプトは、コマンド群を記載してあるファイルで、シェルスクリプトを読み込ませることでコマンドをLinuxで自動で実行させます。

シェルスクリプトを使えば、一連のコマンド操作を自動化し、効率的にLinuxを操作できます。

シェルスクリプトの決まりごと

シェルスクリプト上で「#」から始まる行はコメントを意味します。

1行目については例外で、1行目の「#!」はシェバンといいます。

シェルスクリプトの1行目に記載される「#! /bin/bash」という表記は、「/bin/bash」で実行されます。

シェルスクリプトの実行方法

シェルスクリプトの実行は以下の書式で行います。

bash シェルスクリプトのファイル名

sourceコマンドでも実行できます。

source シェルスクリプトのファイル名

シェルスクリプトの絶対パスを指定することでも実行できます。シェルスクリプトのファイルに実行権がある必要があります。

引数と終了ステータス

シェルスクリプトでも引数を指定することができます。変数と呼ばれる概念を使用することでシェルスクリプトを作成することもできます。

引数の利用

以下で示す例のように引数を利用できます。

#! /bin/bash

echo "Hello $1"

上記の例では、$1という変数を参照しています。

このシェルスクリプトで引数を指定すると以下のようになります。

$ bash hello.sh Penguin

この場合、以下のように出力されます。

Hello Penguin

終了ステータス

特殊な変数「$?」を使うと、コマンドの実行が成功したかどうかが確認できます。

コマンドの実行が成功したら「0」、コマンドの実行が失敗したら「0」以外の数値が表示されます。

6日目の内容

6日目は以下の内容を学びます。

  • locate/find/grepコマンド等でのファイルの検索
  • rpmパッケージの概要
  • ファイルシステムについての概要
  • デバイスファイルの概要
  • マウントとアンマウントの概要
  • ディレクトリの配置と役割

ファイルの検索

ファイルの検索コマンドの概要について紹介します。

locateコマンド

locateコマンドは、ファイルの名前でファイルの格納されている場所を検索するコマンドです。以下の書式でlocateコマンドを実行します。

$ locate <ファイル名>

以下はlocate hostsコマンドでhostsという名前のファイルが格納されている場所を検索した例です。

findコマンド

findコマンドはファイル名でファイルの場所を検索するだけでなく、条件を指定してファイルを検索することができるコマンドです。

findコマンドの書式は以下です。

$ find [検索対象のファイルパス] [検索式]

正規表現

正規表現は、文字のパターンを表記するための手法です。

コンピュータの世界で文字列を処理するときに避けて通ることができないのは正規表現(Regular Expression)です。正規表現は、文字列のパターンを表記するための手法で、さまざまなメタキャラクターを利用できます。

grepコマンド

grepコマンドはテキストファイルの内容を検索して指定した正規表現にマッチする行があれば表示するコマンドです。

grep [オプション] [文字列パターン] [検索対象ファイル]

テキストファイルを扱う便利なコマンド

headコマンド、tailコマンド、sortコマンドなどを紹介します。

ファイルの一部を表示するコマンド

ファイルの一部を表示するコマンドとして、headコマンドとtailコマンドを紹介します。

ファイルの先頭を表示するheadコマンド

ファイルの先頭部分だけを表示するコマンドとしてheadコマンドを使用します。

headコマンドの書式は以下です。

head [-行数] [ファイル名]
ファイルの末尾を表示するtailコマンド

ファイルの末尾の内容を表示するコマンドとしてtailコマンドを使用します。

tailコマンドの書式は以下です。

tail [-行数] [ファイル名]

ファイルの内容を加工して出力するコマンド

ファイルの内容を加工して出力する以下のコマンドの説明を紹介します。

  • sortコマンド
  • nlコマンド
  • cutコマンド
sortコマンド

sortコマンドはファイルの内容をソートして(並び替えて)表示するコマンドです。

sortコマンドの書式は以下です。

sort [オプション] [ファイル名]
nlコマンド

nlコマンドは行番号を付けてファイルの内容を表示します。

nl [ファイル名]
cutコマンド

cutコマンドはファイルのそれぞれの行から指定したフィールドのみを取り出します。

cut [オプション] [ファイル名]

ファイルの情報を表示するコマンド

ファイルの情報を表示するwcコマンドの概要を紹介します。

wcコマンド

wcコマンドはファイルの行数、単語数、バイト数を表示するコマンドです。

wcコマンドは以下の書式で使用します。

wc [オプション名] [ファイル名]

パッケージとは

ほとんどのLinuxディストリビューションでは、ソフトウェアをパッケージという単位で管理しています。パッケージには実行プログラムや設定ファイル、説明が書かれたドキュメントファイルなどが一つのファイルにまとめられています。

パッケージの管理

Linuxのパッケージ管理について紹介します。

RPMパッケージ

RPMパッケージは、Red Hat社によって開発されたパッケージ形式です。RPMパッケージの操作はrpmコマンドで行います。

rpmコマンドの書式は以下です。

rpm [オプション]

rpmコマンドの主なオプションは以下です。

オプション説明
-ivh パッケージファイル名指定したパッケージをインストールする
-Uvh パッケージファイル名指定したパッケージをアップグレードする
-e パッケージ名指定したパッケージをアンインストールする
-q パッケージ名指定したパッケージがインストールされているか確認する
-qaインストール済みのパッケージ一覧を確認する
-qi パッケージ名指定したパッケージの説明を表示する

YUMの概要

YUMはYellowdog Updater Modifiedの頭文字で、RPM形式のパッケージを扱うツールです。YUMはヤムと読みます。

YUMには以下の特徴があります。

  • パッケージをインターネット上で検索できる
  • 必要なパッケージをインターネット上から自動でダウンロードできる

YUMでのパッケージ管理は以下の書式で行います。

yum サブコマンド

ファイルシステム

ここでは、以下の内容について解説しています。

  • ハードウェア
  • ファイルシステム
  • パーティション
  • マウントとアンマウント
  • Linuxのディレクトリと配置

コンピュータの構成

コンピュータは以下のようなパーツで構成されています。

  • マザーボード
  • プロセッサ(CPU)
  • メモリ
  • ハードディスク
  • SSD
  • 光化学ドライブ
  • テープドライブ
  • 電源
  • UPS

デバイスとデバイスドライバ

OSがデバイスを認識して適切にデバイスを動作させるのに「デバイスドライバ」と呼ばれるプログラムを使用しています。

デバイスとファイル

Linuxでは、ハードディスクをはじめとするあらゆるデバイスをファイルをとして扱っています。デバイスファイルは/devディレクトリに格納されます。

パーティションの作成

1台のハードディスクは複数の領域(パーティション)に分割して使用することができます。

パーティションの操作はfdiskコマンドを使って実施します。

fdisk デバイスファイル名

ファイルシステムの作成

パーティションの中にファイルシステムを作成します。ファイルシステムの種類はOSによっても異なります。

主なファイルシステムは以下です。

ファイルシステム説明
ext2一昔前のLinuxの標準ファイルシステム
ext3ext2を改善して機能を強化したファイルシステム
ext4ext3を改善したファイルシステムで多くのLinuxディストリビューションで採用されているファイルシステム
XFS高速かつ堅牢なファイルシステム
BtrfsLinux向けに開発されている高速かつ多機能なファイルシステム
NTFSWindowsのファイルシステム
FATデジカメなどでよく使われているファイルシステム
ISO9660CD-ROMで使われているファイルシステム
UDFDVDで使われているファイルシステム

マウントとは

特定のディレクトリを別の特定のディレクトリに紐づけて管理している状態を「マウント」といいます。

マウントはmountコマンドで実施します。

mount デバイスファイル マウントポイント

/etc/fstabファイル

/etc/fstabファイルには、マウントする情報が記載されています。

ディレクトリの配置と役割

Linuxでは、FHSという概念によって各ディレクトリの役割に規定があり、どのディレクトリにどのようなデータを格納するか決められています。

FHSはFile Hierarchy Standardの頭文字です。

FHS(Filesystem Hierarchy Standard) - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

7日目の内容

7日目は以下の内容を学びます。

  • プロセスとジョブ(psコマンドでのプロセスの確認、killコマンドでのプロセスの停止など)
  • ネットワークの利用(/etc/hosts、/etc/hostnameなどの概要)
  • システムの管理(var/log/messagesを確認してログを見る、whoコマンドを使ってログインユーザーを確認する)

プロセスとは

Linuxで実行中のプログラムのことをプロセスといいます。プロセスにはプロセスごとに固有のプロセスID(PID)が割り当てられます。

Linuxで実行中のプロセスの情報はpsコマンドで確認できます。psはproccessという単語に由来します。

pstreeコマンドを使用するとプロセスをツリー状に表示できます。

プロセスの実行状況については、topコマンドで確認できます。

プロセスの表示方法

Linux上のプロセスを表示するには以下のコマンドを実行します。

$ ps

ps コマンドの実行例は以下です。

Linuxのプロセスをツリー状に表示するには、pstreeコマンドを使用します。pstreeコマンドは以下の書式で実行します。

pstree [オプション]

pstreeコマンドの実行例は以下です。

プロセスの実行状況

プロセスの実行状況はtopコマンドで確認できます。

以下はtopコマンドの実行例です。

topコマンドの主な表示項目は以下です。

表示項目説明
PIDプロセスID
USERプロセスを実行しているユーザー
%CPUCPUを消費している割合
%MEMメモリを消費している割合
COMMAND実行されているコマンド

プロセスの終了

プログラムの実行が終了するとプロセスも終了します。

プロセスを強制的に終了させるにはシグナルを送信します。

本書で紹介されている主なシグナルは以下です。

シグナルIDシグナル名動作
9KILL強制終了
15TERM終了(デフォルト)
18CONT再開
19STOP一時停止

ジョブの管理

ジョブはユーザーから見たLinuxのプログラムの処理の単位のことを言います。

フォアグランドジョブとバックグラウンドジョブ

ジョブにはフォアグランドジョブとバックグラウンドジョブがあります。

コマンド(ジョブ)の実行処理が開始すると、新たに次のコマンド(ジョブ)を実行することができないコマンド(ジョブ)のことを、フォアグラウンドジョブといいます。

表向きには見えず、裏で処理が進んでいるジョブのことをバックグラウンドジョブといいます。

ジョブの操作

実行中のジョブはjobsコマンドで確認します。

以下はjobsコマンドの実行例です。

ネットワークの利用

ネットワークの技術的内容について解説します。

プロトコルとは

ネットワークで使用する通信は、プロトコルと呼ばれる、通信の規約にのっとって通信されます。

TCP、IP、UDP

ネットワークで使用する通信には、TCP、IP、UDPといったプロトコルが存在します。TCPとIPについては、一つにまとめてTCP/IPと表記されることがあります。

TCP

TCPは、Transmission Control Protocolの頭文字で、信頼性の高いコネクション型の通信プロトコルです。

IP

IPは、Internet Protocolの頭文字で、IPアドレスを使った通信プロトコルです。

UDP

UDPはUser Datagram Protocolの頭文字で、TCPと異なり、コネクションレス型の通信プロトコルです。TCPと異なり、スリーウェイハンドシェイクを行わない通信プロトコルになります。

IPアドレスとサブネットマスク

通常、IPアドレスというとIPv4のことを指します。IPv4アドレスは32ビット長の長さで表現されます。コンピュータが認識するIPアドレスは2進数の状態ですが、2進数では人間が判別しにくいため、10進数に変換してIPアドレスを認識します。

IPアドレスのクラス

IPアドレスにはクラスという概念があります。クラスにはAからEまで存在します。

プライベートIPアドレスとグローバルIPアドレス

企業内のみで使用するのがIPアドレス、インターネット上で一意のIPアドレスとして使用するのがグローバルIPアドレスです。

ポート番号

IPアドレスは、コンピュータの識別に使用します。それに対して、どのようなアプリケーションが動作しているかをネットワークで識別するのがポート番号です。

主なプロトコルとポート番号は以下です。

ポート番号プロトコル
20FTP
21FTP
22SSH
23Telnet
25SMTP
53DNS
80HTTP
110POP3
443HTTPS

ネットワークの設定と管理

Linuxのネットワークの設定に使用するファイルについて詳細を解説します。

/etc/hostnameファイル

/etc/hostnameファイルは、Linuxのホスト名が格納されているファイルです。

/etc/hostnameについてはLinuC公式サイトでも紹介されています。

「/etc/hosts」ファイル - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

/etc/hostsファイル

/etc/hostsファイルはIPアドレスとホスト名を紐づけるために使用されるファイルです。

/etc/resolv.conf

/etc/resolv.confファイルは、ホストが利用するDNSサーバーを指定するファイルです。

ネットワークインターフェイスの情報

ホストとネットワークの窓口になるのがネットワークインターフェイス(NIC)です。

ipコマンドやifconfigコマンドを使用してネットワークの情報を確認します。

ポートの確認

ssコマンドを使ってポートの確認をする方法が紹介されています。

ルーティングテーブルの確認

ipコマンド、routeコマンドを使用することでルーティング設定を確認できます。

ネットワークを利用するコマンド

以下のコマンドについて紹介されています。

  • hostコマンド
  • sshコマンド
  • pingコマンド

hostコマンド

hostコマンドは、DNSサーバーに問い合わせを行い、指定したホスト名に対応するIPアドレスを確認できるコマンドです。

host ホスト名またはIPアドレス

sshコマンド

sshコマンドは、ネットワークを経由して他のホストに接続できるコマンドです。

ssh ユーザー名@接続先ホスト名またはIPアドレス

pingコマンド

pingコマンドは、ネットワークの疎通確認を実施するコマンドです。

ping IPアドレスまたはホスト名

ログとログファイル

Linuxの主なログファイルは以下です。

ファイル名説明
/var/log/messages主要なログファイル
/var/log/syslog主要なログファイル
/var/log/maillogメール送受信のログファイル
/var/log/secure認証関連のログファイル

システムの状態を確認するコマンド

以下のコマンドが紹介されています。

コマンド説明
dmesgシステム起動時のメッセージを確認する
last最近ログインしたユーザーの確認
whoログイン中のユーザーを確認する
wログイン中のユーザーと、実行中のコマンド、システムの情報を確認する

付録 – Linuxコマンドリファレンス

Linuxのコマンドをわかりやすく表にまとめられている付録です。実際にLinuxを操作する際の参考になります。一部のコマンドを引用して紹介します。

ファイル/ディレクトリの基本操作の一覧:

コマンド説明
cat ファイル名指定したファイルの内容を確認する
cdホームディレクトリに移動する
cd ディレクトリ名指定したディレクトリに移動する
cd –一つ前のカレントディレクトリに移動する
pwdカレントディレクトリの絶対パスを表示する
cp ファイルA ファイルBファイルAをファイルBとしてコピーする
mv ファイルA ファイルBファイルAをファイルBに移動する、もしくはファイルAの名前をファイルBにする
mv ディレクトリA ディレクトリBディレクトリAをディレクトリBに移動する、もしくはディレクトリAの名前をディレクトリBにする
lsカレントディレクトリのファイル一覧を表示する
ls -lカレントディレクトリにあるファイルの詳細な情報一覧を表示する
mkdirディレクトリを作成する
rm ファイル名ファイルを削除する
rm -r ディレクトリ名ディレクトリを削除する

「その他」の表にまとめられていますが、OSのシャットダウンや再起動などのコマンドは以下です。

コマンド説明
man コマンド / ファイル指定したコマンド/ファイル名のオンラインマニュアルを参照する
shutdown -h nowすぐにOSをシャットダウンする
shutdown -r nowすぐにOSを再起動する
whatis コマンド名指定したコマンドのマニュアル一覧を表示する

ファイルの操作に関するコマンドの一覧:

コマンド説明
find ディレクトリ名 -name ファイル名指定した名前のファイルを指定したディレクトリ配下から検索する
grep指定した文字が含まれる行をファイルから抜き出して表示する
head指定したファイルの先頭10行を表示する
locate指定した名前のファイルを検索する
tail指定したファイルの末尾10行を表示する

パーミッション管理に関するコマンドの一覧:

コマンド説明
chgrp グループ名 ファイル名指定したファイルの所有グループを変更する
chgrp -R グループ名 ディレクトリ名指定したディレクトリ以下全てのファイルの所有グループを変更する
chmod アクセス権 ファイル名指定したファイルのアクセス権を変更する
chmod -R アクセス権指定したディレクトリ以下全てのファイルのアクセス権を変更する
chown 所有者 ファイル名指定したファイルの所有者を変更する
chown -R 所有者 ディレクトリ指定したディレクトリ以下全てのファイルの所有者を変更する

シェル操作に関するコマンドの一覧:

コマンド説明
aliasエイリアス一覧を表示する
echo $変数名指定した変数の内容を表示する
export 変数指定した変数をエクスポートする
historyコマンド履歴を表示する
printenv環境変数を表示する
setシェル変数と環境変数を表示する
unaliasエイリアスを削除する

プロセス操作に関するコマンドの一覧:

コマンド説明
jobs実行中のジョブ一覧を表示する
kill -s [シグナル名またはシグナルID] プロセスID指定したプロセスにシグナル名またはシグナルIDを送信する
psシェル上で実行されているプロセスを表示する
ps auxシステムで実行されているすべてのプロセスを表示する
pstreeシステムで実行されているプロセスをツリー状に表示する
topシステムの状態をモニタする

ネットワークに関するコマンドの一覧:

コマンド説明
ip address showIPアドレスなどの情報を表示する
host ホスト名ホスト名に対応するIPアドレスを表示する
host IPアドレスIPアドレスに対応するホスト名を表示する
ping IPアドレスもしくはホスト名指定したIPアドレスもしくはホスト名との通信の疎通確認をする
routeルーティングテーブルを表示する
ss開いているポートを確認する
ssh IPアドレスもしくはホスト名SSH接続する

ユーザー管理に関するコマンドの一覧:

コマンド説明
groupadd グループ名グループを作成する
groupdel グループ名グループを削除する
id [ユーザー名]ユーザーの情報を表示する
passwdログインしているユーザーのパスワードを変更する
passwd [ユーザー名]指定したユーザー名のパスワードを変更する
su –rootユーザーに切り替える
su – [ユーザー名]指定したユーザー名に切り替える
sudo [コマンド]rootユーザーの権限が必要なコマンドを実行する
useradd [ユーザー名]ユーザーを追加する
userdel [ユーザー名] ユーザーを削除する
userdel -r [ユーザー名]指定したユーザーのディレクトリも含めて削除する

ファイルの圧縮と凍結に関するコマンドの一覧:

コマンド説明
gunzip 圧縮ファイル名圧縮された.gzファイルを解凍する
gzip ファイル名指定したファイルをgzip形式で圧縮する
zip 圧縮ファイル名 [ファイル名またはディレクトリ名]指定したファイルまたはディレクトリをzip形式で圧縮する
unzip 圧縮ファイル名圧縮された.zipファイルを解凍する
tar cvf アーカイブファイル名 ディレクトリ名指定したアーカイブ名でディレクトリのアーカイブを作成する
tar czvf アーカイブファイル名 ディレクトリ名指定したアーカイブ名でディレクトリの圧縮アーカイブを作成する
tar xvf アーカイブファイル名アーカイブを展開する
tar xzvf アーカイブファイル名圧縮アーカイブを展開する

ファイルシステム管理に関するコマンドの一覧:

コマンド説明
fdisk [デバイスファイル名]パーティションを操作する
mkfs [デバイスファイル名]ファイルシステムを作成する
mount [デバイスファイル名] [マウントポイント]ファイルシステムをマウントする

パッケージ管理に関するコマンドの一覧:

コマンド説明
rpm -e パッケージ名指定したパッケージをアンインストールする
rpm -ivh パッケージファイル名指定したパッケージをインストールする
rpm -qaインストール済みのパッケージを一覧を表示する
rpm -Uvh パッケージファイル名指定したパッケージをアップグレードする
yum install パッケージ名指定したパッケージをインストールする
yum remove パッケージ名指定したパッケージをアンインストールする
yum search “キーワード”指定した名前のパッケージを検索する
yum updateシステム全体をアップデートする
yum update パッケージ名指定したパッケージをアップデートする

システム管理に関するコマンドの一覧:

コマンド説明
gmesgシステム起動時のメッセージを確認する
last最近ログインしたユーザーを確認する
wログイン中のユーザーと実行中のコマンド、システムを確認する
whoログイン中のユーザーを確認する

viエディタのコマンド一覧:

コマンドモード:

コマンド説明
$現在カーソルがある行の行末へ移動する
:qviエディタを終了する
:q!ファイルを保存せずにviエディタを終了する
:wファイルを保存する
:wq または ZZファイルを保存して終了する
0(数字のゼロ)現在カーソルがある行の行頭へ移動する
Gファイルの末尾に移動する
ggファイルの先頭に移動する
hまたは←キー1文字左へ移動する
jまたは↓キー1文字下へ移動する
kまたは↑キー1文字上へ移動する
l(小文字のアルファベット、エル)または→キー1文字右へ移動する

編集コマンド:

コマンド説明
Crtl+Rキー取り消しの取り消し
/ 文字列文字列を検索する
dd現在カーソルがある行を切り取る
n次の文字列を検索する(末尾方向へ)
NまたはShift+N次の文字列を検索する(先頭行方向へ)
pカーソル行の次行にバッファの内容を貼り付ける
u直前の操作を取り消す
xまたはDeleteキーカーソル位置の1文字を切り取る
XまたはBackspaceキーカーソル位置の左の1文字を切り取る
yy現在カーソルがある行をコピーする

挿入モード:

コマンド説明
aカーソルの右側の位置から入力を開始する
Aカーソルを行末に移動し、その右側の位置から入力を開始する
iカーソル位置から入力を開始する
I(大文字のアルファベット、アイ)カーソルを行頭に移動し、その位置から入力を開始する
o(小文字のアルファベット、オー)現在カーソルがある行の下に空白行を挿入し、その行で入力を開始する
O(大文字のアルファベット、オー)現在カーソルがある行の上に空白行を挿入し、その行で入力を開始する

まとめ

LPICの概要が1週間でざっくりと理解できる本になります。LPICだけでなく、LinuCにも対応しているため、Linuxの認定資格を取得したい方で、Linuxに関する初学者は目を通しておきましょう。

本書を読み終えたら

本書を読み終えたら、小豆本を利用したり、当サイトを管理しているWIジャパンが提供いている以下のLPIC/LinuCレベル1に対応したコースを利用ください。

LPIC/LinuCレベル1 (101試験 + 102試験)対策コースバンドル – WIジャパン

タイトルとURLをコピーしました