> ## Documentation Index
> Fetch the complete documentation index at: https://support.labex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# LabEx VM Terminaloberfläche

> Die LabEx Terminaloberfläche bietet eine leichte, browserbasierte Befehlszeilenumgebung, die von TTYD betrieben wird. Sie basiert auf Ubuntu 22.04 und bietet eine optimierte Oberfläche für Befehlszeilenoperationen und textbasierte Aufgaben.

## Terminal-Vorschau

<img src="https://mintcdn.com/huhuhang/q4ekfuwM7mDVAiiH/images/terminal.png?fit=max&auto=format&n=q4ekfuwM7mDVAiiH&q=85&s=2ec4396dab3d6df8b4adce3498c1ad59" alt="Terminal Preview" width="1112" height="404" data-path="images/terminal.png" />

Die Terminalumgebung ist besonders nützlich für:

1. Befehlszeilenorientierte Aufgaben und Operationen
2. Serveradministration und Systemkonfiguration
3. Textbasiertes Programmieren und Debuggen
4. Ressourceneffizienter Fernzugriff, wenn keine GUI benötigt wird

## Auf das Terminal zugreifen

1. Wenn der Kursleiter empfiehlt, standardmäßig die Terminalumgebung für das Lab zu verwenden, sehen Sie die Terminalumgebung, wenn Sie sie starten.
2. Sie können zusätzliche Terminalsitzungen erstellen, indem Sie auf die Schaltfläche + oben in der Oberfläche klicken.

<img src="https://mintcdn.com/huhuhang/lbTGZZG7azHYkwfT/images/screenshot-20241022-CsiJ0RAS@2x.png?fit=max&auto=format&n=lbTGZZG7azHYkwfT&q=85&s=58d906aab3488a173fc84b234470f348" alt="Terminal Tabs" width="1408" height="392" data-path="images/screenshot-20241022-CsiJ0RAS@2x.png" />

## Umgebungsmerkmale

Die Terminaloberfläche bietet mehrere wichtige Funktionen:

1. Mehrere Terminalsitzungen:
   * Erstellen Sie neue Sitzungen mit der Schaltfläche +
   * Wechseln Sie zwischen Sitzungen mit Tabs
   * Schließen Sie Sitzungen bei Bedarf einzeln

2. Vollständige Ubuntu-Umgebung:
   * Basierend auf Ubuntu 22.04 LTS
   * Zugriff auf Standard-Ubuntu-Repositories
   * Unterstützung für gängige Befehlszeilen-Tools und -Dienstprogramme

3. Textbasierte Tools:
   * Vim/Nano-Texteditoren
   * Befehlszeilen-Compiler und -Interpreter
   * Paketverwaltung über apt
   * Git für die Versionskontrolle

## TTYD-Funktionen

Die Terminaloberfläche wird von [TTYD](https://github.com/tsl0922/ttyd) (Terminal Over HTTP) betrieben und bietet mehrere erweiterte Funktionen:

**Verwenden von tmux-Befehlen:**

```bash theme={null}
# Splits erstellen
tmux split-window -h     # Vertikal teilen
tmux split-window -v     # Horizontal teilen
tmux split-window -hf    # Vertikaler Split in voller Höhe
tmux split-window -vf    # Horizontaler Split in voller Breite

# Zwischen Bereichen navigieren
tmux select-pane -L      # Zum linken Bereich wechseln
tmux select-pane -R      # Zum rechten Bereich wechseln
tmux select-pane -U      # Zum oberen Bereich wechseln
tmux select-pane -D      # Zum unteren Bereich wechseln

# Bereiche vergrößern/verkleinern
tmux resize-pane -L 10   # Um 10 Zellen nach links vergrößern
tmux resize-pane -R 10   # Um 10 Zellen nach rechts vergrößern
tmux resize-pane -U 5    # Um 5 Zellen nach oben vergrößern
tmux resize-pane -D 5    # Um 5 Zellen nach unten vergrößern

# Zusätzliche Operationen
tmux kill-pane          # Aktuellen Bereich schließen
tmux select-layout tiled # Bereichsgrößen ausgleichen
```

<img src="https://mintcdn.com/huhuhang/q4ekfuwM7mDVAiiH/images/screenshot-20241022-Re5eBNxa@2x.png?fit=max&auto=format&n=q4ekfuwM7mDVAiiH&q=85&s=2f701d9d389320407a15249bcd6a0010" alt="Terminal Split Screen" width="688" height="342" data-path="images/screenshot-20241022-Re5eBNxa@2x.png" />

### Scrollen in tmux

In tmux **lassen sich Mausrad-Scrollen und normales Ziehen-zum-Auswählen und Kopieren nicht in einem Modus vereinen**. Das Terminal kann das Mausrad entweder an tmux weitergeben (für die Scrollback-Navigation) oder Mausereignisse dem Browser überlassen (für Markieren und Kopieren), nicht beides gleichzeitig mit denselben Gesten.

LabEx deaktiviert die Mausunterstützung standardmäßig, damit Sie im Browser wie gewohnt markieren und kopieren können. Wenn Sie den Mausmodus aktivieren, scrollt das Rad innerhalb von tmux; übliches Klicken-Ziehen zum Kopieren steht dann jedoch nicht mehr zur Verfügung, bis Sie die Einstellung wieder ändern.

**Maus-Scrolling vorübergehend aktivieren (nur aktuelle Sitzung):**

```bash theme={null}
tmux set -g mouse on
```

**Maus-Scrolling dauerhaft aktivieren (alle künftigen Sitzungen):**

```bash theme={null}
echo 'set -g mouse on' >> ~/.tmux.conf && tmux source-file ~/.tmux.conf
```

**Wenn Sie wieder kopieren möchten:**

* Mausmodus aus: `tmux set -g mouse off`, oder `set -g mouse on` in `~/.tmux.conf` entfernen bzw. auskommentieren und `tmux source-file ~/.tmux.conf` ausführen.
* In manchen Clients können Sie beim Markieren **Shift** gedrückt halten, um die tmux-Mausbehandlung zu umgehen; das Verhalten hängt von Browser und TTYD ab. Zuverlässig ist, den Mausmodus wieder auszuschalten, um einfaches Kopieren wiederherzustellen.

## Nutzungsszenarien

<AccordionGroup>
  <Accordion title="Grundlegende Befehlszeilenoperationen" icon="terminal">
    Häufige Terminalbefehle, die Sie verwenden werden:

    ```bash theme={null}
    # Datei- und Verzeichnisoperationen
    ls -la           # Alle Dateien mit Details auflisten
    cd /path/to/dir  # Verzeichnis wechseln
    mkdir new-dir    # Verzeichnis erstellen
    rm -rf dir       # Verzeichnis entfernen

    # Systeminformationen
    uname -a         # Systeminformationen
    df -h            # Festplattenauslastung
    top              # Prozessüberwachung
    ```
  </Accordion>

  <Accordion title="Textbearbeitung" icon="square-pen">
    Sie können verschiedene Texteditoren verwenden:

    1. Vim:

    ```bash theme={null}
    vim filename.txt  # Datei in Vim öffnen/erstellen
    ```

    2. Nano:

    ```bash theme={null}
    nano filename.txt # Datei in Nano öffnen/erstellen
    ```

    Beide Editoren sind vorinstalliert und einsatzbereit.
  </Accordion>

  <Accordion title="Paketverwaltung" icon="box">
    Softwarepakete installieren und verwalten:

    ```bash theme={null}
    # Paketliste aktualisieren
    sudo apt update

    # Neue Pakete installieren
    sudo apt install package-name

    # Pakete entfernen
    sudo apt remove package-name

    # Nach Paketen suchen
    apt search keyword
    ```
  </Accordion>
</AccordionGroup>

## Häufig gestellte Fragen

<AccordionGroup>
  <Accordion title="Wie kopiere und füge ich Text ein?" icon="clipboard">
    TTYD unterstützt mehrere Methoden zum Kopieren/Einfügen:

    1. Mit der Maus:
       * Text zum Kopieren auswählen
       * Mit der rechten Maustaste einfügen

    2. Mit der Tastatur:
       * Kopieren: Strg+Einfg oder Strg+Umschalt+C
       * Einfügen: Umschalt+Einfg oder Strg+Umschalt+V

    Hinweis: Tatsächliche Verknüpfungen können je nach Browser und Betriebssystem variieren.
  </Accordion>

  <Accordion title="Kann ich auf Dateien von meinem lokalen Rechner zugreifen?" icon="upload">
    Ja, Sie können Dateien mit Befehlszeilentools übertragen:

    1. Für Textinhalte:
       * Direkt in das Terminal kopieren und einfügen
       * Texteditoren zum Erstellen und Ändern von Dateien verwenden

    2. Für Binärdateien:
       * Verwenden Sie die WebIDE-Oberfläche für Datei-Uploads/Downloads
       * Wechseln Sie zur WebIDE-Registerkarte für Dateiverwaltungsvorgänge
             <img src="https://mintcdn.com/huhuhang/q4ekfuwM7mDVAiiH/images/screenshot-20241022-j7Pl3YZQ@2x.png?fit=max&auto=format&n=q4ekfuwM7mDVAiiH&q=85&s=ab2b59536671cb0184c1f57d3a981fec" alt="Dateien hochladen" width="1412" height="1250" data-path="images/screenshot-20241022-j7Pl3YZQ@2x.png" />

    Denken Sie daran, dass alle Dateien temporär sind und beim Beenden Ihrer Sitzung verloren gehen.
  </Accordion>

  <Accordion title="Wie installiere ich zusätzliche Software?" icon="wrench">
    Sie können Software mit apt installieren:

    ```bash theme={null}
    # Paketliste aktualisieren
    sudo apt update

    # Software installieren
    sudo apt install package-name
    ```

    Beachten Sie, dass:

    1. Installationen temporär sind und beim Beenden Ihrer Sitzung zurückgesetzt werden
    2. Sie volle sudo-Rechte für die Paketverwaltung haben
    3. Nur Pakete installieren, die für Ihr aktuelles Lab benötigt werden
  </Accordion>

  <Accordion title="Warum die Terminaloberfläche wählen?" icon="circle-question-mark">
    Die Terminaloberfläche ist ideal, wenn:

    1. Sie eine leichte Umgebung benötigen, die schnell geladen wird
    2. Ihre Aufgaben hauptsächlich auf der Befehlszeile basieren
    3. Sie sich auf Terminalbefehle konzentrieren möchten, ohne GUI-Ablenkungen
    4. Sie über eine Verbindung mit geringer Bandbreite arbeiten
    5. Sie Labs absolvieren, die keine grafischen Oberflächen erfordern

    Erwägen Sie die Verwendung von Desktop- oder WebIDE-Oberflächen, wenn Sie GUI-Anwendungen oder erweiterte IDE-Funktionen benötigen.
  </Accordion>

  <Accordion title="Was passiert, wenn meine Terminalsitzung einfriert?" icon="wind">
    Wenn Ihr Terminal nicht mehr reagiert:

    1. Versuchen Sie, Strg+C zu drücken, um den aktuellen Prozess zu unterbrechen
    2. Erstellen Sie eine neue Terminalsitzung mit der Schaltfläche +
    3. Aktualisieren Sie bei Bedarf die Browserseite, um alle Sitzungen zurückzusetzen

    Beachten Sie, dass durch das Aktualisieren alle aktuellen Terminalsitzungen geschlossen und neue gestartet werden.
  </Accordion>
</AccordionGroup>
