terminal-quest 1.1.2 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -46,6 +46,7 @@ terminal-quest
46
46
  - **ふりかえり問題** - ミッション完了後に4択クイズで理解度チェック
47
47
  - **Tab補完** - コマンド名やファイルパスをTabキーで補完
48
48
  - **達成バッジ** - 学習の進捗に応じてバッジを獲得
49
+ - **やりなおし機能** - 進捗のあるストーリーを「はじめから」やりなおせる
49
50
 
50
51
  ## コース一覧
51
52
 
@@ -53,15 +54,41 @@ terminal-quest
53
54
 
54
55
  ### ✨ 小学生向けコース
55
56
 
56
- 冒険の世界を舞台に、はじめてのコマンドを楽しく学びます。
57
+ 冒険の世界を舞台に、はじめてのコマンドを楽しく学びます。ひらがな中心のガイダンスで小学生でも安心。
57
58
 
58
- - **宝探し冒険**(10ミッション)
59
+ **たからさがし大冒険**(10ミッション)
60
+
61
+ | # | ミッション | 学べるコマンド |
62
+ |---|-----------|--------------|
63
+ | 1 | 冒険のはじまり | `pwd` `ls` |
64
+ | 2 | 森を冒険しよう | `cd` `cat` |
65
+ | 3 | 秘密基地を作ろう | `mkdir` `touch` |
66
+ | 4 | 宝物を集めよう | `cp` `mv` |
67
+ | 5 | トラップを片付けよう | `rm` `find` |
68
+ | 6 | 暗号を解読しよう | `grep` `echo` |
69
+ | 7 | 古い書物を読もう | `head` `tail` `wc` |
70
+ | 8 | 仲間リストを整理しよう | `sort` `uniq` `cut` |
71
+ | 9 | 封印を解こう | `chmod` |
72
+ | 10 | 冒険の記録をつけよう | `git` |
59
73
 
60
74
  ### 💻 はじめてコース
61
75
 
62
76
  自分のパソコンを探検しながら、基本操作を身につけます。
63
77
 
64
- - **はじめてのパソコン冒険**(10ミッション)
78
+ **はじめてのパソコン冒険**(10ミッション)
79
+
80
+ | # | ミッション | 学べるコマンド |
81
+ |---|-----------|--------------|
82
+ | 1 | ここはどこ? | `pwd` `ls` |
83
+ | 2 | フォルダの中を見て回ろう | `cd` `cat` |
84
+ | 3 | 写真アルバムを作ろう | `mkdir` `touch` |
85
+ | 4 | ファイルを整理しよう | `cp` `mv` |
86
+ | 5 | いらないファイルを片付けよう | `rm` `find` |
87
+ | 6 | 日記を書こう | `echo` `grep` |
88
+ | 7 | 長いレポートを確認しよう | `head` `tail` `wc` |
89
+ | 8 | 連絡先を整理しよう | `sort` `uniq` `cut` |
90
+ | 9 | 共有ファイルの設定 | `chmod` |
91
+ | 10 | 変更履歴を管理しよう | `git` |
65
92
 
66
93
  ### 🖥️ エンジニアコース
67
94
 
@@ -97,6 +124,7 @@ terminal-quest
97
124
  help 使えるコマンド一覧
98
125
  hint ヒントを表示
99
126
  objectives 現在の目標を確認
127
+ cmds このミッションの新コマンドを確認
100
128
  man <cmd> コマンドのマニュアル
101
129
  ```
102
130
 
@@ -128,7 +156,7 @@ git clone https://github.com/nasuda/terminal-quest.git
128
156
  cd terminal-quest
129
157
  npm install
130
158
  npm run dev # 開発実行
131
- npm test # テスト実行(183件)
159
+ npm test # テスト実行(184件)
132
160
  npm run build # ビルド
133
161
  ```
134
162
 
package/dist/App.js CHANGED
@@ -9,13 +9,13 @@ import { MissionCompleteScreen } from './screens/MissionCompleteScreen.js';
9
9
  import { ProgressScreen } from './screens/ProgressScreen.js';
10
10
  import { SettingsScreen } from './screens/SettingsScreen.js';
11
11
  export function App() {
12
- const { screen, progress, navigateTo, completeMission, completeStory, incrementCommands, resetAll, } = useGameState();
12
+ const { screen, progress, navigateTo, completeMission, completeStory, incrementCommands, resetStory, resetAll, } = useGameState();
13
13
  const renderScreen = () => {
14
14
  switch (screen.type) {
15
15
  case 'title':
16
16
  return _jsx(TitleScreen, { onNavigate: navigateTo });
17
17
  case 'storySelect':
18
- return _jsx(StorySelectScreen, { progress: progress, onNavigate: navigateTo });
18
+ return _jsx(StorySelectScreen, { progress: progress, onNavigate: navigateTo, onResetStory: resetStory });
19
19
  case 'missionBrief':
20
20
  return (_jsx(MissionBriefScreen, { storyId: screen.storyId, missionIndex: screen.missionIndex, onNavigate: navigateTo }));
21
21
  case 'terminal':
@@ -4,8 +4,9 @@ import { colors } from '../utils/colors.js';
4
4
  export function HintBar({ hint, currentLevel, maxLevel }) {
5
5
  if (!hint)
6
6
  return null;
7
- const levelColor = hint.level === 1 ? colors.hint1 : hint.level === 2 ? colors.hint2 : colors.hint3;
8
- const levelLabel = `ヒント ${hint.level}/${maxLevel}`;
7
+ const isPreHint = hint.level === 0;
8
+ const levelColor = isPreHint ? colors.primary : hint.level === 1 ? colors.hint1 : hint.level === 2 ? colors.hint2 : colors.hint3;
9
+ const levelLabel = isPreHint ? 'ヒント' : `ヒント ${hint.level}/${maxLevel}`;
9
10
  return (_jsx(Box, { borderStyle: "round", borderColor: levelColor, paddingX: 1, marginTop: 1, children: _jsxs(Text, { children: [_jsxs(Text, { color: levelColor, bold: true, children: ["\uD83D\uDCA1 ", levelLabel, ":"] }), _jsxs(Text, { color: colors.file, children: [" ", hint.text] })] }) }));
10
11
  }
11
12
  //# sourceMappingURL=HintBar.js.map
@@ -1,252 +1,258 @@
1
1
  export const commandsMeta = [
2
2
  {
3
3
  name: 'pwd',
4
- description: '現在いる場所(ディレクトリ)を表示します。',
4
+ description: 'パソコンの中で「今どこにいるか」を教えてくれます。迷ったらまずこれ!',
5
5
  usage: 'pwd',
6
6
  examples: [
7
- { cmd: 'pwd', desc: '今いるディレクトリのパスを表示' },
7
+ { cmd: 'pwd', desc: 'これだけでOK。今いる場所のパス(住所)が表示される' },
8
8
  ],
9
9
  },
10
10
  {
11
11
  name: 'ls',
12
- description: '今いるディレクトリの中身を一覧表示します。',
13
- usage: 'ls [パス]',
12
+ description: '今いるフォルダの中に何があるか一覧で見ます。引き出しを開けて中身を見るイメージです。',
13
+ usage: 'ls [フォルダ名]',
14
14
  examples: [
15
- { cmd: 'ls', desc: '今いるフォルダの中身を表示' },
16
- { cmd: 'ls /etc', desc: '/etc フォルダの中身を表示' },
17
- { cmd: 'ls -la', desc: '隠しファイルも含めて詳しく表示' },
15
+ { cmd: 'ls', desc: 'これだけでOK。今いるフォルダの中身が表示される' },
16
+ { cmd: 'ls src', desc: 'ls のあとにフォルダ名を書くと、そのフォルダの中身が見える' },
17
+ { cmd: 'ls ..', desc: '1つ上のフォルダの中身を見る。.. は「上のフォルダ」の意味' },
18
+ { cmd: 'ls -la', desc: '-la をつけると隠しファイルも含めて詳しく見える' },
18
19
  ],
19
20
  options: [
20
- { flag: '-a', description: '隠しファイルも表示' },
21
- { flag: '-l', description: '詳細表示' },
21
+ { flag: '-a', description: '普段見えない隠しファイルも表示する' },
22
+ { flag: '-l', description: 'サイズや日付など詳しい情報も表示する' },
22
23
  ],
23
24
  },
24
25
  {
25
26
  name: 'cd',
26
- description: '別のディレクトリに移動します。',
27
- usage: 'cd <パス>',
27
+ description: '別のフォルダに移動します。パソコンの中を歩き回るイメージです。',
28
+ usage: 'cd <フォルダ名>',
28
29
  examples: [
29
- { cmd: 'cd /home', desc: '/home に移動' },
30
- { cmd: 'cd ..', desc: '1つ上のフォルダに戻る' },
31
- { cmd: 'cd メモ', desc: 'メモ フォルダに入る' },
30
+ { cmd: 'cd src', desc: '今いるフォルダの中にある src に入る。名前だけ書けばOK' },
31
+ { cmd: 'cd ..', desc: '.. は「1つ上のフォルダ」の意味。/home/src にいたら /home に戻る' },
32
+ { cmd: 'cd ../docs', desc: '1つ上に戻ってから docs に入る。../ は「上のフォルダの」の意味' },
33
+ { cmd: 'cd /home', desc: '/ から始めるとフォルダの住所を直接指定できる(絶対パス)' },
32
34
  ],
33
35
  },
34
36
  {
35
37
  name: 'cat',
36
- description: 'ファイルの中身を表示します。',
38
+ description: 'ファイルを開いて中身を読みます。メモ帳で開くようなイメージです。',
37
39
  usage: 'cat <ファイル名>',
38
40
  examples: [
39
- { cmd: 'cat file.txt', desc: 'file.txt の中身を表示' },
40
- { cmd: 'cat /var/log/app.log', desc: 'パスを指定して表示' },
41
+ { cmd: 'cat file.txt', desc: 'cat のあとにファイル名を書く。今いるフォルダの中のファイルが読める' },
42
+ { cmd: 'cat src/config.json', desc: 'src フォルダの中の config.json を読む。/ でフォルダを区切る' },
43
+ { cmd: 'cat ../memo.txt', desc: '1つ上のフォルダの memo.txt を読む。../ は「上のフォルダの」' },
41
44
  ],
42
45
  },
43
46
  {
44
47
  name: 'grep',
45
- description: 'ファイルの中から指定した文字列を探します。',
46
- usage: 'grep <探す文字> <ファイル名>',
48
+ description: 'ファイルの中から特定の言葉を検索します。ブラウザの Ctrl+F(文字検索)のようなものです。',
49
+ usage: 'grep <探す言葉> <ファイル名>',
47
50
  examples: [
48
- { cmd: 'grep ERROR app.log', desc: 'app.log から "ERROR" を含む行を探す' },
49
- { cmd: 'grep -n "port" config.json', desc: '行番号付きで "port" を探す' },
50
- { cmd: 'grep -i hello file.txt', desc: '大文字小文字を区別せず探す' },
51
+ { cmd: 'grep ERROR app.log', desc: '実行すると app.log から ERROR を含む行だけが表示される' },
52
+ { cmd: 'grep -n "port" config.json', desc: '-n をつけると何行目に見つかったかもわかる' },
53
+ { cmd: 'grep -i hello file.txt', desc: '-i をつけると大文字・小文字を区別せずに探す' },
51
54
  ],
52
55
  options: [
53
- { flag: '-i', description: '大文字小文字を区別しない' },
54
- { flag: '-n', description: '行番号を表示' },
55
- { flag: '-r', description: 'フォルダの中も全部探す' },
56
- { flag: '-c', description: '見つかった行の数だけ表示' },
56
+ { flag: '-i', description: '大文字と小文字を同じものとして扱う' },
57
+ { flag: '-n', description: '見つかった行の行番号も表示する' },
58
+ { flag: '-r', description: 'フォルダの中のファイルも全部まとめて探す' },
59
+ { flag: '-c', description: '見つかった行の件数だけ表示する' },
57
60
  ],
58
61
  },
59
62
  {
60
63
  name: 'cp',
61
- description: 'ファイルをコピーします。',
64
+ description: 'ファイルのコピーを作ります。右クリックの「コピー&ペースト」と同じです。',
62
65
  usage: 'cp <コピー元> <コピー先>',
63
66
  examples: [
64
- { cmd: 'cp file.txt file.bak', desc: 'file.txt のバックアップを作成' },
65
- { cmd: 'cp memo.txt メモ/', desc: 'memo.txt を メモ/ フォルダにコピー' },
66
- { cmd: 'cp -r src/ backup/', desc: 'src フォルダを丸ごとコピー' },
67
+ { cmd: 'cp file.txt file.bak', desc: '同じフォルダ内でコピー。file.bak という名前の控えができる' },
68
+ { cmd: 'cp file.txt src/', desc: 'file.txt を src フォルダの中にコピー。末尾の / は「中へ」の意味' },
69
+ { cmd: 'cp src/data.txt .', desc: 'src の中の data.txt を今いるフォルダにコピー。. は「ここ」の意味' },
70
+ { cmd: 'cp -r src/ backup/', desc: '-r をつけるとフォルダの中身ごとまるっとコピーできる' },
67
71
  ],
68
72
  options: [
69
- { flag: '-r', description: 'フォルダの中身もまとめてコピー' },
73
+ { flag: '-r', description: 'フォルダの中身もまるごとコピーする' },
70
74
  ],
71
75
  },
72
76
  {
73
77
  name: 'echo',
74
- description: '文字を表示したり、ファイルに書き込みます。',
75
- usage: 'echo <文字列>',
78
+ description: '文字を画面に表示したり、ファイルに書き込みます。「おうむ返し」するコマンドです。',
79
+ usage: 'echo <文字>',
76
80
  examples: [
77
- { cmd: 'echo "Hello"', desc: '画面に Hello と表示' },
78
- { cmd: 'echo "data" > out.txt', desc: 'out.txt に "data" を書き込む(上書き)' },
79
- { cmd: 'echo "追記" >> out.txt', desc: 'out.txt の末尾に追記' },
81
+ { cmd: 'echo "Hello"', desc: '実行すると Hello と画面に表示される。echo が文字をおうむ返しする' },
82
+ { cmd: 'echo "data" > out.txt', desc: '> をつけると画面ではなくファイルに書き込める。out.txt に data と保存される' },
83
+ { cmd: 'echo "追記" >> out.txt', desc: '>> にすると上書きせず末尾に書き足す。> だと中身が入れ替わるので注意' },
80
84
  ],
81
85
  },
82
86
  {
83
87
  name: 'mkdir',
84
- description: '新しいフォルダを作ります。',
88
+ description: '新しいフォルダを作ります。「Make Directory(フォルダを作れ)」の略です。',
85
89
  usage: 'mkdir <フォルダ名>',
86
90
  examples: [
87
- { cmd: 'mkdir src', desc: 'src フォルダを作成' },
88
- { cmd: 'mkdir -p src/components/ui', desc: '途中のフォルダもまとめて作成' },
91
+ { cmd: 'mkdir src', desc: 'mkdir のあとに作りたいフォルダ名を書く。src フォルダができる' },
92
+ { cmd: 'mkdir -p src/components/ui', desc: '-p をつけると途中のフォルダもまとめて一気に作れる' },
89
93
  ],
90
94
  options: [
91
- { flag: '-p', description: '途中のフォルダも一気に作成' },
95
+ { flag: '-p', description: '間のフォルダがなくても一気にまとめて作る' },
92
96
  ],
93
97
  },
94
98
  {
95
99
  name: 'mv',
96
- description: 'ファイルを移動、または名前を変更します。',
97
- usage: 'mv <移動元> <移動先>',
100
+ description: 'ファイルを別の場所に移動したり、名前を変えたりします。ドラッグ&ドロップのイメージです。',
101
+ usage: 'mv <今の名前> <新しい名前 or 移動先>',
98
102
  examples: [
99
- { cmd: 'mv old.txt new.txt', desc: 'ファイル名を old.txt → new.txt に変更' },
100
- { cmd: 'mv file.txt src/', desc: 'file.txt を src/ フォルダに移動' },
103
+ { cmd: 'mv old.txt new.txt', desc: '同じフォルダ内で名前を変更する。old → new になる' },
104
+ { cmd: 'mv file.txt src/', desc: 'file.txt を src フォルダの中に移動。末尾の / は「中へ」の意味' },
105
+ { cmd: 'mv src/data.txt .', desc: 'src の中の data.txt を今いるフォルダに移動。. は「ここ」の意味' },
106
+ { cmd: 'mv ../memo.txt .', desc: '1つ上のフォルダの memo.txt をここに持ってくる' },
101
107
  ],
102
108
  },
103
109
  {
104
110
  name: 'rm',
105
- description: 'ファイルやフォルダを削除します。',
111
+ description: 'ファイルやフォルダを削除します。ゴミ箱を通さず直接消えるので注意!',
106
112
  usage: 'rm <ファイル名>',
107
113
  examples: [
108
- { cmd: 'rm file.txt', desc: 'ファイルを1つ削除' },
109
- { cmd: 'rm -r old_dir', desc: 'フォルダごとまるっと削除' },
110
- { cmd: 'rm -rf temp/', desc: '確認なしで強制的に削除' },
114
+ { cmd: 'rm file.txt', desc: 'rm のあとに消したいファイル名を書く' },
115
+ { cmd: 'rm -r old_dir', desc: '-r をつけるとフォルダの中身ごとまるっと削除できる' },
116
+ { cmd: 'rm -rf temp/', desc: '-rf で確認なし強制削除。取り消せないので注意!' },
111
117
  ],
112
118
  options: [
113
- { flag: '-r', description: 'フォルダの中身もまとめて削除' },
114
- { flag: '-f', description: '確認なしで強制削除' },
119
+ { flag: '-r', description: 'フォルダの中身もまとめて削除する' },
120
+ { flag: '-f', description: '確認メッセージなしで強制的に削除する' },
115
121
  ],
116
122
  },
117
123
  {
118
124
  name: 'find',
119
- description: 'ファイルやフォルダを名前で探します。',
120
- usage: 'find <場所> -name <名前>',
125
+ description: 'ファイルやフォルダを名前で探します。パソコンの中の「検索」機能です。',
126
+ usage: 'find <探す場所> -name <名前>',
121
127
  examples: [
122
- { cmd: 'find .', desc: '今いるフォルダの中身をすべて表示' },
123
- { cmd: 'find . -name "*.txt"', desc: '.txt で終わるファイルを探す' },
124
- { cmd: 'find . -name "*.tmp"', desc: '.tmp ファイルを探す' },
125
- { cmd: 'find /var -type f', desc: '/var の中のファイルだけ表示' },
128
+ { cmd: 'find .', desc: '実行すると今いるフォルダ以下のすべてのファイルが一覧表示される' },
129
+ { cmd: 'find . -name "*.txt"', desc: '実行すると .txt で終わるファイルだけが表示される。* は「何でもOK」の意味' },
130
+ { cmd: 'find . -name "*.tmp"', desc: '実行すると .tmp で終わるファイルが表示される。削除対象を探すのに便利' },
131
+ { cmd: 'find /var -type f', desc: '実行すると /var の中のファイルだけが表示される。-type f はファイル限定の意味' },
126
132
  ],
127
133
  options: [
128
- { flag: '-name "パターン"', description: '名前のパターンで探す(* はワイルドカード)' },
129
- { flag: '-type f', description: 'ファイルだけに絞る' },
130
- { flag: '-type d', description: 'フォルダだけに絞る' },
134
+ { flag: '-name "パターン"', description: '名前で探す(* を使うと「何でもOK」の意味になる)' },
135
+ { flag: '-type f', description: 'ファイルだけに絞り込む' },
136
+ { flag: '-type d', description: 'フォルダだけに絞り込む' },
131
137
  ],
132
138
  },
133
139
  {
134
140
  name: 'touch',
135
- description: '空のファイルを新しく作ります。',
141
+ description: '空っぽの新しいファイルを作ります。白紙のノートを用意するイメージです。',
136
142
  usage: 'touch <ファイル名>',
137
143
  examples: [
138
- { cmd: 'touch new_file.txt', desc: '空の new_file.txt を作成' },
139
- { cmd: 'touch README.md', desc: '空の README.md を作成' },
144
+ { cmd: 'touch new_file.txt', desc: 'touch のあとに作りたいファイル名を書く。空ファイルができる' },
145
+ { cmd: 'touch README.md', desc: '同じように README.md という空ファイルを作る例' },
140
146
  ],
141
147
  },
142
148
  {
143
149
  name: 'head',
144
- description: 'ファイルの先頭部分だけ表示します。',
150
+ description: 'ファイルの最初のほうだけ読みます。長いファイルをちょっと覗きたいときに便利です。',
145
151
  usage: 'head <ファイル名>',
146
152
  examples: [
147
- { cmd: 'head file.txt', desc: '先頭10行を表示(デフォルト)' },
148
- { cmd: 'head -n 5 log.txt', desc: '先頭5行だけ表示' },
153
+ { cmd: 'head file.txt', desc: 'head のあとにファイル名を書く。最初の10行が表示される' },
154
+ { cmd: 'head -n 5 log.txt', desc: '-n のあとに数字を書いて行数を指定。ここでは5' },
149
155
  ],
150
156
  options: [
151
- { flag: '-n 数字', description: '表示する行数を指定' },
157
+ { flag: '-n 数字', description: '何行表示するか指定する' },
152
158
  ],
153
159
  },
154
160
  {
155
161
  name: 'tail',
156
- description: 'ファイルの末尾部分だけ表示します。',
162
+ description: 'ファイルの最後のほうだけ読みます。最新のログを確認したいときに便利です。',
157
163
  usage: 'tail <ファイル名>',
158
164
  examples: [
159
- { cmd: 'tail file.txt', desc: '末尾10行を表示(デフォルト)' },
160
- { cmd: 'tail -n 20 log.txt', desc: '末尾20行だけ表示' },
165
+ { cmd: 'tail file.txt', desc: 'tail のあとにファイル名を書く。最後の10行が表示される' },
166
+ { cmd: 'tail -n 20 log.txt', desc: '-n のあとに数字を書いて行数を指定。ここでは20' },
161
167
  ],
162
168
  options: [
163
- { flag: '-n 数字', description: '表示する行数を指定' },
169
+ { flag: '-n 数字', description: '何行表示するか指定する' },
164
170
  ],
165
171
  },
166
172
  {
167
173
  name: 'wc',
168
- description: 'ファイルの行数・単語数・バイト数を数えます。',
174
+ description: 'ファイルの行数や文字数を数えます。「Word Count(文字数カウント)」の略です。',
169
175
  usage: 'wc <ファイル名>',
170
176
  examples: [
171
- { cmd: 'wc file.txt', desc: '行数・単語数・バイト数をすべて表示' },
172
- { cmd: 'wc -l log.txt', desc: '行数だけ表示' },
173
- { cmd: 'cat file.txt | wc -w', desc: 'パイプで受け取って単語数を表示' },
177
+ { cmd: 'wc file.txt', desc: '実行すると file.txt の行数・単語数・バイト数がまとめて表示される' },
178
+ { cmd: 'wc -l log.txt', desc: '実行すると log.txt の行数だけが表示される。-l は行数の意味' },
179
+ { cmd: 'cat file.txt | wc -w', desc: '実行すると file.txt の単語数が表示される。| で結果を次のコマンドに渡す' },
174
180
  ],
175
181
  options: [
176
- { flag: '-l', description: '行数だけ表示' },
177
- { flag: '-w', description: '単語数だけ表示' },
178
- { flag: '-c', description: 'バイト数だけ表示' },
182
+ { flag: '-l', description: '行数だけ数える' },
183
+ { flag: '-w', description: '単語数だけ数える' },
184
+ { flag: '-c', description: 'バイト数だけ数える' },
179
185
  ],
180
186
  },
181
187
  {
182
188
  name: 'sort',
183
- description: 'ファイルの中身を並び替えます。',
189
+ description: 'ファイルの中身を順番に並び替えます。あいうえお順や数字順にできます。',
184
190
  usage: 'sort <ファイル名>',
185
191
  examples: [
186
- { cmd: 'sort names.txt', desc: 'あいうえお順に並び替え' },
187
- { cmd: 'sort -n numbers.txt', desc: '数字の小さい順に並び替え' },
188
- { cmd: 'sort -r data.txt', desc: '逆順に並び替え' },
192
+ { cmd: 'sort names.txt', desc: '実行すると names.txt の中身がアルファベット順に並んで表示される' },
193
+ { cmd: 'sort -n numbers.txt', desc: '-n をつけると数字の小さい順に並ぶ' },
194
+ { cmd: 'sort -r data.txt', desc: '-r をつけると逆順に並ぶ' },
189
195
  ],
190
196
  options: [
191
- { flag: '-r', description: '逆順に並べる' },
192
- { flag: '-n', description: '数字として並べる' },
193
- { flag: '-t 文字', description: '区切り文字を指定' },
194
- { flag: '-k 番号', description: '何番目の項目で並べるか指定' },
197
+ { flag: '-r', description: '逆順にする' },
198
+ { flag: '-n', description: '数字として比べて並べる(1, 2, 10 の順になる)' },
199
+ { flag: '-t 文字', description: 'データの区切り文字を指定する(, や : など)' },
200
+ { flag: '-k 番号', description: '何番目の項目を基準に並べるか指定する' },
195
201
  ],
196
202
  },
197
203
  {
198
204
  name: 'uniq',
199
- description: '連続する同じ行をまとめます(重複削除)。',
205
+ description: '同じ内容が続いている行を1つにまとめます。sort と組み合わせて使うのが定番です。',
200
206
  usage: 'uniq <ファイル名>',
201
207
  examples: [
202
- { cmd: 'sort data.txt | uniq', desc: 'まずsortしてから重複を削除' },
203
- { cmd: 'sort data.txt | uniq -c', desc: '重複を削除して出現回数も表示' },
208
+ { cmd: 'sort data.txt | uniq', desc: '実行すると重複を消した一覧が表示される。| は左の結果を右に渡す記号' },
209
+ { cmd: 'sort data.txt | uniq -c', desc: '実行すると各行が何回出てきたか回数つきで表示される' },
204
210
  ],
205
211
  options: [
206
- { flag: '-c', description: '何回出てきたか回数を表示' },
212
+ { flag: '-c', description: '同じ行が何回あったか回数も表示する' },
207
213
  ],
208
214
  },
209
215
  {
210
216
  name: 'cut',
211
- description: '各行から特定の列だけ切り出します。',
217
+ description: '表のようなデータから欲しい列だけを取り出します。Excelの列選択のイメージです。',
212
218
  usage: 'cut -d <区切り文字> -f <列番号> <ファイル>',
213
219
  examples: [
214
- { cmd: 'cut -d, -f1 data.csv', desc: 'CSVの1列目だけ取り出す' },
215
- { cmd: 'cut -d: -f1,3 /etc/passwd', desc: ': 区切りの1列目と3列目を取り出す' },
220
+ { cmd: 'cut -d, -f1 data.csv', desc: '実行すると data.csv の1列目だけが表示される。-d, は区切り文字がコンマの意味' },
221
+ { cmd: 'cut -d: -f1,3 /etc/passwd', desc: '-f1,3 1列目と3列目を一度に取り出せる' },
216
222
  ],
217
223
  options: [
218
- { flag: '-d 文字', description: '区切り文字を指定(, や : など)' },
219
- { flag: '-f 番号', description: '取り出す列の番号を指定' },
224
+ { flag: '-d 文字', description: 'データの区切り文字を指定する(, や : など)' },
225
+ { flag: '-f 番号', description: '取り出したい列の番号を指定する' },
220
226
  ],
221
227
  },
222
228
  {
223
229
  name: 'chmod',
224
- description: 'ファイルの実行権限などを変更します。',
230
+ description: 'ファイルの「実行してもいいよ」という許可を設定します。スクリプトを動かすときに必要です。',
225
231
  usage: 'chmod <モード> <ファイル>',
226
232
  examples: [
227
- { cmd: 'chmod 755 script.sh', desc: '実行可能にする(数字指定)' },
228
- { cmd: 'chmod +x start.sh', desc: '実行権限を追加' },
233
+ { cmd: 'chmod 755 script.sh', desc: '実行すると script.sh に読み書き実行の権限がつく。755 は権限を表す数字' },
234
+ { cmd: 'chmod +x start.sh', desc: '+x は「実行を許可する」という意味' },
229
235
  ],
230
236
  },
231
237
  {
232
238
  name: 'git',
233
- description: 'バージョン管理コマンド(シミュレーション)。',
239
+ description: 'ファイルの変更履歴を記録・管理するツールです。「いつ・何を変えたか」がわかります。',
234
240
  usage: 'git <サブコマンド>',
235
241
  examples: [
236
- { cmd: 'git status', desc: '変更状態を確認' },
237
- { cmd: 'git log', desc: '変更履歴を表示' },
238
- { cmd: 'git branch', desc: 'ブランチ一覧を表示' },
239
- { cmd: 'git checkout -b feature', desc: '新しいブランチを作って切り替え' },
242
+ { cmd: 'git status', desc: '実行すると変更されたファイルの一覧が表示される' },
243
+ { cmd: 'git log', desc: '実行するとこれまでの変更履歴が時系列で表示される' },
244
+ { cmd: 'git branch', desc: '実行するとブランチ(作業の分岐)の一覧が表示される' },
245
+ { cmd: 'git checkout -b feature', desc: '実行すると feature という名前の新しいブランチが作られ、そこに移動する' },
240
246
  ],
241
247
  },
242
248
  {
243
249
  name: 'man',
244
- description: 'コマンドの使い方を表示します。',
250
+ description: 'コマンドの説明書を表示します。使い方がわからないときはこれで調べよう!',
245
251
  usage: 'man <コマンド名>',
246
252
  examples: [
247
- { cmd: 'man', desc: '全コマンドの一覧を表示' },
248
- { cmd: 'man ls', desc: 'ls の使い方を表示' },
249
- { cmd: 'man grep', desc: 'grep の使い方を表示' },
253
+ { cmd: 'man', desc: '実行すると使えるコマンドの一覧が表示される' },
254
+ { cmd: 'man ls', desc: '実行すると ls の使い方・オプション・具体例が表示される' },
255
+ { cmd: 'man grep', desc: '実行すると grep の使い方・オプション・具体例が表示される' },
250
256
  ],
251
257
  },
252
258
  ];