> Die vollständige Liste der Artikel steht in [llms.txt](https://docs.f3cloud.com/llms.txt). Jede Seite gibt es auch als Markdown, dazu einfach .md an die Adresse anhängen. Diese Seite als Markdown: [https://docs.f3cloud.com/de/software-setup/screen-linux-tool.md](https://docs.f3cloud.com/de/software-setup/screen-linux-tool.md).

# Der Befehl screen unter Linux, Arbeiten im Hintergrund und Tastenkürzel

So verwenden Sie Screen unter Linux. Installation, Sitzungen, die nach dem Trennen der SSH-Verbindung weiterlaufen, mehrere Fenster und geteilter Bildschirm, ein Spickzettel der Tastenkürzel und Lösungen für häufige Probleme.

**Screen** ist ein Programm, das Ihre Befehle am Laufen hält, auch wenn Sie die Verbindung zum Server getrennt haben. Normalerweise stoppt alles, was im Terminal läuft, sobald Sie das SSH-Fenster schließen oder das Internet ausfällt. In Screen arbeitet der Prozess weiter, und Sie können später von jedem beliebigen Gerät zu ihm zurückkehren.

Screen ist praktisch, wenn Sie eine lange Aufgabe starten möchten, etwa ein Systemupdate, eine Sicherung oder einen Telegram-Bot, und auch, um mehrere Terminals in einer einzigen Verbindung zu nutzen.

***

### Installation

#### Ubuntu und Debian

```bash
# Screen aus dem Standard-Repository installieren
apt-get install -y screen
```

#### AlmaLinux, CentOS Stream

```bash
# Screen liegt im EPEL-Repository, deshalb binden wir es zuerst ein
dnf install -y epel-release

# Screen installieren
dnf install -y screen
```

Ob alles installiert ist, prüfen Sie mit dem Befehl `screen --version`.

***

### So funktioniert die Steuerung

In Screen erledigen Sie alles über Tastenkombinationen, und jede beginnt mit <kbd>Ctrl</kbd> + <kbd>A</kbd>. Drücken Sie zuerst <kbd>Ctrl</kbd> + <kbd>A</kbd>, lassen Sie beide Tasten los und drücken Sie erst dann den gewünschten Buchstaben. Zum Beispiel trennt „<kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>d</kbd>“ Sie von der Sitzung.

> **Groß- und Kleinschreibung zählt.**
>
> Groß- und Kleinbuchstaben lösen unterschiedliche Befehle aus. So teilt <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>Shift</kbd> + <kbd>S</kbd> den Bildschirm.\
> Ein kleines <kbd>s</kbd> friert dagegen die Ausgabe im Fenster ein.
>
> Reagiert das Fenster nicht mehr, drücken Sie <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>q</kbd>. Achten Sie auf das Tastaturlayout und die Feststelltaste.

***

### 1. Sitzung erstellen

Starten Sie Screen und geben Sie der Sitzung gleich einen verständlichen Namen, damit Sie sie später leicht wiederfinden.

```bash
# Sitzung mit dem Namen backup erstellen
screen -S backup
```

Es öffnet sich ein leeres Terminal, und das ist bereits ein Fenster innerhalb von Screen. Starten Sie darin den gewünschten Befehl. In unserem Beispiel ist das `ping`, das so lange läuft, bis es jemand stoppt.

<figure><img src="https://docs.f3cloud.com/img/screen-session.png" alt="Befehl ping, gestartet in einer Screen-Sitzung"><figcaption><p>Der Befehl läuft in der Sitzung backup</p></figcaption></figure>

***

### 2. Von der Sitzung trennen

Drücken Sie <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>d</kbd>. Sie kehren ins normale Terminal zurück und sehen eine Meldung wie `[detached from 5084.backup]`.

Der Befehl in der Sitzung läuft dabei weiter. Jetzt können Sie die SSH-Verbindung ruhig schließen und den Computer ausschalten.

***

### 3. Liste der Sitzungen anzeigen

```bash
# Alle Screen-Sitzungen auf dem Server anzeigen
screen -ls
```

<figure><img src="https://docs.f3cloud.com/img/screen-detached.png" alt="Meldung über das Trennen und Liste der Screen-Sitzungen"><figcaption><p>Trennen von der Sitzung und Liste der Sitzungen</p></figcaption></figure>

In der Liste sehen Sie Nummer und Namen der Sitzung, zum Beispiel `5084.backup`, den Zeitpunkt ihrer Erstellung und ihren Status:

* **Detached** – mit der Sitzung ist gerade niemand verbunden, sie läuft im Hintergrund;
* **Attached** – mit der Sitzung ist gerade jemand verbunden.

***

### 4. Zur Sitzung zurückkehren

```bash
# Mit der Sitzung backup verbinden
screen -r backup
```

Es öffnet sich dasselbe Fenster, in dem Sie aufgehört haben, und der Befehl läuft weiter, als wäre nichts gewesen. Gibt es nur eine Sitzung, können Sie den Namen weglassen, dann genügt `screen -r`.

Sind Sie bereits aus einem anderen Fenster mit der Sitzung verbunden, etwa weil die Verbindung abgerissen ist und die alte Verbindung „hängt“, verwenden Sie den folgenden Befehl.

```bash
# Sitzung von der alten Verbindung trennen und neu verbinden
screen -d -r backup
```

Und um eine Sitzung gleichzeitig von zwei Stellen aus zu verfolgen, zum Beispiel gemeinsam mit einem Kollegen, verbinden Sie sich mit `screen -x backup`.

***

### 5. Mit mehreren Fenstern arbeiten

In einer Sitzung können Sie mehrere Fenster öffnen und wie zwischen Tabs zwischen ihnen wechseln.

* <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>c</kbd> – neues Fenster erstellen.
* <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>Shift</kbd> + <kbd>A</kbd> – aktuelles Fenster umbenennen.
* <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>"</kbd> – Liste der Fenster öffnen. Wählen Sie ein Fenster mit den Pfeiltasten aus und drücken Sie <kbd>Enter</kbd>.
* <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>n</kbd> oder <kbd>p</kbd> – nächstes oder vorheriges Fenster.
* <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann eine Ziffer von <kbd>0</kbd> bis <kbd>9</kbd> – zum Fenster mit dieser Nummer wechseln.
* <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>k</kbd> – aktuelles Fenster schließen.

<figure><img src="https://docs.f3cloud.com/img/screen-windows.png" alt="Liste der Fenster in einer Screen-Sitzung"><figcaption><p>Liste der Fenster in einer Sitzung</p></figcaption></figure>

***

### 6. Bildschirm teilen

Screen kann mehrere Fenster gleichzeitig anzeigen. So läuft zum Beispiel links ein langer Befehl, während Sie rechts die Auslastung des Servers sehen.

1. Drücken Sie <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>|</kbd>, um den Bildschirm vertikal zu teilen, oder <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>Shift</kbd> + <kbd>S</kbd>, um ihn horizontal zu teilen.
2. Wechseln Sie mit <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>Tab</kbd> in die neue Hälfte.
3. Die neue Hälfte ist leer. Öffnen Sie darin ein Fenster, indem Sie <kbd>Ctrl</kbd> + <kbd>A</kbd> und die Nummer des Fensters drücken, oder erstellen Sie mit <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>c</kbd> ein neues.

<figure><img src="https://docs.f3cloud.com/img/screen-split.png" alt="Screen-Bildschirm, in zwei Bereiche geteilt"><figcaption><p>Links läuft ping, rechts top</p></figcaption></figure>

Die aktuelle Hälfte schließen Sie mit <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>Shift</kbd> + <kbd>X</kbd>.\
Nur die aktuelle Hälfte behalten Sie mit <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>Shift</kbd> + <kbd>Q</kbd>.\
Die Fenster selbst bleiben dabei geöffnet.

***

### 7. Sitzung beenden

Wenn die Aufgabe erledigt ist, schließen Sie alle Fenster mit `exit`, und die Sitzung beendet sich von selbst. Sie können die Sitzung auch komplett von außen beenden, ohne sich mit ihr zu verbinden.

```bash
# Sitzung backup samt allen Fenstern schließen
screen -S backup -X quit
```

***

### Nützliche Tricks

#### Direkt im Hintergrund starten

Um einen Befehl in Screen zu starten, ohne die Sitzung zu betreten, verwenden Sie die Optionen `-dm`. So lassen sich Bots und Skripte bequem starten.

```bash
# Sitzung bot erstellen und darin ein Skript starten, ohne sich zu verbinden
screen -dmS bot python3 bot.py
```

#### Nach oben scrollen

Mit dem Mausrad lässt sich der Verlauf in Screen meist nicht durchblättern. Drücken Sie <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>[</kbd>, und blättern Sie mit <kbd>PgUp</kbd> und <kbd>PgDn</kbd> oder den Pfeiltasten. Den Scrollmodus verlassen Sie mit <kbd>Esc</kbd>.

#### Ausgabe in eine Datei schreiben

Starten Sie Screen mit der Option `-L`, wird alles, was im Fenster erscheint, in der Datei `screenlog.0` im aktuellen Ordner gespeichert.

***

### Spickzettel

| Befehl | Was er bewirkt |
| --- | --- |
| `screen -S name` | Sitzung mit Namen erstellen |
| `screen -ls` | Alle Sitzungen anzeigen |
| `screen -r name` | Zur Sitzung zurückkehren |
| `screen -d -r name` | Sitzung von einer alten Verbindung übernehmen |
| `screen -x name` | Zu zweit mit einer Sitzung verbinden |
| `screen -dmS name befehl` | Befehl in einer Hintergrundsitzung starten |
| `screen -S name -X quit` | Sitzung beenden |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>d</kbd> | Trennen, ohne die Befehle zu stoppen |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>c</kbd> | Neues Fenster |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>"</kbd> | Liste der Fenster |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>n</kbd> / <kbd>p</kbd> | Nächstes und vorheriges Fenster |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>\|</kbd> / <kbd>Shift</kbd> + <kbd>S</kbd> | Bildschirm teilen |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>Tab</kbd> | In einen anderen Bereich des Bildschirms wechseln |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>[</kbd> | Durch den Verlauf scrollen |
| <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>?</kbd> | Hilfe zu allen Tastenkombinationen |

***

### Häufige Fragen

<details>

<summary>Es erscheint „There is no screen to be resumed matching“</summary>

Eine Sitzung mit diesem Namen gibt es nicht. Prüfen Sie den genauen Namen mit `screen -ls`. Ist die Liste leer, wurde die Sitzung bereits beendet, zum Beispiel weil der Befehl darin fertig war oder der Server neu gestartet wurde.

</details>

<details>

<summary>Die Sitzung steht in der Liste, aber screen -r verbindet sich nicht</summary>

Steht neben der Sitzung **Attached**, ist bereits ein anderes Fenster mit ihr verbunden, oft eine alte, abgebrochene Verbindung. Verbinden Sie sich mit `screen -d -r name`, dieser Befehl trennt das alte Fenster und öffnet die Sitzung bei Ihnen.

</details>

<details>

<summary>Bleiben die Sitzungen nach einem Neustart des Servers erhalten?</summary>

Nein. Bei einem Neustart werden alle Screen-Sitzungen und die darin laufenden Befehle beendet. Für Programme, die ständig laufen und nach einem Neustart von selbst starten sollen, richten Sie besser einen systemd-Dienst ein.

</details>

<details>

<summary>Ctrl + A setzt den Cursor in der Kommandozeile nicht mehr an den Anfang</summary>

Screen fängt diese Tastenkombination ab. Um <kbd>Ctrl</kbd> + <kbd>A</kbd> selbst an das Programm im Fenster zu senden, drücken Sie <kbd>Ctrl</kbd> + <kbd>A</kbd>, dann <kbd>a</kbd>.

</details>

<details>

<summary>Worin unterscheidet sich Screen von tmux?</summary>

Beide Programme lösen dieselbe Aufgabe. Screen ist einfacher und vielen Administratoren vertraut.\
tmux ist neuer und lässt sich flexibler anpassen.

Damit ein Befehl nach dem Trennen der SSH-Verbindung weiterläuft, genügt jedes der beiden.

</details>

***

### Unsere Ressourcen

**Telegram-Kanal:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Hosting-Website:** [https://f3cloud.com](https://f3cloud.com/de)
