LinuC 1.03 GNUとUnixのコマンド 問題

ゆめさくが作った練習問題です。本試験の問題ではありません。

1.0⁠3 GNUとUnixのコマンドの問題を1⁠0問、小分野ごとにまとめました。選ぶと、その場で正誤と解説が出ます。

ログインなしで解けます。答えはこのブラウザの中だけに残り、どこにも送りません。

この分野の小分野

  • 1.0⁠3.1 コマンドラインの操作(2問)
  • 1.0⁠3.2 フィルタを使ったテキストストリームの処理(3問)
  • 1.0⁠3.3 ストリーム、パイプ、リダイレクトの使用(2問)
  • 1.0⁠3.4 正規表現を使用したテキストファイルの検索(2問)
  • 1.0⁠3.5 エディタを使った基本的なファイル編集の実行(1問)

1.03 GNUとUnixのコマンドの問題

10 問

選ぶと、すぐに正誤と解説が出ます。選んだ答えは変えられません。

  1. 1.03.1 コマンドラインの操作

    問 1シェルで MODE=test と代入したあと bash -c 'echo $MODE' を動かすと、何も表示されなかった。子のシェルにも test を渡すため、間に打つコマンドはどれですか。

  2. 問 2bash で、直前に実行したコマンドをもう一度そのまま実行する書き方はどれですか。

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

    問 3カンマ区切りの社員の一覧 staff.csv から、3 列目だけを取り出したい。適切なコマンドはどれですか。

  4. 問 4アクセスログから取り出した IP アドレスが 1 行に 1 つ並ぶ ips.txt がある。同じアドレスが何回出たかを数えたい。適切なコマンドはどれですか。

  5. 問 5name.txt の英字の小文字をすべて大文字に変えて表示したい。適切なコマンドはどれですか。

  6. 1.03.3 ストリーム、パイプ、リダイレクトの使用

    問 6./build.sh の標準出力と標準エラー出力を、両方とも build.log に書きたい。適切なものはどれですか。

  7. 問 7make の出力を画面で見ながら、同じ内容を make.log にも残したい。適切なものはどれですか。

  8. 1.03.4 正規表現を使用したテキストファイルの検索

    問 8app.log から、error か warn のどちらかを含む行を表示したい。適切なコマンドはどれですか。

  9. 問 9設定ファイル config.txt から、空の行を除いて表示したい。適切なコマンドはどれですか。

  10. 1.03.5 エディタを使った基本的なファイル編集の実行

    問 10vi で設定ファイルを編集し終えた。ノーマルモードで打つと、変更を保存して終了するキーはどれですか。

10 問中 0 問に答えました

解説の一覧

解いたあとに読み返せるよう、全問の解説を並べています。問いを開くと解説が出ます。

1.0⁠3.1 コマンドラインの操作

問1シェルで MODE=test と代入したあと bash -c 'echo $MODE' を動かすと、何も表示されなかった。子のシェルにも test を渡すため、間に打つコマンドはどれですか。

正解は export MODE です。代入しただけの変数はそのシェルの中だけのシェル変数で、export すると環境変数になり、そこから起動した子プロセスに引き継がれます。set MODE は位置パラメータの $1 を MODE にする働きで、unset MODE は変数を消し、echo $MODE は値を表示するだけで子へは渡しません。

問2bash で、直前に実行したコマンドをもう一度そのまま実行する書き方はどれですか。

正解は !! です。!! は履歴の展開で、直前のコマンドの行全体に置き換わります (sudo !! のように前に足す使い方も多い)。!$ は直前のコマンドの最後の引数だけ、history -c は履歴を消すコマンド、$? は直前のコマンドの終了ステータスです。

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

問3カンマ区切りの社員の一覧 staff.csv から、3 列目だけを取り出したい。適切なコマンドはどれですか。

正解は cut -d ',' -f 3 staff.csv です。cut の -d で区切りの文字を決め、-f で何番目の欄を出すかを指定します。-c 3 は各行の 3 文字目、区切りを指定しない -f 3 はタブ区切りとして読むのでカンマの行はそのまま出てしまい、sort -k 3 は 3 番目の欄で並べ替えて行全体を出します。

問4アクセスログから取り出した IP アドレスが 1 行に 1 つ並ぶ ips.txt がある。同じアドレスが何回出たかを数えたい。適切なコマンドはどれですか。

正解は sort ips.txt | uniq -c です。uniq は隣り合った同じ行だけをまとめるので、先に sort で同じ行を並べてから uniq -c で回数を数えます。並べ替えずに uniq -c を使うと離れて出てくる同じアドレスが別々に数えられ、sort -u は重なりを除いた一覧を出すだけで回数は出さず、wc -l は全体の行数を数えます。

問5name.txt の英字の小文字をすべて大文字に変えて表示したい。適切なコマンドはどれですか。

正解は tr 'a-⁠z' 'A-⁠Z' < name.txt です。tr は 1 つ目の文字の並びに出てくる文字を、2 つ目の並びの同じ位置の文字に置き換え、入力は標準入力から読みます。-s は同じ文字が続いたときに 1 つにまとめる指定、-d は当たった文字を消す指定で、sed の s/a-⁠z/A-⁠Z/ は a-⁠z という 3 文字の並びを探す指定なので文字の範囲としては働きません。

1.0⁠3.3 ストリーム、パイプ、リダイレクトの使用

問6./build.sh の標準出力と標準エラー出力を、両方とも build.log に書きたい。適切なものはどれですか。

正解は ./build.sh > build.log 2>&1 です。リダイレクトは左から順に効くので、先に標準出力を build.log に向けてから 2>&1 で標準エラー出力を同じ先に向けます。順番を逆にすると、標準エラー出力はその時点の標準出力である端末に向いたままです。2> は標準エラー出力だけ、>> は標準出力だけを追記します。

問7make の出力を画面で見ながら、同じ内容を make.log にも残したい。適切なものはどれですか。

正解は make | tee make.log です。tee は標準入力から受け取った内容を、標準出力とファイルの両方に書き出します。> make.log はファイルにだけ書いて画面には出さず、< make.log は make.log を make の入力にする指定、xargs make.log は make.log という名前のコマンドを動かそうとします。

1.0⁠3.4 正規表現を使用したテキストファイルの検索

問8app.log から、error か warn のどちらかを含む行を表示したい。適切なコマンドはどれですか。

正解は grep -E 'error|warn' app.log です。grep -E は拡張正規表現として読み、| が「どちらか」を表します。-E の無い基本正規表現では | はただの文字なので error|warn という 7 文字を探してしまい、-F は文字列そのままの一致、-v は当たらない行を出す指定、-c は error を含む行の数を出すだけです。

問9設定ファイル config.txt から、空の行を除いて表示したい。適切なコマンドはどれですか。

正解は grep -v '^$' config.txt です。^ は行の先頭、$ は行の終わりを表すので、^$ は何も無い行に当たり、-v で当たらない行だけを出します。-v の無い grep '^$' は空の行だけを出し、'^#' は # で始まるコメントの行を除き、-c は空の行の数を数えるだけです。

1.0⁠3.5 エディタを使った基本的なファイル編集の実行

問10vi で設定ファイルを編集し終えた。ノーマルモードで打つと、変更を保存して終了するキーはどれですか。

正解は ZZ です。ノーマルモードの ZZ は、変更があれば書き込んでから vi を終了します。ZQ は保存せずに終了、dd はカーソルのある行の削除、yy はカーソルのある行のコピー (ヤンク) です。

ほかの分野

  • LinuC レベル1 101試験対策(LPIC-1対応)

    1.01 インストールと仮想マシン・コンテナ

    1.0⁠1.1 Linuxのインストール、起動、接続、切断と停止、1.0⁠1.2 仮想マシン・コンテナの概念と利用、1.0⁠1.3 ブートプロセスとsystemd、1.0⁠1.4 プロセスの生成、監視、終了、1.0⁠1.5 デスクトップ環境の利用

    10問解く
  • 1.02 ファイル・ディレクトリの操作と管理

    1.0⁠2.1 ファイルの所有者とパーミッション、1.0⁠2.2 基本的なファイル管理の実行、1.0⁠2.3 ハードリンクとシンボリックリンク、1.0⁠2.4 ファイルの配置と検索

    10問解く
  • 1.04 リポジトリとパッケージ管理

    1.0⁠4.1 apt コマンドによるパッケージ管理、1.0⁠4.2 Debianパッケージ管理、1.0⁠4.3 yumコマンドによるパッケージ管理、1.0⁠4.4 RPMパッケージ管理

    10問解く
  • 1.05 ハードウェア、ディスク、ファイルシステム

    1.0⁠5.1 ハードウェアの基礎知識と設定、1.0⁠5.2 ハードディスクのレイアウトとパーティション、1.0⁠5.3 ファイルシステムの作成と管理、マウント

    10問解く
  • 1.06 シェルおよびスクリプト

    1.0⁠6.1 シェル環境のカスタマイズ、1.0⁠6.2 シェルスクリプト

    10問解く
  • 1.07 ネットワークの基礎

    1.0⁠7.1 インターネットプロトコルの基礎、1.0⁠7.2 基本的なネットワーク構成、1.0⁠7.3 基本的なネットワークの問題解決、1.0⁠7.4 クライアント側のDNS設定

    10問解く
  • 1.08 システム管理

    1.0⁠8.1 アカウント管理、1.0⁠8.2 ジョブスケジューリング、1.0⁠8.3 ローカライゼーションと国際化

    10問解く
  • 1.09 重要なシステムサービス

    1.0⁠9.1 システム時刻の管理、1.0⁠9.2 システムのログ、1.0⁠9.3 メール配送エージェント(MTA)の基本

    10問解く
  • 1.10 セキュリティと 1.11 オープンソースの文化

    1.1⁠0.1 セキュリティ管理業務の実施、1.1⁠0.2 ホストのセキュリティ設定、1.1⁠0.3 暗号化によるデータの保護、1.1⁠0.4 クラウドセキュリティの基礎、1.1⁠1.1 オープンソースの概念とライセンス、1.1⁠1.2 オープンソースのコミュニティとエコシステム

    10問解く

LinuCの頁に、1⁠0分野の入口と試験の案内があります。

続きはゆめさくで

試験の知識を仕事につなげる一歩を、ここにまとめています。