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 +32 -4
- package/dist/App.js +2 -2
- package/dist/components/HintBar.js +3 -2
- package/dist/data/commands-meta.js +112 -106
- package/dist/data/stories/00-beginner-pc.js +127 -112
- package/dist/data/stories/01-first-server.js +11 -5
- package/dist/data/stories/02-messy-project.js +14 -7
- package/dist/data/stories/03-log-detective.js +22 -6
- package/dist/data/stories/04-deploy-day.js +64 -10
- package/dist/data/stories/05-git-incident.js +80 -19
- package/dist/data/stories/06-pipe-master.js +74 -14
- package/dist/data/stories/07-dangerous-commands.js +79 -12
- package/dist/data/stories/k1-treasure-hunt.js +160 -145
- package/dist/data/types.d.ts +1 -1
- package/dist/engine/CommandFeedback.js +10 -3
- package/dist/engine/CommandHandler.js +5 -0
- package/dist/engine/commands/cat.js +12 -1
- package/dist/engine/commands/cut.js +3 -0
- package/dist/engine/commands/grep.js +6 -0
- package/dist/engine/commands/head.js +3 -0
- package/dist/engine/commands/help.js +7 -3
- package/dist/engine/commands/sort.js +3 -0
- package/dist/engine/commands/tail.js +3 -0
- package/dist/engine/commands/uniq.js +3 -0
- package/dist/screens/StorySelectScreen.d.ts +2 -1
- package/dist/screens/StorySelectScreen.js +55 -7
- package/dist/screens/TerminalScreen.js +67 -17
- package/dist/state/useGameState.d.ts +1 -0
- package/dist/state/useGameState.js +13 -2
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
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 # テスト実行(
|
|
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
|
|
8
|
-
const
|
|
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
|
|
17
|
-
{ cmd: 'ls
|
|
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
|
|
30
|
-
{ cmd: 'cd ..', desc: '1
|
|
31
|
-
{ cmd: 'cd
|
|
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: '
|
|
40
|
-
{ cmd: 'cat /
|
|
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 から
|
|
49
|
-
{ cmd: 'grep -n "port" config.json', desc: '
|
|
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.
|
|
65
|
-
{ cmd: 'cp
|
|
66
|
-
{ cmd: 'cp
|
|
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: '
|
|
78
|
-
{ cmd: 'echo "data" > out.txt', desc: 'out.txt に
|
|
79
|
-
{ cmd: 'echo "追記" >> out.txt', desc: '
|
|
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: '
|
|
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: '
|
|
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
|
|
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: '
|
|
139
|
-
{ cmd: 'touch README.md', desc: '
|
|
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: '
|
|
148
|
-
{ cmd: 'head -n 5 log.txt', desc: '
|
|
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: '
|
|
160
|
-
{ cmd: 'tail -n 20 log.txt', desc: '
|
|
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: '
|
|
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: '
|
|
215
|
-
{ cmd: 'cut -d: -f1,3 /etc/passwd', desc: '
|
|
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
|
];
|