Editoren in der Shell — Nano und Vim für Einsteiger
Ob du eine Konfigurationsdatei auf dem Server anpassen willst, ein Script schnell editieren oder auf einem System ohne grafische Oberfläche arbeitest — ein Terminal-Editor gehört zum Handwerkszeug jedes Linux-Nutzers. Diese Seite erklärt dir zwei dieser Editoren von Grund auf: Nano für den unkomplizierten Einstieg und Vim für alle, die mehr Kontrolle wollen.
Warum überhaupt ein Terminal-Editor?
Grafische Editoren wie Gedit oder Kate sind bequem — solange du eine Desktop-Umgebung hast. Spätestens beim SSH-Zugriff auf einen Server, beim Editieren von Systemdateien als Root oder beim Schreiben von Shellscripts im Terminal ändert sich das. Dann brauchst du einen Editor, der ohne GUI auskommt.
Drei konkrete Situationen, in denen Terminal-Editoren unverzichtbar sind:
- Serverwartung: Die meisten Linux-Server laufen ohne Desktop. SSH verbindet dich mit einer reinen Shell-Sitzung — grafische Programme stehen nicht zur Verfügung.
- Systemdateien editieren: Dateien in
/etc/gehören Root. Du öffnest sie mitsudo nano /etc/fstabdirekt im Terminal, ohne extra einen grafischen Editor mit erhöhten Rechten starten zu müssen. - Schnelle Änderungen ohne Kontext-Wechsel: Wenn du bereits im Terminal arbeitest, ist es schneller,
nano ~/.bashrczu tippen, als zwischen Terminal und GUI zu wechseln.
Beide hier vorgestellten Editoren sind auf nahezu allen Linux-Distributionen vorinstalliert. Nano kommt standardmäßig auf Ubuntu, Debian und deren Derivaten mit. Vim ist ebenfalls weit verbreitet; auf minimalen Installationen ist oft zumindest vi vorhanden, aus dem Vim (Vi IMproved) entstanden ist.
which nano und which vim prüfst du, ob die Editoren auf deinem System verfügbar sind. Fehlt einer, installierst du ihn mit sudo apt install nano bzw. sudo apt install vim.Nano — der einsteigerfreundliche Editor
Nano zeigt dir am unteren Bildschirmrand alle wichtigen Tastenkombinationen an. Du musst nichts auswendig lernen, bevor du anfängst. Das macht ihn zum richtigen Startpunkt für alle, die Terminal-Editoren neu kennenlernen.
Nano starten und eine Datei öffnen
Nano startest du entweder leer oder direkt mit einem Dateinamen als Argument:
# Neue Datei erstellen (oder vorhandene öffnen):
$ nano notizen.txt
# Systemdatei mit Root-Rechten editieren:
$ sudo nano /etc/hosts
Wenn die Datei noch nicht existiert, legt Nano sie beim Speichern an. Im oberen Bereich des Editors siehst du den Dateinamen, in der Statuszeile ganz unten die verfügbaren Aktionen — immer mit ^ als Zeichen für die Strg-Taste.
Navigieren, bearbeiten, speichern
Die Navigation in Nano erfolgt mit den Pfeiltasten. Du tippst Text direkt ein — kein Modus, kein Umschalten. Die wichtigsten Aktionen:
| Tastenkombination | Aktion |
|---|---|
| Strg + O | Datei speichern (O = Write Out). Enter bestätigt den Dateinamen. |
| Strg + X | Nano beenden. Hat du ungespeicherte Änderungen, fragt Nano nach. |
| Strg + W | Suchen (W = Where Is). Gibt Text ein, Enter springt zum ersten Treffer. |
| Strg + K | Aktuelle Zeile ausschneiden (in Zwischenablage) |
| Strg + U | Ausgeschnittene Zeile wieder einfügen (Uncut) |
| Strg + G | Hilfe anzeigen — vollständige Liste aller Tastenkürzel |
| Strg + / | Zu einer bestimmten Zeile springen |
Eine typische Bearbeitungssitzung sieht so aus:
# Datei öffnen:
$ nano ~/.bashrc
# Text bearbeiten (Pfeiltasten zur gewünschten Stelle navigieren)
# Zeile hinzufügen: alias ll='ls -la'
# Speichern:
Strg + O → Enter
# Beenden:
Strg + X
Nano konfigurieren: .nanorc
Nano liest beim Start die Konfigurationsdatei ~/.nanorc. Drei Einstellungen sind für den Alltag besonders nützlich:
# ~/.nanorc — Nano-Konfiguration
# Zeilennummern am linken Rand anzeigen:
set linenumbers
# Automatisch einrücken (gleicher Einzug wie vorherige Zeile):
set autoindent
# Syntax-Highlighting laden (Ubuntu/Debian: Definitionen in /usr/share/nano/):
include "/usr/share/nano/*.nanorc"
Nach dem Speichern von ~/.nanorc gilt die Konfiguration beim nächsten Nano-Start. Syntax-Highlighting funktioniert für Bash-Scripts, Python, HTML und viele weitere Formate, sobald du die entsprechende Include-Zeile gesetzt hast. Die vorhandenen Definitionen zeigst du mit ls /usr/share/nano/ an.
set tabsize 4 ändert die Tab-Breite in der Darstellung, schreibt aber weiterhin echte Tab-Zeichen. Wenn du in einem Projekt Leerzeichen statt Tabs brauchst (z.B. Python mit PEP 8), verwende zusätzlich set tabstospaces.Vim — der mächtige Editor
Vim hat eine steile Lernkurve, aber einen klaren Vorteil: Einmal gelernt, bearbeitest du Text deutlich schneller als mit einem gewöhnlichen Editor. Ich habe 2005 angefangen Vim zu lernen. Die ersten zwei Wochen waren frustrierend. Danach wollte ich nie wieder zurück. Der Grund liegt in Vims Modal-System — verschiedene Modi für verschiedene Aufgaben, ohne ständig die Maus zu brauchen.
Die drei Modi
Vims Kernkonzept sind Modi. Jeder Modus hat einen eigenen Zweck und eigene Tasten:
- Normal-Modus — der Standard-Modus, in dem Vim startet. Hier navigierst du, löschst, kopierst und gibst Befehle ein. Tastenanschläge sind Befehle, kein Text.
- Insert-Modus — hier tippst du Text, wie in einem gewöhnlichen Editor. Du wechselst hinein mit i, verlässt ihn mit Esc.
- Command-Modus — für Befehle wie Speichern, Beenden, Suchen und Ersetzen. Du erreichst ihn aus dem Normal-Modus mit :.
# Vim starten:
$ vim datei.txt
# Oder eine neue Datei erstellen:
$ vim neues-script.sh
Vim startet immer im Normal-Modus. Das überrascht Einsteiger, die sofort zu tippen beginnen — die Tastenanschläge werden als Befehle interpretiert, nicht als Text. Merke dir deshalb als erstes: Drücke i, um Text einzugeben. Drücke Esc, um in den Normal-Modus zurückzukehren.
Speichern und Beenden
Die häufigsten Aktionen im Command-Modus — du gibst sie nach dem Doppelpunkt ein und bestätigst mit Enter:
| Befehl | Aktion |
|---|---|
:w |
Datei speichern (write) |
:q |
Vim beenden (quit) — nur wenn keine ungespeicherten Änderungen |
:wq |
Speichern und beenden — der häufigste Weg hinaus |
:q! |
Ohne Speichern beenden — Änderungen verwerfen |
:w datei.txt |
Unter neuem Namen speichern |
# Komplette Sitzung — Text schreiben und speichern:
$ vim test.txt
# Im Normal-Modus: i drücken
# (unten erscheint "-- INSERT --")
# Text eingeben:
Das ist mein erster Text in Vim.
# Esc drücken → zurück in Normal-Modus
# :wq eingeben → Enter
# Vim beendet sich. Datei ist gespeichert.
Grundbewegung im Normal-Modus
Im Normal-Modus navigierst du ohne Maus. Die wichtigsten Bewegungstasten:
| Taste | Bewegung |
|---|---|
| h / l | Ein Zeichen links / rechts |
| j / k | Eine Zeile runter / rauf |
| w | Zum Anfang des nächsten Wortes springen |
| b | Zum Anfang des vorherigen Wortes zurück |
| 0 | An den Zeilenanfang (absolute Position, nicht Einzug) |
| $ | Ans Zeilenende |
| gg | Zum Dateianfang |
| G | Ans Dateiende |
| 5G | Zu Zeile 5 springen (Zahl + G) |
Die hjkl-Navigation stammt aus der Zeit, als Tastaturen keine Pfeiltasten hatten — Bill Joy entwickelte vi 1976 auf einem ADM-3A-Terminal. Heute funktionieren auch Pfeiltasten in Vim, aber wer hjkl beherrscht, hält die Hände auf der Home-Row und arbeitet schneller.
Vim Basics für den Alltag
Mit den folgenden Befehlen erledigst du die häufigsten Aufgaben beim Editieren von Configs und Scripts — auch als Einsteiger brauchst du nicht mehr, um produktiv zu sein.
Suchen und Ersetzen
Im Normal-Modus leitest du eine Suche mit / ein, tippst den Suchbegriff und drückst Enter. Vim springt zum ersten Treffer. Mit n gehst du zum nächsten, mit N zum vorherigen.
# Suche nach "Port" in einer Config-Datei:
/Port
# Enter → springt zum ersten Treffer
# n → nächster Treffer
# N → vorheriger Treffer
Ersetzen erfolgt im Command-Modus mit dem :s-Befehl (substitute). Das Muster folgt der Syntax :s/alt/neu/ für die aktuelle Zeile oder :%s/alt/neu/g für die gesamte Datei:
# "localhost" durch "192.168.1.100" in der ganzen Datei ersetzen:
:%s/localhost/192.168.1.100/g
# Mit Bestätigung für jede Ersetzung (c = confirm):
:%s/localhost/192.168.1.100/gc
# Nur in aktueller Zeile ersetzen:
:s/alt/neu/
Löschen, Undo und Redo
Alle Löschbefehle arbeiten im Normal-Modus. Das Gelöschte landet in Vims internem Register und kann mit p wieder eingefügt werden — Vim unterscheidet nicht zwischen „löschen“ und „ausschneiden“:
| Taste | Aktion |
|---|---|
| x | Zeichen unter dem Cursor löschen |
| dd | Ganze Zeile löschen (ausschneiden) |
| dw | Wort ab Cursor löschen |
| d$ | Vom Cursor bis Zeilenende löschen |
| 3dd | 3 Zeilen löschen (Zahl vor dem Befehl = Wiederholung) |
| u | Letzte Aktion rückgängig machen (Undo) |
| Strg + R | Undo rückgängig machen (Redo) |
| p | Gelöschten/kopierten Text nach Cursor einfügen |
# Beispiel: Zwei Zeilen löschen und woanders einfügen
# Im Normal-Modus:
2dd # 2 Zeilen ausschneiden
# Cursor bewegen
p # Zeilen nach aktuellem Cursor einfügen
# Fehler rückgängig:
u # Undo
u # nochmals Undo (Vim hat unbegrenzte Undo-History)
Strg + R # Redo
/etc/ssh/sshd_config) erst :w backup.conf eingeben, um eine Sicherungskopie anzulegen — dann kannst du gefahrlos experimentieren.Nano vs. Vim — wann was?
Beide Editoren sind vollwertige Werkzeuge. Die Wahl hängt von der Aufgabe und deinem Komfort ab:
| Kriterium | Nano | Vim |
|---|---|---|
| Einstieg | Sofort produktiv, keine Vorkenntnisse nötig | Lernaufwand nötig (ca. 30–60 Minuten Grundlagen) |
| Tastenkombinationen | Am Bildschirmrand angezeigt | Auswendig lernen nötig |
| Geschwindigkeit (geübt) | Solide für einfache Bearbeitung | Deutlich schneller bei komplexen Aufgaben |
| Suchen/Ersetzen | Einfache Suche, kein Regex standardmäßig | Vollständige Regex-Unterstützung |
| Makros und Automatisierung | Nicht verfügbar | Ja — aufzeichnen mit q, abspielen mit @ |
| Konfigurierbarkeit | Begrenzt (.nanorc) | Sehr umfangreich (.vimrc, Plugins) |
| Verfügbarkeit | Fast überall installiert | Auf minimalen Systemen manchmal nur vi |
| Für wen? | Konfigurationsdateien, gelegentliche Edits | Tägliches Coding, Scripting, komplexe Textarbeit |
Meine Empfehlung: Starte mit Nano. Lerne die sechs wichtigsten Tastenkombinationen (Strg+O, Strg+X, Strg+W, Strg+K, Strg+U, Strg+G), und du kannst sofort arbeiten. Wenn du merkst, dass du täglich im Terminal editierst und Nano zu langsam wird, lohnt sich der Einstieg in Vim. Das interaktive Tutorial vimtutor (auf den meisten Systemen mit Vim dabei) führt dich in etwa 30 Minuten durch die Grundlagen.
# Vim-Tutorial starten (auf Deutsch, falls verfügbar):
$ vimtutor de
# Alternativ:
$ vimtutor
:wq und :q! zu kennen. Auf vielen Servern ist Nano nicht installiert, aber vi oder vim ist fast immer da. Wer sich nicht aus Vim herausfindet, muss im schlimmsten Fall den Terminal-Prozess killen.Weitere Editoren kurz erwähnt
Nano und Vim sind nicht die einzigen Terminal-Editoren. Zwei Alternativen sind einen Blick wert:
micro — modern und mausfreundlich
micro verhält sich wie ein grafischer Editor: Strg+S speichert, Strg+Q beendet, Strg+C/Strg+V kopiert und fügt ein. Wenn ich heute jemandem beim Umstieg auf Linux helfe, empfehle ich micro statt nano. Die Tastenkürzel sind das, was Leute von Windows kennen — kein Umlernen nötig. Maus wird unterstützt — auch zur Positionierung des Cursors. Syntax-Highlighting für über 130 Sprachen ist eingebaut, Plugins lassen sich über einen eingebauten Plugin-Manager nachinstallieren.
# Installation (als Single Binary, kein Root nötig):
$ curl https://getmic.ro | bash
# Oder per apt (Ubuntu ab 20.04):
$ sudo apt install micro
# Datei öffnen:
$ micro datei.txt
micro ist besonders für Einsteiger interessant, die aus der GUI-Welt kommen und die gewohnten Tastenkürzel nicht aufgeben wollen. Der Nachteil: micro ist nicht vorinstalliert und auf Servern ohne Internetverbindung nicht immer verfügbar.
ne — Nice Editor
ne (Nice Editor) liegt zwischen Nano und einem vollständigen Texteditor: Menüleiste oben, Cursor-Steuerung mit Pfeiltasten, Makro-Unterstützung und Syntax-Highlighting. Er ist weniger bekannt als Nano und Vim, aber als Alternative für Nutzer interessant, die ein menügesteuertes Interface bevorzugen.
# Installation:
$ sudo apt install ne
# Datei öffnen:
$ ne datei.txt
# Menü aufrufen: Esc oder F1
Für die meisten Anwendungsfälle ist die Wahl zwischen Nano (unkompliziert) und Vim (mächtig) ausreichend. micro ist eine gute dritte Option, wenn du häufig im Terminal editierst und die GUI-Gewohnheiten behalten willst.
Wie geht es weiter?
Du weißt jetzt, wie du mit Nano unkompliziert editierst und Vims Grundbefehle anwendest. Der logische nächste Schritt: Nutze diese Fähigkeiten, um deine ersten Shellscripts zu schreiben — und lerne dabei, wie Bash-Programme strukturiert sind.
- Zurück zu den Shell-Grundlagen, falls du noch nicht mit dem Terminal vertraut bist: Die Shell für Neulinge
- Dein erstes Shellscript schreiben — mit dem Editor, den du gerade kennengelernt hast: Shellscripts