Vi-Grundkurs
Zielsetzung
vi ist ein mächtiger Editor, der auf jedem Linuxsystem verfügbar ist und in einem Terminal genutzt werden kann.
In diesem Kurs wird der Umgang mit diesem Editor geübt.
Aufruf
vi info.txt
- Wenn die Datei info.txt noch nicht existiert, wird eine Datei erzeugt.
- Sonst wird die Datei geöffnet.
# Öffnen der Datei /etc/hosts und Positionieren auf Zeile 25
vi /etc/hosts +25
# Öffnen der Datei /etc/passwd und Suche nach "www-data"
vi /etc/passwd +/www-data
Unterschied zu GUI-Editoren
vi kennt drei Verwendungsarten:
- den Visual-Mode: in diesem Fall führen Buchstaben Kommandos aus.
- den Insert-Mode: in diesem Fall werden die Eingaben in die Datei geschrieben (wie bei GUI-Editoren gewohnt).
- der Kommando-Modus: Es werden Kommandos wie im Terminal ausgeführt
Der Visual-Mode ist gewöhnungsbedürftig, aber extrem mächtig: Er erlaubt unglaublich schnell, bestimmte Teile der Datei zu erreichen.
Übung 1: vi starten und beenden
# Datei erzeugen, mit der wir arbeiten:
lscpu > cpu.info
# Datei öffnen:
vi cpu.info
- Wir sehen den Dateiinhalt.
- Wir beenden vi, ohne Änderungen zu speichern: Quit
:q
- Wir beenden vi und speichern die Änderungen: Write Quit
:wq
- Datei öffnen:
vi cpu.info
- " " (Leerzeichen): bewegt ein Zeichen nach rechts.
- "w" bewegt ein Wort vorwärts
- "b" ein Wort rückwärts
- "^ " an den Anfang der Zeile
- "$" an das Ende der Zeile
- "j": eine Zeile nach unten
- "k": eine Zeile nach oben
- "35G": Gehe nach Zeile 35
- "G": Gehe ans Dateiende
- "1G": Gehe an den Dateianfang
Suchkommandos
- "fX" Suche vorwärts nach dem nächsten X. X kann ein beliebiges Zeichen sein. Die Suche wirkt nur auf die aktuelle Zeile.
- "FX" Suche Rückwärts nach dem nächsten X. X kann ein beliebiges Zeichen sein. Die Suche wirkt nur auf die aktuelle Zeile.
- "/irgendwas" Suche vorwärts nach "irgendwas".
- "?irgendwas" Suche rückwärts nach "irgendwas".
Texte einfügen
Um Texte einzufügen, muss man vom Visual-Mode in den Insert-Mode wechseln:
- "i": Einfügen an der Cursorposition.
- "I": Einfügen am Zeilenanfang.
- "a": Einfügen hinter der Cursorposition
- "A": Einfügen in der nächsten Zeile.
Einfügemodus beenden
- Der Insertmodus wird mit ESC (Taste links oben) beendet.
Praktisches
# Zeige alle Zeilennummern an :set nu # Verstecke alle Zeilennummern :set nonu # Bei Suchmustern Gross-/Kleinschreibung ignorieren :ic # Ignoriere obiges :noic