wendzel.de

Postings in "Einsteiger-Blog":


Neuigkeiten für Linux-Users-Welcome
Mail/NNTP/RSS/Adressen-Synchronisierung mit Thunderbird und Unison unter Linux (Ubuntu)
Grundlegendes zur Linux-Sicherheit für Otto Normalverbraucher
Wie Sylpheed seine Versionsnummer auf Aktualität prüft
In welchem Geschäft kann ich Hardware kaufen, die unter Linux läuft?
Slackware jetzt auch offiziell für 64-Bit-Systeme
Schwedische/Spanische Sonderzeichen unter Linux
Shellskript Programmierung - Teil 7 (Variablen mit der Tastatur einlesen)
Slackware vs Ubuntu
Wer braucht schon Datenschutz im Web?
Warum in PHP programmieren?
Vorteile freier Software am Beispiel von Linux
Fortify gibt Studie zur Sicherheit von OpenSource-Software frei
PHP Registrierungen
C++-Code in HTML darstellen
Das n-Damen-Problem
PHP Includes absichern
Shellskript Programmierung - Teil 6 (Kommandosubstitution)
(void) printf(...) vs. printf(...)
Shellskript Programmierung - Teil 5 (Pipes/Ausgabeumlenkung)
Shellskript Programmierung - Teil 4 (Variablen)
Shellskript Programmierung - Teil 3 (Shells wechseln)
Shellskript Programmierung - Teil 2 (Welche Shells gibt es?)
Shellskript Programmierung - Teil 1 (Einführung)
In welcher Programmiersprache wurde Linux geschrieben?
Ordentliche Buchführung
C: [] ist kommutativ!


RSS Feed

 
Shellskript Programmierung - Teil 2 (Welche Shells gibt es?)

-

Autor/Author: Steffen Wendzel Dipl.-Inform. (FH) Steffen Wendzel (Date/Datum: 080218-20:33, Hits: 2498)

Die wichtigsten Shells

Heute werde ich einen kleinen Überblick über die unter Linux verfügbaren Shells geben. Normalerweise befinden sich diese Shells im Verzeichnis /bin und enden auf 'sh'. Beispiele sind /bin/sh, /bin/bash oder /bin/csh.[1]

Die im System registrierten Shells, die auch für den Login bei Benutzern erlaubt sind, sind in der Datei /etc/shells gelistet. Mit dem Programm 'cat' kann man diese Datei auf dem Bildschirm ausgeben lassen:


$ cat /etc/shells
# /etc/shells: valid login shells
/bin/ash
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/zsh
/bin/sash
/bin/zsh
/usr/bin/esh
/bin/bash
/bin/rbash


Die Familie der Bourne-Shell

Die Standardshell unter den meisten unixartigen Systemen ist die Bourne-Shell bzw. eine Shell, die auf ihr basiert. Die Bourne Shell wurde bereits 1977 von Steve Borne in den Bell Labs entwickelt. Sie befindet sich in /bin/sh, wobei dies unter Linux fast immer ein Link auf die Datei /bin/bash ist. Die 'bash' (Borne Again Shell) basiert wie auch die Ksh (Korn-Shell) auf der Bourne-Shell und die Shellskripte dieser Shells sehen sehr ähnlich aus. In den folgenden Postings zum Thema "Shellskript Programmierung" werde ich mich auf die bash beziehen, da fast jeder diese Shell benutzt und auch die Skripte für den Systemstart in dieser Shell geschrieben sind.

Die Familie der C-Shell

Die C-Shell (/bin/csh) ist ebenfalls immer auf Linux-Systemen vorhanden. Ihr Syntax ist an die Programmiersprache 'C' angelehnt. Meist steht dem Benutzer auch die Weiterentwicklung 'tcsh' zur Verfügung. Hier sind zehn Gründe, um die C-Shell nicht zu verwenden: http://www.grymoire.com/Unix/CshTop10.txt Ich persönlich habe den Text nicht gelesen, aber vielleicht interessiert sich ja jemand dafür.

Weitere Shells

Es gibt noch einige weitere erwähnenswerte Shells, die ich aber nur sehr kurz erwähnen möchte:

  • Z-Shell. Eine besonders funktionale Shell die die Features von tcsh, ksh und bash vereint und zudem Module zur Verfügung stellt. Die meisten in den folgenden Postings besprochenen Funktionalitäten werden auch mit dieser Shell funktionieren.
  • ash (Almquist Shell) und auf ihr basierend die 'dash' (Debian Almquist Shell). Diese Shell ist unter den meisten BSD-Derivaten die Standardshell und die in den folgenden Postings besprochenen Skripte werden in vielen Fällen auch in dieser Shell funktionieren, da auch sie relativ kompatibel zur Bourne-Shell ist.
  • scsh (Scheme Shell). Diese Shell ist angelehnt an die funktionale Programmiersprache "Scheme", die ein LISP-Dialekt ist.


[Fußnote 1] Für Interessierte: Unter BSD befinden sich Shells, die nicht zum Standardumfang des Derivats gehören sondern aus Ports erstellt werden, meist in /usr/local/bin, wobei in /bin nur wenige Shells zu finden sind.
____________
Tags: Programming | Shell |
Bookmark and Share


____

Kommentar verfassen / Post a comment:

Name:
Enter this Security Code:


 
Current Books


Einstieg in Linux



Linux. Das umfassende Handbuch