この演習は3部構成である。1 と 2 は続けて進めてください。
ガイド付き演習:Linux コマンド入門
ターミナルにコマンドを実際に入力してミッションをクリアしよう。好きな順で取り組んでよい。判定はコマンドの文字列ではなく、実際に起きたこと(移動できたか、ファイルができたか)を見ている。
▸ コマンドリファレンス(クリックで開く)
pwd現在のディレクトリを表示するlsファイル一覧を表示するls -la詳細表示(. で始まる隠しファイルも出る)cd <dir>ディレクトリを移動するcd ..一つ上のディレクトリへ移動mkdir <name>ディレクトリを作成するtouch <file>空ファイルを作成するecho "text" > fileテキストをファイルに書き込むcat <file>ファイルの内容を表示するchmod <mode> <file>パーミッションを変更するgrep <pattern> <file>パターンに一致する行を検索wc -l <file>ファイルの行数を数えるcat file | grep patternパイプで組み合わせるcmd >> file追記する(> は上書き)ps実行中プロセスの一覧echo $$現在のシェルの PID を表示uname -aOS・カーネル情報を表示本物の Linux を触ってみよう
ブラウザの中で本物の Linux が動いている。ここでやるのは 擬似シェルには無いものを見ることである——本物のカーネルが持つ情報、本物のプロセス、本物のコンパイラ。 Part 1 と同じコマンドを打ち直すことではない。
黒いまま動かないときは——タブを「JSLinux(Alpine)」に切り替えるか、 webvm.io を別タブで開く。 どちらも駄目なら Part 1 の擬似シェルで課題を進めてよい(学内ネットワークが遮断していることがある)。
Part 2 の課題
実行したら出力を貼る。ここに書いたものはブラウザに保存され、最終課題でそのまま使える。
チャレンジ課題
Part 1・2 の完了後、WebVM または JSLinux で以下の追加課題を実行する。
シェルスクリプトを書く
echo 'echo Hello' > hello.sh でファイルを作り、
chmod +x hello.sh で実行権限を与えて
./hello.sh で走らせる。権限が無いとどうなるかも見てみよう。
パイプラインを使う
cat /etc/passwd | grep root を実行し、
wc -l で行数を数える。
| が「前の出力を次の入力にする」ことの意味を考えよう。
ツリーを作って探す
mkdir -p project/src project/docs で入れ子のディレクトリを作り、
ファイルを置いて find . -type f で一覧にする。
プロセスを観察する
ps aux や top で
PID・CPU 使用率・メモリ使用量を読む。OS が資源をどう配っているかを、04 章のスケジューリングと重ねて考えよう。