Linux Essentialsの学習教材
公開済みの教材をログインせずに読めます。改訂中の教材は公開していません。
- 絶対パスと相対パスを理解する
パスはファイルやディレクトリの場所を表します。絶対パスはルートから、相対パスは現在の作業ディレクトリからたどります。以下の計算問題は特記しない限りシンボリックリンクがなく、示したディレクトリが存在して移動権限があるLinux上のBashを前提にします。
- 絶対パスと相対パスのコマンド/運用演習
現在位置を変えながら、同じパス表記がどこへ到達するかを練習します。設問はリンクなし、指定のディレクトリは存在して移動可能、BashのCDPATHは未設定を前提とします。
- cp・mv・rm・mkdirの全体像
ファイル操作ではコマンド名だけでなく、元と先がファイルかディレクトリかを確認することが大切です。コピー、移動、削除で何が残るかを追い、内容の検証と名前の検証を分けます。GNUの基本コマンドを使い、自分で作った実習用ファイルだけを操作します。
- cp・mv・rm・mkdirのコマンド/運用演習
原稿を編集用コピーと提出用コピーに分ける作業です。操作前のディレクトリ構造を描き、各コマンドで何が増減するかを確認します。全パスは自分で作った新しい実習場所の中に限定し、原稿を残すという要件を検証します。
- headを理解する
headは入力の先頭を取り出します。行数とバイト数、ファイルと標準入力、複数ファイルの見出しを区別すると、大きなデータの冒頭だけを確認できます。例はGNU Coreutilsを使うBashで実行します。
- tailを理解する
tailは入力の末尾や指定位置以降を取り出します。最後の数行を見る場合と、先頭から数えた位置まで読み飛ばす場合の違いを、行番号付きの例で確かめます。
- grepを理解する
grepはテキストの中から条件に合う行を選ぶコマンドです。ファイル名を探すfindとは役割が異なります。文字列そのものを探す方法と、正規表現で形を指定する方法を、GNU grep・LF改行・LC_ALL=Cの小さなファイルで比較します。
- grepのコマンド/運用演習
ログの抽出条件をコマンドへ変換します。入力はLF改行のテキスト、実行環境はGNU grep・LC_ALL=Cとし、行の選択と表示形式を分けて検証します。
- sort・uniq・wcの全体像
sortは行を並べ、uniqは隣接する重複をまとめ、wcは個数を数えます。三つをパイプでつなぐ前に、どの段階で何が変わるかを確認します。GNU Coreutils、LC_ALL=C、ASCII、LF改行で実習します。
- sortを理解する
sortはテキストの行を比較して並べ替えます。標準では数値の大小とは異なる文字の比較を行います。比較方法、キー、ロケールを明示すると、再現できる集計処理を作れます。例はGNU sort、LC_ALL=C、ASCII、LF改行を前提にします。
- uniqを理解する
uniqは隣接する同じ行をまとめるフィルタです。離れた位置の同じ行を見つけて全体から一つだけ残す処理ではありません。順序の前提と-c/-d/-uの違いを、小さなログで確認します。
- wcを理解する
wcは改行・単語・バイトなどの数を数えます。画面上で何行に見えるかと、ファイル中の改行の数は同じとは限りません。ASCII入力から始め、数える単位を指定して検算します。
- sort・uniq・wcのコマンド/運用演習
ログの値を集計する手順を、途中の出力まで追って確認します。並替えのキー、重複グループの選択、改行数の違いによって結果が変わる例を扱います。
- リダイレクトを理解する
コマンドの結果を画面に出すだけでなく、ファイルへ保存したり次のコマンドへ渡したりすると処理を組み合わせられます。通常の結果とエラーメッセージを別の流れとして扱い、どこへ何が届くかを図と実習で確認します。実習はLinuxのBashと基本コマンドを前提にします。
- リダイレクトのコマンド/運用演習
監視ログからWARN行だけを集める作業を題材に、入力・中間結果・最終結果・診断の保存先を追います。ファイルが作られたことだけで成功とせず、内容と終了状態を確認します。Bashとgrep、sort、wc、teeを使い、新規の一時ディレクトリ内で実習します。
- パイプを理解する
パイプは、左のコマンドの標準出力を右の標準入力へつなぎます。文字列をシェルの命令に変える機能ではありません。行の抽出、並べ替え、集計を小さなコマンドの組合せで行います。
- パイプのコマンド/運用演習
パイプは、左のコマンドの標準出力を右の標準入力へつなぎます。文字列をシェルの命令に変える機能ではありません。行の抽出、並べ替え、集計を小さなコマンドの組合せで行います。
- プロセスの基本を理解する
ファイルに保存したプログラムと、実行中のプロセスは別です。プロセスにはPID、親、所有者、状態があります。Linuxで一覧を読み、対象を確認してから必要なシグナルを送る手順を、専用の練習プロセスで学びます。
- プロセスの基本のコマンド/運用演習
「処理が終わらない」という連絡から、同名の別処理を止めずに調査する練習です。Linuxの一覧例と、自分で作った短い子プロセスを使い、観測・終了要求・終了状態の記録を順番に行います。
- パーミッションを理解する
同じファイルでも、誰が操作するかによって読める・書ける範囲が変わります。所有者、グループ、その他という分類とrwxの意味を結び付け、ファイルとディレクトリで権限の働きが違う理由を学びます。ここでは通常のLinux利用者と標準のアクセス権を扱います。
- パーミッションのコマンド/運用演習
開発チームが共有するreportの権限を設計します。誰に何を許すかを先に表にし、数値への変換、変更コマンド、変更後の確認を順に行います。全例で通常利用者を想定し、特記がなければACL・特殊ビット・SELinux等の追加制約はないものとします。