LinuCレベル1 101試験の例題と解説

主題1.03GNUとUnixのコマンド

1.03.2フィルタを使ったテキストストリームの処理

このエントリーをはてなブックマークに追加
今回は101試験の試験範囲から、「1.03.2 フィルタを使ったテキストストリームの処理」についての例題を解いてみます。

■例題
コマンドの説明として適切ではないものを選択してください。

1.「nl /etc/passwd」を実行すると、/etc/passwdの行頭に行番号が追加されて出力される
2.「wc -c /etc/passwd」を実行すると、/etc/passwdの行数が出力される
3.「head -n 10 /etc/passwd」を実行すると、/etc/passwdの先頭から10行が出力される
4.「tail -n 10 /etc/passwd」を実行すると、/etc/passwdの末尾から10行が出力される

※この例題は実際の試験問題とは異なります。


解答と解説

答えは「2.「wc -c /etc/passwd」を実行すると、/etc/passwdの行数が出力される」です。

wcコマンドは、ファイルの行数やバイト数、単語数を出力するコマンドです。
以下のように出力されます。左から行数・単語数・バイト数・ファイル名です。

$ wc /etc/passwd
69  104 3283 /etc/passwd

ただし、オプションを指定することで、出力する情報を限定することが可能です。

[wcコマンドの主なオプション]
-c … バイト数のみを出力する
-w … 単語数のみを出力する
-l … 行数のみを出力する

-cはバイト数を出力するためのオプションであるため、選択肢2は適切ではないということになります。

その他の回答で利用しているコマンドの解説は以下の通りです。

nlコマンドは、引数で指定されたファイルに行番号を振って出力するコマンドです。
以下のように出力されます。

$ nl /etc/passwd
1    root:x:0:0:root:/root:/bin/bash
2    bin:x:1:1:bin:/bin:/sbin/nologin
3    daemon:x:2:2:daemon:/sbin:/sbin/nologin
4    adm:x:3:4:adm:/var/adm:/sbin/nologin
5    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
(以下省略)

headコマンドは、引数で指定されたファイルの最初の一部を出力するコマンドです。
デフォルトでは10行出力されます。-nオプションで行数を指定することもできます。
以下は出力例です。

$ head /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
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

tailコマンドは、引数で指定されたファイルの末尾から一部を出力するコマンドです。
デフォルトでは10行出力されます。-nオプションで行数を指定することもできます。
以下は出力例です。

$ tail /etc/passwd
user01:x:1000:1000:user01:/home/user01:/bin/bash
user02:x:1001:1002:user02:/home/user02:/bin/bash
systemd-coredump:x:978:978:systemd Core Dumper:/:/sbin/nologin
akmods:x:977:977:User is used by akmods to build akmod packages:/var/cache/akmods/:/sbin/nologin
vboxadd:x:976:1::/var/run/vboxadd:/bin/false
radiusd:x:95:95:radiusd user:/var/lib/radiusd:/sbin/nologin
clamupdate:x:975:975:Clamav database update user:/var/lib/clamav:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
saslauth:x:974:76:Saslauthd user:/run/saslauthd:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin

このようなコマンドを組み合わせて利用することで、データをエディタで開いて編集するよりも高速に編集をしたり、欲しいデータを探すことができます。
使い方をよく覚えておきましょう。

■例題作成者
株式会社デージーネット ソリューション開発部    森 彰吾 氏

ページトップへ