diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-18 15:00:25 +0200 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-18 15:00:25 +0200 |
| commit | bc199e350ea4ab000df03c9e732bf3478c9c43b6 (patch) | |
| tree | dd75d59ec1acfeac2eae40de8f860ffcb34220f5 /course/chapters/03-commands.json | |
| parent | 3966a870b13ab0896e6cfa7fb3bca2003846b7e5 (diff) | |
course: fix P0 content errors + completion/mobile/keyboard UX (review A)
Diffstat (limited to 'course/chapters/03-commands.json')
| -rw-r--r-- | course/chapters/03-commands.json | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/course/chapters/03-commands.json b/course/chapters/03-commands.json index 10807cb..40fa2ad 100644 --- a/course/chapters/03-commands.json +++ b/course/chapters/03-commands.json @@ -7,16 +7,17 @@ { "id": "3.1", "title": "Find any command fast", - "objective": "Use help, commands and check to discover what exists before guessing.", + "objective": "Use help, doctor and status to discover what exists before guessing.", "minutes": 7, "commands": [ "help", + "doctor", "status" ], "blocks": [ { "type": "text", - "text": "`help` groups all 344 commands by the module that owns them." + "text": "`help` groups every registered command by the module that owns them." }, { "type": "cmd", @@ -28,18 +29,20 @@ }, { "type": "tip", - "text": "`check` shows module requirements — the fastest way to explain a command that is listed but not working." + "text": "`doctor` shows module requirements — the fastest way to explain a command that is listed but not working." } ], "exercise": { - "instruction": "Open the help for `webdav-push`.", + "instruction": "Run `doctor` and read its severity ranking.", "accept": [ - "help webdav-push" + "doctor", + "help", + "status" ], "check": { "type": "command" }, - "hint": "Type: help webdav-push" + "hint": "Type: doctor" }, "quiz": { "q": "Which command shows usage for one command?", @@ -74,11 +77,11 @@ }, { "type": "cmd", - "text": "ls | grep txt" + "text": "grep hello hello.txt" }, { "type": "warn", - "text": "`sed s/x/y/` substitutes the first match per LINE, not per file. `sed -i` is flagged destructive and needs confirmation." + "text": "`sed s/x/y/` substitutes the first match per LINE, not per file. `sed -i` overwrites the file immediately — checkpoint first (`checkpoint before-sed`). Pipes are partial in this build: `ls | grep x` may print the unfiltered listing; use `grep pattern file`." }, { "type": "text", @@ -90,15 +93,16 @@ } ], "exercise": { - "instruction": "Search the current listing for `txt`.", + "instruction": "Search a file for a word (create `hello.txt` with `edit` if needed).", "accept": [ - "ls | grep txt", - "grep txt" + "grep hello hello.txt", + "grep * hello.txt", + "grep hello *" ], "check": { "type": "command" }, - "hint": "Type: ls | grep txt" + "hint": "Type: grep hello hello.txt" }, "quiz": { "q": "`sed s/a/b/` replaces…", |