Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 1. Januar 2001, 00:00

Shell-Workshop, Teil 1

Viele Benutzer haben bereits einige Erfahrung mit der Bash gemacht, doch nur wenigen ist bewußt, was damit alles machbar ist und wie viele Arbeiten mit Hilfe einer Shell automatisiert werden können. Dieser Workshop richtet sich an alle, die diese Shell näher kennenlernen möchten, wobei grundlegende Vorkenntnisse nützlich, aber nicht zwingend notwendig sind. Dieser Workshop (also auch alle noch folgenden Teile) steht unter der GNU Free Documentation License, da zu freier Software auch freie Dokumentation gehört.

Was ist eine Shell und wozu dient sie?

Shells waren ursprünglich die grundlegende Schnittstelle zwischen dem Benutzer und dem Betriebssystem. Man verwendete sie (und tut das auch heute noch), um Programme zu starten und häufiger anfallende Aufgaben zu automatisieren. Shells sind textbasierte Programme und laufen deshalb direkt auf einem Linux-Terminal (also im Textmodus) oder in einer Terminal-Emulation (xterm, konsole, gnome-terminal, ...). Inzwischen haben zwar grafische Desktop-Umgebungen die Rolle der wichtigsten Benutzerschnittstelle erobert, doch Shells haben seitdem nichts von ihrer Nützlichkeit eingebüßt, im Gegenteil: Mit der auf wohl nahezu jedem GNU/Linux-System vorhandenen Bash steht eine leistungsfähige Shell zur Verfügung, die über eine Menge Funktionen verfügt, die ihre Benutzung komfortabler machen.

Ein wichtiger Grund dafür, sich mit Shells - und insbesondere mit der Bash - auseinanderzusetzen ist, dass die Initialisierung des Systems beim Booten zum großen Teil über Shellscripts abläuft. Wer in die dort ablaufenden Vorgänge eingreifen möchte, benötigt also zwingend Shell-Kenntnisse. Auch sollte man nicht vergessen, dass es Situtationen gibt, in denen man keine andere Wahl hat, als mit einer Shell zu arbeiten, weil z.B. die X11-Konfiguration einen Fehler enthält, der das Starten der grafischen Oberfläche verhindert. Kurz gesagt: Grundlegende Shell-Kenntnisse sind notwendig, fortgeschrittene Shell-Kenntnisse sind sehr nützlich.

Shells sind in der Tat vollständige Programmiersprachen, allerdings sind sie primär für kleine Programme und die interaktive Benutzung gedacht. Interaktiv bedeutet hierbei, dass Kommandos direkt vom Benutzer eingegeben und sofort nach Bestätigung der Eingabetaste ausgeführt werden. Vor allem dafür sollte man eine Shell auch verwenden. Man kann zwar auch etwas längere Programme damit schreiben, doch dazu sind andere Programmiersprachen meist besser geeignet.

Was ist die Bash?

Jedem Benutzer von GNU/Linux stehen mehrere verschiedene Shells zur Verfügung. Am weitesten verbreitet ist die GNU Bash, da diese nicht nur sehr mächtig ist, sondern auch bequeme Eingabefunktionen bietet und zudem auch noch frei verfügbar ist; außerdem gehörte sie - zusammen mit dem GNU C Compiler - zu den ersten beiden Programmen, die jemals auf diesem System liefen. Nebenbei ist sie auch noch konform zur "IEEE POSIX Shell and Tools" Spezifikation. Aus all diesen Gründen ist die Bash unter allen Distributionen - mit Außnahme einiger Mini-Distributionen, für die sie eben etwas zu groß wäre - die Standard-Shell. Selbst andere Betriebssysteme wie beispielsweise BeOS nutzen die Bash; natürlich existiert auch eine Windows-Version davon.

Kommandos, Argumente, Parameter

Das Bash-Prompt ("Eingabeaufforderung") kann zwar beliebig angepasst werden, doch auf den meisten Systemen ist es für normale Benutzer (also alle außer root) standardmäßig auf eine Zeichenfolge gemäß dem Schema

benutzer@rechner:verzeichnis$

gesetzt. Wenn ich auf diesem Computer hier in meinem Heimverzeichnis bin (das durch die Tilde ~ repräsentiert wird), lautet das Bash-Prompt beispielsweise

toor@dose:~$

Mein Benutzername ist "toor" (also "root" rückwärts) und mein Rechner heißt "dose". Nun kann man Kommandos eingeben. Nachdem ein Kommando ausgeführt wurde, gelangt man wieder zum Prompt.

Es gibt sehr viele Kommandos. Einige sind in die Bash direkt eingebaut (z.B. das Kommando "cd" zum Wechseln von Verzeichnissen), andere sind Programme (z.B. "ls" zum Anzeigen einer Liste von Dateien). Auch X11-Programme (wie "gimp") können von der Bash aus gestartet werden, wenn die Bash in einer Terminal-Emulation unter X11 läuft.

Häufig möchte man natürlich nicht einfach nur ein Programm aufrufen, sondern ihm auch sagen, welche Dateien es verarbeiten soll. Den MP3-Player "mpg123" kann man - sofern er installiert ist - zum Beispiel per

mpg123 linux_rocks.mp3

aufrufen, damit er die angegebene Datei abspielt. Oder man gibt eine kurze Textdatei per

cat notes.txt

aus. Natürlich kann man Kommandos nicht nur Dateinamen übergeben, sondern auch viele andere Dinge. Die meisten Kommandos verfügen über einige Optionen, die ihr Verhalten geringfügig modifizieren. "cat" verfügt unter anderem über die Option "-n", die dafür sorgt, dass Zeilennummern ausgegeben werden (Siehe Bild 1).

Autor:Wolfgang

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung