Linux標準教科書を読んだので各章の終わりにある章末テストの解答・解説をまとめます。
この記事を書いているぼくは実務経験1年。独学で未経験から従業員300名以上の自社開発企業へ転職しました。実務ではVue.jsとRailsを毎日書いています。
第1章の章末テストの解答・解説
(1) 基本ソフトウェアとして適切なものを選びなさい。
以下の4択です(複数選択)
- Word
- Excel
- Windows
- Linux
解答・解説
正解は「3. Windows」と「4. Linux」です。
ソフトウェアには基本ソフトウェアと応用ソフトウェアの2種類があります。
基本ソフトウェアはOS(Operating System)を指し、応用ソフトウェアはその上で動作するアプリケーションを意味します。
(2) 応用ソフトウェアとして適切なものを選びなさい。
以下の4択です(複数選択)
- Word
- Excel
- Windows
- Linux
解答・解説
正解は「1. Word」と「2. Excel」です。
どちらもWindows OS上で動作するアプリケーションなので、応用ソフトウェアです。
(3) Operating Systemの役割として適切なものを2つあげなさい。
これは記述式です。
解答・解説
Operating System(以下OS)の役割は次の2つです。
- 応用ソフトウェアが動作するために共通して必要となる「部品」の提供
- CPUやメモリなどハードウェアリソースの管理
さまざまな応用ソフトウェアが使用する機能をOSが共通部品として提供します。
以下はその一例です。
- ファイルシステム
- メモリ管理
- プロセス管理
- デバイスドライバ
またハードウェアリソースを効率的に管理し、複数のアプリケーションを同時に実行できるようスケジューリングを行います。
(4) Linuxについて正しく述べているものを選びなさい。
以下の4択です。
- AT&T とライセンス契約を結んでいない組織が開発した UNIX のこと。
- 開発者である Ken Thompson 氏がカリフォルニア大学バークレー校に在籍していたときに 作成した派生 OS。
- Linux はカーネルとユーザランドによって成り立つ。
- 1960 年代に通信会社 AT&T のベル研究所で誕生した。
解答・解説
正解は「3. Linux はカーネルとユーザランドによって成り立つ。」です。
2, 4はいずれもUNIXの話です。
1のように、AT&T とライセンス契約を結んでいない組織が開発した UNIX のことは、「UNIX 互換 OS」と呼びます。
(5) パッケージを使って応用ソフトウェアを導入する利点を説明しなさい。
これは記述式です。
解答・解説
正解は「Linux上でソースコードをビルドする手間を省ける点」です。
パッケージは、アプリケーションの実行に必要なファイルや設定、依存関係などを1つにまとめたものです。
アプリケーションをLinux上で実行するためには、かつてはソースコードを自分でビルドする必要がありました。
この手間を省くために、あらかじめビルドされたソフトウェアをパッケージとして提供するようになったのです。
第3章の章末テストの解答・解説
(1) ファイルやディレクトリを参照するコマンドを記述しなさい。
これは記述式です。
解答・解説
正解はls
コマンドです。
ls
コマンドには以下のオプションがあるので覚えておきましょう。
-a
: . で始まる隠しファイル(システム設定が描かれているファイルなど)も全て表示-l
: 詳細情報も含めてリスト表示(権限、所有者、サイズ、最終更新日など)-t
: 更新日時順にソートして表示
オプションは複数を組み合わせて使うこともできます。
(2) /media/cdrom/の中身を最新更新日順に並べて表示するコマンドを選びなさい。
以下の4択です。
ls -lf /media/cdrom/
ls -la /media/cdrom/
ls -lt /media/cdrom/
ls -l /media/cdrom/
解答・解説
正解は「3. ls -lt /media/cdrom/
」です。
ls -lt /media/cdrom/
コマンドはls
コマンドの-l
オプションと-t
オプションを組み合わせて、ファイルの詳細情報を表示しつつ、更新日順に並び替えています。
(3) 今いるパスを表示するコマンドを記述しなさい。
これは記述式です。
解答・解説
正解はpwd
コマンドです。
pwd
はPrint Working Directory
の略です。
(4) /home/usr フォルダにある test というファイルを /root/backup フォルダに移動します。以下の空欄に当てはまるコマンドを書きなさい。
# ( ) /home/user/test /root/backup
# ( ) /root/backup
合計 4
-rw-r--r--. 1 root root 19 6 月 14 11:14 2012 test
解答・解説
正解は以下のとおりです。
# mv /home/user/test /root/backup
# ls -l /root/backup
合計 4
-rw-r--r--. 1 root root 19 6 月 14 11:14 2012 test
(5) パス /etc の中のファイルで、ファイル名の一部に「resolv」という文字が含まれるファイルを検索するコマンドを記述しなさい。
これは記述式です。
解答・解説
正解はfind /etc -name *resolv*
です。
*
は任意の文字列を示しており、何文字入ったとしても検索結果として出力されます。
また別解としてls /etc | grep resolv
でも検索可能です(ls
コマンドとgrep
コマンドの組み合わせ)
grep
を使う場合は、*
を使う必要はありません。
第4章の章末テストの解答・解説
(1) grep コマンドを利用し、行頭が a または b で始まる行を抽出できる正規表現を以下の4つの中から選びなさい
以下の4択です。
- grep -e ^(ab)
- grep -e ^”ab”
- grep -e ^{ab}
- grep -e ^[ab]
解答・解説
正解は「4. grep -e ^[ab]」です。
^
は行頭を表す正規表現です。
[ab]
は「aまたはb」のいずれか1文字を意味します。
よって^[ab]
は「行頭がaまたはb」行を抽出するための正規表現となります。
(2) 「ls /usr/bin | grep -e ^a..$」というコマンドを実行した場合、どのような結果になるか答えなさい。
これは記述式です。
解答・解説
正解は「/usr/bin ディレクトリ内にある、ファイル名の行頭がa
で始まり、その後に2文字続き、全体が3文字のファイルを抽出」です。
^
は行頭を、.
は任意の1文字を、$
は行末を示します。
(3) パス /etc の中にあるファイルでファイル名が conf で終わるものを grep とパイプを用いて記述しなさい。
これは記述式です。
解答・解説
正解は「ls /etc | grep conf$
」です。
(4) ls -l を実行した結果を ls-result ファイルに書き込む場合のコマンドを記述しなさい。
これは記述式です。
解答・解説
正解は「ls -l > ls-result
」です。
「コマンド > ファイル名」でコマンドの出力結果をファイルに書き込みます。
ファイルが存在しない場合は新しく作成され、存在する場合は内容が上書きされます。
上書きせず追記したい場合は「コマンド >> ファイル名」とすればOKです。
(5) chkconfig –list の実行結果から iptables だけを絞り込んで表示するコマンドを grep を使って記述しなさい。
これは記述式です。
解答・解説
正解は「chkconfig --list | grep iptables
」です。
第5章の章末テストの解答・解説
(1) sort コマンドの実行結果となるように、適切なオプションを付けなさい。
$ sort ( ) price
Digital Camera 9800
32-inch TV 49800
Blue-ray Recorder 59800
解答・解説
正解は以下のとおりです。
$ sort -n -k 3 price
Digital Camera 9800
32-inch TV 49800
Blue-ray Recorder 59800
-n
オプション: 数値としてソートしたい場合に指定-k
オプション: ソートしたい列を指定
(2) uniq-sample というファイルに対して uniq コマンドを実行したときの実行結果を答えなさい。
$ cat uniq-sample
red
red
blue
red
blue
解答・解説
正解は以下のとおりです。
$ uniq uniq-sample
red
blue
red
blue
uniq
コマンドは連続した重複行のみを取り除きます。
離れた行の重複(今回の例だとred
)はそのままです。
(3) file1 と file2 の内容の違いを比較するコマンドを記述しなさい。
この問題は記述式です。
解答・解説
正解は以下のとおりです。
$ diff file1 file2
ファイルの内容を比較するにはdiff
コマンドを使用します。
(4) 以下のコマンドを実行したところ、何も結果が表示されずコマンド待ち状態になりました。何が考えられるか答えなさい。
$ diff test1 test2
$
解答・解説
正解は「test1 と test2 が全く同じ内容である」です。
diff
コマンドで比較したファイルに差異がない場合、何も出力されません。
(5) パス /etc の ls コマンドの実行結果が保存されたファイル ls-etc の終わり8行分を表示する場合のコマンドを記述しなさい。
$ ( ) ls-etc
wpa_supplicant
xdg
xinetd.d
xml
yp.conf
yum
yum.conf
yum.repos.d
解答・解説
正解は以下のとおりです。
$ tail -n 8 ls-etc
wpa_supplicant
xdg
xinetd.d
xml
yp.conf
yum
yum.conf
yum.repos.d
tail
コマンドの-n
オプションの後に行数を指定すると、ファイルの末尾から数えて指定した行数分だけを出力します。
第6章の章末テストの解答・解説
vi を使用中の場合に、以下を実現するためのコマンドを答えなさい。
(1) カレント行から3行をコピーする。
正解は「3yy
」です。
行をコピーしたい場合は yy コマンドを使います。
複数行を指定したい場合は yy コマンドの前に行数を指定すればOKです。
(2) 文書内の abc という語句を検索する。
正解は「/abc
」です。
検索には / コマンドを使います。
/ コマンドのあとに検索したい文字列を続けて入力しましょう。
(3) 編集中のファイルを保存せずに強制終了する。
正解は「:q!
」です。
- :wq コマンド:ファイルを保存して終了する
- :q! コマンド:ファイルを保存せずに終了する
(4) 文書の100行目に移動する。
正解は「:100
」です。
: のあとに行数を指定すると、その行へカーソルが移動します。
(5) 文書中の「高野豆腐」を「絹ごし豆腐」に置換する。ただし g オプションを付けて実行する。
正解は「:%s/高野豆腐/絹ごし豆腐/g
」です。
文字列置換のコマンドは、:対象の行s/検索文字列/置換文字列/オプション
です。
g オプションをつけることでファイル全体に含まれるすべての検索文字列を置換します。
第7章の章末テストの解答・解説
(1) useradd で user を作りましたが、ログインすることができません。ログインできるようにするには何が必要か答えなさい。
この問題は記述式です。
解答・解説
正解は「passwd コマンドにてパスワードを登録する必要がある」です。
作成したユーザでログインするためにはパスワードが必要です。
パスワードはpasswd
コマンドで作成します。
(2) ユーザ user2 を削除する場合のコマンドを答えなさい。
この問題は記述式です。
解答・解説
正解は「userdel user2」です。
ユーザを削除するにはuserdel
コマンドを使用します。
userdel ユーザ名
でOKです。
(3) グループ penguin を作成する場合のコマンドを答えなさい。
この問題は記述式です。
解答・解説
正解は「groupadd penguin」です。
新しくグループを作成するにはgroupadd
コマンドを使用します。
groupadd グループ名
でOKです。
(4) すでに作成済みのユーザ penguin のパスワードを変更する場合のコマンドを答えなさい。
この問題は記述式です。
解答・解説
正解は「passwd penguin」です。
パスワードの登録・変更はpasswd
コマンドで行います。
passwd ユーザ名
でOKです。
(5) su コマンドに-オプションを付けない場合と付ける場合の違いは何か、答えなさい。
この問題は記述式です。
解答・解説
正解は以下のとおりです。
- オプションを付けない場合は、カレントディレクトリを変更せずに root ユーザでログインする
- オプションを付ける場合は、カレントディレクトリを root のホームディレクトリに変更してログインする
第8章の章末テストの解答・解説
(1) 以下のコマンドを実行した場合の実行結果を選びなさい。
# umask 022
# touch test
# chgrp nobody test
# ls -l test
この問題は以下の4択からの選択式です。
- -rw-r–r–. 1 nobody root 18 5 月 29 18:51 2012 test
- -rw-rw-r–. 1 root nobody 18 5 月 29 18:51 2012 test
- -rw-r–r–. 1 root nobody 18 5 月 29 18:51 2012 test
- -rw-r–r–. 1 nobody test 18 5 月 29 18:51 2012 test
解答・解説
正解は「3. -rw-r–r–. 1 root nobody 18 5 月 29 18:51 2012 test」です。
umask コマンドはデフォルトのファイルパーミッションから引かれる値を指定します。
デフォルトのファイルパーミッションは 666 です。
umask 022 の場合、666 から 022 を引いた 644 が新しいファイルパーミッションとなります。
r が 4, w が 2, x が1 なので該当するのは 選択肢 3 です。
(2) chownfile のファイルモードを 755 にするためのコマンドを記述しなさい。
この問題は記述式です。
解答・解説
正解は「chmod 755 chownfile」です。
(3) chownfile のファイルモードを 644 にするためのコマンドを記述しなさい。
この問題は記述式です。
解答・解説
正解は「chown 644 chownfile」です。
(4) umask 070 にした後 umask ファイルを作成した場合に設定されるファイルモードは以下のどれでしょうか?
この問題は以下の4択からの選択式です。
- -rw—-rw-. 1 user user 0 5 月 29 19:22 2012 umask
- -rw—-r–. 1 user user 0 5 月 29 19:22 2012 umask
- -rw——-. 1 user user 0 5 月 29 19:23 2012 umask
- -rw-r–r–. 1 user user 0 5 月 29 19:24 2012 umask
解答・解説
正解は「1. -rw—-rw-. 1 user user 0 5 月 29 19:22 2012 umask」です。
これは (1) と同様の考え方で答えを出せます。
(5) umask 022 にした後 umask ファイルを作成した場合に設定されるファイルモードは以下のどれでしょうか?
この問題は以下の4択からの選択式です。
- -rw—-rw-. 1 user user 0 5 月 29 19:22 2012 umask
- -rw—-r–. 1 user user 0 5 月 29 19:22 2012 umask
- -rw——-. 1 user user 0 5 月 29 19:23 2012 umask
- -rw-r–r–. 1 user user 0 5 月 29 19:24 2012 umask
解答・解説
正解は「4. -rw-r–r–. 1 user user 0 5 月 29 19:24 2012 umask」です。
これは (1) と同様の考え方で答えを出せます。
第9章の章末テストの解答・解説
(1) 実行結果が解になるように、変数”LPI”に入力した値を出力しなさい。
$ LPI=linux
$ echo ( )
linux
解答・解説
正解は以下のとおりです。
$ LPI=linux
$ echo $LPI
linux
変数を参照する際は変数名の前に $ をつけます。
(2) 以下のスクリプトの空欄を埋め、カレントディレクトリにファイル lpi.txt が存在しているか 確認するスクリプトを完成させなさい。
#!/bin/bash
if [ -f lpi.txt ]; then
echo file exists.
( )
echo file does not exists.
( )
解答・解説
正解は以下のとおりです。
#!/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
( )
解答・解説
正解は以下のとおりです。
#!/bin/bash
for i in `ls`
do
if [ ! -d $i ]; then
file $i
fi
done
(4) 次の動作をするシェルスクリプトを書きなさい。
- 実行すると、age:として年齢の入力を促される。
- 20 以上の値を入れると’you can drink.’と出力される。
- 20 未満の値を入れると、’you cannot drink.’と出力される。
解答・解説
正解は以下のとおりです。
#!/bin/bash
echo -n age:; read age
if [ $age -ge 20 ]; then
echo "you can drink."
else
echo "you cannot drink."
fi
(5)bash で、シェルスクリプトの中身を表示しながら実行(デバッグ)するにはどのようにしたら よいか答えなさい。
この問題は記述式です。
解答・解説
正解は「sh コマンドに -x オプションをつけてシェルスクリプトを実行する」です。
sh -x ./sample.sh
のように実行することで、コマンドや変数の中身を表示しながらスクリプトを実行可能です。
第10章の章末テストの解答・解説
(1) 以下のうち、一般的に使われるサーバーが使うポートについて、正しい組み合わせを選びなさい。
- 22:SSH 80:HTTP 443:HTTPS
- 23:SSH 80:HTTP 443:HTTPS
- 22:SSH 443:HTTP 80:HTTPS
- 23:SSH 443:HTTP 80:HTTPS
解答・解説
正解は「1. 22:SSH 80:HTTP 443:HTTPS」です。
ポート番号 | サービス名 |
20 | FTP(データ) |
21 | FTP(制御) |
22 | SSH |
23 | Telnet |
25 | SMTP |
53 | DNS |
80 | HTTP |
443 | HTTPS |
(2)traceroute コマンドの動作と利用方法を説明しなさい。
この問題は記述式です。
解答・解説
正解は次のとおりです。
- 動作: 自分が利用しているコンピュータから通信先のコンピュータまでに経由する複数のゲートウェイを表示する
- 利用方法:
traceroute sample.jp
のようにターゲットとなるホスト名やIPアドレスを指定する
(3) マシンに設定されている IP アドレスをコマンドで表示しなさい。
この問題は記述式です。
解答・解説
正解はip address
コマンドです。
また ip a
のように省略して打つこともできます。
(4) マシンの DNS サーバー参照先として 8.8.8.8 を設定しなさい。
この問題は記述式です。
解答・解説
正解は以下のとおりです。
nameserver 8.8.8.8
DNSを使うには/etc/resolv.conf
ファイルで参照するサーバを指定します。
/etc/resolv.conf
ファイルの nameserver を編集し、DNSサーバのアドレスを登録します。
(5)192.168.100.20 からのアクセスを拒否するよう設定しなさい。
この問題は記述式です。
解答・解説
正解は以下のとおりです。
sshd : 192.168.100.20
アクセスを制限したい場合、/etc/hosts.deny
ファイルに記載します。
第11章の章末テストの解答・解説
(1) 作成中のプログラムをシェルプロンプトから試行したところ、プロンプトが返ってこなくなった。どのような対処方法があるか。
この問題は記述式です。
解答・解説
正解は「Ctrl + Cを押下する」です。
Ctrl + Cを打つことで 実行中のプロセスにSIGINT(Interrupt Signal) を送信します。
SIGINTを受け取ったプロセスは終了します。
(2) シグナル番号とシグナル名の組み合わせとして正しいのは次のうちどれか。
- SIGINT:1, SIGHUP:2, SIGTERM:9, SIGKILL:15
- SIGHUP:1, SIGINT:2, SIGTERM:9, SIGKILL:15
- SIGINT:1, SIGHUP:2, SIGKILL:9, SIGTERM:15
- SIGHUP:1, SIGINT:2, SIGKILL:9, SIGTERM:15
解答・解説
正解は「4. SIGHUP:1, SIGINT:2, SIGKILL:9, SIGTERM:15」です。
kill -l
コマンドでシグナルの種類を確認できます。
第12章の章末テストの解答・解説
(1) マシンのハードディスクのパーティションを確認するコマンドを記述しなさい。
この問題は記述式です。
解答・解説
正解は「fdisk -l コマンド」です。
(2) スワップファイルシステムについて説明しなさい。
この問題は記述式です。
解答・解説
正解は「プログラムやデータを読み込むための空きメモリ領域がなくなった場合に、Linuxのカーネルがその時点で利用していないメモリ上のプログラムやデータを一時的にディスク領域へ退避するしくみ」です。
(3)ext3 や ext4 が ext2 より優れている点を 1 つあげなさい。
この問題は記述式です。
解答・解説
正解は「ジャーナリング機能を持つ点」です。
ジャーナリングはファイルシステムに対する書き換え処理のコマンドをファイルシステムに記録する機能です。
この記録があることでシステム障害時が発生した場合でもデータの整合性を保ち、迅速な復旧が可能となります。
(4) ハードリンクとシンボリックリンクの違いを説明しなさい。
この問題は記述式です。
解答・解説
正解は「ハードリンクは参照したいファイルの実体を直接指して共有するのに対し、シンボリックリンクはそのファイルが保管されている位置を示す擬似的なファイルを作る」です。
ハードリンクを削除しても、参照元のファイルは削除されません。
シンボリックリンクはWindowsにおける「ショートカット」と同じ考え方の概念です。
(5) ログインしているユーザのホームディレクトリの使用量を表示するコマンドを記述しなさい。
この問題は記述式です。
解答・解説
正解は「du -sh ~」です。
du コマンドに -s オプションをつけると指定したディレクトリの使用量やファイルのサイズを調べることができます。
さらに -h オプションを付与することで、人間が読みやすい単位(KB, MB, GBなど)でデータ量を表示してくれます(つけない場合はバイト単位で表示)
おわりに
すべての内容を100%理解できたわけではありませんが、最低限の基礎知識は通読できたかなと思っています。
OS の仕組みなど、低レイヤーの技術を学びたい欲が強いので、定期的にLinuxやOS関連の技術書を読んでインプットに励みたいと思います。
また、以下の記事では「技術書の内容が頭に入らない、、」と感じている方向けに効果的な技術書の読み方を紹介しています。
こちらの記事もぜひ読んでみてください。
コメント