Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
TEIL I: Einstieg in Linux
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
TEIL II: Grundlagen
5 Kernel
6 Grundlagen aus Anwendersicht
TEIL III: Die Shell
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
TEIL IV: System- & Netzwerkadministration
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP & Co.
20 DNS-Server
21 Secure Shell
TEIL V: Die grafische Oberfläche
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
TEIL VI: Systeminterna
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
TEIL VII: Programmierung und Sicherheit
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in Computersicherheit
33 Netzwerksicherheit überwachen
TEIL VIII: Anhang
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Buch-DVDs
F Glossar
G Literatur
Stichwort
Ihre Meinung?

Spacer
Linux von Johannes Plötner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
Rheinwerk Computing
1282 S., 5., aktualisierte Auflage 2012, geb., mit 2 DVDs
49,90 Euro, ISBN 978-3-8362-1822-1
Pfeil 10 Die Editoren
Pfeil 10.1 Anforderungen an Editoren
Pfeil 10.2 vi
Pfeil 10.2.1 Den vi starten
Pfeil 10.2.2 Kommando- und Eingabemodus
Pfeil 10.2.3 Dateien speichern
Pfeil 10.2.4 Arbeiten mit dem Eingabemodus
Pfeil 10.2.5 Navigation
Pfeil 10.2.6 Löschen von Textstellen
Pfeil 10.2.7 Textbereiche ersetzen
Pfeil 10.2.8 Kopieren von Textbereichen
Pfeil 10.2.9 Shiften
Pfeil 10.2.10 Die Suchfunktion
Pfeil 10.2.11 Konfiguration
Pfeil 10.3 vim
Pfeil 10.4 Emacs
Pfeil 10.4.1 Konzepte
Pfeil 10.4.2 Grundlegende Kommandos
Pfeil 10.4.3 Arbeiten mit Puffern und Fenstern
Pfeil 10.4.4 Arbeiten mit Mark und Region
Pfeil 10.4.5 Das Menü nutzen
Pfeil 10.4.6 Emacs konfigurieren
Pfeil 10.5 Der Editor »ed«
Pfeil 10.5.1 Grundlagen
Pfeil 10.5.2 Eingeben und Anzeigen von Inhalten
Pfeil 10.5.3 Inhalte kopieren und einfügen
Pfeil 10.5.4 Beenden erzwingen
Pfeil 10.5.5 Weitere wichtige Befehle
Pfeil 10.6 Editoren in der Shell
Pfeil 10.7 Zusammenfassung
Pfeil 10.8 Aufgaben

Rheinwerk Computing - Zum Seitenanfang

10.2 viZur nächsten Überschrift

Auch wenn der vi-Editor nicht alle der obigen Features abdecken kann, so ist er doch – hat man ihn einmal verstanden – recht einfach zu bedienen. Vor allen Dingen aber ist er klein, schnell und überall verfügbar.

Abbildung

Abbildung 10.1 Der vi-Editor mit geladener httpd.conf


Rheinwerk Computing - Zum Seitenanfang

10.2.1 Den vi startenZur nächsten ÜberschriftZur vorigen Überschrift

Der Editor wird über die Kommandozeile aufgerufen. Dabei wird optional der Name einer zu editierenden oder neu zu erstellenden Datei [Fn. Dieser wird erst beim Abspeichern der Textdatei tatsächlich erstellt.] übergeben.

Status-Zeile

Nachdem der Editor geladen worden ist, bekommt man ein fast leeres Terminalfenster [Fn. Der vi-Editor läuft nicht auf allen Terminals ganz perfekt. Ein VT100- oder VT220"=kompatibles Terminal sollte jedoch problemlos seinen Dienst tun.] zu sehen. Die Tilden stehen für leere Zeilen. Die unterste Zeile wird als Statuszeile genutzt und gibt Ihnen den Dateinamen sowie die Zeilenanzahl und die Dateigröße in Zeichen respektive Bytes an:

Listing 10.1 Statuszeile

# Statuszeile bei einer neuen Datei:
/tmp/file: new file: line 1

# Statuszeile bei einer bereits gesicherten Datei:
/tmp/file: 1 lines, 5 characters.

Rheinwerk Computing - Zum Seitenanfang

10.2.2 Kommando- und EingabemodusZur nächsten ÜberschriftZur vorigen Überschrift

Um mit dem vi arbeiten zu können, muss man zunächst wissen, dass er über zwei Modi verfügt: den Eingabe- und den Kommandomodus. Im Eingabemodus wird Text eingefügt, ersetzt oder gelöscht. Im Kommandomodus lässt sich der Editor konfigurieren. Zudem werden die wichtigen Operationen wie das Abspeichern einer Datei oder das Suchen von Textstellen in diesem Modus abgewickelt.

Wie kommt man überhaupt wieder heraus?

Ganz einfach: Zunächst wechseln Sie mit der Esc-Taste in den Kommandomodus. Anschließend können Sie in der Statuszeile (die nun zur Kommandozeile geworden ist) den Befehl zum Beenden eingeben. Da Steuerbefehle mit einem Doppelpunkt beginnen und zum Beenden der Quit-Befehl (q) verwendet wird, muss nun folglich :q eingegeben werden.


Rheinwerk Computing - Zum Seitenanfang

10.2.3 Dateien speichernZur nächsten ÜberschriftZur vorigen Überschrift

Dateien werden im Kommandomodus gespeichert. Das hierfür notwendige Kommando »write« (w) schreibt die Datei unter dem geöffneten Namen auf das Speichermedium. Allerdings kann auch ein Name für die Datei als Parameter für w übergeben werden: :w /home/user/test. Um zu speichern und gleichzeitig den Editor zu beenden, können die Befehle kombiniert werden: :wq [Dateiname].

[+]Soll ohne Rücksicht auf Verluste von veränderten Daten (also ohne die Änderungen zu speichern) ein Quit durchgeführt werden oder sollen Veränderungen an einer schreibgeschützten Datei – für die man natürlich Änderungsrechte besitzen muss – durchgeführt werden, muss dem Kommando ein Ausrufezeichen übergeben werden: :q! beziehungsweise :w! oder :wq!.

Rheinwerk Computing - Zum Seitenanfang

10.2.4 Arbeiten mit dem EingabemodusZur nächsten ÜberschriftZur vorigen Überschrift

Nach dem Start des vi-Editors befinden Sie sich zunächst im Kommandomodus. Um Text zu schreiben, wechseln Sie in den Eingabemodus. Dies kann mit verschiedenen Eingabekommandos erfolgen.

Tabelle 10.1 Eingabemodi

Kommando Wirkung

i (insert)

Text vor dem aktuellen Zeichen einfügen

I

Text am Anfang der Zeile einfügen

a (append)

Text hinter dem aktuellen Zeichen einfügen

A

Text am Ende der Zeile einfügen

o (open)

Text in einer neuen Zeile unterhalb der aktuellen Zeile einfügen

O

Text in einer neuen Zeile oberhalb der aktuellen Zeile einfügen

[»]Am besten probieren Sie alle obigen Kommandos einmal an einer Beispieldatei aus. Schreiben Sie sich einfach eine Mail im vi, und senden Sie sich diese dann via Eingabeumlenkung mit dem mail-Programm selbst zu.

Rheinwerk Computing - Zum Seitenanfang

10.2.5 NavigationZur nächsten ÜberschriftZur vorigen Überschrift

Um sich im Text zu bewegen, greift man in der Regel auf die Cursor-Tasten zurück. Mit diesen allein sind leider oftmals längere Scroll-Abenteuer unvermeidlich. Aus diesem Grund haben sich die Entwickler des Editors einige Features überlegt, um sich effizient und schnell im Text bewegen zu können.

Tabelle 10.2 Navigationskommandos

Kommando Wirkung

$

Ende der aktuellen Zeile

^ und 0

zum Anfang der aktuellen Zeile

w

ein Wort vorwärts

b

ein Wort zurück

Strg + F

eine Seite vorwärtsblättern (geht manchmal auch mit der Bild-Ab-Taste)

Strg + B

eine Seite zurückblättern (geht manchmal auch mit der Bild-Auf-Taste)

G

zur letzten Zeile der Datei bewegen

f[n]

zum nächsten Vorkommen des Zeichens n in der aktuellen Zeile gehen (Achtung: case-sensitive)

:[n] und [n]G

zur Zeile n bewegen (eignet sich gut, um Compilierfehlern im Quellcode nachzugehen)

[»]An älteren Unix-Terminals standen oftmals keine Cursor-Tasten zur Verfügung. Daher kann auch mit den Befehlen h (rechts), j (runter), k (rauf) und l (links) navigiert werden. Dazu muss allerdings in den Kommandomodus gewechselt werden.

Rheinwerk Computing - Zum Seitenanfang

10.2.6 Löschen von TextstellenZur nächsten ÜberschriftZur vorigen Überschrift

Sofern Sie an die Editoren grafischer Oberflächen wie etwa aus der Windows-Welt gewöhnt sind, ist Ihnen bekannt, dass mit der Backspace-Taste ein geschriebenes Zeichen wieder gelöscht werden kann. Im vi-Editor steht diese Funktionalität nicht zur Verfügung.

Ein Löschvorgang muss – wie immer – über den Kommandomodus mit entsprechenden Anweisungen bewerkstelligt werden. Die nachstehende Tabelle fasst die vi-Kommandos zum Löschen von Textstellen zusammen:

Tabelle 10.3 Löschkommandos

Kommando Wirkung

dw

Löscht das aktuelle Wort.

d$ und D

Löscht vom aktuellen Zeichen bis zum Ende der Zeile.

d0 und d^

Löschen vom aktuellen Zeichen bis zum Zeilenanfang.

df[c]

Löscht vom aktuellen Zeichen bis zum Vorkommen von c in der aktuellen Zeile.

dG

Löscht alles von der aktuellen bis zur einschließlich letzten Zeile des Buffers.

d1G

Löscht alles von der aktuellen bis zur einschließlich ersten Zeile des Buffers.

dd

Löscht die aktuelle Zeile.

[+]Sollten Sie einmal aus Versehen eine Aktion durchgeführt haben, die Sie wieder rückgängig machen möchten (etwa unbeabsichtigtes Überschreiben oder Löschen), so ist dies mit dem Kommando u (undo) möglich. Doch beachten Sie, dass diese Möglichkeit nur für den jeweils letzten Vorgang besteht. Sobald Sie hinter dem Wort, das Sie wieder löschen möchten, ein neues Wort geschrieben haben, ist Ihnen diese Möglichkeit also verbaut. Da hilft nur das vorher erstellte Backup oder das Beenden ohne Speichern (:q!).

Rheinwerk Computing - Zum Seitenanfang

10.2.7 Textbereiche ersetzenZur nächsten ÜberschriftZur vorigen Überschrift

Oftmals möchten Sie ein Wort nicht einfach nur löschen, sondern es überschreiben, einzelne Zeichen eines Wortes ersetzen oder Ähnliches. Dies können Sie mit den c-Kommandos umsetzen.

Tabelle 10.4 Ersetzen-Kommandos

Kommando Wirkung

cw

Überschreibt ein ganzes Wort.

c$ und D

Überschreibt vom aktuellen Punkt bis zum Ende der Zeile.

c0 und c^

Überschreibt vom aktuellen Punkt bis zum Anfang der Zeile.

cf[c]

Überschreibt bis zum nächsten Zeichen »c« der aktuellen Zeile.

[zB]Nehmen wir einmal an, der Inhalt einer Datei text.txt enthält den String »Dies ist der Inhalt von 'text.txt'.«. Nun soll das Wort »ist« in »wird« geändert werden. Bewegen Sie den Cursor dazu auf den Buchstaben »i« des Wortes »ist«, und drücken Sie zunächst die Taste C und anschließend W.

Daraufhin wandelt sich der letzte Buchstabe des Wortes in ein Dollarzeichen ($) um und signalisiert damit das Ende des Textbereichs, den Sie nun ersetzen können. Alles, was nun eingetippt wird, setzt der vi-Editor vor den String »der Inhalt ...«:

Listing 10.2 So ändert man Textstellen.

# nach Aktivierung von 'cw':
Das is$ der Inhalt von 'test.txt'.
# daraus wird:
Das wird der Inhalt von 'text.txt'.

Rheinwerk Computing - Zum Seitenanfang

10.2.8 Kopieren von TextbereichenZur nächsten ÜberschriftZur vorigen Überschrift

Der Kopiervorgang im vi-Editor gestaltet sich ein wenig kompliziert. Zunächst einmal muss zwischen dem Verschieben und dem tatsächlichen Kopieren von Textbereichen unterschieden werden.

Löscht man einen Textbereich mit dem dX-Kommando (etwa dd, um eine ganze Zeile zu löschen), so wird dieser in den Zwischenspeicher kopiert und kann an beliebiger Stelle wieder eingefügt werden. Dazu muss lediglich die Taste P betätigt werden. Ein kleines »p« fügt den Text vor der Cursor-Position ein, ein großes »P« dahinter.

Möchte man den Text jedoch tatsächlich kopieren, so muss man das y-Kommando verwenden. Die Handhabung entspricht der des oben genannten dx-Kommandos. Der Unterschied besteht lediglich darin, dass der Text nicht gelöscht wird.


Rheinwerk Computing - Zum Seitenanfang

10.2.9 ShiftenZur nächsten ÜberschriftZur vorigen Überschrift

Mithilfe von zwei Größer- bzw. Kleiner-als-Zeichen (») und («) kann eine Zeile um eine Shift-Einheit nach links bzw. rechts gerückt werden. Dieses Feature eignet sich hervorragend bei programmiertechnischen Anwendungen des Editors, etwa wenn es darum geht, eine Schleife um einen Kommandoblock zu setzen. Die Shift-Einheit kann über den Befehl :set shiftwidth=x gesetzt werden, wobei x die Anzahl der Zeichen ist, um die der Text verschoben werden soll.


Rheinwerk Computing - Zum Seitenanfang

10.2.10 Die SuchfunktionZur nächsten ÜberschriftZur vorigen Überschrift

Im vi wurde eine exzellente Suchfunktion implementiert. Sie gestattet neben den normalen Suchvorgängen auch die Suche mittels regulärer Ausdrücke, wie Sie sie bereits in Kapitel kap_regex kennengelernt haben.

Generell wird eine Suche mit einem Slash im Kommandomodus des Editors eingeleitet. Diesem Slash folgt der Suchbegriff, etwa /Bewerbung. Mithilfe von regulären Ausdrücken kann auch nach dem Zeilenanfang und -ende, nach dem Wortanfang und -ende oder nach Strings mit beliebigen Zeichen gesucht werden.

Listing 10.3 Suchen nach Textstellen

# Nach dem Wort ' awk ' suchen:
/\ awk\

# Nach einer Zeile suchen, die mit 'Eine' beginnt:
/^Eine

# Suchen nach Wörtern, die auf 'h' enden. Dabei kann
# hinter dem 'h' ein Leerzeichen, Punkt oder
# Ausrufezeichen stehen:
/?*h[\ .!]

[+]Um zum nächsten Suchergebnis zu springen, muss lediglich erneut ein Slash im Kommandomodus eingetippt werden.

Rheinwerk Computing - Zum Seitenanfang

10.2.11 KonfigurationZur vorigen Überschrift

Natürlich lässt sich der vi-Editor auch konfigurieren. Dies geschieht mit dem set-Kommando. Über einen Aufruf von :set all erhalten Sie eine Liste möglicher optionaler Einstellungen. Die folgende Auflistung fasst die wichtigsten zusammen: [Fn. Dabei ist zu beachten, dass einige Optionen durch »no« abgeschaltet werden; »noautoindent« stellt beispielsweise »autoindent« ab.]

  • (no)autoindent
    Diese Option bewirkt, dass Einrückungen auch in Folgezeilen fortgeführt werden. Dies ist sehr praktisch, wenn es um Programmierung geht.
  • (no)number
    Diese Option schaltet die Zeilenzahlen an. Die Zahlen werden dabei am linken Rand des Editors angezeigt. Der Nachteil besteht im schwindenden Editierplatz.
  • shiftwidth & tabstop
    shiftwidth
    wurde bereits weiter oben in Abschnitt vi_shiften erläutert. Ähnlich wie shiftwidth legt tabstop eine Zeichen-Weite fest. Während shiftwidth die Shift-Weite, also die Einrück-Einheit festlegt, tut tabstop dies für die Tabulator-Einheit: :set tabstop/shiftwidth=x
  • (no)showmatch
    Diese Option lässt Klammerpaare bei der Schließung aufblinken. Dies kann sich bei der Softwareentwicklung als sehr praktisch erweisen.
  • (no)showmode
    Diese Option zeigt in der unteren rechten Ecke der Statuszeile den Modus an, in dem sich der Editor momentan befindet (z. B. »append«, »command« oder »insert«).

[»]Um diese Einstellungen dauerhaft zu setzen, sollte man sie in die Datei ~/.exrc eintragen:

Listing 10.4 Eine exemplarische .exrc-Datei

set autoindent
set number
set showmode


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux Handbuch






 Linux Handbuch


Zum Katalog: Linux Server






 Linux Server


Zum Katalog: Raspberry Pi






 Raspberry Pi


Zum Katalog: Ubuntu 14.04 LTS






 Ubuntu 14.04 LTS


Zum Katalog: Roboter bauen mit Arduino






 Roboter bauen
 mit Arduino


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de