1-1. ターミナル基礎 - 移動・閲覧・作成

所要時間: 25-50分(がっつりなら2セッション分) ゴール: ホームディレクトリを自由に行き来し、構造を可視化できる コミット内容: 今日打ったコマンド履歴を ~/log/linux_day01.log に保存

この章が終わるとできること

  • pwd ls cd で「いま自分はどこにいて、何があるか」を即答できる
  • mkdir -p touch echo > で、必要なディレクトリ・ファイルをコマンドで生成できる
  • cat / less / head / tail を使い分けて、ファイルサイズに応じた閲覧ができる
  • tree -L N で配下の構造を可視化できる
  • man <cmd> で公式マニュアルを引いて自走できる

これができると何が嬉しいか

  • 本番サーバーに SSH した瞬間、「とりあえずどこに何があるか把握する」が10秒で終わる
  • GUI を経由せず、コマンド1行で「100フォルダを連番生成」みたいな雑用が消える
  • 次の章以降、すべてのレッスンが「ターミナルを開いて手を動かす」前提で進められる

大前提: ターミナルとは何か

ターミナルは「キーボードで OS に直接話しかける窓口」です。GUI(Finderとか)は、その裏で必ずターミナルと同じコマンドを叩いている。GUIで Cmd+N で新規フォルダを作る = 裏で mkdir が走っている。

エンジニアがターミナルを好む理由は3つ:

  1. GUIより速い - マウス移動なし、キー操作だけ
  2. 自動化できる - 「100個のファイルを連番でリネーム」みたいなのが一瞬
  3. リモートでも動く - Linux サーバーに ssh で繋いだら GUI は無い、ターミナルしかない

逆に言うと、バックエンドエンジニアにとってターミナルは「サーバーの中を見る唯一の手段」。これに慣れずに先に進むと、本番サーバーで何もできなくなる。だから最初にやる。


セッション①: 移動と閲覧(25分)

0. セッション録画スタート(必須)

# ログ保存先を作る
mkdir -p ~/log
 
# このコマンドから後の操作が全部記録される
script ~/log/linux_day01.log

script コマンドとは

ターミナルセッションを丸ごとファイルに録画するコマンド。1970年代から Unix に入っている古参。

使い所

  • 学習: 自分が何を打ったか後で見返せる(今やってること)
  • 障害対応: 「本番でどんなコマンド叩いたか」記録として残す(監査・再現用)
  • 教育: 操作手順を後輩に渡す時、画面録画より軽くて検索可能

終了は exit。終了するとファイルにすべての出力が保存されている。

1. 自分の現在地を知る

pwd / whoami / hostname「今どこにいるか」「自分は誰として動いているか」「どのマシン上か」をシェルに尋ねる基本3コマンド。ファイル操作はすべてカレントディレクトリ基準で動くので、まず現在地を把握する習慣をつける。

pwd     # print working directory - 現在のフルパス
whoami  # ログイン中のユーザー名
hostname  # マシン名

なぜ「現在地」を意識するのか

ターミナルは常に「どこかのディレクトリの中」にいる。これを「カレントディレクトリ(current directory)」と呼ぶ。ファイル操作はカレントディレクトリ基準で動く。

例: rm tmp.txt を実行すると、「カレントディレクトリの tmp.txt」を削除する。違う場所にいたら違う tmp.txt を消す。だから「今どこ?」を確認する pwd は最重要コマンド。

pwd の中身: シェルが持っている環境変数 $PWD の中身を表示しているだけ。echo $PWD でも同じ結果が出る。

whoami のユースケース: SSH で複数サーバーに繋いでいて「あれ、今 root で繋いでる?一般ユーザー?」が分からなくなった時の保険。本番サーバーで root と一般を取り違えると事故る。

2. 中身を見る(ls の使い倒し)

ls (list) は カレントディレクトリ(または指定したパス)の中身を一覧表示するコマンド。Unix で最も叩かれるコマンドのひとつで、オプションをどう組み合わせるかで「ファイル一覧」「権限・サイズ込みの詳細」「隠しファイル込み」「更新日時順」と表示内容を自在に切り替えられる。本番サーバーでログを追う・障害ファイルを特定する時の最初の一手。

実務でよく使う組み合わせは決まっていて、ls -lah が定番(詳細 + 隠しファイル + 読みやすいサイズ)。これを脊髄反射で打てると、ファイル状況の確認が一瞬で済む。

ls           # 中身一覧
ls -l        # 詳細(権限・サイズ・日時)
ls -a        # 隠しファイルも表示(. で始まるやつ)
ls -lh       # human readable(KB/MB単位)
ls -lt       # 更新日時順
ls -lS       # サイズ順
ls -la ~/    # ホームディレクトリの詳細

ls の各オプションの意味と使い分け

  • -l (long): 「詳細表示」。権限・所有者・サイズ・更新日時が出る。本番サーバーでは99%これls 単独だとほぼ使わない
  • -a (all): 隠しファイル(. で始まる)も出す。.git/ .env .bashrc などは設定ファイル系で重要
  • -h (human): サイズを 4.0K 2.3M 1.1G のように読める形式に。-l と必ずセットで使う
  • -t (time): 更新日時順。ログを追う時の鉄板。「直近で変更されたファイルどれ?」
  • -S (size): サイズ順。「ディスク食ってるファイル特定」の入り口
  • -r (reverse): 並び順を逆に。-tr で「古い順」、-Sr で「小さい順」

実務でよく見る組み合わせ: ls -lah (詳細+隠しも+読めるサイズ)。これだけ覚えればOK

ユースケース: アプリのエラーでログを調べる時、/var/log/ls -lt すると最新のログが先頭に来る → 怪しいファイルがすぐ分かる

ls -l の出力、どう読む?

ざっくり言うと

ls -l の各行は 「このファイルの履歴書」 が左から右に詰め込まれているだけ。種類・権限・所有者・サイズ・更新日時・名前、の順。

まず実物を見る

drwxr-xr-x@  3 takato  staff    96 May 14 16:02 Documents
-rw-r--r--@  1 takato  staff  1234 May 14 16:00 memo.txt
lrwxr-xr-x   1 takato  staff    14 May 14 16:00 link.txt -> memo.txt

初見だと「左から何の暗号?」となる。でも実は 左から順に固定の意味で並んでいるだけ

全体構造

drwxr-xr-x@   3   takato   staff    96   May 14 16:02   Documents
└─┬──────┘   │   └─┬──┘   └─┬─┘   └┬┘   └────┬─────┘   └──┬───┘
 種類+権限  リンク数 所有者  グループ サイズ   更新日時      名前
意味
1drwxr-xr-x@ファイルタイプ + 権限
23ハードリンク数
3takato所有者(作った人)
4staffグループ
51234サイズ(バイト、-lh1.2K などに)
6May 14 16:00最終更新日時
7memo.txtファイル名

左端1文字目: ファイルタイプ

ここで「ファイルなのか・ディレクトリなのか・リンクなのか」が決まる。

  • - : 通常のファイル
  • d : ディレクトリ
  • l : シンボリックリンク

イメージ: 左端1文字 = ファイルの「種族」マーカー

残り9文字: 権限ブロック

rwx r-x r-x
└┬┘ └┬┘ └┬┘
所有者 グループ その他

3文字ずつ3組で、それぞれ「誰が」「何をできる」かを表す。

  • 最初の3文字 = 所有者の権限
  • 次の3文字 = グループの権限
  • 最後の3文字 = その他全員の権限

各3文字の中身:

  • r (read): 読める
  • w (write): 書ける/削除できる
  • x (execute): 実行できる(ディレクトリなら「中に入れる」)
  • - : その権限が無いマーカー(信号機の消えてるライト)

読み方の例

-rw-r--r-- を分解:

-      rw-     r--     r--
種類   所有者   グループ その他
通常   読み書き 読みのみ 読みのみ

意味: 「自分しか書き換えられない、みんな読める」 状態。設定ファイルでよくあるパターン。

リンク数って何?

3 takato staff ...
↑
ハードリンク数

このファイルへの別名がいくつあるか」を示す数。ディレクトリの場合は「中に入っているサブディレクトリ数 + 2」のような特殊な意味だが、最初は深く考えなくていい。普段は無視。

一番覚えやすい説明

  • 左端1文字 = ファイルの種類
  • 次の9文字 = 「所有者・グループ・その他」 × 「rwx」の表
  • 残り = 「誰の」「どれくらいの大きさで」「いつ作って」「何ていう名前か」の履歴書

末尾の @ は何?

macOS 独自の「拡張属性あり」マーク。気にしなくていい。

詳細は Day3: パーミッション で扱う。今は「rwx の3組セット」というイメージだけ掴めばOK。

3. 移動する(cd)

cd (change directory) は カレントディレクトリを変更するコマンド。シェルでの「移動」はすべてこれ。特殊記号(~ / .. -)を組み合わせると行き先を柔軟に指定できる。

cd ~              # ホームへ
cd /              # ルートへ
cd ..             # 1つ上
cd -              # 直前のディレクトリへ戻る(神オプション)
cd ~/Documents    # 絶対パスっぽく書く

cd の便利ワザ

  • 引数なしの cd = cd ~ と同じ(ホームに戻る)。最速のホーム帰還
  • cd - = 直前のディレクトリに戻る。「あ、戻りたい」が一発で叶う。何回叩いても2箇所を行き来する
  • cd .. は「親ディレクトリ」、cd ../.. で「親の親」と重ねられる

ユースケース: プロジェクトディレクトリで作業中、別フォルダの設定見たくなった → cd /etc/nginx → 設定確認 → cd - で元の場所へ即帰還

絶対パス vs 相対パス

ざっくり言うと

ファイルの行き先を伝える時、「家の住所を全部書く」(絶対パス)か 「ここから3歩右」(相対パス)かの2通りがある。どっちでも辿り着けるけど、状況によって正解が変わる。

まず普通のパターン

cd Documents      # ← 相対パス
cd /Users/takato/Documents   # ← 絶対パス

どっちも同じ場所に行ける。違いは「今いる場所が出発点か、ルート(/)が出発点か」だけ。

図で見る

ルート (/)
└─ Users/
    └─ takato/        ← いまここ(カレント)
        ├─ Documents/
        └─ Downloads/

Documents/ に行きたい時:

相対パス: Documents
         └─ 「いまの場所から見て Documents」

絶対パス: /Users/takato/Documents
         └─ 「ルートから順に降りていく完全アドレス」

相対パスの落とし穴

相対パスは 「いま takato/ にいる」 という前提で動く。前提が崩れるとどうなるか:

cd /tmp
cd Documents    # ← エラー! /tmp/Documents なんて無い

ターミナル ↓ カレントが変わる ↓ 相対パスの解釈先も変わる ↓ 昨日動いたコマンドが今日は動かない

これがスクリプトで一番ハマるパターン。

絶対パスは「どこからでも当たる」

cd /Users/takato/Documents   # どのディレクトリにいても同じ場所に行く

イメージ: 絶対パス = カーナビに住所をフル入力 相対パス = 「そこの角を右」と言うナビ

対比表

絶対パス相対パス
/ から始まる/ で始まらない
どこにいても結果が同じカレント次第で結果が変わる
タイプ量が多いタイプ量が少ない
スクリプト向き対話操作向き

一番覚えやすい説明

  • 対話中(手で打つ時) → 相対パス(短くて速い)
  • スクリプト書く時 → 絶対パス(カレントに依存しないから壊れない)

4. ファイルの中身をのぞく

cat / less / head / tailファイルの中身を表示するための4種類のコマンド。ファイルサイズと「どこを見たいか」で使い分ける。cat は全部、less はページ送り、head/tail は先頭/末尾の数行、tail -f はリアルタイム追従。

cat ~/.zshrc       # 全部出力
less ~/.zshrc      # 1画面ずつ(qで抜ける、/で検索)
head -20 ~/.zshrc  # 先頭20行
tail -20 ~/.zshrc  # 末尾20行
tail -f /var/log/system.log  # リアルタイム追従(Ctrl+Cで止める)

「ファイルを見る」コマンドが4つもある理由

コマンドこういう時に使う
cat短いファイル(設定ファイル、README)。中身を全部一気に標準出力へ流す
less長いファイルを読む時。スクロール・検索ができる
head先頭だけ見たい時。「このCSVのカラム名なんだっけ」「ログの最初は何?」
tail末尾だけ見たい時。ログ調査の基本。エラーは大体最後にある

最重要: tail -f

  • -f は follow(追跡)の意味
  • ファイルに新しい行が追記されるのをリアルタイムで表示する
  • 本番のエラー調査で一番使う: tail -f /var/log/nginx/error.log でnginxのエラーを生中継
  • 止め方は Ctrl+C

cat の落とし穴

巨大なファイル(数百MB以上)に cat するとターミナルが固まる。サイズ分からないファイルはまず ls -lh で確認 → 大きそうなら lesshead

less の操作

  • スペース / f: 次のページ
  • b: 前のページ
  • g: 先頭へ
  • G: 末尾へ
  • /検索語: 検索(n で次、N で前)
  • q: 終了

5. ディレクトリ構造を見る(tree)

treeディレクトリ構造を「木」の形でビジュアル表示するコマンドls が「1階層だけ」を平面で見せるのに対し、tree は配下のサブディレクトリも含めて階層ごとにインデントで描画してくれる。

実務での使い所:

  • 新しいプロジェクトに参加した直後: tree -L 2 でリポジトリ全体の構造を把握
  • README にプロジェクト構造を書く時: tree の出力をそのまま貼れば説明完了
  • 「あのファイルどこだっけ」: パス階層が深い時に全体像を見て探す

ls -R でも再帰表示はできるが、罫線で構造が見える分 tree の方が圧倒的に読みやすい。ただし標準では入っていない外部ツール(後述)なので、初回だけインストールが必要。

# tree が入ってなければ
brew install tree
 
# ホームのトップ階層だけ
tree -L 1 ~
 
# Documents の2階層まで
tree -L 2 ~/Documents
 
# 隠しファイル除外、ファイル数カウント
tree -L 2 --noreport ~/Documents

tree は標準コマンドではない

macOSにも多くのLinuxディストリにも初期では入っていない。brew install tree で入れる外部ツール。

なぜ重要かというと、プロジェクトの全体像を把握するのに最強だから。README.mdtree の出力を貼って構造を説明している OSS プロジェクトは無数にある。

-L (level): 何階層まで掘るかの指定。-L 1 だと直下のみ、-L 3 だと3階層

代替手段: tree がない環境では find . -type d でディレクトリだけ列挙 → awk で整形 でそれっぽくできる。が、面倒なので素直に brew install を推奨


セッション②: 作成と整理(25分)

6. ディレクトリ・ファイルを作る

mkdir / touch / echo「ディレクトリやファイルをコマンドで生成する」3点セット。GUI の「右クリック → 新規フォルダ」「右クリック → 新規ファイル」をコマンド化したもの、と捉えるとイメージしやすい。

  • mkdir: ディレクトリを作る。-p を付けると親ディレクトリも一緒に作ってくれる
  • touch: 空ファイルを作る(厳密には「タイムスタンプ更新」コマンドだが、副作用でファイル生成に使われる)
  • echo: 文字列を出力する。> でリダイレクトすればファイルに書き込める

スクリプトで「プロジェクト構造を一発生成」「設定ファイルを動的に作る」といった自動化の土台になる、地味だけど最頻出の組み合わせ。

# 作業用フォルダ作成
mkdir -p ~/learn/linux/day01
cd ~/learn/linux/day01
 
# 空ファイル
touch hello.txt
touch a.txt b.txt c.txt   # 複数同時
 
# echo でテキスト書き込み
echo "Linux始めた" > memo.txt
echo "2行目" >> memo.txt   # 追記
cat memo.txt

mkdir -p-p って何?

  • -pparents(親)の意味
  • 「途中の親ディレクトリも一緒に作る」オプション

例:

mkdir ~/a/b/c          # NG: ~/a がなければエラー「親ディレクトリがない」
mkdir -p ~/a/b/c       # OK: ~/a も ~/a/b も同時に作って、その下に c も作る

もうひとつの便利な性質: 既に存在してもエラーにならない。スクリプトで「あれば使う、なければ作る」の処理に最適。明示的な if 文が要らない

実務ユースケース

  • 新規プロジェクト構造を一発生成: mkdir -p myproject/{src,tests,docs}/
  • デプロイスクリプトで「ログ置き場が無ければ作る」: mkdir -p /var/log/myapp

touch は本来「タイムスタンプ更新」コマンド

名前から「ファイル作成コマンド」だと思いがちだが、本来は ファイルの更新日時を「今」に書き換えるコマンド

touch existing_file.txt   # 既存ファイルの更新日時を今に変更
touch new_file.txt        # ファイルが存在しなければ作る(副作用的に)

「タイムスタンプ更新」って何の意味があるの?と思うが、実務では:

  • ビルドツールに「このファイル更新したよ」と認識させる(make などは更新日時で再ビルド判断する)
  • cron で「ファイルが古かったら再生成」のロジック

空ファイル作成は touch の副作用利用。厳密にはちょっと邪道な使い方だが、Unix 文化として定着している

echo は「画面に文字を出すだけ」のコマンド

単独だと「ターミナルに文字表示」というだけの地味なコマンドだが、シェルスクリプトでは超頻出。

使われ方トップ3

  1. 変数の中身を確認: echo $PATH で環境変数 PATH を見る
  2. ファイルに書き込む: echo "text" > file.txt(リダイレクト > でファイルに流す)
  3. デバッグ出力: スクリプト中で echo "ここまで来た" と入れて動作確認

>>> の違い(事故注意)

  • > : ファイルを 上書き(既存内容を消して新規書き込み)
  • >> : ファイルに 追記(既存内容の末尾に追加)

これを混同すると「設定ファイル全部消した」事故が起きる。覚え方: 矢印1本は「全部入れ替え」、2本は「重ねがけ」

7. ちょっと深いディレクトリも一発で

{a,b,c} のような波括弧記法は シェルが提供する「ブレース展開(brace expansion)」 という構文。mkdirtouch などのコマンドに渡す前に、シェルが先回りして展開してから実際のコマンドラインを組み立てる。mkdir -p src/{api,web}/{handlers,models} のように書けば、1行で4つのディレクトリを生成できる。

実務での使い所:

  • 新規プロジェクトの構造を一発で作る: mkdir -p myapp/{src,tests,docs}
  • 連番ファイル/フォルダ: touch report_{01..12}.md(1〜12 を展開)
  • バックアップ作成: cp config.yml{,.bak}cp config.yml config.yml.bak に展開される(裏ワザ的だが頻出)

「コマンド側の機能」ではなく「シェル側の機能」なので、mkdir 以外のあらゆるコマンドで使える汎用パターン。覚えるとタイプ量が激減する。

mkdir -p ~/learn/linux/{day01,day02,day03}/{src,docs,tests}
tree -L 3 ~/learn/linux

{a,b,c} はコマンドではなく シェルのブレース展開

{a,b,c} はシェル(zsh / bash)がコマンドに渡す前に勝手に展開する記法。mkdir 自体は何も知らない。

mkdir -p ~/{a,b,c}
# ↓ シェルが展開
mkdir -p ~/a ~/b ~/c
# ↑ これが実際に実行される

ネストもできる:

mkdir -p src/{api,web}/{handlers,models}
# ↓ 展開後
mkdir -p src/api/handlers src/api/models src/web/handlers src/web/models

実務ユースケース

  • 新規プロジェクトの構造作成(上の src/{api,web}/... パターン)
  • 連番ファイル作成: touch report_{2024,2025,2026}_{01..12}.md で年×月の36ファイル
  • バックアップ: cp config.yml{,.bak}cp config.yml config.yml.bak に展開

8. man で公式マニュアル

man (manual) は すべての標準コマンドの「公式説明書」をターミナル内で開くコマンド。インターネットがない時代から Unix に組み込まれている標準機能で、コマンドの全オプション・引数・使用例が網羅されている。

現代では「困ったら Google / Claude に聞く」方が早いことが多いが、man の出番は明確にある:

  • SSH した本番Linuxサーバーで、外部接続が禁止されている: 手元のリファレンスは man しかない
  • 「このオプションって本当にこの動作?」の確認: 一次情報として信頼できる
  • コマンド名は分かるが使い方を忘れた時の即引き: 検索より速い

操作感は less と同じ(スペースで次ページ、/ で検索、q で終了)。長くて読み切れない時は man <cmd> | head で先頭だけ見るのもアリ。

man ls    # ls のマニュアル(qで抜ける)
man cd
man tree

man (manual) は すべてのコマンドの公式説明書

インターネットがない時代から Unix に組み込まれている。今でもサーバー上で困った時のリファレンス。

使い方

  • 起動: man <コマンド名>
  • 操作は less と同じ(スペースで次へ、q で抜ける、/検索語 で検索)
  • セクション分け: NAME / SYNOPSIS / DESCRIPTION / OPTIONS / EXAMPLES(末尾にあると神)

実用度: 正直 macOS では Claude/Google に聞く方が早いが、SSHしたLinuxサーバーには man しかないことが多い。本番でネット使えない場面の保険として覚えておく

同じ機能の代替: --help フラグ(例: ls --help)も多くのコマンドで使える。こっちの方が短くて読みやすい

9. 自分のホームディレクトリを可視化する課題

# 自分のホームを覗いてみる
tree -L 2 ~ | less

観察課題(メモを残す):

  • どこに何があるか把握できる?
  • 不要そうなフォルダ・ファイルはある?
  • 自分が散らかしてる場所は?

見つけたことを下の「今日の発見」に書く


締め: コミットと振り返り(10分)

1. セッション録画を終了

exit   # script コマンドから抜ける

~/log/linux_day01.log に今日打った全コマンドが残ってる。

2. 今日の発見(このノートに追記)

- 学んで一番「へぇ」だったコマンド:
- 自分のホームディレクトリで気づいたこと:
- 詰まったところ:
- 明日やりたいこと:

チェックリスト

  • pwd ls cd を使ってホームを散歩した
  • tree -L 2 ~ で構造を見た
  • ~/learn/linux/day01/ を自分で作った
  • script でログを残した
  • このノートの「今日の発見」を埋めた

詰まった時のチートシート

やりたいことコマンド
今どこ?pwd
中身見たいls -la
移動したいcd <パス>
1つ上に戻るcd ..
ホームに戻るcd または cd ~
直前の場所に戻るcd -
ファイル作るtouch <名前>
フォルダ作るmkdir -p <パス>
中身見る(短い)cat <ファイル>
中身見る(長い)less <ファイル>
検索(中身)grep "文字列" <ファイル>
構造見るtree -L 2
やめる(多くの場面)q または Ctrl+C

おまけ: 「これって何ができれば実務OKなの?」基準

このレッスンで身に付くべき感覚:

  • ls -lh を息するように打てる: ファイル状況を確認する時の脊髄反射コマンド
  • tail -f の使い所が見えている: ログ調査の入口、ここで詰まらない
  • mkdir -pcd でディレクトリを行き来できる: 開発作業の土台
  • ブレース展開 {a,b,c} で複数生成ができる: シェルの強力さを体感
  • ファイルの中身を見るコマンドを使い分けられる: cat / less / head / tail

これができれば「最低限ターミナルが使える人」。明日 Day2 で cp / mv / rm / find を覚えると「ファイル操作が一通りできる人」になります。


アンチパターン / 初心者やらかし事例

実際に新人がよくやる事故とその予防策。「これを知ってる」だけで本番事故が1個減る

NG 1: pwd を確認せずに rm を叩く

# 今 /etc にいることを忘れて
rm hosts   # 本番の /etc/hosts を消しかける

→ 対策: rm の前に必ず pwd で現在地を確認する癖をつける。スクリプト中では絶対パスで書く。

NG 2: 巨大ファイルに cat してターミナル固める

cat /var/log/system.log   # 1GBあったら画面が永遠に流れる

→ 対策: サイズ不明なら ls -lh で先にサイズ確認 → 大きければ lesstail -100

NG 3: >>> を取り違えて設定ファイルを上書き

echo "PATH=..." > ~/.zshrc   # 既存の .zshrc が全部消える

→ 対策: 追記は必ず >>(2本)。「1本は上書き、2本は追記」を呪文として唱える。

NG 4: 相対パスで書いたスクリプトが「動く時と動かない時がある」

# day01/ で動かす前提で書いたスクリプト
cat config.txt

→ 別のディレクトリから呼ばれると config.txt が見つからない。スクリプトには絶対パス、または冒頭で cd "$(dirname "$0")" してから動かす。


自己評価チェックリスト(このレッスン)

ここまでで自信を持って言えるものに ☑ する:

  • 「今どこにいる?」と聞かれて、pwd を反射的に打てる
  • ls -lah の出力(権限・所有者・サイズ・日時)を見て意味が言える
  • cd - で「直前のディレクトリに戻る」を使った
  • catless の使い分け基準(ファイルサイズ)を言える
  • tail -f がどんな実務シーンで使われるか答えられる
  • mkdir -p-p が「親も作る」「既存でもエラーにしない」両方の役目を持つことを説明できる
  • {a,b,c} がコマンドではなくシェルの機能と知っている

3つ以下なら、もう一度コマンドを手で打ち直すと定着する。


次のレッスン: Day 2 - ファイル操作(cp / mv / rm / find / ln)

明日は ファイルを動かす・消す・探す がテーマ。今日学んだ「移動・閲覧・作成」の上に「コピー・移動・削除・検索」を積む。

特に rm取り返しがつかない コマンドなので、今日身につけた「pwd で現在地確認」「絶対パスを意識」が直接効いてくる。

Day 2: ファイル操作