Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Bourne Shell (sh) und Die Shell C-Shell (csh) »

Unterabschnitte
  • Besonderheiten bei Variablen
  • History

Kornshell (ksh)

Die Kornshell ist eine Weiterentwicklung der Bourne Shell mit höherem Komfort. So kennt sie Aliase und die Jobverwaltung mit jobs, bg und fg.

Beim Start werden die Dateien /etc/profile und die Datei .profile aus dem Heimatverzeichnis gestartet.

Beginnt ein Verzeichnis mit einer Tilde ~, so wird diese durch den Pfad des Heimatverzeichnisses ersetzt. ~/test wird die Shell zu /home/arnold/test auflösen, wenn das Heimatverzeichnis /home/arnold ist.

Durch zweimaliges Tippen der ESC-Taste versucht die Kornshell, den Datei- oder Pfadnamen des angefangenen Wortes anhand der erreichbaren Datei- bzw. Verzeichnissnamen zu vervollständigen.

Das Größerzeichen leitet die Standardausgabe (stdout) auf eine Datei um. Die Umleitung der Standardfehlerausgabe (stderr) erfolgt, indem eine 2 vor das Größerzeichen gesetzt wird. Sollen stdout und stderr in die gleiche Datei umgeleitet werden, wird 2>&1 verwendet.

[Umleitungen]L|L Befehl & Wirkung
cc haus.c > out & Umleitung der Standardausgabe, Fehler am Terminal
cc haus.c 2> out & Umleitung der Fehler, Standardausgabe am Terminal
cc haus.c 2>&1 out & Umleitung der Ausgabe und der Fehler nach out

Besonderheiten bei Variablen

Der Befehl export dient dazu, Variablen an Nachfolgeprogramme weiterzugeben. Variablen werden für die aktuelle Shell definiert. Wird ein Programm von der Shell aus gestartet, werden die Variablen nicht weitergegeben. Das kann besonders lästig sein, wenn die Variablen eigentlich das Verhalten des gestarteten Programms ändern sollen. Damit die Variable und ihre Inhalte an alle Kindprozesse weitergegeben werden, muss die Variable exportiert werden. Als Beispiel dient ein Programm, das über die Variable DATA den Pfad und Dateinamen seiner Daten übermittelt bekommt.

gaston> DATA=/home/arnold/my/database
gaston> export DATA
gaston> auswertung

Die Kornshell kann mathematische Ausdrücke berechnen und in Variablen ablegen. Dazu stellt man den Befehl let einer Variablenzuweisung voran. Als Operanden können +, -, *, / und % (als Modulo) verwendet werden. Auch Klammern werden korrekt interpretiert. Es darf allerdings kein Leerzeichen in dem Ausdruck stehen. Besonders praktisch ist die Fähigkeit, mit verschiedenen Zahlensystemen zu arbeiten. Dazu wird einer Zahl die Basis, gefolgt von einem Hashzeichen (#), vorangestellt. Die Dualzahl 2#11 entspricht einer dezimalen 3, und um die Hexadezimalzahl 1a darzustellen, wird 16#1a oder 16#1A verwendet. Beispiel:

gaston> let wert=45+5
gaston> echo $wert
50
gaston> wert=45+5
gaston> echo $wert
45+5
gaston> let wert=16%5
gaston> echo $wert
1
gaston> let wert=(1+3)*2
gaston> echo $wert
8
gaston> let wert=16#1a
gaston> echo $wert
26
gaston>

Im Beispiel ist zu sehen, dass ohne die Verwendung von let die Variable den Ausdruck als Text übernimmt. Die Kornshell kennt auch Modulorechnung und Klammern. In den letzten beiden Beispielen wird die Umrechnung von hexadezimalen Werten demonstriert.

History

Die Kornshell merkt sich standardmäßig die letzten 128 Kommandos in der Datei .sh_history des Heimatverzeichnisses. Die Bearbeitung der Kommandos erfolgt mit dem Befehl fc. Ohne weitere Parameter aufgerufen, startet fc den Systemeditor (meist vi). Darin findet sich das zuletzt eingegebene Kommando. Im Editor kann man das Kommando verändern und speichern. Dadurch wird die geänderte Version ausgeführt.

Wird als Argument von fc eine Zeichenkette angegeben, wird der letzte Befehl in den Editor geladen, der mit dieser Zeichenkette beginnt. Mit der Option -e kann ein Kommando direkt verändert werden, ohne den Editor zu belästigen. Wieder kann mit dem Argument nach der letzten Zeile gesucht werden, die mit dieser Zeichenkette beginnt. Mit einer Zuweisung kann ein Teilstring dieses Kommandos ersetzt werden. In der Praxis sieht das so aus:

gaston> let wert=16#1A
gaston> echo $wert
26
gaston> fc -e -
echo $wert
26
gaston> fc -e - 1A=22 let
let wert=16#22
gaston>

Im letzten fc wird das letzte Kommando gesucht, das mit »let« beginnt und innerhalb des Kommandos die Zeichenkette 1A durch 22 ersetzt.

Mit Erleichterung werden Sie zur Kenntnis nehmen, dass Sie, anstatt mit fc zu arbeiten, die Editierkommandos des vi auf die Kommandoebene holen können. Der folgende Befehl schaltet dies ein:

set -o vi

Danach schaltet die ESC-Taste in den Editiermodus um. Man kann nun mit + und - die vergangenen Zeilen wieder heranziehen, bis man zu dem Befehl gelangt, den man ausführen möchte. Man kann sogar mit dem Schrägstrich in den bisherigen Kommandos suchen. Hat man den gewünschten Befehl gefunden, kann man ihn noch modifizieren. Innerhalb der Zeile kann man mit i einfügen und mit d löschen. Das Bewegen innerhalb der Zeile funktioniert mit der Leertaste und dem Backspace, aber auch wortweise mit w und b. Wer mit dem vi umgehen kann, wird sich wohlfühlen.

set -o emacs

Die Benutzer des emacs werden sich schon gedacht haben, dass man auch dessen Kommandos zur Bearbeitung der History verwenden kann. Wichtig sind vor allem die folgenden Befehle:

[emacs-Kommandotasten]L|L Taste & Funktion
ctrl-P & zeilenweises Rückwärtsblättern der Kommandos
ctrl-N & zeilenweises Vorwärtsblättern der Kommandos
ctrl-B & mit dem Cursor nach links
ctrl-F & mit dem Cursor nach rechts
ctrl-A & an den Anfang der Zeile
ctrl-E & an das Ende der Zeile
ctrl-D & löscht das Zeichen unter dem Cursor
ctrl-K & lösche bis an das Ende der Zeile
ctrl-R & inkrementelles Suchen



« Bourne Shell (sh) und | Die Shell | C-Shell (csh) »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
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 GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de