24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.5 Shells 79<br />

Wir haben sie auf unserer Anlage e<strong>in</strong>gerichtet, benutzen sie aber nicht, da<br />

uns bislang die Korn-Shell oder die bash(1) reicht und wir den Aufwand der<br />

Umstellung scheuen. Dann gibt es noch e<strong>in</strong>e rc-Shell, die kle<strong>in</strong> und schnell<br />

se<strong>in</strong> soll. H<strong>in</strong>ter uns steht ke<strong>in</strong> Shell-Test-Institut, wir enthalten uns daher<br />

e<strong>in</strong>er Bewertung. Im übrigen gibt es zu dieser Frage e<strong>in</strong>e monatliche Mitteilung<br />

<strong>in</strong> der Newsgruppe comp.unix.shell.<br />

Wem das nicht reicht, dem steht es frei, sich e<strong>in</strong>e eigene Shell zu schreiben.<br />

Die Korn-Shell gibt es auch für MS-DOS-Rechner (siehe Abschnitt 2.14.5<br />

MKS-Tools und andere auf Seite 231), was wieder die Austauschbarkeit des<br />

Kommando<strong>in</strong>terpreters unterstreicht. Im folgenden halten wir uns an die<br />

Korn-Shell ksh(1).<br />

E<strong>in</strong>ige der Kommandos, die Sie der Shell übergeben, führt sie persönlich<br />

aus. Sie werden <strong>in</strong>terne oder e<strong>in</strong>gebaute Kommandos genannt. Die Kommandos<br />

cd(1) und pwd(1) gehören dazu, unter MS-DOS beispielsweise dir.<br />

Das dir entsprechende <strong>UNIX</strong>-Kommando ls(1) h<strong>in</strong>gegen ist e<strong>in</strong> externes<br />

Kommando, e<strong>in</strong> eigenes Programm, das wie viele andere Kommandos vom<br />

Interpreter aufgerufen wird und irgendwo <strong>in</strong> der File-Hierarchie zu Hause<br />

ist (/b<strong>in</strong>/ls oder /usr/b<strong>in</strong>/ls). Welche Kommandos <strong>in</strong>tern und welche extern<br />

s<strong>in</strong>d, ist e<strong>in</strong>e Frage der Zweckmäßigkeit. Die <strong>in</strong>ternen Kommandos f<strong>in</strong>den<br />

Sie unter sh(1) beziehungsweise ksh(1), Abschnitt Special Commands.<br />

Die Reihe der externen Kommandos können Sie durch eigene Programme beliebig<br />

erweitern. Falls Sie für die eigenen Kommandos Namen wie test(1)<br />

oder pc(1) verwenden, die durch <strong>UNIX</strong> schon belegt s<strong>in</strong>d, gibt es Ärger.<br />

Die Namen von <strong>UNIX</strong>-Kommandos unterliegen nur den allgeme<strong>in</strong>en Regeln<br />

für Filenamen, e<strong>in</strong>e besondere Kennung à la .exe oder .bat ist nicht<br />

üblich. E<strong>in</strong>e E<strong>in</strong>gabe wie karlsruhe veranlaßt die Shell zu folgenden Tätigkeiten:<br />

• Zuerst prüft die Shell, ob das Wort e<strong>in</strong> Aliasname ist (Zweitname, wird<br />

bald erklärt). Falls ja, wird es ersetzt.<br />

• Ist das – unter Umständen ersetzte – Wort e<strong>in</strong> <strong>in</strong>ternes Kommando, wird<br />

es ausgeführt.<br />

• Falls nicht, wird e<strong>in</strong> externes Kommando – e<strong>in</strong> File also – <strong>in</strong> e<strong>in</strong>em der<br />

<strong>in</strong> der PATH-Variablen (wird auch bald erklärt) genannten Verzeichnisse<br />

gesucht. Bleibt die Suche erfolglos, ersche<strong>in</strong>t e<strong>in</strong>e Fehlermeldung:<br />

not found.<br />

• Dann werden die Zugriffsrechte untersucht. Falls diese das Lesen und<br />

Ausführen gestatten, geht es weiter. Andernfalls: cannot execute.<br />

• Das File sei gefunden und e<strong>in</strong> Shellscript (wird auch bald erklärt) oder<br />

e<strong>in</strong> ausführbares (kompiliertes) Programm. Dann läßt die Shell es <strong>in</strong> e<strong>in</strong>em<br />

K<strong>in</strong>dprozess ausführen. Das Verhalten bei Syntaxfehlern (falsche<br />

Option, fehlendes Argument) ist Sache des Shellscripts oder Programmes,<br />

hängt also davon ab, was sich der Programmierer gedacht hat. E<strong>in</strong><br />

guter Programmierer läßt den Benutzer nicht ganz im Dunkeln tappen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!