claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 12/2004

Im Notfall mit Kommandozeilen-Editoren arbeiten

Zur Hilfe!

von Martin Loschwitz


Spielt die grafische Oberfläche nicht mehr so mit, wie der Benutzer es gerne hätte, kann das Bearbeiten von Konfigurationsdateien über die Kommandozeile Abhilfe schaffen. Wir zeigen, was Sie beachten müssen.

Sie kennen das vielleicht: Nach dem Einbau einer neuen Hardware-Komponente verhält sich Ihr Linux nicht mehr so, wie es soll. Im günstigsten Fall können Sie das Problem über ein Administrations-Tool wie YaST lösen und dafür sorgen, dass alles wieder seine gewohnten Bahnen geht. Spielt aber der X-Server (das Programm, das die grafische Oberfläche aufbaut) verrückt, steht man im Dunkeln. Guter Rat ist dann teuer, was also tun?

Häufig ist der Übeltäter nichts anderes als ein falscher Eintrag zur Hardware-Konfiguration in einer Einstellungsdatei. Außerdem kommt es vor, dass ein Programm aufgrund von Veränderungen durch den Benutzer nicht mehr starten möchte und so andere Programme in Mitleidenschaft zieht. Das System wird so im Domino-Effekt lahmgelegt.

Die Lösung ist so simpel wie einleuchtend: Entfernt man den falschen Eintrag aus der Konfigurationsdatei oder ändert eine Datei so, dass sie an die geänderten Voraussetzungen im System angepasst ist, verweigert das Programm nicht länger den Dienst, und das System funktioniert bestenfalls wieder vollständig. Wenn wenigstens der X-Server wieder läuft, kann man die restlichen Aufgaben mit den grafischen Tools erledigen.

Reparatur auf der Konsole

Wie bekommt man also Konfigurationsdateien auf Vordermann, um sich so schnell wie möglich der Kommandozeile zu entledigen? Das geht nur mit einem Editor für die Kommandozeile.

Vertreter dieser Sparte existieren genug, aber nicht alle sind für Einsteiger verständlich und bedienbar. Ohnehin ist es für Anwender, die nie das zweifelhafte Vergnügen hatten, am MS-DOS-Prompt zu arbeiten, sehr schwierig, plötzlich ohne Maus auskommen zu müssen. Deswegen sollte ein Kommandozeilen-Editor so bequem wie möglich sein, damit der Benutzer die anstehende Arbeit schnell über die Bühne bringen und zum Tagesgeschäft zurückkehren kann.

Wir haben vier Vertreter dieser Sorte untersucht und wollen Ihnen in diesem Artikel eine einfache Anleitung an die Hand geben, die wichtige und elementare Funktionen beschreibt und so dabei hilft, die Programme im Notfall zu bedienen. Die vier Beispiel-Editoren sind nano/pico, joe, Emacs und der eingebaute Editor des Datei-Managers mc.

Bei der Beschreibung der Programme lassen wir außerdem alle weniger wichtigen Funktionen außen vor und beschreiben nur, wie Sie den Editor starten, Text einfügen, löschen und kopieren, wie sie danach eine Datei speichern und den Editor wieder verlassen.

Ein kurzer Hinweis, bevor es los geht: Dateien, die das Potenzial haben, das gesamte System bei Fehlkonfiguration lahmzulegen (und genau um solche Dateien geht es in diesem Artikel) sind meistens Systemdateien und können deswegen nur vom Administrator root verändert werden. Daher sollten Sie sich vor der Arbeit mit einem Editor erst mit su die Rechte von root verschaffen.

1. nano und pico

Vielleicht haben Sie entweder von nano oder von pico gehört und fragen sich, welchen Unterschied es zwischen den beiden Programmen gibt. In den meisten Fällen werden Sie kaum bemerken, ob Sie pico oder nano verwenden.

Grund für die Existenz der beiden Programme sind Lizenz-Fragen: Die Lizenz von pico schreibt vor, dass das Programm nicht auf demselben Medium mit anderer Software vertrieben wird, die als "nicht frei" eingestuft wird. Distributoren wie Suse können deswegen pico nicht in ihren Distributionen vertreiben, weil sie obendrein noch andere, proprietäre Software verteilen. Aus diesem Grund existiert nano: Es ist eigentlich nur ein Klon von pico, der aber ohne die Beschränkung auskommt, die bei pico existiert. Ob pico bei Ihrer Distribution dabei ist und bereits installiert wurde, testen Sie, indem Sie mit [Alt-F2] und konsole eine Kommandozeile öffnen und darin den Befehl pico ausführen. Erscheint ein Editor, ist pico installiert, andernfalls wird vermutlich nano vorhanden sein.

Denken Sie zunächst daran, mit su zu root zu werden. Eine Datei in pico / nano zu öffnen, ist sehr einfach: Sie geben auf der Konsole einfach den Befehl

nano Datei

(bzw. pico Datei) ein. Der Editor startet, und Sie sehen den Inhalt der Datei direkt vor sich. In der Zeile mit Read xxx lines zeigt nano, wie viele Zeilen die Datei insgesamt hat. Die beiden Zeilen am unteren Rand sind bereits eine Art Hilfe im Programm: Sie sehen dort einfache Tastaturkommandos, wobei jeweils ein Zirkumflex ("^") vor einem Großbuchstaben steht (Abbildung 1). Der Zirkumflex steht in der Unix- und Linux-Welt für die [Strg]-Taste, d. h.: Wenn Sie "^G Get Help" lesen, holen Sie den Hilfetext mit der Tastenkombination [Strg-G] auf den Bildschirm. Gleiches gilt natürlich für alle Kommandos, die an dieser Stelle gelistet sind.

Abb. 1: Die Konfigurationsdatei "XF86Config-4" des X-Servers in "nano".

Drauf los schreiben

Auf geht's also mit der Editiererei. Nach dem Öffnen der Datei sehen Sie im Editor oben links den Cursor, den Sie mit den Pfeiltasten in alle vier Richtungen bewegen. Um Zeichen zu löschen, verwenden Sie die [Backspace]-Taste oder die [Entf]-Taste, um rechts vom Cursor zu löschen. Möchten Sie eine komplette Zeile entfernen, geht das komfortabel mit der Tastenkombination [Strg-K], der Cursor muss für diese Funktion in der Zeile stehen, die Sie löschen wollen.

Eine wichtige Funktion eines Text-Editors ist, Text zu kopieren und an einer anderen Stelle im Dokument wieder einzufügen. Die Funktion, die bei X noch recht simpel mit dem Scrollrad (bzw. der mittleren Taste) der Maus funktioniert, muss bei der Konsole natürlich anders umgesetzt werden. Jeder Editor braut hier sein eigenes Süppchen, weil es keine standardisierte Methode gibt.

Cut & Paste statt Copy & Paste

Bei nano legen Sie zunächst Zeilen in den so genannten Cutbuffer, die Zwischenablage von nano. Das geht -- wie beim Löschen von Text -- mit der Tastenkombination [Strg-K], wobei der Cursor jeweils in der Zeile stehen muss, die Sie verschieben wollen. Den nano-Weg kann man nicht als typischen Weg für Copy & Paste bezeichnen, denn die Zeilen, die aus der Datei in den Buffer gelegt werden, werden aus der Datei ausgeschnitten.

Mit [Strg-K] verschieben Sie sowohl eine einzelne als auch mehrere Zeilen in den Cutbuffer. Um die ausgeschnittenen Zeilen an anderer Stelle einzufügen, bewegen Sie den Cursor erst an die Position, an der der Text stehen soll und drücken dann [Strg-U]. Um eine echte Kopie der Zeile zu erstellen, müssen Sie den Text also zweimal einfügen: einmal an der Ursprungsposition und zudem an der Stelle, an der er nachher stehen soll.

Suche im Text

Möchten Sie Text in einer großen Datei ersetzen, wird es meistens schwierig, die passende Stelle zu finden. Hilfreich ist, wenn man einen Suchbegriff kennt, der schnell zur passenden Stelle führt. Für diese Situation bieten nano und pico eine Suchfunktion. Nutzen können Sie diese, indem Sie zunächst mit [Strg-W] den so genannten Such-Prompt aufrufen, den gesuchten Begriff eingeben und mit [Eingabe] die Suche starten. Der Cursor springt dann zum ersten Buchstaben des ersten Treffers.

Sind Sie mit Ihren Änderungen am Dokument zufrieden, beenden Sie den Editor mit [Strg-X]. Das Programm fragt dann zunächst, ob Sie speichern wollen -- auf diese Frage antworten Sie mit [J]. Geben Sie dann noch einen Dateinamen an. Der ursprüngliche Dateiname ist vorgegeben, im Normalfall drücken Sie einfach [Eingabe], um die alte Version der Datei zu überschreiben.

Übrigens: nano und pico bieten sehr gute Hilfstexte, die Sie mit [Strg-G] abrufen.

2. Joe's own editor

Ein weiterer Vertreter der Kommandozeilen-Editoren ist joe. Das Programm gehört bei den meisten Distributionen ebenfalls zur Standardinstallation -- ob das bei Ihnen der Fall ist, prüfen Sie mit joe auf der Konsole. Erhalten Sie eine Fehlermeldung, installieren Sie joe mit YaST, RPMDrake oder Fedoras Tool für die Paketinstallation nach. Danach sollte der Aufruf von joe den Editor auf der Konsole zum Vorschein bringen. Auch hier hängen Sie den Namen der Datei als Argument an das joe-Kommando.

Abb. 2: Auch Joe's own editor "joe" ist auf vielen Rechnern vorinstalliert. Er reagiert auf die gleichen Tastenkombinationen wie WordStar und Turbo Pascal.

Auffällig an joe ist, dass die Navigationsleiste, die bei nano / pico am unteren Rand liegt, fehlt. Lediglich am oberen Rand gibt es eine Info-Zeile, in der Dateiname, Uhrzeit und Position des Cursors angezeigt werden. Trotzdem können Sie alle Funktionen, die oben für nano und pico beschrieben wurden, auch mit joe umsetzen.

Wie bei WordStar

Auch bei Joe bewegen Sie den Cursor mit den Pfeiltasten durch den Text. Genau wie nano wickelt joe auch die Eingabe von Befehlen ab, denn auch hier kommt die [Strg]-Taste zum Einsatz: Wer noch die alten Befehle vom Textverarbeitungsklassiker WordStar oder der Programmierumgebung Turbo Pascal kennt, wird sich bei joe gleich heimisch fühlen.

Text löschen Sie mit der [Backspace]- bzw. [Entf]-Taste. Komplette Zeilen zu entfernen, gestaltet sich in joe unkomplizierter als bei nano; eine Zeile verschwindet mittels [Strg-Y].

Blockweise

Copy & Paste hat joe konsequent umgesetzt: Wichtig ist, dass joe mit Textblöcken arbeitet. Um einen Textbereich zu kopieren, legt man den Anfang und das Ende, kopiert den Textblock dann in den Zwischenspeicher und fügt ihn schließlich an anderer Stelle wieder ein.

Der Reihe nach:

  1. Um den Begin eines Textblocks festzulegen, bewegen Sie den Cursor mit den Pfeiltasten auf den ersten Buchstaben des Blocks. Die Tastenkombination [Strg-K], [B] legt dann diese Stelle als Anfang des Blocks fest.
  1. Danach bewegen Sie den Cursor zum letzten Buchstaben, der im Block vorhanden sein soll und signalisieren das Ende des Blocks mit [Strg-K], [K]. (Die beiden Kommandos merkt man sich leicht darüber, dass das Wort "Block" mit "B" anfängt und mit "K" aufhört.) Den so markierten Bereich hebt joe auch besonders hervor.
  1. Es folgt der eigentlich Kopiervorgang: Bewegen Sie den Cursor zunächst an die Stelle, an der der Text eingefügt werden soll. Mit [Strg-K], [C] ("C" wie "Copy") fügen Sie den Block an der Position des Cursors ein.

    Joe sucht

    Auch mit joe suchen Sie komfortabel nach Textstellen. Den Prompt, an dem Sie den Suchbegriff eingeben, holen Sie mit [Strg-K], [F] ("Find") auf den Bildschirm. Dort geben Sie den Suchtext ein und bestätigen die Eingabe mit zweimal [Eingabe].

    Mit [Strg-K], [x] speichern Sie die Datei. Übrigens: Wenn Sie mit Ihren Änderungen nicht zufrieden sind und lieber nochmal ganz von vorn anfangen möchten, hilft [Strg-C]: Damit kommen Sie (nach Beantworten einer Sicherheitsabfrage) ohne Übernahme der Änderungen aus dem Programm heraus.

    Sollten Sie ein Problem mit joe haben und so gar nicht weiter kommen, holen Sie mit [Strg-K], [H] eine Liste aller Tastaturkürzel und der damit verbundenen Funktionen auf den Bildschirm; auch bei joe steht ein "^" vor einem Buchstaben für die [Strg]-Taste.

    Was tun, wenn's brennt? "vi" im Alltag

    Wenn Sie als unerfahrener Anwender die Kommandozeile verwenden, kann es vorkommen, dass Sie plötzlich im Editor vi landen und verzweifelt Tastaturkommandos eingeben, ohne eine Reaktion zu sehen. Ursache für den vi-Start ist meist die Umgebungsvariable $EDITOR: Hier ist als Editor in der Regel vi eingetragen. Das mag daran liegen, dass vi einer der ältesten Editoren ist und mit fast jeder Linux-Installation standardmäßig auf die Platte gelangt. Dennoch ist vi für unerfahrene Nutzer schlicht unbedienbar, weil er komplizierte Befehlsmodi kennt, in denen teilweise keine Texteingabe möglich ist.

    Ob Sie tatsächlich in vi gelangt sind, erkennen Sie am einfachsten daran, dass am linken Rand am Anfang jeder Zeile eine Raute zu sehen ist. Wenn Sie außerdem [I] drücken und daraufhin am unteren Bildschirmrand "-- EINGABE --" erscheint, sind Sie garantiert in vi.

    Es empfiehlt sich dann, vi schnell wieder zu verlassen. Das erledigen Sie mit [Esc] und danach mit der Eingabe der vier Zeichen

    [:q!]

    (mit führendem Doppelpunkt). Möchten Sie zudem sicherstellen, dass Sie -- zumindest solange der X-Server nicht funktioniert -- nicht mehr von vi belästigt werden, ändern Sie den Inhalt der Variable $EDITOR: Mit

    export EDITOR=nano

    legen Sie fest, dass alle Programme, die einen Editor aufrufen wollen, nano starten sollen. Achtung: Nach Aus- und Einloggen oder nach einem Reboot ist $EDITOR wieder auf den Standardwert zurückgesetzt.

    Emacs als Allround-Talent

    Bereits in der Einleitung wurde Emacs erwähnt. Er ist der bekannteste und zugleich auch umfangreichste Editor, den man sich denken kann. Wenn man ihn mit entsprechenden Plugins ausstattet, übernimmt er vom IRC-Client bis zum Mail-Programm komfortabel jede Aufgabe. Natürlich ist er im Notfall auch als Editor zu gebrauchen, um eine Konfigurationsdatei so unkompliziert wie möglich zu verändern.

    Emacs wird genauso ist in jeder Distribution enthalten und wird -- je nach gewählter Software-Auswahl -- standardmäßig mitinstalliert. Ob Emacs auf Ihrem Rechner vorhanden ist, testen Sie mit emacs auf der Konsole. Um eine Datei zu öffnen, hängen Sie den Dateinamen an den Aufruf an.

    Emacs bietet ein bekanntes Bild, und auch in Sachen Funktionen der einzelnen Tasten bleibt alles beim Alten: Sie sehen einen Cursor, den Sie mit den Pfeiltasten verschieben. Die [Backspace]- und die [Entf]-Tasten funktionieren wie gewohnt.

    Auch bei Emacs wickeln Sie einen großen Teil der Editierbefehle mit der [Strg]-Taste ab. Um eine Datei im Emacs zu verändern, bewegen Sie den Cursor einfach an die entsprechende Stelle und geben Text ein. Zum Kopieren von Textteilen legen Sie auch bei Emacs über Tastaturkommandos einen Textblock fest, der später an anderer Stelle im Dokument erscheinen soll. Dabei entfernen Sie den Text an der alten Stelle aber ganz aus dem Dokument, so dass Sie ihn am Ende, um ihn wirklich zu kopieren und nicht nur zu verschieben, zweimal einfügen -- einmal dort, wo er aus dem Dokument geschnitten wurde, und an der Zielposition.

    Emacs kopiert

    Um einen Text in Emacs zu kopieren und an anderer Stelle einzufügen, bewegen Sie den Cursor an den Anfang des Texts. Danach legen Sie mit [Strg-Leertaste] den Anfang des Blocks fest. Nun wandert Sie mit dem Cursor zum Zeichen, das das Ende des Textblocks markiert. [Strg-W] schneidet dann den Block von der Start- bis zur aktuellen Position aus. Der markierte Text verschwindet vom Bildschirm -- mit [Strg-Y] fügen Sie ihn auf Wunsch direkt wieder ein. Bewegen Sie den Cursor dann an die Zielposition. Nach einem weiteren [Strg-Y] erscheint der Text an der neuen Stelle.

    Schnellsuche

    Die Suchfunktion erreichen Sie über [Strg-S]. Gleich nach dieser Tastenkombination geben Sie den Suchbegriff ein. Emacs markiert -- noch während Sie tippen -- alle passenden Fundstellen, und der Cursor springt zum ersten Treffer. Je länger Ihr Suchbegriff wird, desto weiter vorwärts springen Sie im Text, weil die bisherigen Treffer nicht mehr alle passen. Ist der Suchbegriff bereits komplett, drücken Sie mehrfach [Strg-S], um der Reihe nach alle Treffer zu sehen. Die Suche beenden Sie beispielsweise durch Druck auf eine der Cursor-Tasten.

    Abb. 3: Emacs markiert bei der Suche gleich alle Fundstellen und springt zum ersten Treffer.

    Sind Sie mit den Änderungen zufrieden, speichern Sie die Datei mit [Strg-X], [Strg-S] ab. Wollen Sie stattdessen die Änderungen verwerfen, ist [Strg-X], [Strg-C] gefolgt von no der richtige Weg. Wenn Sie beim Arbeiten mit Emacs den Wald vor lauter Bäumen nicht mehr sehen, lohnt ein Blick in die Emacs-Hilfe: Diese rufen Sie mit [Strg-H], [H] auf.

    mcedit für Alt-DOS-ler

    Der letzte Editor in diesem Artikel ist mcedit, der ursprünglich lediglich eine Komponente des Textmodus-Dateimanagers mc war. mcedit ist aber ein vollwertiger Editor, der in direkte Konkurrenz mit nano, joe und Emacs treten kann.

    Dank seiner Benutzerfreundlichkeit (gemessen an den Standards in der Konsole) zählt der Midnight Commander und mit ihm mcedit heute zur Standardausrüstung der Distributionen und wird in den meisten Fällen bereits installiert sein. Sie starten mcedit, indem Sie auf der Konsole den Befehl

    mcedit Dateiname

    ausführen. Bei den Grundfunktionen bleibt alles beim Alten: Die Tasten haben den gewohnten Effekt. Anders als die anderen Editoren verzichtet mcedit auf die Verwendung der [Strg]-Taste. Stattdessen benutzen Sie die Funktionstasten ([F1], [F2] usw.). Ein offensichtlicher äußerer Unterschied ergibt sich schon beim Betrachten des Editors: Ungewohnt farbenfroh präsentiert er sich im direkten Duell mit den drei anderen Programmen.

    Abb. 4: "mcedit" dürfte vor allem Freunden des Norton Commanders (aus MS-DOS-Zeiten) gefallen.

    Zum Kopieren und Einfügen von Text bietet mcedit eine komfortable Methode; sie funktioniert nach dem bereits bekannten Schema, zuerst einen Block im Text zu markieren und diesen dann zu kopieren. Das ist denkbar einfach:

    1. Bewegen Sie den Cursor an den Anfang des Textblocks und drücken Sie [F3].
    1. Springen Sie dann ans Ende des Textblocks, können Sie bereits erkennen, dass der gewählte Bereich in anderer Hintergrundfarbe dargestellt wird.
    1. Drücken Sie nochmals [F3], um den Markiermodus zu verlassen.
    1. Bewegen Sie den Cursor nun an die Zielposition. Mit der Funktionstaste [F5] fügen Sie den Text ein. Alternativ können Sie auch [F6] drücken -- damit verschieben Sie den Text, der Originalblock wird also gelöscht.

    Für Textsuche gibt es in mcedit ebenfalls eine einfache Funktion. Unten in der Leiste können Sie bereits den Eintrag 7 Suchen sehen. Drücken Sie [F7], um den Suchdialog auf den Schirm zu holen. Achten Sie vorher darauf, dass der Cursor ganz am Anfang des Textes steht. Geben Sie dann den Suchbegriff ein und bestätigen Sie mit [Eingabe]. Der Cursor springt automatisch zur ersten Fundstelle.

    Schließlich können Sie auch mcedit schließen: Mit [F10] rufen Sie den Beenden-Dialog auf. Dort haben Sie die Wahl:

    Fazit

    Welchen Editor Sie selbst verwenden wollen, ist eine Geschmacksfrage -- einen "besten" Editor gibt es nicht. Viele Editoren empfehlen sich über ihre Herkunft: So hat joe die Tastenkommandos von WordStar und Turbo Pascal, mcedit als mc-Komponente ist für Anhänger des Norton Commanders unter DOS interessant. Es ist in jedem Fall hilfreich, sich mit mindestens einem dieser Programme vertraut zu machen, damit Sie sich beim nächsten Problem mit der Grafikkarte auch selbst helfen können. (hge)

    Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

    Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-01-25 17:30

    [Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]