diff --git a/src/pages/cli/00-introduction.mdx b/src/pages/cli/00-introduction.mdx
deleted file mode 100644
index acbcfe1..0000000
--- a/src/pages/cli/00-introduction.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: "@/layouts/MarkdownLayout.astro"
----
-
-import Toc from "../../components/Toc.astro";
-import Image from "../../components/Image.astro";
-
-export const title = "CLIってなに?";
-
-# {title}
-
-あなたが今見ているこのページは、おそらくWebブラウザで表示されているでしょう。
-そこには様々なテキストや画像、リンクがあり、クリックやスクロールで操作できます。
-このような人の手によって直感的に操作ができるように設計されたものを **GUI (Graphical User Interface)** と呼びます。
-
-一方で、コンピューターにはもう1つ異なる世界があります。
-このような画面を見たことがありますか?
-
-
-
-
-
-
-
-馴染みのない人には、パソコンが壊れたときに仕方なく触るもの、というイメージがあるかもしれません。
-これは **CLI (Command Line Interface)** と呼ばれるもので、キーボードからコマンドを入力して操作します。
-
-先ほどの画像はそれぞれ、Windowsの「コマンドプロンプト」、Windowsの「PowerShell」、Macの「ターミナル.app」です。
-これらを総称して「ターミナル」や「シェル」と呼ぶこともあります。
-
-このターミナルを通して見る文字だけの世界 (CUI: Character User Interface) を、これから覗いてみましょう。
diff --git a/src/pages/cli/000-introduction.mdx b/src/pages/cli/000-introduction.mdx
new file mode 100644
index 0000000..acbcfe1
--- /dev/null
+++ b/src/pages/cli/000-introduction.mdx
@@ -0,0 +1,31 @@
+---
+layout: "@/layouts/MarkdownLayout.astro"
+---
+
+import Toc from "../../components/Toc.astro";
+import Image from "../../components/Image.astro";
+
+export const title = "CLIってなに?";
+
+# {title}
+
+あなたが今見ているこのページは、おそらくWebブラウザで表示されているでしょう。
+そこには様々なテキストや画像、リンクがあり、クリックやスクロールで操作できます。
+このような人の手によって直感的に操作ができるように設計されたものを **GUI (Graphical User Interface)** と呼びます。
+
+一方で、コンピューターにはもう1つ異なる世界があります。
+このような画面を見たことがありますか?
+
+
+
+
+
+
+
+馴染みのない人には、パソコンが壊れたときに仕方なく触るもの、というイメージがあるかもしれません。
+これは **CLI (Command Line Interface)** と呼ばれるもので、キーボードからコマンドを入力して操作します。
+
+先ほどの画像はそれぞれ、Windowsの「コマンドプロンプト」、Windowsの「PowerShell」、Macの「ターミナル.app」です。
+これらを総称して「ターミナル」や「シェル」と呼ぶこともあります。
+
+このターミナルを通して見る文字だけの世界 (CUI: Character User Interface) を、これから覗いてみましょう。
diff --git a/src/pages/cli/01-read-document.mdx b/src/pages/cli/01-read-document.mdx
deleted file mode 100644
index f4b8c1d..0000000
--- a/src/pages/cli/01-read-document.mdx
+++ /dev/null
@@ -1,78 +0,0 @@
----
-layout: "@/layouts/MarkdownLayout.astro"
----
-
-import Toc from "../../components/Toc.astro";
-import Image from "../../components/Image.astro";
-
-export const title = "ドキュメントの読み方";
-
-# {title}
-
-## ターミナル上で実行するプログラム
-
-ターミナルを開くと、1番最初に実行されるプログラムがあります。
-それは **shell (シェル)** です。
-
-shellは、キーボードからのコマンド入力を受け取り、そのコマンドを実行して結果を表示する役割を持っています。
-
-shellにはいくつか種類がありますが、代表的なものとして以下の3つが挙げられます。
-
-- **Bash (Bourne Again SHell)**: Linuxで、現在最も一般的に使用されているシェルです。MacOSでも長らくデフォルトのシェルとして採用されてきました。
-- **Zsh (Z Shell)**: MacOSのデフォルトシェルとして採用されているシェルです。Bashに比べて、より多くの機能やカスタマイズ性を提供します。
-- **fish (Friendly Interactive SHell)**: 直感的で使いやすいインターフェースを提供するシェルです。初心者にも扱いやすい設計となっています。
-
-この中でも得に`Bash`は多くの環境で利用されているため、ほとんどのドキュメントやチュートリアルでは`Bash`を前提として説明が行われています。
-
-## 書かれ方のパターン
-
-なにを説明するにしても、まずはドキュメントの読み方を知らないことにはなにも始まりません。
-まずはここから見ていきましょう。
-
-### パターン1: コマンドのみの表示
-
-実行するコマンドのみを表示する場合は、以下のように表記します。
-
-```bash frame=terminal
-入力するコマンド
-```
-
-
-
-```bash frame=terminal
-echo "こんにちは!"
-```
-
-これはターミナル上で、`echo "こんにちは!"`を入力しただけの状態を示しています。
-この状態ではまだコマンドは実行されておらず、`Enter`キーを押すことで初めて実行されます。
-
-例として、Rustというプログラミング言語のインストールコマンドを見てみましょう。
-これはRustの公式ドキュメントに記載されているインストールコマンドです。
-
-Rustをインストールしたいときは、ターミナルに以下のコマンドを入力して実行`Enter`してください という意味になります。
-
-```bash frame=terminal
-curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-```
-
-### パターン2: コマンドとその結果の表示
-
-コマンドを実行すると、何かしらの結果が表示されることがあります。
-その結果も含めて説明する場合は、以下のように表記します。
-
-```bash frame=terminal
-$ 入力するコマンド
-結果
-```
-
-
-
-```bash frame=terminal
-$ echo "こんにちは!"
-こんにちは!
-```
-
-コマンドの前に`$`がついていることに気がつきましたか?
-この`$`が、自身でコマンドを入力する(した)部分であることを示しています。
-
-`echo "こんにちは!"`というコマンドを実行した結果、`こんにちは!`という文字列が表示された、という意味になります。
diff --git a/src/pages/cli/010-read-document.mdx b/src/pages/cli/010-read-document.mdx
new file mode 100644
index 0000000..f4b8c1d
--- /dev/null
+++ b/src/pages/cli/010-read-document.mdx
@@ -0,0 +1,78 @@
+---
+layout: "@/layouts/MarkdownLayout.astro"
+---
+
+import Toc from "../../components/Toc.astro";
+import Image from "../../components/Image.astro";
+
+export const title = "ドキュメントの読み方";
+
+# {title}
+
+## ターミナル上で実行するプログラム
+
+ターミナルを開くと、1番最初に実行されるプログラムがあります。
+それは **shell (シェル)** です。
+
+shellは、キーボードからのコマンド入力を受け取り、そのコマンドを実行して結果を表示する役割を持っています。
+
+shellにはいくつか種類がありますが、代表的なものとして以下の3つが挙げられます。
+
+- **Bash (Bourne Again SHell)**: Linuxで、現在最も一般的に使用されているシェルです。MacOSでも長らくデフォルトのシェルとして採用されてきました。
+- **Zsh (Z Shell)**: MacOSのデフォルトシェルとして採用されているシェルです。Bashに比べて、より多くの機能やカスタマイズ性を提供します。
+- **fish (Friendly Interactive SHell)**: 直感的で使いやすいインターフェースを提供するシェルです。初心者にも扱いやすい設計となっています。
+
+この中でも得に`Bash`は多くの環境で利用されているため、ほとんどのドキュメントやチュートリアルでは`Bash`を前提として説明が行われています。
+
+## 書かれ方のパターン
+
+なにを説明するにしても、まずはドキュメントの読み方を知らないことにはなにも始まりません。
+まずはここから見ていきましょう。
+
+### パターン1: コマンドのみの表示
+
+実行するコマンドのみを表示する場合は、以下のように表記します。
+
+```bash frame=terminal
+入力するコマンド
+```
+
+
+
+```bash frame=terminal
+echo "こんにちは!"
+```
+
+これはターミナル上で、`echo "こんにちは!"`を入力しただけの状態を示しています。
+この状態ではまだコマンドは実行されておらず、`Enter`キーを押すことで初めて実行されます。
+
+例として、Rustというプログラミング言語のインストールコマンドを見てみましょう。
+これはRustの公式ドキュメントに記載されているインストールコマンドです。
+
+Rustをインストールしたいときは、ターミナルに以下のコマンドを入力して実行`Enter`してください という意味になります。
+
+```bash frame=terminal
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+```
+
+### パターン2: コマンドとその結果の表示
+
+コマンドを実行すると、何かしらの結果が表示されることがあります。
+その結果も含めて説明する場合は、以下のように表記します。
+
+```bash frame=terminal
+$ 入力するコマンド
+結果
+```
+
+
+
+```bash frame=terminal
+$ echo "こんにちは!"
+こんにちは!
+```
+
+コマンドの前に`$`がついていることに気がつきましたか?
+この`$`が、自身でコマンドを入力する(した)部分であることを示しています。
+
+`echo "こんにちは!"`というコマンドを実行した結果、`こんにちは!`という文字列が表示された、という意味になります。
diff --git a/src/pages/cli/02-common-commands.mdx b/src/pages/cli/02-common-commands.mdx
deleted file mode 100644
index 6f64c26..0000000
--- a/src/pages/cli/02-common-commands.mdx
+++ /dev/null
@@ -1,374 +0,0 @@
----
-layout: "@/layouts/MarkdownLayout.astro"
----
-
-import Toc from "../../components/Toc.astro";
-import Image from "../../components/Image.astro";
-
-export const title = "基礎コマンド";
-
-# {title}
-
-## TOC
-
-## ディレクトリの移動と確認
-
-### pwd
-
-現在のディレクトリ位置を確認します。
-
-WindowsではExplorer、MacではFinderなどで、表示されている場所に相当します。
-
-```bash frame=terminal
-$ pwd
-/home/user/projects
-```
-
-### ls
-
-現在のディレクトリにある、ファイルやディレクトリの一覧を表示します。
-
-```bash frame=terminal
-$ ls
-sample.txt project1 project2
-```
-
-よく使うオプション:
-
-- `ls -l`: 詳細情報を表示(ファイルサイズ、更新日時など)
-- `ls -a`: 隠しファイルも含めて表示
-
-```bash frame=terminal
-$ ls -l
--rw-r--r-- 1 user user 1234 Jan 01 12:00 sample.txt
-drwxr-xr-x 2 user user 4096 Jan 01 12:00 project1
-```
-
-### find
-
-現在のディレクトリとその配下にあるファイルやディレクトリを検索します。
-
-```bash frame=terminal
-$ find
-.
-```
-
-### cd
-
-ディレクトリを移動します。
-`cd`は「change directory」の略です。
-
-```bash frame=terminal
-$ pwd
-/home/user
-$ cd projects
-$ pwd
-/home/user/projects
-```
-
-引数なしで`cd`を実行すると、ホームディレクトリに移動します。
-
-```bash frame=terminal
-$ pwd
-/home/user/projects/src/components
-$ cd
-$ pwd
-/home/user
-```
-
-## ファイル・ディレクトリの操作
-
-ターミナル上では、現在のディレクトリを基準にしてファイルやディレクトリの操作を行います。
-
-### touch
-
-空のファイルを作成します。
-既に存在するファイルを指定すると、更新日時だけが変更されます。
-
-```bash frame=terminal
-$ touch sample.txt
-$ ls
-sample.txt
-```
-
-### rm
-
-ファイルやディレクトリを削除します。
-`rm`は「remove」の略です。
-
-```bash frame=terminal
-rm sample.txt
-```
-
-⚠️ **注意**: 一度削除すると復元できないので、慎重に使いましょう。
-
-ディレクトリを削除する場合は、`-r`オプション(再帰的に削除)を使います。
-
-```bash frame=terminal
-rm -r project1
-```
-
-### mkdir
-
-新しいディレクトリを作成します。
-`mkdir`は「make directory」の略です。
-
-```bash frame=terminal
-$ mkdir new-project
-$ ls
-new-project
-```
-
-複数階層のディレクトリを一度に作る場合は、`-p`オプションを使います。
-
-```bash frame=terminal
-mkdir -p projects/web/frontend
-```
-
-### rmdir
-
-空のディレクトリを削除します。
-`rmdir`は「remove directory」の略です。
-
-```bash frame=terminal
-rmdir old-project
-```
-
-**ポイント**: ディレクトリの中にファイルがある場合は削除できません。
-中身ごと削除したい場合は、`rm -r`を使います。
-
-### mv
-
-ファイルやディレクトリを移動、または名前を変更します。
-`mv`は「move」の略です。
-
-```bash frame=terminal
-# ファイル名の変更
-$ mv old-name.txt new-name.txt
-
-# ファイルを別のディレクトリに移動
-$ mv sample.txt projects/
-
-# 移動と同時に名前も変更
-$ mv sample.txt projects/renamed.txt
-```
-
-### cat
-
-ファイルの内容を表示します。
-`cat`は「concatenate」(連結する)の略です。
-
-```bash frame=terminal
-$ cat sample.txt
-これはサンプルファイルの内容です。
-複数行のテキストも表示できます。
-```
-
-複数のファイルを指定すると、内容を連結して表示します。
-
-```bash frame=terminal
-cat file1.txt file2.txt
-```
-
-### grep
-
-テキストファイルの中から特定の文字列を検索して、それを含む行を表示します。
-
-grepは「global regular expression print」の略です。
-
-```plain title=名簿.csv
-名前,年齢,職業
-田中太郎,30,エンジニア
-鈴木花子,25,デザイナー
-佐藤次郎,28,マーケター
-高橋美咲,27,エンジニア
-伊藤健太,32,エンジニア
-```
-
-
-
-`名簿.txt`から、「エンジニア」という文字列を含む行を検索する例:
-
-```bash frame=terminal
-$ grep "エンジニア" 名簿.csv
-田中太郎,30,エンジニア
-高橋美咲,27,エンジニア
-伊藤健太,32,エンジニア
-```
-
-## その他
-
-### echo
-
-文字列を画面に出力します。
-
-```bash frame=terminal
-$ echo "Hello, World!"
-Hello, World!
-```
-
-変数の値を確認したり、ファイルに文字列を書き込んだりする際にもよく使います。
-
-```bash frame=terminal
-# ファイルに書き込む
-$ echo "新しい内容" > sample.txt
-
-# ファイルに追記する
-$ echo "追加の内容" >> sample.txt
-```
-
-## ジョークコマンド
-
-### sl
-
-`ls`とタイプミスすると走る蒸気機関車。
-わざと間違えて楽しむジョークコマンドです。
-
-インストールが必要な場合があります。
-
-```bash frame=terminal
-$ sl
- (蒸気機関車のアスキーアートが走ります)
-```
-
-### lolcat
-
-テキストに虹色のグラデーションをつけて表示します。
-見た目が楽しくなるコマンドです。
-
-```bash frame=terminal
-$ echo "Hello, World!" | lolcat
-(虹色のHello, World!が表示されます)
-```
-
-### figlet
-
-テキストを大きなアスキーアートに変換します。
-バナーやタイトルを作るのに便利です。
-
-```bash frame=terminal
-$ figlet "Hello"
- _ _ _ _
-| | | | ___| | | ___
-| |_| |/ _ \ | |/ _ \
-| _ | __/ | | (_) |
-|_| |_|\___|_|_|\___/
-```
-
-### cowsay
-
-牛が吹き出しでメッセージを言っているアスキーアートを表示します。
-
-```bash frame=terminal
-$ cowsay "Hello!"
- ________
-< Hello! >
- --------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
-```
-
-## ファイル操作でよく見る記号
-
-### `/` (スラッシュ)
-
-ディレクトリの区切りを表します。
-
-なお、Windowsではバックスラッシュ (`\`) が使われます。
-また、環境によっては ¥と表示されることがあります。
-これはバックスラッシュを表す番号に、¥の文字が割り当てられていた歴史的な経緯によるものです。
-
-### `.` (ドット)
-
-現在のディレクトリを表します。
-
-```bash frame=terminal
-$ pwd
-/home/user/projects
-$ cd .
-$ pwd
-/home/user/projects
-```
-
-### `..` (ドットドット)
-
-現在のディレクトリの、1つ上のディレクトリを表します。
-
-```bash frame=terminal
-$ pwd
-/home/user/projects
-$ ls /home/user # 1つ上のディレクトリの内容を、明示的に指定して確認
-projects projects2 sample.txt
-$ ls .. # 1つ上のディレクトリの内容を確認
-projects projects2 sample.txt
-```
-
-組み合わせて使うこともできます。
-
-```bash frame=terminal
-$ pwd
-/home/user/projects/src
-$ ls ../.. # 2つ上のディレクトリの内容を確認
-projects projects2 sample.txt
-$ cd ../../projects2
-$ pwd
-/home/user/projects2
-```
-
-### `~` (チルダ)
-
-ユーザーのホームディレクトリを表します。
-
-```bash frame=terminal
-$ pwd
-/home/user/projects/path/to/somewhere
-$ cat ~/sample.txt
-これは、ホームディレクトリにあるsample.txtの内容です。
-$ cd ~
-$ pwd
-/home/user
-```
-
-## 用語
-
-### ルートディレクトリ (root directory)
-
-ファイルシステムの最上位に位置するディレクトリのことです。
-これ以上上の階層は存在しません。
-
-`/`で表されます。
-
-なおWindowsでは、各ドライブ (C:やD:) がそれぞれ独立したルートディレクトリを持ちます。
-
-`C:\` や `D:\` のように表されます。
-
-### パス (path)
-
-目的のファイルやディレクトリまでの道筋を示す文字列のことです。
-
-### 絶対パス (absolute path)
-
-[ルートディレクトリ](#ルートディレクトリ-root-directory)から始まるパスのことです。
-自分の現在位置に関係なく、常に同じ場所を指し示します。
-
-```bash frame=terminal
-$ cat /home/user/projects/sample.txt
-これは、ホームディレクトリにあるsample.txtの内容です。
-```
-
-### 相対パス (relative path)
-
-自分の現在位置を基準にしたパスのことです。
-
-[絶対パス](#絶対パス-absolute-path)ではないパス全般を指すとも言えます。
-
-```bash frame=terminal
-$ pwd /home
-$ cat user/sample.txt
-これは、ホームディレクトリにあるsample.txtの内容です。
-$ cat ./user/sample.txt
-これは、ホームディレクトリにあるsample.txtの内容です。
-```
diff --git a/src/pages/cli/020-common-commands.mdx b/src/pages/cli/020-common-commands.mdx
new file mode 100644
index 0000000..6f64c26
--- /dev/null
+++ b/src/pages/cli/020-common-commands.mdx
@@ -0,0 +1,374 @@
+---
+layout: "@/layouts/MarkdownLayout.astro"
+---
+
+import Toc from "../../components/Toc.astro";
+import Image from "../../components/Image.astro";
+
+export const title = "基礎コマンド";
+
+# {title}
+
+## TOC
+
+## ディレクトリの移動と確認
+
+### pwd
+
+現在のディレクトリ位置を確認します。
+
+WindowsではExplorer、MacではFinderなどで、表示されている場所に相当します。
+
+```bash frame=terminal
+$ pwd
+/home/user/projects
+```
+
+### ls
+
+現在のディレクトリにある、ファイルやディレクトリの一覧を表示します。
+
+```bash frame=terminal
+$ ls
+sample.txt project1 project2
+```
+
+よく使うオプション:
+
+- `ls -l`: 詳細情報を表示(ファイルサイズ、更新日時など)
+- `ls -a`: 隠しファイルも含めて表示
+
+```bash frame=terminal
+$ ls -l
+-rw-r--r-- 1 user user 1234 Jan 01 12:00 sample.txt
+drwxr-xr-x 2 user user 4096 Jan 01 12:00 project1
+```
+
+### find
+
+現在のディレクトリとその配下にあるファイルやディレクトリを検索します。
+
+```bash frame=terminal
+$ find
+.
+```
+
+### cd
+
+ディレクトリを移動します。
+`cd`は「change directory」の略です。
+
+```bash frame=terminal
+$ pwd
+/home/user
+$ cd projects
+$ pwd
+/home/user/projects
+```
+
+引数なしで`cd`を実行すると、ホームディレクトリに移動します。
+
+```bash frame=terminal
+$ pwd
+/home/user/projects/src/components
+$ cd
+$ pwd
+/home/user
+```
+
+## ファイル・ディレクトリの操作
+
+ターミナル上では、現在のディレクトリを基準にしてファイルやディレクトリの操作を行います。
+
+### touch
+
+空のファイルを作成します。
+既に存在するファイルを指定すると、更新日時だけが変更されます。
+
+```bash frame=terminal
+$ touch sample.txt
+$ ls
+sample.txt
+```
+
+### rm
+
+ファイルやディレクトリを削除します。
+`rm`は「remove」の略です。
+
+```bash frame=terminal
+rm sample.txt
+```
+
+⚠️ **注意**: 一度削除すると復元できないので、慎重に使いましょう。
+
+ディレクトリを削除する場合は、`-r`オプション(再帰的に削除)を使います。
+
+```bash frame=terminal
+rm -r project1
+```
+
+### mkdir
+
+新しいディレクトリを作成します。
+`mkdir`は「make directory」の略です。
+
+```bash frame=terminal
+$ mkdir new-project
+$ ls
+new-project
+```
+
+複数階層のディレクトリを一度に作る場合は、`-p`オプションを使います。
+
+```bash frame=terminal
+mkdir -p projects/web/frontend
+```
+
+### rmdir
+
+空のディレクトリを削除します。
+`rmdir`は「remove directory」の略です。
+
+```bash frame=terminal
+rmdir old-project
+```
+
+**ポイント**: ディレクトリの中にファイルがある場合は削除できません。
+中身ごと削除したい場合は、`rm -r`を使います。
+
+### mv
+
+ファイルやディレクトリを移動、または名前を変更します。
+`mv`は「move」の略です。
+
+```bash frame=terminal
+# ファイル名の変更
+$ mv old-name.txt new-name.txt
+
+# ファイルを別のディレクトリに移動
+$ mv sample.txt projects/
+
+# 移動と同時に名前も変更
+$ mv sample.txt projects/renamed.txt
+```
+
+### cat
+
+ファイルの内容を表示します。
+`cat`は「concatenate」(連結する)の略です。
+
+```bash frame=terminal
+$ cat sample.txt
+これはサンプルファイルの内容です。
+複数行のテキストも表示できます。
+```
+
+複数のファイルを指定すると、内容を連結して表示します。
+
+```bash frame=terminal
+cat file1.txt file2.txt
+```
+
+### grep
+
+テキストファイルの中から特定の文字列を検索して、それを含む行を表示します。
+
+grepは「global regular expression print」の略です。
+
+```plain title=名簿.csv
+名前,年齢,職業
+田中太郎,30,エンジニア
+鈴木花子,25,デザイナー
+佐藤次郎,28,マーケター
+高橋美咲,27,エンジニア
+伊藤健太,32,エンジニア
+```
+
+
+
+`名簿.txt`から、「エンジニア」という文字列を含む行を検索する例:
+
+```bash frame=terminal
+$ grep "エンジニア" 名簿.csv
+田中太郎,30,エンジニア
+高橋美咲,27,エンジニア
+伊藤健太,32,エンジニア
+```
+
+## その他
+
+### echo
+
+文字列を画面に出力します。
+
+```bash frame=terminal
+$ echo "Hello, World!"
+Hello, World!
+```
+
+変数の値を確認したり、ファイルに文字列を書き込んだりする際にもよく使います。
+
+```bash frame=terminal
+# ファイルに書き込む
+$ echo "新しい内容" > sample.txt
+
+# ファイルに追記する
+$ echo "追加の内容" >> sample.txt
+```
+
+## ジョークコマンド
+
+### sl
+
+`ls`とタイプミスすると走る蒸気機関車。
+わざと間違えて楽しむジョークコマンドです。
+
+インストールが必要な場合があります。
+
+```bash frame=terminal
+$ sl
+ (蒸気機関車のアスキーアートが走ります)
+```
+
+### lolcat
+
+テキストに虹色のグラデーションをつけて表示します。
+見た目が楽しくなるコマンドです。
+
+```bash frame=terminal
+$ echo "Hello, World!" | lolcat
+(虹色のHello, World!が表示されます)
+```
+
+### figlet
+
+テキストを大きなアスキーアートに変換します。
+バナーやタイトルを作るのに便利です。
+
+```bash frame=terminal
+$ figlet "Hello"
+ _ _ _ _
+| | | | ___| | | ___
+| |_| |/ _ \ | |/ _ \
+| _ | __/ | | (_) |
+|_| |_|\___|_|_|\___/
+```
+
+### cowsay
+
+牛が吹き出しでメッセージを言っているアスキーアートを表示します。
+
+```bash frame=terminal
+$ cowsay "Hello!"
+ ________
+< Hello! >
+ --------
+ \ ^__^
+ \ (oo)\_______
+ (__)\ )\/\
+ ||----w |
+ || ||
+```
+
+## ファイル操作でよく見る記号
+
+### `/` (スラッシュ)
+
+ディレクトリの区切りを表します。
+
+なお、Windowsではバックスラッシュ (`\`) が使われます。
+また、環境によっては ¥と表示されることがあります。
+これはバックスラッシュを表す番号に、¥の文字が割り当てられていた歴史的な経緯によるものです。
+
+### `.` (ドット)
+
+現在のディレクトリを表します。
+
+```bash frame=terminal
+$ pwd
+/home/user/projects
+$ cd .
+$ pwd
+/home/user/projects
+```
+
+### `..` (ドットドット)
+
+現在のディレクトリの、1つ上のディレクトリを表します。
+
+```bash frame=terminal
+$ pwd
+/home/user/projects
+$ ls /home/user # 1つ上のディレクトリの内容を、明示的に指定して確認
+projects projects2 sample.txt
+$ ls .. # 1つ上のディレクトリの内容を確認
+projects projects2 sample.txt
+```
+
+組み合わせて使うこともできます。
+
+```bash frame=terminal
+$ pwd
+/home/user/projects/src
+$ ls ../.. # 2つ上のディレクトリの内容を確認
+projects projects2 sample.txt
+$ cd ../../projects2
+$ pwd
+/home/user/projects2
+```
+
+### `~` (チルダ)
+
+ユーザーのホームディレクトリを表します。
+
+```bash frame=terminal
+$ pwd
+/home/user/projects/path/to/somewhere
+$ cat ~/sample.txt
+これは、ホームディレクトリにあるsample.txtの内容です。
+$ cd ~
+$ pwd
+/home/user
+```
+
+## 用語
+
+### ルートディレクトリ (root directory)
+
+ファイルシステムの最上位に位置するディレクトリのことです。
+これ以上上の階層は存在しません。
+
+`/`で表されます。
+
+なおWindowsでは、各ドライブ (C:やD:) がそれぞれ独立したルートディレクトリを持ちます。
+
+`C:\` や `D:\` のように表されます。
+
+### パス (path)
+
+目的のファイルやディレクトリまでの道筋を示す文字列のことです。
+
+### 絶対パス (absolute path)
+
+[ルートディレクトリ](#ルートディレクトリ-root-directory)から始まるパスのことです。
+自分の現在位置に関係なく、常に同じ場所を指し示します。
+
+```bash frame=terminal
+$ cat /home/user/projects/sample.txt
+これは、ホームディレクトリにあるsample.txtの内容です。
+```
+
+### 相対パス (relative path)
+
+自分の現在位置を基準にしたパスのことです。
+
+[絶対パス](#絶対パス-absolute-path)ではないパス全般を指すとも言えます。
+
+```bash frame=terminal
+$ pwd /home
+$ cat user/sample.txt
+これは、ホームディレクトリにあるsample.txtの内容です。
+$ cat ./user/sample.txt
+これは、ホームディレクトリにあるsample.txtの内容です。
+```
diff --git a/src/pages/cli/03-pipeline.mdx b/src/pages/cli/03-pipeline.mdx
deleted file mode 100644
index b42a525..0000000
--- a/src/pages/cli/03-pipeline.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: "@/layouts/MarkdownLayout.astro"
----
-
-import Toc from "../../components/Toc.astro";
-import Image from "../../components/Image.astro";
-
-export const title = "パイプライン";
-
-# {title}
-
-私達が目にする記号には名前がついているものがあります。
-この記号にも名前がついているのですが、それはなにかわかりますか?
-
-`|` ← コレ
-
-## TOC
diff --git a/src/pages/cli/030-pipeline.mdx b/src/pages/cli/030-pipeline.mdx
new file mode 100644
index 0000000..b42a525
--- /dev/null
+++ b/src/pages/cli/030-pipeline.mdx
@@ -0,0 +1,17 @@
+---
+layout: "@/layouts/MarkdownLayout.astro"
+---
+
+import Toc from "../../components/Toc.astro";
+import Image from "../../components/Image.astro";
+
+export const title = "パイプライン";
+
+# {title}
+
+私達が目にする記号には名前がついているものがあります。
+この記号にも名前がついているのですが、それはなにかわかりますか?
+
+`|` ← コレ
+
+## TOC