SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

GUIDES UND TUTORIAL

Bash - Die Linux-Shell

Die Bash (Bourne Again SHell) ist vollständig kompatibel zu der originalen Bourne-Shell aber sie hat etliche Erweiterungen erfahren. Sie ist bei fast allenLinux-Systemen die Standard-Shell.

Beim Start liest die Bash eine Reihe von Konfigurationsdateien ein,interpretiert deren Inhalt und übernimmt bestimmte Einstellungen. Wasdabei genau geschieht, hängt von mehreren Faktoren ab.

Ist die Bash als Login-Shell eingestellt, wird zunächst dieLogin-Konfigurationsdatei .bash_profile im Home-Verzeichnisdes Anwenders gesucht. Ist sie vorhanden, führt die Bash die darin enthaltenen Befehle aus. Fehlt diese Datei, sucht die Bash im selben Verzeichnis nach einer Konfigurationsdatei mit dem Namen .bash_login. Fehlt auch diese, wird versucht, die systemweit gültige Konfigurationsdatei /etc/profile einzulesen und auszuwerten. Als letzte Möglichkeit versucht die Login-Bash, die Datei .profile im Home-Verzeichnis des Anwenders auszuführen.

Als interaktive (Sub) Shell liest die Bash ihre Konfiguration aus der Datei .bashrc (im Home-Verzeichnis des Anwenders). Eine interaktive Bash verwendet für den Befehlszeileneditor zusätzlich die Einstellungen aus der Konfigurationsdatei .inputrc. Diese Datei wird zunächst im Home-Verzeichnis des Anwenders gesucht, ist sie dort nicht vorhanden, wird im Konfigurationsverzeichnis /etc/ nach der Datei inputrc gesucht.

Eine nicht interaktive (Sub-) Shell, wie sie zum Start von Skripten verwendet wird, liest keine Konfigurationsdateien ein, sofern dies nicht explizit gefordert wird.

Einige Versionen der Bash (z. B. die von SuSE Linux verwendete) suchen als interaktive Shell zunächst im Konfigurationsverzeichnis /etc/ nach systemweit gültigen Einstellungen in der Datei bash.bashrc. Diese ist aber normalerweise nicht vorhanden bzw. leer. Anschließend und unabhängig davon, ob diese Datei gefunden wurde, wird die persönliche Konfigurationsdatei .bashrc im Home-Verzeichnis des Anwenders eingelesen.

Damit bei einer Login-Shell auch Funktionen einer interaktiven Shell zur Verfügung stehen, wird am Ende der Login-Konfigurationsdatei oft auch die persönliche Konfigurationsdatei im Home-Verzeichnis des Anwenders eingelesen.

SuSE Linux löst die Konfiguration der Bash in folgender Weise: Die systemweite Konfiguration erfolgt in der Datei /etc/profile, an deren Ende weitere Konfigurationsdateien ausgeführt werden:

  • /etc/SuSEconfig/profile
  • alle Skripte in /etc/profile.d
  • /etc/profile.local

Auch beim Verlassen der Shell können von der Bash noch automatisch Befehle ausgeführt werden. Die Bash führt beim Eintreffen eines exit-Befehls die Datei .bash_logout im Home-Verzeichnis des Anwenders aus. Vorsicht: Nicht alle Versionen der Bash werten diese Datei korrekt aus.

Die Ausführung der Dateien läßt sich über zwei Kommandozeilen-Parameter steuern. Mit dem Parameter -noprofile veranlassen Sie, daß die Bash keine der oben genannten Startdateien ausführt, mit -norc erreichen Sie, daß die persönliche Konfigurationsdatei -/.bashrc ignoriert wird.

Der Prompt

Die Bash gibt einen Eingabeprompt aus, häufig in der Form Username:Pfad> . Der Prompt ist über die Umgebungsvariable PS1 konfigurierbar. Ein Prompt in der o. a. Form resultiert aus der Einstellung PS1=\u:\w\$ .
Um andere Einstellungen auszuprobieren, müssen Sie die Variable neu belegen. Innerhalb dieser neuen Einstellungen können Sie einige spezielle Codes verwenden:

Codes für die Konstruktion des Prompts
CodeWirkung
\a Das Bell-Zeichen, wie es durch die Tastenkombination [Ctrl][g] erzeugt wird
\d das aktuelle Datum im Format Thu Jan 18
\e das Escape-Zeichen
\H der gesamte (Host) -Name
\h der Rechner (Host) -Name bis zum ersten Punkt
\n ein Newline (LineFeed) -Zeichen
\r ein Return (Carriage Return) -Zeichen
\s der Programmname der Bash, also bash
\t die aktuelle Systemzeit im 24-Stundenformat HH:MM:SS
\T die aktuelle Systemzeit im 12-Stundenformat HH:MM:SS
\@ die aktuelle Systemzeit im 12-Stundenformat mit am/pm (01:39am)
\u der Username
\v die Version der ausgeführten Bash (2.03)
\V Das Release der Bash, bestehend aus der Versionsnummer und dem Patchlevel (2.03.1)
\w das aktuelle Arbeitsverzeichnis in ausführlicher Darstellung, beispielsweise ~/LinuxMagazin/bash/teil6
\W der letzte Teil des aktuellen Verzeichnisses, etwa teil6
\! die (History-) Nummer der aktuellen Befehlszeile
\# die Nummer der Befehlszeile in der aktuellen Bash-Sitzung
\$ mit diesem Schlüssen wird der Rootaccount gekennzeichnet. Wenn die effektive UID gleich Null ist, stellt die Bash das Hashmark dar, sonst ein Dollar-Zeichen
\NNN Jedes beliebige ASCII-Zeichen kann durch Eingabe des oktalen Codes nach einem Backslash erzeugt werden
\\ der Backslash selbst wird durch zwei Backslash-Zeichen erzeugt
\[ eine Folge von Steuerzeichen wird so eingeleitet
\] die Folge von Steuerzeichen wird so beendet

Edieren der Kommandozeile

Die Hauptaufgabe einer Shell ist die Entgegennahme und Ausführung von Kommandos. Zum Bearbeiten der aktuellen Kommandozeile stehen sowohl Emacs- als auch vi-kompatible Editiermodi zur Verfügung - voreingestellt ist der Emacs-Modus. Wenn Sie lieber im vi-Modus arbeiten, stellen Sie ihn durch den Befehl set -o vi ein, zurück in den Emacs-Modus geht's mit set -o emcas. Im Emacs-Modus gibt es unter anderem folgende Edierfunktionen:
  • [Cursor links] beziehungsweise [Cursor rechts] bewegen den Cursor in der Kommandozeile
  • [Esc], [F] springt bis zum nächsten Wortende
  • [Esc], [B] springt bis zum vorigen Wortanfang
  • [Strg]+[E] springt zum Zeilenende
  • [Strg]+[A] springt zum Zeilenanfang
  • [Strg]+[K] löscht den Text ab der Cursorposition bis zum Ende der Zeile
  • [Strg]+[Y] fügt den zuletzt gelöschten Text nach der Cursorposition ein
  • [Tab] ergänzt ein Eingabefragment zum passenden Dateinamen. Ist die Ergänzung nicht eindeutig möglich, ertönt ein Signalton und Sie erhalten mit der Kombination
  • [Tab], [Tab] eine Liste der in Frage kommenden Dateinamen

Abhängig von der eingesetzten Terminalemulation können Sie Kombinationen mit der [Esc]-Taste oft auch mit der [Alt]-Taste nachgebilden. Statt also nacheinander [Esc] und [F] zu drücken, funktioniert meist auch die Kombination [Alt]+[F].

History-Mechanismus

In der Bash können Sie nicht nur die aktuelle Kommandozeile editieren, sie merkt sich auch alle einmal eingegebenen Befehle in einer Datei, der Kommandozeilen-History. Auch diese Datei befindet sich im Home-Directory des Benutzers und heißt .bash_history. Mit den Cursortasten auf/ab kann man in dieser Liste blättern. Darüber hinaus stehen folgende History-Befehle zur Verfügung:
  • [Strg]+[R] sucht nach dem letzten Kommando anhand der Anfangsbuchstaben
  • [Esc] oder "Cursor links" springt an den Anfang der History-Liste
  • [Esc] oder "Cursor rechts" springt ans Ende der History-Liste

Die Anzahl der Befehlszeilen wird mit der Variablen HISTSIZE eingestellt. Wächst die History darüber hinaus, verwirft die Bash die ältesten Zeilen.

Wichtige interne Kommandos

  • alias weist einem Befehl oder einer Befehlsfolge einen neuen Namen zu. Beispiele für MS-DOS-Umsteiger sind:
                                            alias dir='ls -l'
                                            alias cd..='cd ..'
                                            alias md='mkdir'
                                            alias rd='rmdir'
                                            alias del='rm -i'
                                            
    Ohne Parameter gibt dieser Befehl eine Liste der aktuell definierten Aliasnamen aus. Zum Löschen eines Alias-Eintrags verwendet man den Befehl unalias Name.

  • fg, bg und jobs sind Befehle für die interne Jobkontrolle der Bash. Ein laufendes Programm kann mit [Strg]+[Z] in den Hintergrund verschoben werden; dort wird es zunächst angehalten ("suspend"). Das Kommando jobs gibt eine Liste aller derzeit im Hintergrund schlafenden Programme aus. Dabei wird für jedes Programm die interne Jobnummer angegeben. Es ist wichtig anzumerken, daß die vergebene Jobnummer in keinem Zusammenhang zu der - etwa von ps - angezeigten Prozeßnummer steht. Mit fg Jobnummer holen Sie diese Task wieder in den Vordergrund. Soll ein angehaltenes Kommando dagegen im Hintergrund weiterlaufen, verwendet man den Befehl bg Jobnummer.

  • dirs, pushd, popd verwalten den Stapel der internen Verzeichnisse. Mit pushd Verzeichnis wird das angegebene Verzeichnis auf dem Stapel abgelegt. Mit popd gelangen Sie anschließend zum zuletzt abgelegten Verzeichnis zurück. Den aktuellen Stapelinhalt zeigt der Befehl dirs an.

  • echo wurde ebenfalls erweitert. Soll der Zeilenumbruch am Ende der Ausgabe unterdrückt werden, verwendet man den Parameter -n. Wer die von der C-Funktion printf bekannten Ausgabesteuerzeichen verwenden will, gibt den Parameter -e an.

  • hash (ohne Parameter) zeigt die Liste der gemerkten Pfade zu den Programmen an. Um die Zugriffe auf Programme zu beschleunigen, verwaltet die Bash einen internen Cache der Pfade auf bereits gestartete Programme. Wird ein Programm erneut gestartet, kann die zeitaufwendige Suche entlang des Pfades entfallen. Bei der Gelegenheit wird auch gleich angezeigt, wie oft das Programm gestartet wurde. Wer am Abend wissen will, womit er sich den ganzen Tag über beschäftigt hat, kann mit diesem Kommando zumindest Hinweise bekommen (oder er wirft einen Blick auf die .bash_history.
    hash -r verwirft alle gespeicherten Pfade.

  • help ist die Hilfefunktion der Bash. Ohne Parameter aufgerufen, listet sie alle eingebauten Befehle auf. Mit einem Parameter wird ein Hilfetext über den angegebenen Befehl ausgeben.

  • logout führt das Skript .bash-logout aus und beendet die Login-Shell.

Mittels set einstellbare Optionen der Bash

Option Name Funktion
-a allexport neu definierte oder veränderte Variablen werden automatisch exportiert
-b notify bewirkt, dass Meldungen von Hintergrundjobs sofort ausgegeben werden (voreingestellt wartet die Bash bis zur Ausgabe des nächsten Prompts)
-B braceexpand Klammerexpandierungen erlauben (entspricht der Voreinstellung)
-C noclubber Setzen dieser Option verhindert, dass bestehende Dateien durch Ausgabeumleitungen (Redirections) zerstört werden
-e errexit In diesem Modus beendet sich die Shell immer dann automatisch, wenn ein Befehl einen Fehlercode erzeugte
-f noglob Deaktiviert die Komplettierungsfunktion für Dateinamen
-h hashall Deaktiviert das Speichern der Pfade bereits einmal ausgeführter externer Befehle; ein Abschalten bewirkt längere Ausführungszeiten bei Skripten
-H histexpand Erlaubt erweiterte Ersetzungen aus dem Historybuffer (voreingestellt: on)
-k keyword Zuweisungen werden in das Environment des Befehls übernommen
-m monitor Aktiviert die Job-Kontrollfunktionen (Voreinstellung: on bei interaktiven Shells)
-n noexec Verhindert die Ausführung von Befehlen; die Syntax wird aber überprüft und gegebenenfalls Fehlermeldungen erzeugt (deaktiviert bei interaktiven Shells)
-o Option setzt die im Argument übergebene Option, siehe das Beispiel oben
-p privileged Aktiviert den privilegierten Modus
-P physical Unterdrückt die Darstellung von symbolischen Links, statt dessen wird das physikalische Verzeichnis verwendet
-t onecmd Die Shell terminiert nach dem Ausführen des ersten Befehls
-u nounset Bewirkt, dass ungesetzt Variablen Fehlermeldungen erzeugen; ohne diese Option wird ihnen ein leerer Inhalt zugewiesen
-v verbose Befehlszeilen werden angezeigt, bevor sie ausgeführt werden
-x xtrace Alle Befehlszeilen werden mit expandierten Argumenten angezeigt, bevor sie ausgeführt werden

Mit der Einführung der Bash-Version 2.0 gibt es viele neue Konfigurations-Features. Sie werden durch den "erweiterten Konfigurationsbefehl" shopt gesetzt oder angezeigt. Die aktuellen Optionen sind über die Variable SHELLOPTS zugänglich. Der Befehl verfügt über folgende Optionen: -p (print) gibt eine Liste der aktuellen Einstellungen aus, -s (set) setzt die im Argument angegebene Option, -u (unset) löscht sie. Durch -q (quiet) wird die Ausgabe des Befehls unterdrückt, wie dies in Skripten praktisch sein kann. Durch -o beschränkt sich die Wirkung von shopt auf die durch set -o gesetzten Optionen. In der folgenden Tabelle sind nur die wichtigsten mittels shopt einstellbaren Bash-Optionen aufgeführt, eine vollständige Liste enthält die Manual-Page.

Option Funktion
cdable_vars bewirkt, dass die Bash Argumente des cd-Befehls als Variablen interpretiert, wenn es sich um keine Verzeichnisse handelt
cdspell einfache Schreibfehler (vertauschte oder fehlende Buchstaben) in Verzeichnisnamen werden durch diese Option automatisch korrigiert
checkhash die Bash sucht einen externen Befehl zunächst in der Hashtabelle, bevor er anhand des Suchpfades gefunden wird
checkwinsize wenn diese Option aktiviert ist, prüft die Bash nach jedem ausgeführten Befehl, ob sich die Terminal-Abmessungen geändert haben.
cmdhist zusammengehörige Befehlszeilen werden in der History in Form einer Zeile abgelegt, dadurch vereinfacht sich ihre Bearbeitung
dotglob durch das Setzen dieser Option werden auch die mit einem Punkt beginnenden Dateinamen beim automatischen Komplettieren berücksichtigt
execfail verhindert in Skripten, dass die Shell nach einem Fehler in einem exec-Befehl terminiert
histexpand bewirkt, dass Historydateien nicht mehr überschrieben, sondern an bestehende Dateien angehängt werden
lithist zusammen mit cmdhist bewirkt sie das Zusammenfassen mehrzeiliger Befehle
sourcepath der source-Befehl kann auf die PATH-Variable zugreifen, wenn diese Option gesetzt ist
expand_aliases erlaubt das Expandieren von Alias-Definitionen
nocaseglob bei der automatischen Dateinamenkomplettierung berücksichtigt die Bash Groß-/Kleinschreibung nicht, wenn diese Option aktiv ist
huponexit allen von einer interaktiven Shell ausgeführten Hintergrundjobs wird ein SIGHUP-Signal gesendet, wenn sie terminiert
restricted_shell die Bash wird im Restricted-Modus mit eingeschränkter Funktionalität betrieben

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere