CLI AI

Windows-Befehle und ihre Entsprechung unter Linux

2026-07-13

dir ist ls -l, type ist cat, findstr ist grep, ipconfig ist ip addr, tasklist ist ps aux und netstat -ano ist ss -tulpn. Die vollständige Tabelle steht unten, doch die Zuordnung ist der leichte Teil: Groß- und Kleinschreibung, der fehlende Papierkorb und CRLF-Zeilenenden sind das, was die erste Woche wirklich kaputt macht.

Windows Linux
dir ls -l
cd cd, und pwd für den aktuellen Ort
type cat
findstr grep
copy / move / del cp / mv / rm
md / rd mkdir / rmdir
cls clear
tasklist / taskkill ps aux / kill
ipconfig ip addr
netstat -ano ss -tulpn
where command -v
systeminfo uname -a, /etc/os-release
shutdown /r reboot

1. dir → ls -l

clai
$ clai zeige die dateien hier mit größe→ ls -ltotal 12-rw-r--r--    1 root     root            23 Aug 27 15:38 hosts.csvdrwxr-xr-x    2 root     root          4096 Aug 27 15:38 logs-rw-r--r--    1 root     root            17 Aug 27 15:38 notes.txt

Die erste Spalte sind die Rechte, ein führendes d bedeutet Verzeichnis. Nacktes ls gibt nur Namen aus, -l ergänzt Größe und Datum, -a zeigt Dateien mit führendem Punkt — das sind hier die "versteckten".

2. type → cat

clai
$ clai zeige mir den inhalt von notes.txt→ cat notes.txtalphabetagamma

cat gibt die ganze Datei aus. Für lange Dateien nimmt man less (beenden mit q), für Anfang oder Ende head und tail.

3. findstr → grep

clai
$ clai suche das wort ERROR in allen dateien in diesem ordner→ grep -rn "ERROR" ../logs/app.log:1:ERROR timeout after 30s

-r geht in Unterverzeichnisse, -n druckt Zeilennummern. Die Schreibweise zählt: ERROR und error sind verschiedene Wörter, mit -i ist es egal.

4. ipconfig → ip addr

clai
$ clai zeige die ip-adresse meiner netzwerkschnittstelle→ ip addr show eth0122: eth0@if123: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP     link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0       valid_lft forever preferred_lft forever

inet ist die IPv4-Adresse, link/ether die MAC. Die Schnittstelle heißt nicht immer eth0 — auf einer echten Maschine kann es enp5s0 oder wlan0 sein, und ip addr ohne Argument listet alle auf.

5. tasklist → ps

clai
$ clai zeige laufende prozesse mit ihren nummern→ ps -o pid,commPID   COMMAND    1 sh   13 sleep   14 ps

Nacktes ps zeigt nur die eigene Sitzung. Die volle Liste ist ps aux, und taskkill /PID wird zu kill <pid>.

6. netstat -ano → ss -tulpn

clai
$ clai zeige wer auf port 8099 lauscht→ ss -tulpn 'sport = :8099'Netid State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess                              tcp   LISTEN 0      5          127.0.0.1:8099      0.0.0.0:*    users:(("python3",pid=1027487,fd=3))

ss ersetzt netstat, das moderne Distributionen nicht mehr mitliefern. Die Flags liest man so: -t tcp, -u udp, -l nur lauschende, -p Prozess, -n keine Namensauflösung. Die Spalte Process entspricht direkt der PID aus netstat -ano.

Gotchas

  • Groß- und Kleinschreibung zählt überall. Notes.txt und notes.txt sind zwei Dateien, und LS ist kein Befehl. Das ist Grund Nummer eins dafür, dass ein Skript "auf meiner Maschine lief".
  • Es gibt keinen Papierkorb. rm löscht sofort und endgültig, del hatte wenigstens ein Ziel. Vor rm -r dasselbe Muster erst mit ls anschauen.
  • Ein unter Windows geschriebenes Skript startet nicht. CRLF-Zeilenenden liefern bash: ./crlf.sh: /bin/sh^M: bad interpreter: No such file or directory mit Exit-Code 126. Reparatur: sed -i 's/\r$//' script.sh, und im Editor auf LF umstellen.

Related questions

Welche Version läuft bei mir? cat /etc/os-release nennt Distribution und Version, uname -srm Kernel und Architektur. Zusammen ersetzen sie systeminfo.

Wo sind die Programme? Binärdateien liegen in /usr/bin, ihre Daten in /usr/share, Konfiguration in /etc, Fremdpakete oft in /opt. Einen einzigen Programmordner gibt es nicht.

Was ersetzt den Explorer? mc liefert einen Dateimanager mit zwei Fenstern im Terminal — vertraut für alle, die Far oder Norton Commander kennen.

See also

CliAI lässt Sie die Aufgabe so beschreiben, wie Sie ohnehin denken, und zeigt den Linux-Befehl vor der Ausführung. In einer Zeile installieren.