コース一覧
LinuC レベル1(LPIC-1対応)対策
シェル環境

LinuC レベル1(LPIC-1対応)対策

ブートとsystemd、パッケージ管理(APT/RPM両系統)、コマンドとviの操作、ファイルシステム、シェルスクリプト、ユーザー管理とセキュリティ、ネットワークまで、LinuC レベル1(LPIC-1対応)の全出題範囲を、毎レッスン実際にコマンドを打って確かめながら学べる対策コースです。ブラウザの中で本物の Debian 12 が動いていて、62レッスンのうち36本は読むだけで終わらず、自分の手でコマンドを打った結果で採点されます。Linux入門を修了した方を対象としています。101・102それぞれの模試60問で分野別の弱点を洗い出し、直前チェックで暗記事項を固めてから本番に臨めます。

1
試験ガイダンス
01. LinuC/LPICとは15分
02. LinuCとLPICの選び方15分
03. 学習計画15分
04. 出題形式を体験15分
2
101 ブートとアーキテクチャ
01. ブートの流れ18分
02. GRUB15分
03. systemdとターゲット18分
04. ハードウェア情報18分
05. カーネルモジュール18分
06. 過去問 アーキテクチャ15分
3
101 パッケージ管理
01. Debian系パッケージ18分
02. RPM系パッケージ15分
03. 両系統の対応表15分
04. リポジトリ管理18分
05. 共有ライブラリ18分
06. 過去問 パッケージ管理15分
4
101 GNU/Unixコマンド
01. ファイル操作の試験オプション18分
02. テキスト処理18分
03. ストリームとリダイレクト18分
04. プロセス監視18分
05. 優先度18分
06. grepと正規表現18分
07. viの操作15分
08. 過去問 コマンド15分
5
101 ファイルシステム
01. パーティション15分
02. 作成とマウント18分
03. fstabとUUID18分
04. パーミッションとリンク18分
05. 容量とクォータ18分
06. findとlocate18分
07. 過去問 ファイルシステム15分
6
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
7
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
8
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
9
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分
10
模試と直前対策
01. 模試 10190分
02. 101弱点復習15分
03. 模試 10290分
04. 102弱点復習15分
05. 直前チェック15分
06. 受験と次のステップ15分

シェル環境

設定を書いたのに効かない、という詰まり方の大半は、書いた場所が違うだけです。bash は起動のしかたによって読むファイルを変えます。102 試験で最も点になりやすい範囲なので、暗記ではなく仕組みで押さえます。

export しない変数は、子プロセスから見えない

シェルの中だけで有効なのがシェル変数、子プロセスにも引き継がれるのが環境変数です。変数を作った時点ではシェル変数で、export を通して初めて環境変数になります。

ターミナル

MYVAR=hello # シェル変数。この bash の中だけ export MYVAR # 環境変数に昇格。子プロセスに引き継がれる export MYVAR2=world # 代入と export を同時に書ける

違いは子の bash を起こせば分かります。bash -c 'echo $MYVAR' は子プロセスなので、export していない変数は空で返ります。

コマンド見えるもの
env環境変数だけ。printenv も同じで、名前を1つ指定できる
setシェル変数と環境変数、シェル関数まで全部
unset VAR変数を消す。シェル変数でも環境変数でも消える
export -n VAR環境変数からシェル変数に戻す。値は残る

set は広く env は狭い、と覚えます。出題される変数名は HOME PATH PWD SHELL、ロケールの LANG、既定のエディタを決める EDITOR、履歴の HISTSIZE と HISTFILE です。

PATH の追記で $PATH を書き忘れると ls すら消える

PATH は、コマンド名だけを打ったときにシェルが実行ファイルを探すディレクトリの並びです。左から順に探し、最初に見つかったものを実行します。追加するときは既存の値を残します。

ターミナル

export PATH="$PATH:/opt/mytool/bin" # 末尾に足す。既存を優先 export PATH="/opt/mytool/bin:$PATH" # 先頭に足す。自分のものを優先

export PATH=/opt/mytool/bin と書くと既存のパスが丸ごと消え、ls すら見つからなくなります。引っかけの定番です。カレントディレクトリの . を含めるのも、同名の偽物を踏むので避けます。

ログインシェルと非ログインシェルで読むファイルが違う

起動のしかた読むファイル (上から順)
ログインシェル/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile か ~/.bash_login か ~/.profile のいずれか1つ
非ログインの対話シェル/etc/bash.bashrc (Debian 系) → ~/.bashrc

ログインシェルは、コンソールからログインしたときや su - bash --login で起きるシェルです。非ログインの対話シェルは、端末で新しいタブを開いたときや、ログイン後にただ bash と打ったときのシェルです。

ホーム側の3つのうち、読まれるのは最初に見つかった1つだけです。~/.bash_profile があれば ~/.profile は読まれません。ここも頻出です。多くのディストリビューションは ~/.bash_profile の中から ~/.bashrc を読ませており、こうするとログインでも非ログインでも同じ設定が効きます。終了時には、ログインシェルに限って ~/.bash_logout が読まれます。

source と bash file は効果が違う

alias はコマンドに別名を付ける機能で、定義は現在のシェル限りです。常用するなら ~/.bashrc に書きます。

ターミナル

alias la='ls -A' # 定義。alias だけなら一覧、unalias で解除 \ls # 先頭に \ を付けると alias を無視して本体を呼ぶ

書き換えた設定ファイルをそのシェルにすぐ反映させるには source を使います。ドット1つも source と同じものです。

ターミナル

source ~/.bashrc . ~/.bashrc

bash ~/.bashrc と書くと子プロセスで実行されるため、変数も alias も現在のシェルには残りません。

試験で狙われるところ

export しない変数は子プロセスに見えません。PATH の追記で $PATH を書き忘れると既存のパスが消えます。ホームの3つの設定ファイルは1つしか読まれません。~/.bashrc はログインシェルでは直接には読まれず、~/.bash_profile 経由で読ませます。

ヒント

追記は >> です。> だと ~/.bashrc の中身がまるごと消えてしまいます

変数の値を文字列に混ぜるには "PATH $PATH" のようにダブルクォートで囲みます。シングルクォートだと展開されません

書き換えた ~/.bashrc を今のシェルに効かせるのは source ~/.bashrc です。bash ~/.bashrc では子プロセスで動くので残りません

  • 1. echo $HOME と echo $PATH で今の値を確かめる
  • 2. ~/.bashrc の末尾に export LINUC_LAB=/root/lab を追記する
  • 3. 同じく ~/.bashrc の末尾に alias ll='ls -alF' を追記する
  • 4. source ~/.bashrc で現在のシェルに読み込ませる
  • 5. echo $LINUC_LAB で変数が効いていることを確かめる
  • 6. PATH と HOME の実際の値を /root/env-report.txt に書き出す

5 項目で採点します