Website-Suche

Wie man Textdateien mit Nano, Vim & grep bearbeitet (Teil 4)


Jeder Systemadministrator muss sich im Rahmen seiner täglichen Aufgaben mit Textdateien auseinandersetzen, zu denen auch das Bearbeiten vorhandener Dateien (höchstwahrscheinlich Konfigurationsdateien) oder das Erstellen neuer Dateien gehört.

Es wurde gesagt, dass Sie, wenn Sie einen heiligen Krieg in der Linux-Welt beginnen wollen, Systemadministratoren fragen können, was ihr Lieblingstexteditor ist und warum.

Wir werden das in diesem Artikel nicht tun, sondern einige Tipps geben, die hilfreich sein werden, um zwei der am weitesten verbreiteten Texteditoren zu verwenden: nano (aufgrund seiner Einfachheit und Benutzerfreundlichkeit, insbesondere für neue Benutzer) und vim/vi (aufgrund der verschiedenen Funktionen, die es in mehr als einen einfachen Editor verwandeln).

Ich bin sicher, dass Sie noch viele weitere Gründe finden werden, das eine oder andere zu verwenden, oder vielleicht einige andere Texteditoren wie Emacs oder Pico. Es liegt ganz bei Ihnen.

Bearbeiten von Dateien mit Nano Editor

Um nano zu starten, können Sie entweder einfach nano an der Eingabeaufforderung eingeben, optional gefolgt von einem Dateinamen (in diesem Fall wird die Datei, wenn sie existiert, im Editionsmodus geöffnet).

Wenn die Datei nicht existiert oder wenn wir den Dateinamen weglassen, wird nano auch im Editionsmodus geöffnet, zeigt jedoch einen leeren Bildschirm an, auf dem wir mit der Eingabe beginnen können:

nano test

Wie Sie im vorherigen Bild sehen können, zeigt nano am unteren Rand des Bildschirms mehrere Funktionen an, die über die angegebenen Tastenkombinationen verfügbar sind (^, auch bekannt als Caret, zeigt die Strg-Taste an).

Um nur einige davon zu nennen:

  • Strg + G: Öffnet das Hilfemenü mit einer vollständigen Liste der Funktionen und Beschreibungen.
  • Strg + X: Beendet die aktuelle Datei. Wenn Änderungen nicht gespeichert wurden, werden sie verworfen.
  • Strg + R: Ermöglicht die Auswahl einer Datei, deren Inhalt in die aktuelle Datei eingefügt werden soll, indem Sie einen vollständigen Pfad angeben.

  • Strg + O: Speichert die an einer Datei vorgenommenen Änderungen. Damit können Sie die Datei unter demselben oder einem anderen Namen speichern. Drücken Sie dann zur Bestätigung die Eingabetaste.

  • Strg + X: Beendet die aktuelle Datei. Wenn Änderungen nicht gespeichert wurden, werden sie verworfen.
  • Strg + R: Ermöglicht die Auswahl einer Datei, deren Inhalt in die aktuelle Datei eingefügt werden soll, indem Sie einen vollständigen Pfad angeben.

fügt den Inhalt von /etc/passwd in die aktuelle Datei ein.

  • Strg + K: schneidet die aktuelle Zeile ab.
  • Strg + U: Einfügen.
  • Strg + C: bricht den aktuellen Vorgang ab und versetzt Sie auf den vorherigen Bildschirm.

Um die Navigation in der geöffneten Datei zu erleichtern, bietet nano die folgenden Funktionen:

  • Strg + F und Strg + B bewegen den Cursor vorwärts oder rückwärts, während Strg + P und Strg + N ihn wie die Pfeiltasten jeweils eine Zeile nach oben bzw. unten bewegen.
  • Strg + Leertaste und Alt + Leertaste bewegen den Cursor wortweise vorwärts und rückwärts.

Endlich

  • Strg + _ (Unterstrich) und die anschließende Eingabe von X,Y führen Sie genau zu Zeile X, Spalte Y, wenn Sie den Cursor an einer bestimmten Stelle im Dokument platzieren möchten.

Das obige Beispiel führt Sie zu Zeile 15, Spalte 14 im aktuellen Dokument.

Wenn Sie sich an Ihre frühen Linux-Tage erinnern können, insbesondere wenn Sie von Windows kamen, werden Sie wahrscheinlich zustimmen, dass der Einstieg in Nano der beste Weg für einen neuen Benutzer ist.

Bearbeiten von Dateien mit dem Vim-Editor

Vim ist eine verbesserte Version von vi, einem bekannten Texteditor in Linux, der auf allen POSIX-kompatiblen *nix-Systemen, wie z.B. RHEL, verfügbar ist. Wenn Sie die Möglichkeit haben und vim installieren können, machen Sie weiter; Wenn nicht, sollten die meisten (wenn nicht alle) der in diesem Artikel gegebenen Tipps auch funktionieren.

Eines der Unterscheidungsmerkmale von Vim sind die verschiedenen Modi, in denen es arbeitet:

vi Befehlsmodus

Im Befehlsmodus können Sie die Datei durchsuchen und Befehle eingeben, bei denen es sich um kurze Kombinationen aus einem oder mehreren Buchstaben handelt, bei denen die Groß- und Kleinschreibung beachtet wird.

Wenn Sie eine davon eine bestimmte Anzahl von Malen wiederholen müssen, können Sie ihr eine Zahl voranstellen (es gibt nur wenige Ausnahmen von dieser Regel).

Zum Beispiel kopiert yy (oder Y, kurz für yank) die gesamte aktuelle Zeile, während 4yy (oder 4Y) die gesamte aktuelle Zeile zusammen mit den nächsten drei Zeilen (insgesamt 4 Zeilen) kopiert.

Vi Ex-Modus

Im Ex-Modus können Sie Dateien bearbeiten (z. B. das Speichern einer aktuellen Datei und das Ausführen externer Programme oder Befehle). Um in den Ex-Modus zu wechseln, müssen wir einen Doppelpunkt (:) beginnend mit dem Befehlsmodus (oder mit anderen Worten Esc + :) eingeben, direkt gefolgt vom Namen des Befehls im Ex-Modus, den Sie verwenden möchten.

Vi Einfüge-Modus

Im Einfügemodus, auf den durch Eingabe des Buchstabens i zugegriffen wird, geben wir einfach Text ein. Die meisten Tastenanschläge führen dazu, dass Text auf dem Bildschirm angezeigt wird.

Wir können jederzeit in den Befehlsmodus wechseln (unabhängig von dem Modus, an dem wir arbeiten), indem wir die Esc-Taste drücken.

Sehen wir uns an, wie wir die gleichen Operationen ausführen können, die wir im vorherigen Abschnitt für nano skizziert haben, aber jetzt mit vim. Vergessen Sie nicht, die Eingabetaste zu drücken, um den vim-Befehl zu bestätigen!

Um über die Befehlszeile auf das vollständige Handbuch von Vim zuzugreifen, geben Sie im Befehlsmodus :help ein und drücken Sie dann die Eingabetaste:

Der obere Abschnitt enthält eine Indexliste mit definierten Abschnitten, die bestimmten Themen rund um vim gewidmet sind. Um zu einem Abschnitt zu navigieren, platzieren Sie den Cursor darüber, und drücken Sie Strg + ] (schließende eckige Klammer). Beachten Sie, dass im unteren Bereich die aktuelle Datei angezeigt wird.

1. Um Änderungen an einer Datei zu speichern, führen Sie einen der folgenden Befehle im Befehlsmodus aus, und es wird den Trick ausführen:

:wq!
:x!
ZZ (yes, double Z without the colon at the beginning)

2. Um das Verwerfen von Änderungen zu beenden, verwenden Sie :q!. Mit diesem Befehl können Sie auch das oben beschriebene Hilfemenü verlassen und im Befehlsmodus zur aktuellen Datei zurückkehren.

3. N Zeilen abschneiden: Geben Sie Ndd ein, während Sie sich im Befehlsmodus befinden.

4. Kopieren Sie M Anzahl der Zeilen: Geben Sie Myy ein, während Sie sich im Befehlsmodus befinden.

5. Einfügen von Zeilen, die zuvor ausgeschnitten oder kopiert wurden: Drücken Sie die Taste P im Befehlsmodus.

6. So fügen Sie den Inhalt einer anderen Datei in die aktuelle Datei ein:

:r filename

Um beispielsweise den Inhalt von /etc/fstab einzufügen, gehen Sie wie folgt vor:

7. So fügen Sie die Ausgabe eines Befehls in das aktuelle Dokument ein:

:r! command

Fügen Sie z. B. das Datum und die Uhrzeit in die Zeile unter der aktuellen Position des Cursors ein:

In einem anderen Artikel, für den ich geschrieben habe (Teil 2 der LFCS-Serie), habe ich die in vim verfügbaren Tastenkombinationen und Funktionen ausführlicher erklärt. In diesem Tutorial finden Sie weitere Beispiele für die Verwendung dieses leistungsstarken Texteditors.

Analysieren von Text mit Grep und regulären Ausdrücken

Inzwischen haben Sie gelernt, wie Sie Dateien mit nano oder vim erstellen und bearbeiten. Angenommen, Sie werden sozusagen ein Texteditor-Ninja – was nun? Unter anderem müssen Sie auch wissen, wie Sie im Text nach regulären Ausdrücken suchen können.

Ein regulärer Ausdruck (auch als "Regex" oder "Regexp" bezeichnet) ist eine Möglichkeit, eine Textzeichenfolge oder ein Muster zu identifizieren, sodass ein Programm das Muster mit beliebigen Textzeichenfolgen vergleichen kann.

Obwohl die Verwendung regulärer Ausdrücke zusammen mit dem grep-Befehl einen eigenen Artikel verdienen würde, lassen Sie uns hier die Grundlagen überprüfen:

1. Der einfachste reguläre Ausdruck ist eine alphanumerische Zeichenkette (d. h. das Wort "svm ") oder zwei (wenn zwei vorhanden sind, können Sie die | (OR)-Operator):

grep -Ei 'svm|vmx' /proc/cpuinfo

Das Vorhandensein einer dieser beiden Zeichenfolgen gibt an, dass Ihr Prozessor die Virtualisierung unterstützt:

2. Eine zweite Art eines regulären Ausdrucks ist eine Bereichsliste, die in eckige Klammern eingeschlossen ist.

c[aeiou]t entspricht z. B. den Zeichenfolgen cat, cet, cit, cot und cut, während [a-z] und [0-9] mit jedem Kleinbuchstaben bzw. Dezimalziffern übereinstimmen.

Wenn Sie den regulären Ausdruck X eine bestimmte Anzahl von Malen wiederholen möchten, geben Sie {X} unmittelbar nach dem regulären Ausdruck ein.

Lassen Sie uns zum Beispiel die UUIDs von Speichergeräten aus /etc/fstab extrahieren:

grep -Ei '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' -o /etc/fstab

Der erste Ausdruck in eckigen Klammern [0-9a-f] wird verwendet, um Hexadezimalzeichen in Kleinbuchstaben zu bezeichnen, und {8} ist ein Quantifizierer, der angibt, wie oft die vorherige Übereinstimmung wiederholt werden soll (die erste Zeichenfolge in einer UUID ist eine 8 Zeichen lange hexadezimale Zeichenfolge).

Die Klammern, der {4} Quantifizierer und der Bindestrich geben an, dass die nächste Sequenz eine 4-stellige hexadezimale Zeichenfolge ist, und der Quantifizierer, der darauf folgt ({3}), gibt an, dass der Ausdruck 3 Mal wiederholt werden soll.

Schließlich wird die letzte Sequenz einer 12-stelligen hexadezimalen Zeichenkette in der UUID mit [0-9a-f]{12} abgerufen, und die Option -o gibt nur die übereinstimmenden (nicht leeren) Teile der passenden Zeile in /etc/fstab aus.

3. POSIX-Zeichenklassen.

Zeichen-KlasseStreichhölzer...
[[:alnum:]] Jedes alphanumerische Zeichen [a-zA-Z0-9]
[[:alpha:]] Jedes alphabetische Zeichen [a-zA-Z]
 [[:leer:]] Leerzeichen oder Tabulatoren
[[:cntrl:]] Beliebige Steuerzeichen (ASCII 0 bis 32)
 [[:d igit:]] Beliebige numerische Ziffern [0-9]
[[:graph:]] Alle sichtbaren Zeichen
 [[:niedriger:]] Alle Kleinbuchstaben [a-z]
 [[:p rint:]] Alle Nicht-Steuerzeichen
 [[:Raum:]] Alle Leerzeichen
 [[:p unct:]] Beliebige Satzzeichen
 [[:oben:]] Alle Großbuchstaben [A-Z]
[[:xdigit:]] Alle Hexadezimalziffern [0-9a-fA-F]
 [:Wort:] Alle Buchstaben, Zahlen und Unterstriche [a-zA-Z0-9_]

Zum Beispiel könnten wir daran interessiert sein, herauszufinden, was die verwendeten UIDs und GIDs (siehe Teil 3 dieser Serie, um Ihr Gedächtnis aufzufrischen) für echte Benutzer sind, die zu unserem System hinzugefügt wurden. Daher werden wir in /etc/passwd nach Sequenzen von 4 Ziffern suchen:

grep -Ei [[:digit:]]{4} /etc/passwd

Das obige Beispiel ist vielleicht nicht der beste Fall für die Verwendung regulärer Ausdrücke in der realen Welt, aber es veranschaulicht deutlich, wie POSIX-Zeichenklassen verwendet werden, um Text zusammen mit grep zu analysieren.

Schlussfolgerung

In diesem Artikel haben wir einige Tipps gegeben, um das Beste aus nano und vim, zwei Texteditoren für die Befehlszeilenbenutzer, herauszuholen.

Beide Tools werden durch eine umfangreiche Dokumentation unterstützt, die Sie auf den jeweiligen offiziellen Websites und unter Verwendung der in Teil 2 dieser Serie gegebenen Vorschläge konsultieren können.

Für eine umfassende Vorbereitung auf die RHCSA-Prüfung haben wir ein umfassendes E-Book mit dem Titel "RHCSA Exam Study Guide" erstellt, das alle Ziele mit praktischen Beispielen abdeckt.

Verwandte Artikel: