sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

Linux 標準教科書 章末テストの解答例

Linux 標準教科書の答えを書いてみた

f:id:shikaku_sh:20181128134121p:plain:h200

これね。
おそらく、教科書には解答が無いみたいなので、がんばって読んだから、そのときの解答例を記録します。

間違っていたら、指摘いただけると助かります & うれしい。

Linux 標準教科書 (ver.3.0.1) の回答です。
2018年11月27日-28日作成

1章 Linux とは

(1) 基本ソフトウェアとして適切なものを選びなさい。

(1.1 より P2)

(2) 応用ソフトウェアとして適切なものを選びなさい。

(1.1 より P2)

(3) Operating System の役割として適切なものを2つあげなさい。

  • 応用ソフトウェアが動作する際に必要な「部品」を提供する役割
  • ハードウェアという「資源」を管理する役割

    (1.1.1 より P2)

(4) Linux について正しく述べているものを選びなさい。

A:AT&T とライセンス~UNIX のことって言っちゃってるので違う。
B:Ken は Unix のオリジナルの開発者なので違う。
D:Linus Torvals という学生がネットワーク上に公開したのが始まりなので違う。

(1.3 より P5)

2章 Linux のインストール

章末問題はありません。

3章 基本的なコマンド

(1) ファイルやディレクトリを参照するコマンドを記述しなさい。

  • ls

(2) /media/cdrom の中身を最終更新日順に並べて表示するコマンドを選びなさい。

  • ls -lt /media/cdrom/

-lf は、「詳細表示のL」と「Fは説明なし」
-la は、「詳細表示のL」と「すべて表示のA」
-l は、「詳細表示のL」のみ

(3) 今いるパスを表示するコマンドを記述しなさい。

print working directory (PWD) で作業中のディレクトリを表示します。

(4) /home/user フォルダにある test というファイルを /root/backup フォルダに移動します。以下の空欄に当てはまるコマンドを書きなさい。

(mv) /home/user/test /root/backup
(ls -la) /root/backup

(5) パス/etc の中のファイルで、ファイル名の一部に「resolv」が含まれるファイルを検索するコマンドを記述しなさい。

  • find /etc -name resolv

4章 正規表現とパイプ

(1) grep コマンドを利用し、行頭が a または b で始まる行を抽出できる正規表現を以下の4つの中から選びなさい。

括弧"" {} は、それぞれ意味なし
括弧() は、グループ化なので違う
(4.5.1 より P63)

(2) 「ls /usr/bin | grep -e ^a..$」というコマンドを実行した場合、どのような結果になるか答えなさい。

  • a から始まり残りの2文字が任意(合計3文字)の名前をしているファイル、またはディレクトリの一覧が表示される。

(3) パス /etc の中にあるファイルでファイル名が conf で終わるものを grep とパイプを用いて記述しなさい。

  • ls /etc | grep conf$

(4) ls -l を実行した結果を ls-result ファイルに書き込む場合のコマンドを記述しなさい。

  • ls -l > ls-result

(5) chkconfig -- list の実行結果から iptables だけを絞り込んで表示するコマンドを grep を使って記述しなさい。

5章 基本的なコマンド2

(1) sort コマンドの実行結果となるように、適切なオプションをつけなさい。

sort (-k 3) price

(2) uniq-sample というファイルに対して uniq コマンドを実行したときの実行結果を答えなさい。

red
blue
red
blue

(3) file1 と file2 の内容の違いを比較するコマンドを記述しなさい。

diff file1 file2

(4) パス /etc の ls コマンドの実行結果が保存されたファイル ls-etc の終わり8行分を表示する場合のコマンドを記述しなさい。

  • (tail -n 8) ls -etc

ファイルの作成は
ls /etc > ls-etc

6章 vi エディタ

vi を使用中の場合に、以下を実現するためのコマンドを答えなさい。

(1) カレント行から3行をコピーする。

  • 3yy

(6.4.1 より P99)

(2) 文書内の abc という語句を検索する。

  • /abc

(6.5.1 より P105)

(3) 編集中のファイルを保存せずに強制終了する。

  • :q!

(6.5.1 より P106)

(4) 文書の 100行目に移動する。

  • :100

(6.3.1 より P98)

(5) 文書中の「高野豆腐」を「絹ごし豆腐」に置換する。ただし g オプションをつけて実行する。

  • :%s/高野豆腐/絹ごし豆腐/g

(6.5.2 より P106)

7章 管理者の仕事

(1) useradd で user を作りましたが、ログインすることができません。ログインできるようにするためには何が必要か答えなさい。

  • passwd でパスワードを登録する。

(7.2.3 より P121)

(2) ユーザー user2 を削除する場合のコマンドを答えなさい。

  • userdel user2

(3) グループ penguin を作成する場合のコマンドを答えなさい。

  • groupadd penguin

(4) すでに作成済みのユーザー penguin のパスワードを変更する場合のコマンドを答えなさい。

  • passwd penguin

(5) su ユーザーに「-」オプションをつけない場合とつける場合の違いはなにか答えなさい。

# おそらくこの違いを問うているのだと思います。
su
su -

「-」オプションは、「ログイン・シェルを使用してユーザーを切り替える」機能です。
(7.3.3 より P124)

8章 ユーザー権限とアクセス権

(1) 以下のコマンドを実行した場合の実行結果を選びなさい。

  • -rw-r--r-- 1 root nobody 18 5月 29 18:51 2012 test

マスク 022 より、グループ、その他は w が - 。
(8.2.3 より P136)
chgrp が nobody なので、ユーザー変更ではない。
(8.1.2 より P130)

(2) chownfile のファイルモードを 755 にするためのコマンドを記述しなさい。

chmod 755 chownfile

(3) chownfile のファイルモードを 644 にするためのコマンドを記述しなさい。

chmod 644 chownfile

(4) umask 070 にした後 umask ファイルを作成した場合に設定されるファイルモードは以下のどれでしょうか。

  • -rw----rw-

umask は 0000 のとき以下になる。
-rw-rw-rw-
4で r を削除、2で w を削除、1で x を削除。
(8.2.2 より P133)

(5) umask 022 にした後 umask ファイルを作成した場合に設定されるファイルモードは以下のどれでしょうか。

  • -rw-r--r--

umask は 0000 のとき以下になる。
-rw-rw-rw-
4で r を削除、2で w を削除、1で x を削除。
(8.2.2 より P133)

9章 シェルスクリプト

(1) 実行結果が解になるように、変数 "LPI" に入力した値を出力しなさい。

  • $LPI

(9.3.8 より P148)

(2) 以下のスクリプトの空欄を埋め、カレントディレクトリにファイル lpi.txt が存在しているか確認するスクリプトを感性させなさい。

#!/bin/bash
if [ -f lpi.txt ]; then
    echo file exists.
(else)
    echo file does not exists.
(fi)

(3) 以下のスクリプトの空欄を埋め、カレントディレクトリ内のすべてのファイル(サブディレクトリを除く)の種類を表示するスクリプトを完成させなさい。

#!/bin/bash

for i in `ls`
do
    if [ ! -d $i ]; then
        file $i
    fi
(done)

(4) 次の動作をするシェルスクリプトを書きなさい。(条件省略)

#!/bin/bash

echo -n 'age:'
read age

if [ "$age" -ge 20 ]; then
    echo "you can drink.";
else
    echo "you cannot drink.";
fi

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

(1) 以下のうち、一般的に使われるサーバーが使うポートについて、正しい組み合わせを選びなさい。

(10.7 より P186)

(2) traceroute コマンドの動作と利用方法を説明しなさい。

  • 動作:あるホストから別のホストまでのネットワーク経路の間に通過するゲートウェイの一覧を表示する。
  • 利用方法:ping コマンドでレスポンスが無いとき、どこまでゲートウェイを通過することができたかを調べることができる。(経路上の問題箇所を推測しやすくなる)

(10.3 より P176)

(3) マシンに設定されている IP アドレスをコマンドで表示しなさい。

  • ip a

(10.4.2 より P177)

(4) マシンの DNS サーバー参照先として 8.8.8.8 を設定しなさい。

vi /etc/resolv.conf

# 以下を追加します
nameserver 8.8.8.8

(10.6 より P184)

(5) 192.168.100.20 からのアクセスを拒否するように設定しなさい。

vi /etc/hosts.deny

# 以下を追加します
sshd:192.168.100.20

(10.9 より P188)

11章 プロセス管理

(1) 作成注のプログラムをシェルプロンプトから試行したところ、プロンプトが返ってこなくなった。どのような対処方法があるか。

  • (ctrl + c) or (ctrl + z)

(11.5 より P202)

(2) シグナルとシグナル名の組み合わせとして正しいのは次のうちどれか。

  • おそらく無い。
    「1」は SIGHUP なので、1と3はx。
    「9」は SIGKILL なので、1と2と4はx。
    以上で、1,2,3,4はすべてxになる。


ID 名前 コメント
1 SIGHUP ハングアップ
2 SIGINT キーボードからの割り込み (signal interrupt)
9 SIGKILL KILL シグナル
15 SIGTERM 終了シグナル

(11.5 より P201)

12章 ファイル管理

(1) マシンのハードディスクのパーティションを確認するコマンドを記述しなさい。

  • fdisk
    p

(12.2.3 より P216)

(2) スワップファイルシステムについて説明しなさい。

  • プログラムやデータを読み込むためのメモリー領域が無くなったときに、不必要なメモリー領域のデータを退避させる領域。

(12.5 より P226)

(3) ext3ext4ext2 より優れている点を1つ挙げなさい。

(12.3.1 より P220)

(4) ハードリンクとシンボリックリンクの違いを説明しなさい。

  • ハードリンクは、ファイルデータの i ノードを参照している。

    • ディレクトリのリンクは作成できない
    • パーティションが異なるリンクは作成できない
    • どのファイルを削除しても i ノードが有効である限りリンク切れが発生しない
  • シンボリックリンクは、ファイルデータのリンク元を参照するショートカットを作成する。

(12.9 より P234)

(5) ログインしているユーザーのホームディレクトリの使用量を表示するコマンドを記述しなさい。

  • du -s /home/*

(12.10.3 より P237)

今後の Linux の学習方針について

標準教科書は、初心者向けの内容でしたね。

今後の技術的なスキル習得の指標として、 Linux の資格試験なんかを目標にするとよいと思いました。
目標が明確で、長期的にもおかしな設定にもなりづらいと考えています。よくある「はじめて Linux を勉強するかたに、おすすめの○○を厳選紹介!」だと、学習のモチベーションが保ちづらいかもしれません。例えば Linuc 1 の試験が掲げている学習内容は以下です。

  • 実務で必要なLinuxの基本操作とシステム管理が行える。
  • Linuxサーバー環境の構築・運用・保守をするための必要な操作とシステム管理ができる。
  • Linuxディストリビューションを利用するために必要な知識がある。
  • 基礎的なLinux操作について、知らないところ及び覚えないといけないところを確認し、習得できる。

実務的にも妥当な項目が挙がっているのがわかると思います。ただ(日本の) Linux の資格試験はめんどくさいことになっています。現在は世界共通の試験 LPIC (Linux Professional Institute Certification) と(現状は)国内限定の試験 LinuC が別々にあるみたいです。裏事情も調べればわかりますが、決して受験者フレンドリーな事情から分裂したものではなさそうです……。

ま、まぁ、ともかく、今後の学習は、このあたりにあうような参考書を選定しておけばよいわけです。そうすれば少なくとも、 Linux 資格取得が必要に迫られたときなどに適切な理解が得られているわけですね。

1週間でLPICの基礎が学べる本 第2版 (徹底攻略)

1週間でLPICの基礎が学べる本 第2版 (徹底攻略)

  • 作者:中島 能和
  • 発売日: 2014/01/20
  • メディア: 単行本(ソフトカバー)

標準教科書に加えた基礎固め。今度は早く読み終わると思います。基礎がまだ覚束ない気がするなら、もう一冊やるのは悪いことではないです。再学習の意思決定やコストに不安があるなら「エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)」先に読んでみるといいかもしれません。

次は、プログラミングと一緒で問題をコーディングしてトライ&エラーを繰り返す参考書です。とにかく Linux でやることを増やして経験値を上げたいです。ping-t は、試験勉強甩のサイトみたいですが、これでもいいかもしれません。(このあたりは下記の追記で勉強結果を踏まえて補足しました)

2019年6月18日 追記

で、ここまでやる気が持続すれば LPIC か LinuC の試験を受けてみれば……ってところで Linux 試験の日本環境は、現状どうしたものかって感じだったのですが、私は諸々意見を聞いてみた上で LPIC の試験を受験しました。

肝心の(初心者の)学習ゴールがなーっていうので悩むのが Linux。とはいえ、LINUX の理解がありますっていうのは、コンピューターのリテラシーが無い人からワンランク上の魔法使いに見られる事例が発生したりと、今でも新しいイベントが発生するみたいです。受験してがっかりした、ということは無かったです。