Embed
Email

Unix Shell

Document Sample

Shared by: Jun Wang
Categories
Tags
Stats
views:
6
posted:
1/11/2012
language:
pages:
26
#!/bin/bash







UNIX SHELL

1 Christian Benz

SS 2009

19.06.2009

INHALTSVERZEICHNIS

1. Grundlegendes

 Begriffserklärung – Was genau ist eine Shell?

 Wofür braucht man eine Shell?

 Historie – Die Ären der Unix-Shells





2. Stärken und Schwächen von Shells



3. Unterschiede zwischen Bash und MS-DOS



4. Welche Kommandos beherrscht eine Shell?



5. Beispielcode 2

1. BEGRIFFSERKLÄRUNG – WAS

GENAU IST EINE SHELL?

Shell Script: Ein Shell-Script ist eine Textdatei,

die eine Ansammlung von Shell-Kommandos

enthält.

Ein Shell-Script kann viele Programmier-

Utensilien beinhalten, die man von höheren

Programmiersprachen kennt. (diese Kommandos

folgen später)

Erspart häufig Tipparbeit: anstatt alle Befehle

einzugeben, kann man einfach ein Script

aufrufen, dass alle Kommandos nacheinander

durchläuft

5

1. WOFÜR BRAUCHT MAN EINE

SHELL?

Starten von Programmen teilweise nur per

Kommandozeilenoperationen möglich (z.B. über

Netzwerk per PuTTy)

Probleme unter Linux teilweise nur per Shell

lösbar (z.B. bei fehlerhaftem Grafikkartentreiber)

Automatisieren von Abläufen









6

1. HISTORIE – DIE ÄREN DER UNIX-

SHELLS

 1971 Thompson-Shell

(erste UNIX-Shell)



 1978 Bourne-Shell

(in UNIX 7)



 1978 C-Shell

(C-ähnliche Syntax, nicht

kompatibel mit Bourne Shell)



 Um 1980 Korn Shell

(kompatibel zur Bourne Shell, viele

Funktionen aus der C-Shell)



 1987 Bourne-Again-Shell

(Bash)

(Shell des GNU-Projekts, meist 7

verbreitet)

2. STÄRKEN

Was spricht für Shell-Scripte?

 Schnell zu entwickeln

 (relativ) portabel

 Kein Compiler notwendig

 Selbst auf Minimalsystemen verwendbar, Shell ist

fast immer vorhanden

 Trainiert den täglichen Gebrauch der

Kommandozeile

 Nahe „Verwandtschaft“ zu höheren

Programmiersprachen





8

2. SCHWÄCHEN

Wann sind Alternativen vorzuziehen?

 Wenn es auf Effizienz und Geschwindigkeit ankommt

 Komplexere Anwendungen (Objektorientierte

Programmiersprachen wie Java oder C++ sind

vorzuziehen, Type-Checking)

 Mehrdimensionale Arrays, spezielle Datenstrukturen

notwendig

 GUIs, direkte Hardwarezugriffe, externe

Bibliotheken







9

3. UNTERSCHIEDE ZWISCHEN BASH UND MS-

DOS



Syntax-Unterschiede wie z.B.

Kommando Bash MS-DOS

Datei kopieren cp joe.txt joe.doc COPY JOE.TXT JOE.DOC



Datei löschen rm temp DEL TEMP



Datei verschieben mv vortrag.txt tmp/ MOVE VORTRAG.TXT TMP\



Schreib-/Leserechte ändern chmod 400 datei.txt ATTRIB +R DATEI.TXT



Verzeichnisinhalt anzeigen ls (auch: dir) DIR









10

4. WELCHE KOMMANDOS BEHERRSCHT EINE

SHELL?

GRUNDFUNKTIONEN

Die meisten gängigen Unix-Shells bieten die

folgenden Funktionen:

Starten von Kommandos

Dateinamen-Wildcards als Kommandoargumente

Bedingungen (if, case) und Schleifen (while, for)

interne Kommandos (cd, read)

interne Variablen ($HOME)

Manipulation der Umgebungsvariablen für die neuen

Prozesse

Ein-/Ausgabeumlenkung

Starten mehrerer Prozesse, Verkettung über Pipes

Starten von Prozessen im Hintergrund

Funktionen und Funktionsaufrufe

11

Reguläre Ausdrücke

4. WELCHE KOMMANDOS BEHERRSCHT EINE

SHELL?

ERWEITERTE FUNKTIONEN



Moderne Shells können darüber hinaus:

Vervollständigung von Kommandos, Dateinamen und

Variablen

Editieren der Kommandozeile

Wiederholung und Editieren früherer Kommandos

Stoppen und erneutes Starten von Prozessen

Verschieben von Prozessen aus dem Vordergrund in

den Hintergrund und umgekehrt

Eingebautes Kommando zur Durchführung von

Berechnungen ($((2+2)))

Eingebautes Kommando zum Testen von

Dateieigenschaften (test) 12

4. ZEICHEN DER BASH (AUSZUG)

# Kommentare

; Befehlsseperator (mehrere Befehle in eine Zeile)

${ } Variablensubstitution (liefert den Inhalt einer

Variable)

( ) command group (führt die enthaltenen Befehle in

einer Subshell aus [das Script kann die

Variablen der Subshell nicht auslesen])

{ } Codeblock (erzeugt eine anonyme Funktion

[Variablen bleiben für das Script sichtbar]

[ ] prüft den Ausdruck zwischen [ ] (z.B. bei IF-

Verzweigungen) AUCH: Array-Adressierung

sowie reguläre Ausdrücke

> leitet stdout (>) in Datei um (folgt später

detaillierter)

>> wie „>“, aber Ausgabe wird an bestehenden

Inhalt angehängt 13

 Die Datei wird dabei neu erstellt.



Umleitung der Standard-Ausgabe in eine

bestehende Datei. Die aktuelle Ausgabe wird an

>> die Datei angehängt. Wenn die Datei nicht

existiert wird sie neu erstellt.



Umleitung von einer Datei in die Standard-

< Eingabe eines Befehls. 20

| Umleitung der Standard-Ausgabe in die Standard-

(Pipe-Symbol) Eingabe eines anderen Befehls.

4. KOMMANDOS DER BASH

Kommandosubstitution

Kommandosubstitution heißt ein Verfahren, bei

dem ein Kommando zum Teil oder komplett aus

einer Ausgabe besteht.

Beispiel:

echo Im Verzeichnis existieren `ls | wc -w` Einträge





Listet auf und zählt

alle Wörter (wc = Word Count)

Bildschirmausgabe: Beispiel: 15

„Im Verzeichnis existieren 15 Einträge“

Beispiel in Java (zum Nachempfinden):

System.out.println(„Im Verzeichnis existieren “+countWords(listDir())+„ Einträge“);



22

5. BEISPIELPROGRAMM (E-MAIL

VALIDIERUNG)









Nun folgt ein kleines Codebeispiel anhand einer

E-Mail-Validierung









24

ABSCHLUSS









Vielen Dank für Ihre Aufmerksamkeit



Fragen?









25

QUELLENHINWEISE

www.wikipedia.de

http://sommercampus2004.informatik.uni-

freiburg.de/

http://linuxseiten.kg-it.de/

http://www.jan-

trippler.de/de/script_tipps/index.html

http://linuxseiten.kg-it.de/

Shell-Programmierung in Unix

Alexander Mayer (C&L Computer und Literaturverlag)



Shell-Programmierung

Wolfgang Bock (verlag moderne industrie)

26



Related docs
Other docs by Jun Wang
Management Two
Views: 6  |  Downloads: 0
Management training Red Cross branch offices
Views: 6  |  Downloads: 0
Management subjekt_ CR
Views: 5  |  Downloads: 0
Management Styles_1_
Views: 22  |  Downloads: 0
Management stratégique
Views: 5  |  Downloads: 0
Management Standards at CARE - CARE Academy
Views: 6  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!