feat(core): the command line with its local commands after Java, measured against Java

The terminal splits a line as Java's window does and runs ls, cd, pwd,
mkdir, touch, cp, mv, rm, cat, test, help, ipconfig and route on the
node's files, which are the project's own. Its texts are generated from
the bundle Java loads. TerminalCases feeds Java's Terminal without a
network (16 cases, de and en); eight cases name Java bugs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-01 20:32:35 +00:00
co-authored by Claude Opus 5.5
parent 058675a148
commit 016f9461df
17 changed files with 14404 additions and 7 deletions
+29
View File
@@ -764,3 +764,32 @@ Gemessen (01.10.2026):
* Wer von zwei fast gleichzeitig gebauten Sockets die nächste
TCP-Startnummer zieht, entscheidet der Thread-Takt (Programm und
Weiterleitung des Servers, wenige Millisekunden auseinander).
## Befehlszeile, lokale Befehle (F3.4a)
`TerminalCases` füttert Javas `Terminal` mit Zeilen, wie sie getippt
werden, und zerlegt sie wie das Fenster (`GUIApplicationTerminalWindow`:
erstes Wort der Befehl, dann die Parameter, mindestens drei leere dazu;
`exit`, `cls`, `reset` und leere Zeilen behandelt das Fenster selbst). Ohne
laufendes Netz, auf Rechner 10.0.0.2 von `router-web` mit festen Dateien.
Geschrieben werden je Zeile, was das Programm dem Fenster sagt, der
Arbeitsordner und alle Dateien, dazu die Terminal-Texte des Bündels, wie
Java sie lädt (daraus `terminalTexts.ts`).
Gemessen (01.10.2026):
* Java ruft jede Methode des Terminals mit `String[]`-Parameter auf, deren
Name der Befehl ist, mit Groß- und Kleinschreibung (`LS` ist unbekannt).
* Ordner listet `ls` in der Reihenfolge, in der die Einträge entstanden;
Pfade findet Java ohne Rücksicht auf Groß- und Kleinschreibung und zeigt
die gespeicherte Schreibweise.
* Die Größe einer Datei: Java dekodiert jeden Inhalt als Base64 und zählt
die Bytes, nur bei einem Fehler die Zeichen; „Hallo Welt“ hat 6.
* Fehler: `ls` auf einen fehlenden Ordner sagt „leer“, `dir /` schreibt
„Verzeichnis :“; `cd` auf eine Datei macht sie zum Arbeitsordner; `touch`
und `mkdir` in einem fehlenden Ordner melden „erstellt“ bzw. „bereits
vorhanden“; `cp` auf einen Ordnernamen wirft; `..` über der Wurzel findet
nichts oder wirft; `rm` (und das Löschen bei `mv`) hängt einen absoluten
Pfad an den Arbeitsordner, `rm /` löscht den Arbeitsordner und meldet
Erfolg; `mv` auf die Datei selbst (auch in anderer Schreibweise) löscht
sie.