# Bash · Console Tools — plan kart Status: L01–L08 gotowe; seria zakończona i odbierana w profilu `native-amd64` przez `stemctl`. Seria przygotowuje warsztat przed FPGA, assemblerem i C. Nazwa obejmuje pracę w powłoce i terminalu; BusyBox może udostępniać `ash`, więc nie utożsamiamy każdego appletu BusyBox z implementacją Bash. ```text Bash · Console Tools ├── L01 · BusyBox — the Swiss Army Knife ├── L02 · Tmux — sessions, windows and panes ├── L03 · Neovim — navigation and editing ├── L04 · Git Basics I — status, add and commit ├── L05 · Git Basics II — log, diff and restore ├── L06 · Git Branching I — branch, switch and merge ├── L07 · Git Branching II — rebase and conflicts └── L08 · Docker Fundamentals ``` Każda karta zawiera trzy wykonywalne taski. Repozytorium karty dostarcza kontrakt `stem-card.yaml`, testy stanu, wygenerowany widok React, dwustronicowy PDF A4 oraz akcje `build`, `test`, `run` i `debug`. Debug zapisuje `trace.log` w katalogu artefaktów tasku. ## Stan odbioru serii — 2026-07-21 | Karta | Dowód końcowy | | --- | --- | | L01 BusyBox | dispatch multicall, operacje plikowe, proces i host | | L02 Tmux | sesja, okna i panele, zachowanie stanu po detach/attach | | L03 Neovim | nawigacja, search/edit/save, undo/redo | | L04 Git Basics I | init, status/add, pierwszy commit i clean | | L05 Git Basics II | log, diff staged/worktree, bezpieczne restore | | L06 Git Branching I | branch/switch, rozbieżność, merge commit | | L07 Git Branching II | rebase, rzeczywisty konflikt UU, liniowa historia | | L08 Docker | specyfikacja image, lifecycle, volume i bind mount | Wszystkie 24 taski przechodzą w kontenerze `native-amd64`. Każdy task pracuje w izolowanym katalogu tymczasowym i raportuje mierzalny komunikat `PASS`. ### Granice środowiska Obraz `native-amd64` nie zawiera BusyBox. L01 używa więc audytowalnego fixture C implementującego wyłącznie ćwiczony mechanizm multicall, wykrywa prawdziwy BusyBox, gdy jest dostępny, i zawsze raportuje użyty backend. Fixture nie jest przedstawiany jako binarka BusyBox. Profil ucznia nie otrzymuje socketu Docker/Podman. L08 używa jawnego modelu stanów offline do sprawdzenia semantyki image/container/storage. Jego `PASS` nie oznacza uruchomienia prawdziwego silnika. Powtórzenie ćwiczenia z realnym CLI należy wykonać na kontrolowanej maszynie operatorskiej, najlepiej z rootless Podmanem albo Dockerem, bez montowania socketu do kontenera ucznia. ### Sposób uruchamiania ```bash stemctl series show console-bash stemctl list-cards console-bash stemctl card use console-bash L01 stemctl test native-amd64 console-bash L01 1 stemctl debug native-amd64 console-bash L01 3 ``` Numer karty i tasku można podmienić na dowolne L01–L08 i 1–3. Identyfikatory, repozytoria i kolejność kart są zapisane w `series/console-bash.json`, a stan realizacji w `catalog/console-bash.json`. Pierwotne ustalenia znajdują się również w `series/inf/lab-rv32i-c-pointers-arrays/guidelines/console-series.md`.