Desktop-CLI
Der Desktop-Build von DR-Terminal bringt eine Befehlszeilenschnittstelle mit. Nützlich für IDE-Integrationen, Skripting und Automatisierung.
Verwendung
DR-Terminal connect <target> [flags]
- target — wird zuerst als Name einer gespeicherten Verbindung aufgelöst (Groß-/Kleinschreibung ignoriert), dann über
host[:port]mit den gespeicherten Verbindungen abgeglichen (bei Angabe von-uweiter eingegrenzt) und schließlich alshost[:port]für eine Ad-hoc-Sitzung geparst. Ein Treffer unter den gespeicherten Verbindungen übernimmt deren Theme, Gruppe und hinterlegte Zugangsdaten.
Flags
| Flag | Beschreibung |
|---|---|
-u, --user | Benutzername (für host:port-Ziele). |
-p, --password | Passwort auf der Befehlszeile (unsicher — kann im Shell-Verlauf landen). |
--password-stdin | Passwort von stdin lesen (sicher: pass show server | DR-Terminal ...). Nur mit --exec. |
-i, --identity | Datei mit privatem Schlüssel (PEM). Nur mit --exec. |
-j, --jump | Kette von Jump-Hosts nach Namen, z. B. bastion1,bastion2. |
-c, --command | Shell-Snippet: nach der Anmeldung eingespeist (Standard) oder mit --exec headless ausgeführt. |
--new-tab | Erzwingt das Öffnen eines neuen Tabs in der laufenden Instanz. |
--exec | Headless: Befehl ausführen, stdout/stderr streamen, mit dem entfernten Exit-Code beenden. |
-h, --help | Diese Hilfe anzeigen. |
-i und --password-stdin gelten nur für headless ausgeführte --exec-Läufe. Beim Öffnen eines Tabs in der GUI nutzt die Authentifizierung die Zugangsdaten der gespeicherten Verbindung oder die üblichen In-App-Abfragen.
Beispiele
# Open a new tab in the running instance and log into saved "lager"
DR-Terminal connect lager --new-tab
# Ad-hoc host with user — the app prompts for credentials
DR-Terminal connect 10.0.0.1:22 -u pi --new-tab
# Jump chain: bastion1 → bastion2 → target
DR-Terminal connect production -j bastion1,bastion2 --new-tab
# Headless exec with a key file — prints uptime and exits
DR-Terminal connect 10.0.0.1:22 -u pi -i ~/.ssh/id_ed25519 --exec -c 'uptime'
# CLI start script: run commands after login
DR-Terminal connect dev --new-tab -c 'cd /srv/app && tmux attach -t main'
Lokales Terminal aus der CLI
DR-Terminal local [flags]
Öffnet einen neuen Tab des Lokalen Terminals in der GUI (und startet die App, falls sie nicht läuft) und tippt optional einen Befehl in die bereitstehende Shell. Die Shell bleibt nach Abschluss des Befehls interaktiv — der Tab ist eine gewöhnliche lokale Sitzung.
| Flag | Beschreibung |
|---|---|
-t, --type | Zu öffnende Shell: system, cmd, powershell, pwsh, wsl oder wsl:<Distribution>. Weggelassen: die in den Einstellungen konfigurierte lokale Shell — dieselbe, die der Button „Lokales Terminal“ öffnet. Die Wahl gilt nur für diesen Tab. |
-c, --command | Wird in die Shell des neuen Tabs getippt, sobald sie bereit ist — nie in die Sitzung, die gerade aktiv war. |
--cwd | Arbeitsverzeichnis für die Shell. Weggelassen: das Verzeichnis, aus dem die CLI aufgerufen wurde, sodass relative Pfade in --command auf dieselben Dateien zeigen — egal, ob die App bereits lief oder nicht. |
cmd, powershell, pwsh und wsl sind Windows-Shells; auf anderen Systemen verwende --type system oder konfiguriere die Shell in den Einstellungen.
# Default local shell, run a script from the current directory
DR-Terminal local --command "python3 aaaa.py"
# Windows: force CMD and a working directory with spaces
DR-Terminal.exe local --type cmd --cwd "C:\projekty\demo" --command "python3 aaaa.py"
# Just open a WSL tab in a picked distribution
DR-Terminal local --type wsl:Ubuntu-24.04
Symlink in den PATH
Erstelle nach der Installation von DR-Terminal einen Symlink, damit der Befehl global funktioniert:
sudo ln -s /path/to/DR-Terminal/bin/DR-Terminal /usr/local/bin/dr-terminal
dr-terminal connect lager --exec -c 'df -h'
Einzelinstanz
DR-Terminal hält eine Instanz pro Benutzer aufrecht (Unix-Domain-Socket oder benannte Pipe unter Windows). Ein zweites DR-Terminal connect ... oder DR-Terminal local ... leitet seine Argumente an die laufende Instanz weiter und beendet sich — die laufende Instanz öffnet dann einen neuen Tab.