Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
103.8 Lektion 1
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 103: GNU- und Unix-Befehle
  2. 103.8 Grundlegendes Editieren von Dateien
  3. 103.8 Lektion 1

103.8 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

103 GNU- und Unix-Befehle

Lernziel:

103.8 Grundlegendes Editieren von Dateien

Lektion:

1 von 1

Einführung

In den meisten Linux-Distributionen ist vi — Abkürzung für “visuell” — vorinstalliert und ist der Standardeditor in der Shellumgebung. Vi ist ein interaktiver Texteditor, er zeigt den Dateiinhalt auf dem Bildschirm an, während er bearbeitet wird. Als solcher erlaubt er es dem Benutzer, sich durch das Dokument zu bewegen und an beliebigen Stellen Änderungen vorzunehmen. Im Gegensatz zu visuellen Editoren auf dem grafischen Desktop ist der vi-Editor jedoch eine Shellanwendung mit Tastaturkürzeln für jede Bearbeitungsaufgabe.

Eine Alternative zu vi, genannt vim (vi improved), wird manchmal als moderner Ersatz für vi verwendet. Neben anderen Verbesserungen bietet vim Unterstützung für Syntaxhighlighting, mehrstufiges Rückgängigmachen/Wiederholen und die Bearbeitung mehrerer Dokumente. Obwohl fortgeschrittener, ist vim vollständig rückwärtskompatibel mit vi, so dass beide sich bei ihrer Anwendung für die meisten Aufgaben nicht voneinander unterscheiden.

Der Standardweg, vi zu starten, ist, ihm einen Pfad zu einer Datei als Parameter zu übergeben. Um direkt zu einer bestimmten Zeile zu springen, sollte ihre Nummer mit einem Pluszeichen als Parameter mitgegeben werden, wie in vi +9 /etc/fstab, um /etc/fstab/ zu öffnen und den Cursor auf die 9 Zeile zu setzen. Ohne Angabe einer Nummer stellt das Pluszeichen allein den Cursor auf die letzte Zeile.

Die Schnittstelle von vi ist sehr einfach: der gesamte im Terminalfenster verfügbare Platz wird belegt, um dem Benutzer eine Datei, die normalerweise als Befehlsargument mitgeteilt wird, zu präsentieren. Die einzigen visuellen Anhaltspunkte sind die Fußzeile mit der aktuellen Position des Cursors und eine Tilde ~, die anzeigt, wo die Datei endet. Es gibt verschiedene Ausführungsmodi für vi, bei denen sich das Programmverhalten ändert. Die Gebräuchlichsten sind: Einfügemodus und Normalmodus.

Einfügemodus

Der Einfügemodus ist unkompliziert: Text erscheint auf dem Bildschirm, während er auf der Tastatur eingegeben wird. Das ist die Art der Interaktion, die die meisten Benutzer von einem Texteditor erwarten, aber es ist nicht die Art, wie vi ein Dokument zunächst präsentiert. Um in den Einfügemodus zu gelangen, muss der Benutzer im normalen Modus einen Einfügebefehl ausführen. Die Taste Esc beendet den Einfügemodus und kehrt zum normalen Modus, dem Standardmodus von vi, zurück.

Note

Wenn Sie mehr über die anderen Ausführungsmodi erfahren möchten, öffnen Sie vi und tippen Sie:

:help vim-modes-intro

Normaler Modus

Der normale Modus — auch als Befehlsmodus bezeichnet — ist der Standardmodus von vi. In diesem Modus sind die Tasten der Tastatur mit Befehlen für Navigations- und Textmanipulationsaufgaben verknüpft. Die meisten Befehle in diesem Modus sind eindeutige Tasten. Einige der Tasten und ihre Funktionen im Normalmodus lauten:

0, $

Gehen zum Anfang und zum Ende der Zeile.

1G, G

Gehen zum Anfang und zum Ende des Dokuments.

(, )

Gehen zum Anfang und zum Ende des Satzes.

{, }

Gehen zum Anfang und zum Ende des Absatzes.

w, W

Überspringe ein Wort und überspringe ein Wort einschließlich Satzzeichensetzung.

h, j, k, l

Links, unten, oben, rechts.

e oder E

Zum Ende des aktuellen Wortes springen.

/, ?

Suchen vorwärts und rückwärts.

i, I

Aktiviert den Einfügemodus vor der aktuellen Cursorposition und am Anfang der aktuellen Zeile.

a, A

Aktiviert den Einfügemodus nach der aktuellen Cursorposition und am Ende der aktuellen Zeile.

o, O

Fügt eine neue Zeile ein und aktiviert den Einfügemodus in der nächsten oder in der vorherigen Zeile.

s, S

Löscht das Zeichen unter dem Cursor oder die gesamte Zeile und aktiviert den Einfügemodus.

c

Ändern das oder die Zeichen unter dem Cursor.

r

Ersetzt das Zeichen unter dem Cursor.

x

Löscht die ausgewählten Zeichen oder das Zeichen unter dem Cursor.

v, V

Eine neue Auswahl mit dem aktuellen Zeichen oder der gesamten Zeile beginnen.

y, yy

Kopiert (yanks) ein oder mehrere Zeichen oder die gesamte Zeile.

p, P

Kopierten Inhalt einfügen, nach oder vor der aktuellen Position.

u

Macht die letzte Aktion rückgängig.

Strg-R

Wiederholt die letzte Aktion.

ZZ

Speichern und schließen.

ZQ

Schließen ohne zu speichern.

Wenn eine Zahl einem Befehl vorangestellt, wird der Befehl entsprechend oft ausgeführt. Drücken Sie zum Beispiel 3yyy werden die aktuelle Zeile plus die folgenden zwei kopiert, drücken Sie d5w werden das aktuelle Wort und die folgenden 4 Wörter gelöscht, und so weiter.

Die meisten Bearbeitungsaufgaben sind Kombinationen aus mehreren Befehlen. Zum Beispiel wird die Tastenfolge vey verwendet, um eine Auswahl ab der aktuellen Position bis zum Ende des aktuellen Wortes zu kopieren. Befehlswiederholungen können auch in Kombinationen verwendet werden, so dass v3ey eine Auswahl ab der aktuellen Position bis zum Ende des dritten Wortes von dort aus kopieren würde.

vi kann kopierten Text in Register organisieren, so dass verschiedene Inhalte gleichzeitig erhalten bleiben können. Ein Register wird durch ein Zeichen mit vorangestelltem " angegeben und wird nach seiner Erstellung bis zum Ende der aktuellen Sitzung aufbewahrt. Die Schlüsselsequenz "ly" erzeugt ein Register, das die aktuelle Auswahl enthält und über die Taste `l zugänglich ist. Anschließend kann das Register l mit "lp eingefügt werden.

Es gibt auch die Möglichkeit, benutzerdefinierte Markierungen an willkürlichen Stellen entlang des Textes zu setzen, womit es erleichtert wird, schnell zwischen diesen zu springen. Markierungen werden durch Drücken der Taste m gefolgt von einer beliebigen Taste erstellt, um die aktuelle Position zu markieren. Ist dies geschehen, kehrt der Cursor an die markierte Stelle zurück, wenn die Taste ' gefolgt von der gewählten Taste gedrückt wird.

Jede Tastensequenz kann als Makro für die zukünftige Ausführung aufgezeichnet werden. Ein Makro kann beispielsweise aufgezeichnet werden, um einen ausgewählten Text in doppelte Anführungszeichen zu setzen. Zuerst wird eine Textfolge ausgewählt und die Taste q gedrückt, gefolgt von einer Registertaste, mit der das Makro verknüpft wird, beispielsweise d. Die Zeile recording @d erscheint in der Fußzeile und zeigt an, dass die Aufnahme eingeschaltet ist. Es wird davon ausgegangen, dass bereits Text ausgewählt ist, so dass der erste Befehl x lautet, um den ausgewählten Text zu entfernen (und automatisch zu kopieren). Die Taste i wird gedrückt, um zwei doppelte Anführungszeichen an der aktuellen Position einzufügen, um dann mittels Esc in den normalen Modus zurückzukehren. Der letzte Befehl lautet P, um die gelöschte Auswahl unmittelbar vor dem letzten doppelten Anführungszeichen wieder einzufügen. Durch erneutes Drücken von q wird die Aufzeichnung beendet. Nun wird ein Makro, das aus der Tastenfolge x, i, "", Esc und P besteht, bei jedem Drücken der Tasten @d im Normalmodus ausgeführt, wobei d die dem Makro zugeordnete Registertaste darstellt.

Das Makro ist jedoch nur während der laufenden Sitzung verfügbar. Um Makros persistent zu machen, sollten diese in der Konfigurationsdatei gespeichert werden. Da die meisten modernen Distributionen vim als vi-kompatiblen Editor verwenden, ist die Konfigurationsdatei des Benutzers ~/.vimrc. Innerhalb von ~/.vimrc wird die Zeile let @d = 'xi"" P' das Register d mit der gegebenen Tastensequenz innerhalb der einfachen Anführungszeichen abspeichern. Dasselbe Register, das zuvor einem Makro zugewiesen wurde, kann zum Einfügen seiner Tastenfolge verwendet werden.

Doppelpunktbefehle

Der normale Modus unterstützt auch einen weiteren Satz von vi-Befehlen: die Doppelpunktbefehle. Doppelpunktbefehle werden, wie der Name schon sagt, nach dem Drücken der Doppelpunkttaste : im normalen Modus ausgeführt. Doppelpunktbefehle erlauben es dem Benutzer, Suchvorgänge durchzuführen, zu speichern, zu beenden, Shellbefehle auszuführen, vi-Einstellungen zu ändern usw. Um in den normalen Modus zurückzukehren, muss der Befehl :visual ausgeführt oder die Entertaste ohne Befehl gedrückt werden. Einige der gebräuchlichsten Doppelpunktbefehle lauten:

:s/REGEX/TEXT/g

Ersetzt alle Vorkommen des regulären Ausdrucks REGEX durch TEXT in der aktuellen Zeile. Es akzeptiert die gleiche Syntax des Befehls sed, einschließlich Adressen.

:!

Führt einen folgenden Shellbefehl aus.

:quit oder :q

Beendet das Programm.

:quit! oder :q!

Beendet das Programm ohne zu speichern.

:wq

Speichern und beenden.

:exit oder :x oder :e

Speichern und beenden, falls erforderlich.

:visual

Kehrt zurück zum Navigationsmodus.

Das Standardprogramm vi ist in der Lage, die meisten Textbearbeitungsaufgaben zu erledigen, aber jeder andere nicht grafische Editor kann zur Bearbeitung von Textdateien in der Shellumgebung verwendet werden.

Tip

Anfängern kann es schwer fallen, sich die vi's Befehlstasten auf einmal einzuprägen. Distributionen, die vim einsetzen, besitzen oft auch den Befehl vimtutor, der vim selbst, um eine Schritt-für-Schritt-Anleitung zu den wichtigsten Aktivitäten ergänzt. Die Datei ist eine editierbare Kopie, die zum Üben der Befehle und zur schrittweisen Gewöhnung dient.

Alternative Editoren

Benutzer, die mit vi nicht vertraut sind, können Schwierigkeiten haben, sich daran zu gewöhnen, da die Bedienung nicht intuitiv ist. Eine einfachere Alternative ist GNU nano, ein kleiner Texteditor, der alle grundlegenden Textbearbeitungsfunktionen wie Rückgängig/Wiederholen, Syntaxfärbung, interaktives Suchen und Ersetzen, automatische Einrückung, Zeilennummern, Wortvervollständigung, Dateisperre, Sicherungsdateien und Unterstützung der Internationalisierung bietet. Im Gegensatz zu vi werden alle Tastendrücke einfach in das zu bearbeitende Dokument eingefügt. Befehle in nano werden mit Hilfe der Strg-Taste oder der Metataste eingegeben (je nach System ist Meta Alt oder {Befehlstaste}).

Strg-6 oder Meta-A

Startet eine neue Auswahl. Es ist auch möglich, eine Auswahl zu erstellen, indem die Umschalttaste gedrückt und der Cursor bewegt wird.

Meta-6

Kopiert die aktuelle Auswahl.

Strg-K

Schneidet die aktuelle Auswahl aus.

Strg-U

Kopierten Inhalt einfügen.

Meta-U

Rückgängig machen.

Meta-E

Wiederholung.

Strg-\

Ersetzt den Text bei der Auswahl.

Strg-T

Startet eine Sitzung zur Rechtschreibprüfung für das Dokument oder die aktuelle Auswahl.

Emacs ist ein weiterer sehr beliebter Texteditor für die Shellumgebung. Während Text einfach durch Eintippen eingefügt wird, wie in nano, wird die Navigation durch das Dokument durch Tastaturbefehle unterstützt, wie in vi. Emacs enthält viele Funktionen, die ihn zu mehr als nur einem Texteditor machen. Es ist auch eine IDE (integrierte Entwicklungsumgebung), die in der Lage ist, Programme zu kompilieren, auszuführen und zu testen. Emacs kann als E-Mail-, News- oder RSS-Client konfiguriert werden, was ihn zu einer authentischen Produktivitätssuite macht.

Auf der Shell selbst läuft ein Standardtexteditor, normalerweise vi, jedes Mal, wenn es notwendig ist. Dies ist z.B. der Fall, wenn crontab -e ausgeführt wird, um cronjobs zu bearbeiten. Die Bash benutzt die Sessionvariablen VISUAL oder EDITOR, um den Standardtexteditor für die Shellumgebung herauszufinden. Zum Beispiel definiert der Befehl export EDITOR=nano nano als den Standardtexteditor in der aktuellen Shellsitzung. Um diese Änderung über Sitzungen hinweg dauerhaft zu erhalten, sollte der Befehl in ~/.bash_profile aufgenommen werden.

Geführte Übungen

  1. vi wird am häufigsten als Editor für Konfigurationsdateien und Quellcode verwendet, wobei Einrückungen helfen, Textabschnitte zu identifizieren. Eine Auswahl kann durch Drücken von < nach links und durch Drücken von > nach rechts eingerückt werden. Welche Tasten sollten im normalen Modus gedrückt werden, um die aktuelle Auswahl drei Schritte nach links einzurücken?

  2. Eine ganze Zeile kann durch Drücken von V im normalen Modus in vi ausgewählt werden. Das abschließende Zeilenumbruchzeichen ist jedoch ebenfalls enthalten. Welche Tasten sollten im normalen Modus gedrückt werden, um vom Startzeichen bis zum Zeilenumbruch, aber nicht einschließlich des Zeilenumbruchzeichens, auszuwählen?

  3. Wie sollte vi in der Kommandozeile ausgeführt werden, um ~/.bash_profile zu öffnen und direkt zur letzten Zeile zu springen?

  4. Welche Tasten sollten im Normalmodus in vi gedrückt werden, um Zeichen von der aktuellen Cursorposition bis zum nächsten Punktzeichen zu löschen?

Offene Übungen

  1. vim erlaubt die Auswahl von Textblöcken mit beliebiger Breite, nicht nur Abschnitte mit ganzen Zeilen. Durch Drücken von Strg+V im normalen Modus wird eine Auswahl getroffen, indem der Cursor nach oben, unten, links und rechts bewegt wird. Wie würde bei dieser Methode ein Block, der beim ersten Zeichen in der aktuellen Zeile beginnt und die nächsten acht Spalten und fünf Textzeilen enthält, gelöscht?

  2. Eine vi-Sitzung wurde durch einen unerwarteten Stromausfall unterbrochen. Beim erneuten Öffnen der Datei fragt vi den Benutzer, ob er die Auslagerungsdatei (eine von vi automatisch erstellte Kopie) wiederherstellen möchte. Was sollte der Benutzer tun, um die Auslagerungsdatei zu verwerfen?

  3. In einer vim-Sitzung wurde zuvor eine Zeile in das Register l kopiert. Welche Tastenkombination würde ein Makro im Register a aufzeichnen, um die Zeile im Register l unmittelbar vor der aktuellen Zeile einzufügen?

Zusammenfassung

Diese Lektion behandelt den Standardtexteditor für die Linux-Shellumgebung: den vi-Editor. Während dieser für den ungewohnten Benutzer einschüchternd wirkt, besitzt vi Funktionen, welche ihn zu einer guten Wahl für technische und nicht technische Textbearbeitung machen. Die Lektion behandelte die folgenden Schritte:

  • vi grundlegende Verwendung und nützliche Funktionen.

  • Was ist vim — das verbesserte vi — und andere alternative Editoren.

  • Wie der Standardtexteditor für die Shellumgebung definieren wird.

Die behandelten Befehle und Verfahren lauten:

  • Editor vi und seine verbesserte Version vim.

  • Grundlegende Textbearbeitung in vi.

  • Alternative Editoren emacs und nano.

Lösungen zu den geführten Übungen

  1. vi wird am häufigsten als Editor für Konfigurationsdateien und Quellcode verwendet, wobei Einrückungen helfen, Textabschnitte zu identifizieren. Eine Auswahl kann durch Drücken von < nach links und durch Drücken von > nach rechts eingerückt werden. Welche Tasten sollten im normalen Modus gedrückt werden, um die aktuelle Auswahl drei Schritte nach links einzurücken?

    Die Tasten 3<, gleichbedeutend mit drei Schritte nach links.

  2. Eine ganze Zeile kann durch Drücken von V im normalen Modus in vi ausgewählt werden. Das abschließende Zeilenumbruchzeichen ist jedoch ebenfalls enthalten. Welche Tasten sollten im normalen Modus gedrückt werden, um vom Startzeichen bis zum Zeilenumbruch, aber nicht einschließlich des Zeilenumbruchzeichens, auszuwählen?

    Die Tasten 0v$h, d.h. 0 (“zum Zeilenanfang springen”), v (“Zeichenauswahl starten”), $ (“zum Zeilenende springen”) und h (“eine Position zurückgehen”).

  3. Wie sollte vi in der Kommandozeile ausgeführt werden, um ~/.bash_profile zu öffnen und direkt zur letzten Zeile zu springen?

    Der Befehl vi + ~/.bash_profile öffnet die Datei und setzt den Cursor auf die letzte Zeile.

  4. Welche Tasten sollten im Normalmodus in vi gedrückt werden, um Zeichen von der aktuellen Cursorposition bis zum nächsten Punktzeichen zu löschen?

    Die Tasten dt., d.h. d (“Löschung starten”), t (“zum folgenden Zeichen springen”) und . (Punktzeichen).

Lösungen zu den offenen Übungen

  1. vim erlaubt die Auswahl von Textblöcken mit beliebiger Breite, nicht nur Abschnitte mit ganzen Zeilen. Durch Drücken von Strg+V im normalen Modus wird eine Auswahl getroffen, indem der Cursor nach oben, unten, links und rechts bewegt wird. Wie würde bei dieser Methode ein Block, der beim ersten Zeichen in der aktuellen Zeile beginnt und die nächsten acht Spalten und fünf Textzeilen enthält, gelöscht?

    Mit der Kombination 0, Strg+V und 8l5jd wird der entsprechende Block ausgewählt und gelöscht.

  2. Eine vi-Sitzung wurde durch einen unerwarteten Stromausfall unterbrochen. Beim erneuten Öffnen der Datei fragt vi den Benutzer, ob er die Auslagerungsdatei (eine von vi automatisch erstellte Kopie) wiederherstellen möchte. Was sollte der Benutzer tun, um die Auslagerungsdatei zu verwerfen?

    Durch Drücken von d, wenn Sie durch vi aufgefordert werden.

  3. In einer vim-Sitzung wurde zuvor eine Zeile in das Register l kopiert. Welche Tastenkombination würde ein Makro im Register a aufzeichnen, um die Zeile im Register l unmittelbar vor der aktuellen Zeile einzufügen?

    Die Kombination qa"lPq, d.h. q (“Makroaufzeichnung starten”), a (“Register a Makro zuweisen”), "l (“wähle Text im Register l”), P (“vor der aktuellen Zeile einfügen”) und q (“Makroaufzeichnung beenden”).

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

104.1 Partitionen und Dateisysteme anlegen (104.1 Lektion 1)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.