資格道場
記事

LinuC レベル1 101試験 頻出コマンド帳

コマンド入力の問題だけを、公式の出題範囲の重要度順に並べ直した115件です。1件ごとに「覚える形」「実際の書き方の例」「別解」「よくある間違いと、その理由」が読めます。同じ115件は、日本語の課題文を読んでコマンドを打ち、その場で採点されるドリルとしても解けます。

頻出コマンド帳は CCNA・LinuC 101/102/201/202 の5試験ぶんを用意していて、合計591件です。このページはそのうち LinuC レベル1 101試験 の115件を扱います。

どこまで無料で、どこからが購入者向けか

登録なしで、いま無料でできること

  • ドリルを5問、実際に打って採点まで(正解・不正解の理由まで出ます)
  • 一覧のうち12件を、意味・別解・よくある間違いの理由まで全文
  • 分野の名前と、分野ごとの件数(全115件の内訳)

問題集のご購入で解放されること

  • 一覧の残り103件の中身
  • ドリルの残り110問

コマンド帳はLinuC レベル1 101試験の問題集を買うと追加の料金なしで付いてきます。別売りではありません。

無料で公開しているのは、公式の出題範囲での重みが大きい順の上位12件です(毎回同じ12件で、ランダムには変わりません)。

分野別のコマンド一覧

分野の並びと重要度は、公式の出題範囲(Version 10.0)に載っている数値です。項目ごとの重要度。この試験の合計=60(1回の試験60問ぶんの配分)。

出典: https://linuc.org/linuc1/range/101.html
各コマンドに添えた「この問題集での登場◯回」は、当問題集でそのコマンドが模範解答として出た回数です。本試験での頻出度ではありませんので、並べ替えには使っていません。

1.01.3 ブートプロセスとsystemd

重要度 4・11

テーマ: Linuxのインストールと仮想マシン・コンテナの利用

この分野の残り11件は、問題集のご購入で解放されます。

1.03.1 コマンドラインの操作

重要度 4・11

テーマ: GNUとUnixのコマンド

  • コマンド重要度 4この問題集での登場 1回(参考値)

    alias <エイリアス定義>

    実際の書き方の例: alias ll='ls -alF'

    別解: alias ll="ls -alF"

    alias は『エイリアス名=実行したいコマンド』の形で、既存のコマンドに新しい短い名前を付ける機能である。実行したいコマンド側に空白が含まれる場合は、シェルに1つの引数として渡すためクオート(シングルまたはダブル)で囲む必要がある。エイリアスは対話的なシェルの利便機能であり、変数のexportとは仕組みが異なる。

    よくある間違いと、その理由

    • alias ll ls -alFaliasの構文は『エイリアス名=コマンド』のように=(イコール)で結びつける形であり、空白で区切って複数の引数のように書く構文ではない。正しくは alias ll='ls -alF' のように=とクオートを使う。
    • ll='ls -alF'aliasを付けずに代入だけを行うと、llという名前のシェル変数が作られるだけで、コマンドとして実行できるエイリアスにはならない。エイリアスとして登録するにはaliasコマンドを使う必要がある。
    • export ll='ls -alF'exportは変数を環境変数として子プロセスに引き継がせるコマンドであり、コマンドの別名(エイリアス)を定義する仕組みではない。エイリアスはaliasコマンドで定義する、シェル自身に閉じた機能である。
  • コマンド重要度 4この問題集での登場 1回(参考値)

    cd -

    cd - は環境変数$OLDPWD(直前にいたディレクトリ)へ移動する特殊な書き方で、bashは移動と同時にその移動先のパスを画面に表示する(これはcdの中でも-を使った場合だけの特有の挙動である)。cd $OLDPWDでも移動自体はできるが、パスの表示は行われない点がcd -との違いである。

    よくある間違いと、その理由

    • cd ..cd .. は1つ上の階層へ移動する相対パス指定であり、必ずしも直前にいたディレクトリに戻るとは限らない(/etcの1つ上は/であり、直前にいた/var/logとは異なる)。直前のディレクトリへ戻るには特殊な引数-を使う。
    • cd $OLDPWD$OLDPWDには直前のディレクトリのパスが保持されており、cd $OLDPWDでもディレクトリの移動自体はcd -と同じ結果になるが、cd -のように移動先のパスを画面に表示する動作はしない。今回の設問はパスの表示も条件に含めている。
    • pwd -pwdは現在のディレクトリを表示するだけのコマンドであり、ディレクトリを移動する機能はない。ディレクトリの移動にはcdを使う。
  • コマンド重要度 4この問題集での登場 1回(参考値)

    cd ..

    .. は『1つ上の階層のディレクトリ』を表す相対パスの特殊表記で、.(ドット1つ)が『現在のディレクトリ自身』を表すのと対になる。cd はディレクトリを移動する組み込みコマンドで、引数を省略するとホームディレクトリへ移動する(cd ~ と同じ)。

    よくある間違いと、その理由

    • cd ~cd ~ はホームディレクトリへ移動するコマンドであり、現在地から見て1つ上の階層とは限らない。今回問われているのは相対パスでの1つ上の階層への移動である。
    • cd .cd . はカレントディレクトリ(現在地そのもの)を指定しており、ディレクトリの移動は発生しない。1つ上の階層を表す相対パスは..(ドット2つ)であり、.(ドット1つ)は現在地を表す。
    • cd ../..../.. は2階層上への移動を意味する。今回問われているのは1つ上の階層への移動であり、../..では条件よりも1階層多く上がってしまう。
  • シェル構文重要度 4この問題集での登場 1回(参考値)

    echo "$NAME"

    別解: echo "${NAME}"

    ダブルクオートは変数展開($による参照)やコマンド置換は行うが、ワイルドカードの展開は抑制するクオートである。echo "$NAME" はNAMEの値であるtaroに置き換えられてから表示される。これに対しシングルクオートは変数展開を含むあらゆる特殊文字の解釈を抑制するため、$NAMEという文字がそのまま表示される点が対比のポイントである。

    よくある間違いと、その理由

    • echo '$NAME'シングルクオートで囲むと変数展開が行われず、$NAMEという文字列がそのまま表示されてしまう。今回問われているのは変数の値(taro)を展開して表示することであり、ダブルクオートでの展開が必要である。
    • echo NAME$を付けずにNAMEとだけ書くと、変数参照ではなくNAMEという文字そのものが文字列として表示されてしまう。変数の値を展開するには先頭に$を付ける必要がある。
    • echo \$NAME$の前にバックスラッシュを置くと、$記号自体をエスケープして特殊な意味を打ち消してしまうため、変数展開が行われず$NAMEという文字列がそのまま表示される。今回問われているのは変数の値を展開して表示することである。
  • シェル構文重要度 4この問題集での登場 1回(参考値)

    echo '$NAME'

    シングルクオートは、その中に書かれた文字列を一切解釈せずそのままの文字として扱うクオートであり、$による変数展開・バッククオートによるコマンド置換・バックスラッシュによるエスケープのいずれも無効になる。ダブルクオート(変数展開は行うがワイルドカード展開は抑制する)との違いが、シェルの引用符を理解する上での基本ポイントである。

    よくある間違いと、その理由

    • echo "$NAME"ダブルクオートで囲むと変数展開が行われ、$NAMEという文字ではなく変数の値であるtaroが表示されてしまう。今回問われているのは展開せずに$NAMEという文字列そのままを表示することであり、展開を抑制するシングルクオートが必要である。
    • echo $NAMEクオートで囲まない場合も変数展開は行われ、taroが表示されてしまう。今回問われているのは$NAMEという文字列そのままの表示であり、展開を抑制する必要がある。
    • echo -E '$NAME'-E はバックスラッシュ記法の解釈を無効にするオプションであり、$の変数展開の可否には関係しない。今回の設問が求めるのはシングルクオートによる展開抑制であり、この-Eオプションは不要である。

この分野の残り6件は、問題集のご購入で解放されます。

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

重要度 4・11

テーマ: GNUとUnixのコマンド

  • コマンド重要度 4この問題集での登場 1回(参考値)

    <コマンド> 2> /dev/null

    実際の書き方の例: command 2>/dev/null

    別解: command 2> /dev/null

    /dev/null はLinuxが用意している特殊なデバイスファイルで、書き込んだ内容をすべて捨てる(読み出すと何も返さない)『データの捨て場』である。2>/dev/nullは標準エラー出力だけをこの捨て場へ流し込むことで、エラーメッセージを画面に表示させずに握りつぶす定番のイディオムである。

    よくある間違いと、その理由

    • command > /dev/null> は標準出力をリダイレクトする記号であり、この指定では通常の出力の方が破棄されてしまい、エラーメッセージは画面に表示されたままになる。今回問われているのはエラーメッセージだけを破棄することであり、2>を使う必要がある。
    • command 1>/dev/null1> は標準出力をリダイレクトする記号(>と同じ)であり、エラーメッセージ(番号2)は対象にならない。今回問われているのはエラーメッセージの破棄であり、2>を使う必要がある。
    • command > /dev/null 2>&1この指定では標準出力・標準エラー出力の両方が破棄され、通常の出力も画面に表示されなくなってしまう。今回問われているのはエラーメッセージだけを破棄し、通常の出力は画面に表示したままにすることである。
  • コマンド重要度 4この問題集での登場 1回(参考値)

    <コマンド> > <ファイル> 2>&1

    実際の書き方の例: build.sh > result.log 2>&1

    別解: ./build.sh > result.log 2>&1

    2>&1 は『標準エラー出力(2)を、標準出力(1)がいま向いている場所と同じ場所へ複製する』という意味の記法である。> result.log 2>&1 のように先に標準出力の向き先をresult.logに変えてから2>&1を書くと、エラー出力もresult.logへ複製される。この記述順序(先に>、後で2>&1)を逆にすると意図通りに動かない点が、LinuC 101で頻出のひっかけポイントである。

    よくある間違いと、その理由

    • build.sh 2>&1 > result.logリダイレクトは左から順に処理されるため、この順序では先に標準エラー出力(2)がその時点での標準出力の接続先(まだ画面)へ複製され、その後で標準出力(1)だけがresult.logへ切り替わる。結果としてエラーメッセージは画面に表示されたままになり、result.logには通常の出力しか書き込まれない。今回問われているのは両方をファイルへまとめる操作であり、正しくは>を先に書く必要がある。
    • build.sh > result.logこの指定では標準出力だけがresult.logへ書き込まれ、エラーメッセージ(標準エラー出力)はそのまま画面に表示される。今回問われているのは両方をまとめて書き込むことであり、2>&1の追加が必要である。
    • build.sh &> result.log 2>&1&> はbash独自の『標準出力と標準エラー出力の両方をまとめてリダイレクトする』記法であり、これ単体で今回の目的を満たす。さらに2>&1を重ねて付け加えるのは冗長かつ不要な記述であり、模範解答の書式と一致しない。
  • コマンド重要度 4この問題集での登場 1回(参考値)

    cat <ファイル> | sort | uniq

    実際の書き方の例: cat access.log | sort | uniq

    cat file | sort | uniq は、ファイルの内容を読み出し(cat)、並び替え(sort)、隣接する重複行をまとめる(uniq)という3段階の処理をパイプでつなぐ、ログ集計等でよく使われる組み合わせである。uniqは隣接する行しか比較しないため、この用途では必ずsortを先に行う必要がある点が最大の注意点である。

    よくある間違いと、その理由

    • cat access.log | uniq | sortuniqは隣接する重複行しかまとめられないため、ソートより先にuniqを行うと、ファイル中で離れた場所にある同じ内容の行がまとめられずに残ってしまう。重複を漏れなくまとめるには、先にsortで同じ内容の行を隣接させてからuniqに渡す必要がある。
    • sort access.log | uniqsortコマンド自身がファイル名を引数に取れるため、catを挟まなくても同様の結果を得ることはできる。しかし今回の設問は『3つのコマンドをパイプでつないだ』という条件を明記しており、catを含めた3コマンドの構成を満たさない。
    • cat access.log | sort uniqパイプ記号(|)がsortとuniqの間にないため、uniqがsortコマンドの引数の一部として扱われてしまい、意図と異なる操作になる。3つのコマンドをつなぐには、それぞれの間に|が必要である。
  • コマンド重要度 4この問題集での登場 1回(参考値)

    df -h | tee -a <ファイル>

    実際の書き方の例: df -h | tee -a disk_report.txt

    別解: df -h | tee --append disk_report.txt

    tee -a(--append)は、teeの既定動作(上書き)を追記に変える。df -hのようなディスク使用量の記録を、実行するたびに履歴として積み上げていきたい場合に、画面確認と追記保存を1コマンドで両立できる組み合わせである。

    よくある間違いと、その理由

    • df -h | tee disk_report.txt-a(追記)を付けないteeは、既定でファイルを上書きする。今回問われているのは既存の内容を消さずに追記することであり、-aの指定が必要である。
    • df -h >> disk_report.txt>> はファイルへの追記はできるが、画面には何も表示されなくなる。今回問われているのは画面表示と追記の両方であり、片方だけになる>>では条件を満たさない。
    • df -h | tee -a > disk_report.txtteeの引数は出力先のファイル名を直接指定するものであり、間に>を挟む書き方は誤りである(この書き方では-aの直後にファイル名が続かず、意図通りに動かない)。正しくはtee -a disk_report.txtのように、-aの直後にファイル名を書く。
  • シェル構文重要度 4この問題集での登場 1回(参考値)

    echo "追記内容" >> memo.txt

    別解: echo '追記内容' >> memo.txt

    >> は標準出力の内容を指定したファイルの末尾に追記するリダイレクトで、既存の内容を消さずに残す。>(1つ、上書き)との違いは記号の数であり、うっかり片方を書き間違えると既存データを消してしまう事故につながるため、この区別は特に重要である。

    よくある間違いと、その理由

    • echo "追記内容" > memo.txt> は上書きのリダイレクトであり、memo.txtの既存の内容がすべて消えて追記内容だけのファイルになってしまう。今回問われているのは既存の内容を消さずに追記することであり、>>を使う必要がある。
    • echo "追記内容" << memo.txt<< はヒアドキュメント(複数行の入力をその場で与える記法)の開始を示す記号であり、ファイルへの追記には使えない。ファイルへ追記するリダイレクトは>>である。
    • echo "追記内容" >>> memo.txt>>> という3つ重ねたリダイレクト記号はシェルの構文として存在しない。追記のリダイレクトは>>(2つ)である。

この分野の残り6件は、問題集のご購入で解放されます。

1.05.3 ファイルシステムの作成と管理、マウント

重要度 4・11

テーマ: ハードウェア、ディスク、パーティション、ファイルシステム

  • コマンド重要度 4この問題集での登場 1回(参考値)

    blkid <デバイス>

    実際の書き方の例: blkid /dev/sdb1

    blkid は、ブロックデバイス(パーティション等)が持つUUID・ラベル・ファイルシステムの種類を表示するコマンドである。/etc/fstabにデバイス名(/dev/sdb1等)ではなくUUIDで対象を指定する構成が推奨されるため、そのUUIDを確認する目的でよく使われる。

    よくある間違いと、その理由

    • mount -t blkid /dev/sdb1blkidはmountの-tオプションに指定するファイルシステムの種類の名前ではなく、独立した別のコマンドである。UUIDやファイルシステムの種類を確認するには、blkidコマンドを単独で実行する。
    • fdisk -l /dev/sdb1fdisk -lはパーティションのサイズや開始・終了セクタ等のパーティションテーブル情報を表示するコマンドであり、UUIDやファイルシステムの種類(ext4・vfat等)を直接的に確認する目的には向かない。この情報を確認する専用コマンドはblkidである。
    • df -T /dev/sdb1dfはマウント済みのファイルシステムのディスク使用量を表示するコマンドであり、マウントされていないパーティションを対象に指定してもディスク使用量としての情報は得られない。UUIDやファイルシステムの種類を確認するにはblkidを使う。
  • コマンド重要度 4この問題集での登場 1回(参考値)

    df -hT

    別解: df -h -T / df -T -h / df -Th / df --human-readable --print-type

    df -h(--human-readable)はサイズをKB/MB/GB等の分かりやすい単位で、-T(--print-type)は各行にファイルシステムの種類(ext4・xfs・vfat等)の列を追加する。単独のオプション文字は組み合わせて1つの引数(-hT)にまとめて書けるのが、Unix系コマンドの短いオプションに共通する記法である。

    よくある間違いと、その理由

    • df -h-h(--human-readable)だけでは、使用量を読みやすい単位で表示するが、ファイルシステムの種類の列は表示されない。今回問われているのは種類も含めた表示であり、-T(--print-type)の追加が必要である。
    • df -T-T(--print-type)だけでは、ファイルシステムの種類は表示されるが、サイズはブロック単位のままで人間が読みやすい単位(GB等)にはならない。今回問われているのは読みやすい単位での表示も含む条件であり、-hの追加が必要である。
    • df -a -hT-a(--all)を追加すると、tmpfsや0ブロックの仮想ファイルシステムなど、通常は除外される特殊なファイルシステムまで表示対象に含めてしまう。今回問われているのは通常のマウント済みファイルシステムの表示であり、-aの追加は条件に含まれていない。

この分野の残り9件は、問題集のご購入で解放されます。

1.01.4 プロセスの生成、監視、終了

重要度 3・8

テーマ: Linuxのインストールと仮想マシン・コンテナの利用

この分野の残り8件は、問題集のご購入で解放されます。

1.02.1 ファイルの所有者とパーミッション

重要度 3・5

テーマ: ファイル・ディレクトリの操作と管理

この分野の残り5件は、問題集のご購入で解放されます。

1.02.2 基本的なファイル管理の実行

重要度 3・8

テーマ: ファイル・ディレクトリの操作と管理

この分野の残り8件は、問題集のご購入で解放されます。

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

重要度 3・9

テーマ: GNUとUnixのコマンド

この分野の残り9件は、問題集のご購入で解放されます。

1.04.1 apt コマンドによるパッケージ管理

重要度 3・8

テーマ: リポジトリとパッケージ管理

この分野の残り8件は、問題集のご購入で解放されます。

1.04.3 yumコマンドによるパッケージ管理

重要度 3・8

テーマ: リポジトリとパッケージ管理

この分野の残り8件は、問題集のご購入で解放されます。

1.05.1 ハードウェアの基礎知識と設定

重要度 3・8

テーマ: ハードウェア、ディスク、パーティション、ファイルシステム

この分野の残り8件は、問題集のご購入で解放されます。

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

重要度 2・5

テーマ: ファイル・ディレクトリの操作と管理

この分野の残り5件は、問題集のご購入で解放されます。

1.02.4 ファイルの配置と検索

重要度 2・6

テーマ: ファイル・ディレクトリの操作と管理

この分野の残り6件は、問題集のご購入で解放されます。

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

重要度 2・6

テーマ: GNUとUnixのコマンド

この分野の残り6件は、問題集のご購入で解放されます。

まずは無料のドリル5問で、打って採点される感じを確かめてみてください。手応えがあれば、問題集のご購入でコマンド帳115件とドリル115問がそのまま解放されます。