linux-commands-guide 2.1.0__tar.gz → 2.2.0__tar.gz
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.
- linux_commands_guide-2.2.0/CHANGELOG.md +70 -0
- linux_commands_guide-2.2.0/CONTRIBUTING.md +42 -0
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/LICENSE +1 -1
- linux_commands_guide-2.2.0/MANIFEST.in +9 -0
- linux_commands_guide-2.2.0/PKG-INFO +337 -0
- linux_commands_guide-2.2.0/README.md +310 -0
- linux_commands_guide-2.2.0/docs/compatibility.md +30 -0
- linux_commands_guide-2.2.0/docs/content-guide.md +66 -0
- linux_commands_guide-2.2.0/docs/demo.cast +224 -0
- linux_commands_guide-2.2.0/docs/demo.gif +0 -0
- linux_commands_guide-2.2.0/docs/demo.md +44 -0
- linux_commands_guide-2.2.0/docs/learning-path.md +30 -0
- linux_commands_guide-2.2.0/docs/releasing.md +20 -0
- linux_commands_guide-2.2.0/guia_linux/__init__.py +8 -0
- linux_commands_guide-2.2.0/guia_linux/catalog.py +159 -0
- linux_commands_guide-2.2.0/guia_linux/cli.py +111 -0
- linux_commands_guide-2.2.0/guia_linux/content/exercises/grep.json +23 -0
- linux_commands_guide-2.2.0/guia_linux/content/exercises/navigation.json +24 -0
- linux_commands_guide-2.2.0/guia_linux/content/exercises/pipes.json +23 -0
- linux_commands_guide-2.2.0/guia_linux/content/exercises/regex.json +23 -0
- linux_commands_guide-2.2.0/guia_linux/content/exercises/wc.json +23 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/apropos.json +56 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/apt.json +81 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/awk.json +286 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/bat.json +37 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/bg.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/cat.json +176 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/cd.json +67 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/chmod.json +173 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/chown.json +99 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/command.json +56 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/cp.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/crontab.json +269 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/curl.json +176 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/cut.json +88 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/date.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/descriptors.json +209 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/df.json +195 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/diff.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/dig.json +61 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/dirs.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/dnf.json +71 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/docker.json +286 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/du.json +213 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/echo.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/env.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/export.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/fd.json +58 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/fg.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/file.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/find.json +284 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/firewall-cmd.json +176 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/free.json +143 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/fzf.json +46 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/getent.json +61 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/git.json +446 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/grep.json +311 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/gzip.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/head.json +110 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/help.json +58 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/history.json +46 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/hostname.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/htop.json +132 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/id.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ifconfig.json +165 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ip.json +209 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/iptables.json +187 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/jobs.json +48 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/journalctl.json +73 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/jq.json +209 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/kill.json +68 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/less.json +43 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ln.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/locate.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/logs.json +331 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ls.json +39 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/lsblk.json +176 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/lsof.json +187 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/lxc.json +220 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/man.json +62 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/mkdir.json +28 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/more.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/mv.json +45 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/nano.json +61 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/nc.json +154 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ncdu.json +51 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/netstat.json +165 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/nl.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/nmap.json +220 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/pacman.json +71 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/pgrep.json +61 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ping.json +48 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/popd.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/printf.json +58 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ps.json +187 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/pushd.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/pwd.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/readlink.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/realpath.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/regex.json +275 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/rg.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/rm.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/rsync.json +154 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/scp.json +143 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/sed.json +143 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/sha256sum.json +46 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/shortcuts.json +209 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/sort.json +125 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ss.json +209 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/ssh.json +195 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/stat.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/sudo.json +58 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/system.json +429 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/systemctl.json +231 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/tail.json +132 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/tar.json +154 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/tee.json +77 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/timeout.json +46 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/tmux.json +249 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/top.json +229 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/touch.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/tr.json +110 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/tree.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/type.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/umask.json +57 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/uname.json +121 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/uniq.json +92 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/unzip.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/uptime.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/vim.json +445 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/watch.json +121 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/wc.json +71 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/whoami.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/xargs.json +110 -0
- linux_commands_guide-2.2.0/guia_linux/content/tools/zip.json +47 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/environment.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/exit-status.json +23 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/globs.json +23 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/help.json +27 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/navigation.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/permissions.json +25 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/pipes.json +27 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/processes.json +26 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/quoting.json +24 -0
- linux_commands_guide-2.2.0/guia_linux/content/topics/redirections.json +24 -0
- linux_commands_guide-2.2.0/guia_linux/learning.py +96 -0
- linux_commands_guide-2.2.0/guia_linux/models.py +39 -0
- linux_commands_guide-2.2.0/guia_linux/render.py +137 -0
- linux_commands_guide-2.2.0/helper.py +10 -0
- linux_commands_guide-2.2.0/install.sh +9 -0
- linux_commands_guide-2.2.0/linux_commands_guide.egg-info/PKG-INFO +337 -0
- linux_commands_guide-2.2.0/linux_commands_guide.egg-info/SOURCES.txt +171 -0
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/linux_commands_guide.egg-info/requires.txt +1 -1
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/pyproject.toml +11 -7
- linux_commands_guide-2.2.0/scripts/castrec.py +150 -0
- linux_commands_guide-2.2.0/scripts/install.py +112 -0
- linux_commands_guide-2.2.0/scripts/record_demo.py +81 -0
- linux_commands_guide-2.2.0/scripts/smoke_installed.py +33 -0
- linux_commands_guide-2.2.0/scripts/update_catalog_docs.py +40 -0
- linux_commands_guide-2.2.0/tests/fixtures/legacy_ids.json +919 -0
- linux_commands_guide-2.2.0/tests/test_beginner_cli.py +46 -0
- linux_commands_guide-2.2.0/tests/test_catalog.py +111 -0
- linux_commands_guide-2.2.0/tests/test_demo.py +41 -0
- linux_commands_guide-2.2.0/tests/test_examples.py +55 -0
- linux_commands_guide-2.2.0/tests/test_guide.py +73 -0
- linux_commands_guide-2.2.0/tests/test_installer.py +101 -0
- linux_commands_guide-2.2.0/tests/test_learning.py +61 -0
- linux_commands_guide-2.2.0/tests/test_render.py +57 -0
- linux_commands_guide-2.1.0/PKG-INFO +0 -208
- linux_commands_guide-2.1.0/README.md +0 -181
- linux_commands_guide-2.1.0/guia_linux/__init__.py +0 -5
- linux_commands_guide-2.1.0/guia_linux/cli.py +0 -155
- linux_commands_guide-2.1.0/guia_linux/tools/__init__.py +0 -62
- linux_commands_guide-2.1.0/guia_linux/tools/awk.py +0 -39
- linux_commands_guide-2.1.0/guia_linux/tools/cat.py +0 -29
- linux_commands_guide-2.1.0/guia_linux/tools/chmod.py +0 -28
- linux_commands_guide-2.1.0/guia_linux/tools/chown.py +0 -22
- linux_commands_guide-2.1.0/guia_linux/tools/crontab.py +0 -40
- linux_commands_guide-2.1.0/guia_linux/tools/curl.py +0 -29
- linux_commands_guide-2.1.0/guia_linux/tools/cut.py +0 -21
- linux_commands_guide-2.1.0/guia_linux/tools/df.py +0 -30
- linux_commands_guide-2.1.0/guia_linux/tools/docker.py +0 -39
- linux_commands_guide-2.1.0/guia_linux/tools/du.py +0 -32
- linux_commands_guide-2.1.0/guia_linux/tools/file_descriptors.py +0 -32
- linux_commands_guide-2.1.0/guia_linux/tools/find.py +0 -38
- linux_commands_guide-2.1.0/guia_linux/tools/firewall_cmd.py +0 -29
- linux_commands_guide-2.1.0/guia_linux/tools/free.py +0 -26
- linux_commands_guide-2.1.0/guia_linux/tools/git.py +0 -62
- linux_commands_guide-2.1.0/guia_linux/tools/grep.py +0 -39
- linux_commands_guide-2.1.0/guia_linux/tools/head.py +0 -23
- linux_commands_guide-2.1.0/guia_linux/tools/htop.py +0 -25
- linux_commands_guide-2.1.0/guia_linux/tools/ifconfig.py +0 -28
- linux_commands_guide-2.1.0/guia_linux/tools/ip.py +0 -32
- linux_commands_guide-2.1.0/guia_linux/tools/iptables.py +0 -30
- linux_commands_guide-2.1.0/guia_linux/tools/jq.py +0 -32
- linux_commands_guide-2.1.0/guia_linux/tools/logs.py +0 -48
- linux_commands_guide-2.1.0/guia_linux/tools/lsblk.py +0 -29
- linux_commands_guide-2.1.0/guia_linux/tools/lsof.py +0 -30
- linux_commands_guide-2.1.0/guia_linux/tools/lxc.py +0 -33
- linux_commands_guide-2.1.0/guia_linux/tools/nc.py +0 -27
- linux_commands_guide-2.1.0/guia_linux/tools/netstat.py +0 -28
- linux_commands_guide-2.1.0/guia_linux/tools/nmap.py +0 -33
- linux_commands_guide-2.1.0/guia_linux/tools/ps.py +0 -30
- linux_commands_guide-2.1.0/guia_linux/tools/regex.py +0 -38
- linux_commands_guide-2.1.0/guia_linux/tools/rsync.py +0 -27
- linux_commands_guide-2.1.0/guia_linux/tools/scp.py +0 -26
- linux_commands_guide-2.1.0/guia_linux/tools/sed.py +0 -26
- linux_commands_guide-2.1.0/guia_linux/tools/shortcuts.py +0 -32
- linux_commands_guide-2.1.0/guia_linux/tools/sort.py +0 -24
- linux_commands_guide-2.1.0/guia_linux/tools/ss.py +0 -32
- linux_commands_guide-2.1.0/guia_linux/tools/ssh.py +0 -30
- linux_commands_guide-2.1.0/guia_linux/tools/system.py +0 -54
- linux_commands_guide-2.1.0/guia_linux/tools/systemctl.py +0 -34
- linux_commands_guide-2.1.0/guia_linux/tools/tail.py +0 -25
- linux_commands_guide-2.1.0/guia_linux/tools/tar.py +0 -27
- linux_commands_guide-2.1.0/guia_linux/tools/tee.py +0 -20
- linux_commands_guide-2.1.0/guia_linux/tools/tmux.py +0 -37
- linux_commands_guide-2.1.0/guia_linux/tools/top.py +0 -34
- linux_commands_guide-2.1.0/guia_linux/tools/tr.py +0 -23
- linux_commands_guide-2.1.0/guia_linux/tools/uname.py +0 -24
- linux_commands_guide-2.1.0/guia_linux/tools/uniq.py +0 -21
- linux_commands_guide-2.1.0/guia_linux/tools/vim.py +0 -58
- linux_commands_guide-2.1.0/guia_linux/tools/watch.py +0 -24
- linux_commands_guide-2.1.0/guia_linux/tools/xargs.py +0 -23
- linux_commands_guide-2.1.0/guia_linux/utils.py +0 -99
- linux_commands_guide-2.1.0/linux_commands_guide.egg-info/PKG-INFO +0 -208
- linux_commands_guide-2.1.0/linux_commands_guide.egg-info/SOURCES.txt +0 -66
- linux_commands_guide-2.1.0/tests/test_guide.py +0 -83
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/guia_linux/__main__.py +0 -0
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/linux_commands_guide.egg-info/dependency_links.txt +0 -0
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/linux_commands_guide.egg-info/entry_points.txt +0 -0
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/linux_commands_guide.egg-info/top_level.txt +0 -0
- {linux_commands_guide-2.1.0 → linux_commands_guide-2.2.0}/setup.cfg +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 2.2.0 — 2026-10-13
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- Beginner quick/explained views, grouped categories, direct basic-command references and additional tools.
|
|
7
|
+
- Ten bilingual terminal lessons and five fixture-based practice plans with opt-in hints/solutions.
|
|
8
|
+
- Isolated user installer (`install.sh`), dry-run, guarded managed upgrades and offline wheelhouse support.
|
|
9
|
+
- Content/contribution/compatibility/release guides, issue templates and generated README catalogue.
|
|
10
|
+
- 114 command references, preserving the original examples.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Validated JSON catalogue and immutable models replace the Python content wrappers; existing CLI/shim entries remain.
|
|
14
|
+
- Stream-local shellcolorize presentation removes import-time ANSI and global color mutation.
|
|
15
|
+
- A tool plus `-s` now searches that tool; multiword searches require all words, ignoring accents/case.
|
|
16
|
+
- Narrow terminals use stacked descriptions. Quick/explained views select at most eight examples.
|
|
17
|
+
- CI checks minimum/published shellcolorize and an installed wheel outside the checkout.
|
|
18
|
+
- English-only README and a real terminal demo alternating English and Spanish output.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- grep directory include/exclude examples now use recursion.
|
|
22
|
+
- chmod guidance accounts for umask; regex examples identify their dialect.
|
|
23
|
+
- find/xargs filename recipes use NUL separators; xargs -I receives one filename per line.
|
|
24
|
+
- Dangerous examples include effects and warnings; SSH/TLS bypasses are not routine fixes.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## 2.1.1
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- Project metadata: author and project links now point to github.com/serber-info.
|
|
31
|
+
- No functional changes.
|
|
32
|
+
|
|
33
|
+
## 2.1.0
|
|
34
|
+
|
|
35
|
+
### Fixed (content)
|
|
36
|
+
- `regex`: `word{3}`, `word*`, `word+` and `word?` were described as repeating the whole word; a quantifier only
|
|
37
|
+
applies to the previous item. Now `(word){3}`, `(word){2,5}`, `a*`, `a+` and `colou?r`.
|
|
38
|
+
- `lxc`: `lxc-config -n … -s storage|network|security`, `lxc-attach -f /path` and `lxc-restart` do not exist or
|
|
39
|
+
do something else. The tool now covers create, start/stop/reboot, attach, console, info, freeze, copy,
|
|
40
|
+
snapshot, destroy and checkconfig.
|
|
41
|
+
- `chown --from` had the wrong syntax (`--from=old_user new_user file`).
|
|
42
|
+
- `cat` listed `bat` options (`-r`, `--theme`, `--paging`, `-L`) as if they were `cat` options.
|
|
43
|
+
- `rsync` examples without `-a` did not recurse (`--delete`, `--exclude`, `--dry-run`…).
|
|
44
|
+
- `xargs -P 4 python3` passed many files to one process; now `-n 1 -P 4`.
|
|
45
|
+
- `iptables` uses `-m conntrack --ctstate` instead of the deprecated `-m state`.
|
|
46
|
+
- Clarified `ifconfig add` (IPv6), tmux split directions and netcat variants (`-p`, `-e`).
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- README install command (`pip install linux-commands-guide`), badges and clone folder.
|
|
50
|
+
- Missing LICENSE file (MIT, as declared).
|
|
51
|
+
- Colors were written into pipes and files; output is plain when piped or when `NO_COLOR` is set.
|
|
52
|
+
- Header boxes were two characters too wide.
|
|
53
|
+
- `lh tool | head` printed a BrokenPipeError traceback.
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
- Language is picked from the locale (`es_*` → Spanish, anything else → English); `--lang` still forces it.
|
|
57
|
+
- Search matches both the Spanish and the English descriptions.
|
|
58
|
+
- `lh --version` and `python -m guia_linux`.
|
|
59
|
+
- Test suite (content checks for all 51 tools) and GitHub Actions CI.
|
|
60
|
+
|
|
61
|
+
### Removed
|
|
62
|
+
- The legacy top-level `tools/` directory (v1 code, no longer used).
|
|
63
|
+
|
|
64
|
+
## 2.0.1
|
|
65
|
+
|
|
66
|
+
- Visual redesign: clean box headers, ANSI-aware alignment.
|
|
67
|
+
|
|
68
|
+
## 2.0.0
|
|
69
|
+
|
|
70
|
+
- Bilingual, search, 51 tools, pip-installable.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Contributing / Contribuir
|
|
2
|
+
|
|
3
|
+
Help beginners understand a task, not just memorize an option. Small contributions are welcome:
|
|
4
|
+
translations, corrected examples, clearer warnings and new beginner references.
|
|
5
|
+
|
|
6
|
+
## Before changing content
|
|
7
|
+
|
|
8
|
+
1. Check whether the command already exists inside a grouped reference (`system`, `cat`, `ssh`).
|
|
9
|
+
2. Read the [content guide](docs/content-guide.md) and the installed tool's manual.
|
|
10
|
+
3. Keep Spanish and English equally useful, and cite primary documentation.
|
|
11
|
+
4. Describe effects and prerequisites. Never recommend bypassing permissions, TLS or host-key
|
|
12
|
+
checks as a routine fix. Do not suggest `chmod 777` as a troubleshooting shortcut.
|
|
13
|
+
5. Test only safe examples with temporary fixtures. Never run the whole catalogue.
|
|
14
|
+
|
|
15
|
+
## Local checks
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
python3 -m venv .venv
|
|
19
|
+
. .venv/bin/activate
|
|
20
|
+
python -m pip install -e '.[dev]'
|
|
21
|
+
python -m scripts.update_catalog_docs
|
|
22
|
+
ruff check .
|
|
23
|
+
pytest -q
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Adding `guia_linux/content/tools/<name>.json` automatically registers it. No handwritten Python
|
|
27
|
+
wrapper or registry is needed. The README table is generated; CI checks it is up to date.
|
|
28
|
+
|
|
29
|
+
A PR should state the learner's task, official source, compatibility, effects and verification.
|
|
30
|
+
Do not include real credentials, customer data, private infrastructure or personal paths.
|
|
31
|
+
|
|
32
|
+
## Useful issue labels
|
|
33
|
+
|
|
34
|
+
Suggested labels for maintainers: `content`, `beginner`, `translation`, `bug`, `good first issue`.
|
|
35
|
+
They are suggestions, not automatically created GitHub labels.
|
|
36
|
+
|
|
37
|
+
## Scope
|
|
38
|
+
|
|
39
|
+
Keep runtime offline and small. New services, telemetry, automatic command execution and access to
|
|
40
|
+
personal files are not part of this project. A fixture exercise is not a general shell runner.
|
|
41
|
+
Internal Python catalogue modules changed in this refactor; the supported public surface is `lh`,
|
|
42
|
+
`python -m guia_linux`, `helper.py`, and the lazy `guia_linux.main()` entry.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
include install.sh
|
|
2
|
+
include helper.py
|
|
3
|
+
include CONTRIBUTING.md
|
|
4
|
+
include CHANGELOG.md
|
|
5
|
+
recursive-include scripts *.py
|
|
6
|
+
recursive-include docs *.md *.gif *.cast
|
|
7
|
+
recursive-include tests *.py
|
|
8
|
+
recursive-include tests *.json
|
|
9
|
+
global-exclude AGENTS.md CLAUDE.md .env
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: linux-commands-guide
|
|
3
|
+
Version: 2.2.0
|
|
4
|
+
Summary: Learn Linux in your terminal: bilingual quick reference, lessons and safe practice plans
|
|
5
|
+
Author: Sergio Berruetta
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/serber-info/linux-commands-guide
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/serber-info/linux-commands-guide/issues
|
|
9
|
+
Project-URL: Source Code, https://github.com/serber-info/linux-commands-guide
|
|
10
|
+
Project-URL: Changelog, https://github.com/serber-info/linux-commands-guide/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: linux,cheatsheet,commands,reference,sysadmin,bilingual,cli
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: System Administrators
|
|
16
|
+
Classifier: Natural Language :: English
|
|
17
|
+
Classifier: Natural Language :: Spanish
|
|
18
|
+
Classifier: Topic :: System :: Systems Administration
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: shellcolorize>=1.1.1
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest>=7; extra == "dev"
|
|
25
|
+
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
26
|
+
Dynamic: license-file
|
|
27
|
+
|
|
28
|
+
# linux-commands-guide — `lh`
|
|
29
|
+
|
|
30
|
+
[](https://github.com/serber-info/linux-commands-guide/actions/workflows/ci.yml)
|
|
31
|
+
[](https://badge.fury.io/py/linux-commands-guide)
|
|
32
|
+
[](LICENSE)
|
|
33
|
+
|
|
34
|
+
**Learn Linux from your terminal. Find a command, understand it, then practice.**
|
|
35
|
+
|
|
36
|
+
`lh` is an offline Spanish/English quick reference for beginners, with advanced entries when you
|
|
37
|
+
need them. It displays examples; **it never executes them**. No account, telemetry or network
|
|
38
|
+
connection is needed after installation. It also works over SSH.
|
|
39
|
+
|
|
40
|
+
<p align="center">
|
|
41
|
+
<img src="docs/demo.gif" alt="Real terminal demo: quick reference, search, explanations, lessons and practice, alternating English and Spanish" width="1000">
|
|
42
|
+
</p>
|
|
43
|
+
|
|
44
|
+
*Real CLI output. [Reproduce this recording](docs/demo.md).*
|
|
45
|
+
|
|
46
|
+
## Start here
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
lh ls --quick # A short reference
|
|
50
|
+
lh grep --explain # Explanation and sources
|
|
51
|
+
lh learn pipes # Understand pipelines
|
|
52
|
+
lh practice grep # A challenge with sample data
|
|
53
|
+
lh practice grep --hint # Hint
|
|
54
|
+
lh practice grep --solution # Solution
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Language follows your locale. Use `--lang es` or `--lang en` to choose explicitly.
|
|
58
|
+
|
|
59
|
+
## Install
|
|
60
|
+
|
|
61
|
+
### From a checkout: one command
|
|
62
|
+
|
|
63
|
+
Requires Linux, Python 3.9+ with `venv`/pip, and Internet access during installation.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git clone https://github.com/serber-info/linux-commands-guide.git
|
|
67
|
+
cd linux-commands-guide
|
|
68
|
+
./install.sh
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The installer creates an isolated environment in `~/.local/share/linux-commands-guide/venv`
|
|
72
|
+
and a launcher in `~/.local/bin/lh`. **Do not use sudo.** It does not change system Python or shell
|
|
73
|
+
configuration, and refuses to overwrite an unrelated `lh` or reuse an unknown installation directory.
|
|
74
|
+
If `~/.local/bin` is not on PATH, it prints the command to enable it for your current terminal.
|
|
75
|
+
On Debian/Ubuntu you may need the distribution's `python3-venv` package first.
|
|
76
|
+
|
|
77
|
+
If installation fails, it reports the error and preserves files for inspection instead of deleting them.
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
./install.sh --dry-run # Inspect paths without writes
|
|
81
|
+
./install.sh --upgrade # Update a managed install
|
|
82
|
+
./install.sh --help # Custom paths and offline wheelhouse
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Published version
|
|
86
|
+
|
|
87
|
+
If you already use [pipx](https://pipx.pypa.io/stable/), the published release can be installed with:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
pipx install linux-commands-guide
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Version 2.2.0 includes the beginner references, lessons, practice plans and installer.
|
|
94
|
+
|
|
95
|
+
For an existing virtual environment:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
python -m pip install linux-commands-guide
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`shellcolorize` is the author's separate project, published on PyPI, and remains the color dependency.
|
|
102
|
+
Its repository does not need to be cloned for installation.
|
|
103
|
+
|
|
104
|
+
## Reference
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
lh awk # Full reference
|
|
108
|
+
lh ls --quick # Up to 8 curated examples
|
|
109
|
+
lh grep --explain # Curated examples, explanation, notes and sources
|
|
110
|
+
lh -s 'disk space' # Search both languages
|
|
111
|
+
lh grep -s recursive # Search only grep
|
|
112
|
+
lh list # Browse categories
|
|
113
|
+
lh list --category files # Filter a category
|
|
114
|
+
lh --lang en ssh # Force English
|
|
115
|
+
lh --help
|
|
116
|
+
lh --version
|
|
117
|
+
python -m guia_linux awk # Same CLI
|
|
118
|
+
python helper.py awk # Legacy shim remains
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Search is case/accent-insensitive and requires every query word to match an entry's text, tool
|
|
122
|
+
summary or curated task keywords. It is local, not AI or natural-language reasoning. Use a few specific words.
|
|
123
|
+
|
|
124
|
+
Long references can be piped into `less`. `NO_COLOR=1` disables color; redirected output is plain
|
|
125
|
+
unless you explicitly set `FORCE_COLOR`. Commands are never reflowed, so copying preserves their
|
|
126
|
+
syntax; descriptions stack on narrow terminals.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
lh tar | less
|
|
130
|
+
NO_COLOR=1 lh grep
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
`--explain` focuses on selected examples, not every advanced option. The most detailed explanations
|
|
134
|
+
are in foundational entries; advanced entries retain notes, effect warnings and source links.
|
|
135
|
+
`--explain` is not a replacement for the complete manual of each program.
|
|
136
|
+
|
|
137
|
+
## Learn and practice
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
lh learn
|
|
141
|
+
lh practice
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Suggested route:
|
|
145
|
+
|
|
146
|
+
1. `navigation` — paths, directories
|
|
147
|
+
2. `quoting` — quotes and arguments
|
|
148
|
+
3. `globs` — filename globs versus regex
|
|
149
|
+
4. `pipes` — stdin, stdout and stderr
|
|
150
|
+
5. `redirections` — input/output and overwrite risk
|
|
151
|
+
6. `exit-status` — exit codes, `&&` and `||`
|
|
152
|
+
7. `environment`, `permissions`, `processes`, `help`
|
|
153
|
+
|
|
154
|
+
Practices currently cover `grep`, `pipes`, `navigation`, `wc` and `regex`. They print fixture setup,
|
|
155
|
+
a challenge and expected output; hints and solutions are opt-in. **No commands run and no files
|
|
156
|
+
are created by lh.** If you copy the setup, it creates a fresh temporary directory. Use only that
|
|
157
|
+
directory; root is not required. There is no automatic assessment or cleanup of your files.
|
|
158
|
+
|
|
159
|
+
Practices are guided: you run commands and compare results. `lh` does not inspect your documents,
|
|
160
|
+
execute your input or store your progress.
|
|
161
|
+
|
|
162
|
+
## Safety and compatibility
|
|
163
|
+
|
|
164
|
+
- Examples may **write, delete, change system state, generate traffic or expose sensitive data**.
|
|
165
|
+
Such effects are labeled. An unlabelled reference is not a guarantee of safety.
|
|
166
|
+
- Never copy placeholders such as `<file>` literally. Replace them, omit the angle brackets and
|
|
167
|
+
quote paths with spaces. Do not copy shell prompts (`$`/`#`) as commands.
|
|
168
|
+
- Read notes before using `sudo`, destructive options, recursive permissions or network changes.
|
|
169
|
+
- Scan only systems you own or have permission to test.
|
|
170
|
+
- The reference primarily covers GNU/Linux. Shell builtins, regex engines, netcat variants,
|
|
171
|
+
distributions and installed versions can differ. systemd entries require systemd.
|
|
172
|
+
- Structural tests cover all content. Behavioral tests cover **selected** safe examples and practice
|
|
173
|
+
fixtures, not every command or every Linux distribution.
|
|
174
|
+
|
|
175
|
+
See [compatibility](docs/compatibility.md) and [learning path](docs/learning-path.md).
|
|
176
|
+
|
|
177
|
+
## Available references
|
|
178
|
+
|
|
179
|
+
<!-- BEGIN GENERATED CATALOG -->
|
|
180
|
+
|
|
181
|
+
114 references. Categories and aliases are available through `lh list`.
|
|
182
|
+
|
|
183
|
+
| Tool | Description | Category |
|
|
184
|
+
|------|-------------|----------|
|
|
185
|
+
| `apropos` | Find manuals by topic | basics |
|
|
186
|
+
| `apt` | Packages on Debian/Ubuntu | system |
|
|
187
|
+
| `awk` | Column-based text processing | text |
|
|
188
|
+
| `bat` | Read files with syntax highlighting | files |
|
|
189
|
+
| `bg` | Resume jobs in the background | processes |
|
|
190
|
+
| `cat` | Display and concatenate file contents | files |
|
|
191
|
+
| `cd` | Change to the specified directory | basics |
|
|
192
|
+
| `chmod` | Change file and directory permissions | files |
|
|
193
|
+
| `chown` | Change file owner and group | files |
|
|
194
|
+
| `command` | Check command resolution | basics |
|
|
195
|
+
| `cp` | Copy a file | files |
|
|
196
|
+
| `crontab` | Periodic task scheduling | system |
|
|
197
|
+
| `curl` | Transfer data with URLs | network |
|
|
198
|
+
| `cut` | Extract sections from each line | text |
|
|
199
|
+
| `date` | Show current date and time | system |
|
|
200
|
+
| `descriptors` | stdin, stdout and stderr redirections | shell |
|
|
201
|
+
| `df` | Display disk space usage | files |
|
|
202
|
+
| `diff` | Compare text files | files |
|
|
203
|
+
| `dig` | Query DNS records | network |
|
|
204
|
+
| `dirs` | Show the directory stack | shell |
|
|
205
|
+
| `dnf` | Packages on compatible Fedora/RHEL systems | system |
|
|
206
|
+
| `docker` | Docker container management | advanced |
|
|
207
|
+
| `du` | Display directory space usage | files |
|
|
208
|
+
| `echo` | Display text or variables | text |
|
|
209
|
+
| `env` | Inspect or pass environment variables | shell |
|
|
210
|
+
| `export` | Pass variables to child processes | shell |
|
|
211
|
+
| `fd` | Find files with fd | files |
|
|
212
|
+
| `fg` | Bring jobs to the foreground | processes |
|
|
213
|
+
| `file` | Identify file types | files |
|
|
214
|
+
| `find` | Search for files and directories | files |
|
|
215
|
+
| `firewall-cmd` | Manage the firewalld firewall | advanced |
|
|
216
|
+
| `free` | Display system memory usage | processes |
|
|
217
|
+
| `fzf` | Select text interactively | shell |
|
|
218
|
+
| `getent` | Query system name resolution | network |
|
|
219
|
+
| `git` | Version control with Git | development |
|
|
220
|
+
| `grep` | Search for patterns in files | text |
|
|
221
|
+
| `gzip` | Compress individual files | files |
|
|
222
|
+
| `head` | Display the beginning of a file | text |
|
|
223
|
+
| `help` | Help for Bash builtins | basics |
|
|
224
|
+
| `history` | Inspect your shell history | shell |
|
|
225
|
+
| `hostname` | Show or set the hostname | system |
|
|
226
|
+
| `htop` | Interactive process monitor | processes |
|
|
227
|
+
| `id` | Show UID, GID and groups of current user | system |
|
|
228
|
+
| `ifconfig` | Network interface configuration (legacy) | network |
|
|
229
|
+
| `ip` | Modern network interface and routing management | network |
|
|
230
|
+
| `iptables` | Kernel firewall rule management | advanced |
|
|
231
|
+
| `jobs` | Inspect jobs in your shell | processes |
|
|
232
|
+
| `journalctl` | Read systemd logs | system |
|
|
233
|
+
| `jq` | Command-line JSON processor | text |
|
|
234
|
+
| `kill` | Send signals to processes | processes |
|
|
235
|
+
| `less` | Display file contents interactively | files |
|
|
236
|
+
| `ln` | Create a symbolic link | files |
|
|
237
|
+
| `locate` | Find files using the locate database | files |
|
|
238
|
+
| `logs` | Important log file paths in Linux | system |
|
|
239
|
+
| `ls` | List the current directory contents | basics |
|
|
240
|
+
| `lsblk` | List block devices | files |
|
|
241
|
+
| `lsof` | List open files by processes | processes |
|
|
242
|
+
| `lxc` | LXC container management | advanced |
|
|
243
|
+
| `man` | Read command manuals | basics |
|
|
244
|
+
| `mkdir` | Create a new directory | files |
|
|
245
|
+
| `more` | Display file contents page by page | files |
|
|
246
|
+
| `mv` | Move or rename a file or directory | files |
|
|
247
|
+
| `nano` | Edit files in the terminal | files |
|
|
248
|
+
| `nc` | TCP/IP Swiss army knife | network |
|
|
249
|
+
| `ncdu` | Explore disk usage interactively | files |
|
|
250
|
+
| `netstat` | Network connection statistics | network |
|
|
251
|
+
| `nl` | Display file contents with line numbers | files |
|
|
252
|
+
| `nmap` | Network and port scanner | advanced |
|
|
253
|
+
| `pacman` | Packages on Arch-based systems | system |
|
|
254
|
+
| `pgrep` | Find PIDs by name | processes |
|
|
255
|
+
| `ping` | Check ICMP responses | network |
|
|
256
|
+
| `popd` | Return to the previously saved directory | shell |
|
|
257
|
+
| `printf` | Print predictably formatted text | text |
|
|
258
|
+
| `ps` | Information about running processes | processes |
|
|
259
|
+
| `pushd` | Save current directory and switch to the given one | shell |
|
|
260
|
+
| `pwd` | Print the current working directory | basics |
|
|
261
|
+
| `readlink` | Inspect symbolic links | files |
|
|
262
|
+
| `realpath` | Resolve absolute paths | files |
|
|
263
|
+
| `regex` | Regex search patterns | text |
|
|
264
|
+
| `rg` | Search text with ripgrep | text |
|
|
265
|
+
| `rm` | Remove a file | files |
|
|
266
|
+
| `rsync` | Efficient file synchronization | files |
|
|
267
|
+
| `scp` | Secure file copy over SSH | files |
|
|
268
|
+
| `sed` | Stream text editor | text |
|
|
269
|
+
| `sha256sum` | Check integrity with SHA-256 | files |
|
|
270
|
+
| `shortcuts` | Bash/zsh keyboard shortcuts | basics |
|
|
271
|
+
| `sort` | Sort lines of text | text |
|
|
272
|
+
| `ss` | Socket statistics (replaces netstat) | network |
|
|
273
|
+
| `ssh` | Secure Shell client | network |
|
|
274
|
+
| `stat` | Show file details (timestamps, permissions) | files |
|
|
275
|
+
| `sudo` | Understand and inspect privileges | system |
|
|
276
|
+
| `system` | Navigation, files and system management | basics |
|
|
277
|
+
| `systemctl` | Manage services with systemd | system |
|
|
278
|
+
| `tail` | Display the end of a file | text |
|
|
279
|
+
| `tar` | File archiving and compression | files |
|
|
280
|
+
| `tee` | Read stdin and write to stdout and files | text |
|
|
281
|
+
| `timeout` | Limit a command’s duration | processes |
|
|
282
|
+
| `tmux` | Terminal multiplexer | shell |
|
|
283
|
+
| `top` | Real-time process monitor | processes |
|
|
284
|
+
| `touch` | Create an empty file or update its timestamp | files |
|
|
285
|
+
| `tr` | Translate or delete characters | text |
|
|
286
|
+
| `tree` | Display directories as a tree | files |
|
|
287
|
+
| `type` | Identify commands, aliases and functions | basics |
|
|
288
|
+
| `umask` | Understand new-file permissions | shell |
|
|
289
|
+
| `uname` | System and kernel information | system |
|
|
290
|
+
| `uniq` | Filter adjacent duplicate lines | text |
|
|
291
|
+
| `unzip` | Inspect and extract ZIP archives | files |
|
|
292
|
+
| `uptime` | Show how long the system has been running | system |
|
|
293
|
+
| `vim` | Modal terminal text editor | shell |
|
|
294
|
+
| `watch` | Execute a command periodically | processes |
|
|
295
|
+
| `wc` | Count lines, words and bytes | text |
|
|
296
|
+
| `whoami` | Show the current user | system |
|
|
297
|
+
| `xargs` | Build and execute commands from stdin | text |
|
|
298
|
+
| `zip` | Create ZIP archives | files |
|
|
299
|
+
|
|
300
|
+
<!-- END GENERATED CATALOG -->
|
|
301
|
+
|
|
302
|
+
## Development
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
python3 -m venv .venv
|
|
306
|
+
. .venv/bin/activate
|
|
307
|
+
python -m pip install -e '.[dev]'
|
|
308
|
+
ruff check .
|
|
309
|
+
python -m scripts.update_catalog_docs --check
|
|
310
|
+
pytest -q
|
|
311
|
+
python -m build
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Content lives in validated bilingual JSON under `guia_linux/content/`, not in executable Python or
|
|
315
|
+
ANSI-colored strings. References can share example IDs without duplicating definitions.
|
|
316
|
+
|
|
317
|
+
- `catalog.py` loads/validates content and handles lookup/search.
|
|
318
|
+
- `render.py` presents it using stream-local `shellcolorize` colors, without global color mutation.
|
|
319
|
+
- `learning.py` displays lessons and practice plans without executing commands.
|
|
320
|
+
- `cli.py` parses requests; `models.py` holds immutable reference data.
|
|
321
|
+
|
|
322
|
+
The CI tests the declared minimum and published `shellcolorize` versions, builds a wheel and
|
|
323
|
+
checks installation outside the checkout. There is no automatic publication.
|
|
324
|
+
|
|
325
|
+
## Contribute
|
|
326
|
+
|
|
327
|
+
Found an incorrect example or confusing explanation? Open an issue; please remove private paths,
|
|
328
|
+
credentials and personal information from output. New contributors can improve a translation,
|
|
329
|
+
add a tested beginner example or clarify an error message.
|
|
330
|
+
|
|
331
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) and the [content guide](docs/content-guide.md).
|
|
332
|
+
For releases, see the [release checklist](docs/releasing.md). The [demo](docs/demo.gif) shows the
|
|
333
|
+
current beginner journey with real terminal output; its [recording](docs/demo.cast) is also included.
|
|
334
|
+
|
|
335
|
+
## License
|
|
336
|
+
|
|
337
|
+
[MIT](LICENSE). [Changelog](CHANGELOG.md).
|