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

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 3 Die Shell
  gp 3.1 Was ist eine Shell?
    gp 3.1.1 Eine Shell verlassen
    gp 3.1.2 nologin
    gp 3.1.3 Die Login-Shell wechseln
  gp 3.2 Welche Shells gibt es?
  gp 3.3 Welche Shell für dieses Buch?
  gp 3.4 Die Konsolen
  gp 3.5 screen
    gp 3.5.1 screen verwenden
  gp 3.6 Die Shell anwenden
    gp 3.6.1 Vor- und Nachteile der Shellskripts
  gp 3.7 Grundlagen der Shell-Nutzung
    gp 3.7.1 Programme starten
    gp 3.7.2 Kommandos aneinanderreihen
    gp 3.7.3 Mehrzeilige Kommandos
    gp 3.7.4 Alias, shell-intern oder extern?
    gp 3.7.5 Shell-Aliase
    gp 3.7.6 Verzeichniswechsel
    gp 3.7.7 echo
    gp 3.7.8 Shell-Variablen
    gp 3.7.9 Kommandosubstitution
  gp 3.8 Ein- und Ausgabeumlenkung
    gp 3.8.1 Die Ausgabeumlenkung
    gp 3.8.2 Die Fehlerumlenkung
    gp 3.8.3 Die Ausgabe an eine Umlenkung anhängen
    gp 3.8.4 Eine Ausgabe in eine bestehende Datei umlenken
    gp 3.8.5 Die Eingabeumlenkung
  gp 3.9 Pipes
    gp 3.9.1 Duplizierung der Ausgabe mit tee
    gp 3.9.2 Named Pipes (FIFOs)
  gp 3.10 Subshells und Kommandogruppen
  gp 3.11 Effektives Arbeiten mit der Bash
    gp 3.11.1 Die Kommando-History
    gp 3.11.2 Automatische Vervollständigung von Dateinamen
  gp 3.12 xargs
  gp 3.13 Zusammenfassung
  gp 3.14 Aufgaben


Galileo Computing

3.11 Effektives Arbeiten mit der Bash  downtop

Dieses Unterkapitel soll Ihnen zeigen, wie man sich die tägliche Arbeit mit der bash erleichtern kann.


Galileo Computing

3.11.1 Die Kommando-History  downtop

Das einfachste Feature der bash, das Ihnen etwas Arbeit abnimmt, sollten Sie unbedingt kennen: die Kommando-History.

Die Kommando-History speichert die zuletzt eingegebenen Befehle. Sie können diese abrufen und brauchen sie nicht erneut einzugeben, um sie wieder aufzurufen. Zudem bietet die bash die Möglichkeit, diese Befehle zu editieren.

Eine Übersicht über die in der History enthaltenen Befehle liefert Ihnen ein bloßer Aufruf von history. Durch Angabe einer Nummer bekommen Sie die letzten n Einträge angezeigt.

user$ history 3 
  22 cvs commit -m '' 
  23 exit 
  24 history 3

Listing 3.59    history

Zudem können Sie sich den letzten Befehl, der mit einem bestimmten String begann, durch history -d <String> anzeigen lassen und Einträge über history -d <Nummer> aus der History-Liste löschen.

Scrollen in der History

Nehmen wir einmal an, es wurde der Befehl find /usr/local/bin -name "Dateiname" ausgeführt. Nun möchten Sie den gleichen Befehl für einen weiteren Dateinamen durchführen. Um nun nicht alles noch einmal eintippen zu müssen, können Sie durch die Cursor-Taste »Nach oben« den zuletzt eingegebenen Befehl in die Kommandozeile laden.

Durch erneutes Betätigen der »Nach oben«-Taste lädt die bash wiederum den Befehl, der vor dem letzten aufgerufen wurde, in die Kommandozeile und so weiter – so einfach ist das. Mit der »Nach unten«-Taste können Sie die History wieder vorwärts durchsuchen.

Editieren in der Befehlszeile

Um nun den alten find-Aufruf anzupassen, muss der neue Dateiname in die alte Kommandoeingabe eingefügt werden. Sie können sich mittels der Cursor-Tasten »Nach links« und »Nach rechts« in der Kommandozeile bewegen und an allen Positionen Zeichen löschen und einfügen.

Das Ausrufezeichen

Das Ausrufezeichen hat eine ganz besondere Funktion in der bash. Es dient zum Aufruf von Befehlen aus der History.

Der vorherige Befehl

Den zuletzt eingegebenen Befehl können Sie durch zwei Ausrufezeichen wiederholt ausführen lassen:

user$ uname -a 
OpenBSD eygo.sun 3.6 EYGO#0 i386 
user$ !! 
OpenBSD eygo.sun 3.6 EYGO#0 i386

Listing 3.60    !!

Ebenfalls möglich ist es, durch Angabe der Befehlsnummer in der Kommando-History einen der darin gespeicherten Befehle zu wiederholen. Die History-Nummer eines Befehls bekommen Sie durch Aufruf des history-Befehls. Der Befehl wird dann durch »!n« (wobei n die Befehlsnummer ist) erneut ausgeführt.

user$ history 3 
  392 make all view 
  393 uname -a 
  394 history 3 
user$ !393 
OpenBSD eygo.sun 3.6 EYGO#0 i386

Listing 3.61    !n

Suchen nach Befehlen

Ein äußerst praktisches Feature der bash ist das Suchen nach Befehlen durch Angabe der ersten Zeichen eines Befehls. Nun werden Sie sich wohl fragen, was man sich denn bitte schön darunter vorstellen kann? Man kann – wie so oft – auch diese Funktionalität am besten durch ein Beispiel erläutern.

Ein Benutzer gibt zunächst den Befehl »uname« und anschließend den Befehl »uptime« ein.

Nun möchte er erst zunächst uptime, später uname erneut aufrufen, ohne diese Befehle erneut einzugeben. Erst in der Kommando-History nachzusehen ist oftmals anstrengend und umständlich. Daher verwendet der Benutzer die Befehlssuche.

Die simpelste Variante ist nun folgende: Der Benutzer gibt ein Ausrufezeichen und darauf unmittelbar folgend den ersten Buchstaben des Befehls, also ein »u«, ein. Daraufhin ruft die Shell den letzten Befehl auf, der mit »u« began, also »uptime«. Möchte der Benutzer nun aber uname aufrufen, so reicht es nicht, ein »u« hinter das Ausrufezeichen zu stellen. Hierzu muss noch der zweite Buchstabe des Befehls, also ein »n«, angegeben werden, worauf der letzte Befehl, der mit »un« begann, erneut ausgeführt wird:

user$ !u 
uptime 
 9:20PM  up  7:30, 3 users, load averages: 0.22, 
0.21, 0.17 
user$ !un 
uname 
OpenBSD

Listing 3.62    Die Suche nach Befehlen

Den letzten Befehl, der einen bestimmten String enthielt, können Sie durch den Aufruf von !?<String> erneut ausführen lassen.

Aus der Trickkiste ...

Bedeutend komfortabler ist dies durch die Tastenkombination Strg+R zu bewerkstelligen. Bei diesem Verfahren wird Ihnen automatisch von der bash angezeigt, welcher Befehl ausgeführt werden würde, während Sie die Kommandozeile editieren:

(reverse-i-search)`un': uname

Listing 3.63    Strg+R

Teile alter Befehle ersetzen

Erinnern Sie sich noch an den wiederholten Aufruf von find, den es zu editieren galt, um nach einem neuen Dateinamen zu suchen? Dies kann in der bash nochmals vereinfacht werden, sofern der Befehl der zuletzt eingegebene war. Durch Angabe der zu ersetzenden Zeichenkette im letzten Befehl kann ein alter Befehl modifiziert ausgeführt werden.

Der besagte find-Aufruf sah folgendermaßen aus: find /usr/local/ bin -name "Dateiname". Um nun nach dem Dateinamen »zsh« zu suchen und den gleichen Befehl zu verwenden, muss nach dem Muster ^Alter-String^NeuerString^ eine Manipulation des alten Befehls erfolgen, also:

user$ find /usr/local/bin -name "Dateiname" 
... 
user$ ^Dateiname^zsh^ 
find /usr/local/bin -name "zsh" 
/usr/local/bin/zsh

Listing 3.64    find mit neuem Dateinamen


Galileo Computing

3.11.2 Automatische Vervollständigung von Dateinamen  toptop

Ein ähnlich praktisches Feature wie die Kommando-History stellt die automatische Vervollständigung von Dateinamen dar. Diese wird in der bash durch die TAB-Taste verwendet. Da unter Unix auch Programme Dateien darstellen, funktioniert dieses Feature natürlich auch mit diesen.

Bei der Nutzung der TAB-Taste sind allerdings zwei Fälle zu unterscheiden:

  • Es ist nur eine passende Datei vorhanden.
  • Es sind mehrere passende Dateien vorhanden.

Nur ein Kandidat

Für den ersten Fall erstellen wir ein Beispielverzeichnis, in dem wir eine Datei mit dem Namen abc.txt unterbringen.

$ mkdir test 
$ touch test/abc.txt 
$ cd test

Listing 3.65    Beispielverzeichnis mit einer Datei erstellen

Verwenden wir nun ein Programm wie /bin/ls, dem wir diese Datei als Parameter übergeben, müssen wir, da es nur eine Datei im Verzeichnis gibt, nur die TAB-Taste betätigen, und die bash setzt uns den Dateinamen automatisch an die gewünschte Position in der Eingabe.

Versuchen Sie es einmal selbst: Wechseln Sie in das neue Verzeichnis, geben Sie ls und ein Leerzeichen ein, und drücken Sie die TAB-Taste. Die bash sollte nun die Datei abc.txt automatisch in die Befehlszeile schreiben.

Mehrere Kandidaten

Nun erstellen wir im Verzeichnis noch eine Datei mit dem Namen xyz.txt. Wenn Sie das letzte Beispiel unter den neuen Bedingungen erneut wiederholen, wird es nicht ohne Weiteres funktionieren. Die bash weiß nicht von allein, welche der beiden Dateien sie als Parameter übergeben soll. Der Trick funktioniert nun dadurch, dass so viele Zeichen des Dateinamens eingegeben werden, bis es nur noch einen Dateinamen gibt, auf den die ersten Zeichen zutreffen – in diesem Fall reicht der erste Buchstabe der Datei (entweder ein »a« oder ein »x«), da keine Datei gleiche Zeichen beinhaltet. Wird dann erneut die TAB-Taste gedrückt, vervollständigt die bash den Rest des Dateinamens wieder automatisch.

Gleiche Anfangsbuchstaben

Doch die bash kann Ihnen noch ein Stück Arbeit abnehmen. Nehmen wir an, es seien zwei Dateien abc und abd in einem Verzeichnis vorhanden. Sofern es sowieso keine Wahl zwischen den Zeichen gibt, bringt eine Betätigung der TAB-Taste immer diese Zeichen auf den Monitor. Würden Sie also in solch einem Verzeichnis die TAB-Taste drücken, würde die bash Ihnen die beiden ersten Zeichen (da diese sowieso gleich sind und von Ihnen eingegeben werden müssten) auf den Bildschirm schreiben. Sie müssen anschließend nur noch ein »c« bzw. »d« eingeben.

Für den Fall, dass im Verzeichnis noch die Datei xyz vorhanden wäre, müsste der erste Buchstabe wieder eingegeben werden, da nun wieder zwei Fälle eintreten könnten.

Doppel-TAB

Wenn mehrere Dateien vorhanden sind, können Sie die TAB-Taste auch zweimal betätigen, um sich während der Befehlseingabe eine Übersicht über die Dateien im Verzeichnis zu verschaffen. Durch dieses doppelte Betätigen liefer Ihnen die bash immer die nach Ihrer bisherigen Eingabe noch möglichen Dateiauswahlen.

Das bedeutet im Beispiel: Würden Sie wieder die drei Dateien xyz, abc und abd im Verzeichnis haben, würde Ihnen die bash zunächst alle drei auflisten. Würden Sie dann ein »a« eingeben und dann TAB drücken, gibt Ihnen die bash das »b« (die einzig sinnvolle Möglichkeit) auf dem Bildschirm aus. Würden Sie dann wieder doppelt die TAB-Taste betätigen, gibt Ihnen die bash nun die beiden noch möglichen Dateinamen abc und abd aus.



Ihr Kommentar

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






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de