Titel: Shell Scripts sind sinnvoll - Begruendung am Beispiel Kurztitel: Shell Scripting Art: Vortrag mit Vorführung Dauer: 1h, Pause, Q+A bis zu 2h Alternative Titel: "in 10 schritten vom mausschubser zum linux hacker" "programmieren ohne compiler" Zielgruppe: Alle. Vorkenntnisse: Nuetzlich sind grundlegende Kenntnisse einer Shell. (Input, Variablen, Aliase, Funktionen, Schleifen) Man muss jene aber (noch) nicht verstanden haben. Abstract/Beschreibung: Die grundlegenden Ideen von Scriptsprachen soll anhan eines Beispiels in zehn Schritten geezigt werden. Nach und nach werden dabei die Vorteile reinen Textes erlaeutert. aber natuerlich auch ein wenig ueber die Nachteile. ;-) Was ist es *nicht*? Dies ist kein Vortrag mit Folien, sondern eine feature show, dh man sieht die Effekte der Shell anhand des Beispiels. Einiges davon erkennt man vielleicht im Laufe der Jahre waehrend der Benutzung. Diese Zeit der Erkenntnis, damit der Benutzer den Wert des Programms von Anfang an zu schätzen weiss. === Inhalt: == (1) Muster Die Benutzung von Mustern erlaubt eine kurze Schreibweise einer ganzer Menge von Objekten (Dateien und Verzeichnissen): echo img_*.jpg == (2) Kommandosequenz Eine Kette von Befehlen läßt sich auch in einer Eingabezeile unterbringen. command1; command2; command3 == (3) pipe + filter Eine weitere Art einer Kommandosequenz erahält man, indem man die Ausgabe eines Kommandos als Eingabe an das nächste Kommando per "pipe" weitergibt: command1 | command2 command1 | filter1 | filter2 > output == (4) schleife Wiederholungen mit anderen Werten pro Durchlauf macht man mit Schleifen (for, while, repeat.. until): for bild in muster; do command $bild done kosten=0 for bild in *.jpg *.gif bild23.png ; do echo $bild kosten+=$kosten+1 convert -comment $bild "dies ist ein ueberfluessiger kommentar" cp $bild /dev/hdd/pics/ done == (5) umleitung Die Ausgabe eines Kommandos kann man auf eine Datei umlenken, so dass sie nicht über den Bildschirm läuft: command > output command >> output == (6) shellscript Ein Skript ist lediglich eine Folge von Kommandos, die einer Datei stehen und von eienr Shell ausgeführt werden. Diese Datei bearbeitet man mit einem Text Editor. $ $EDITOR script #!/bin/sh ... :w script Gute Editoren unterstützen das Editieren mit einer Vielzahl von Befehlen (vor allem undo+redo) und sind auf jedem Betriebssystem vorhanden. == (7) cron Kommandos und Scripts kann man zeitgesteuert ausführen lassen: crontab -e Emails nachts austauschen lassen. Abonnierte Webseiten updaten. Lange Aufgaben nachts ausführen. == (8) share! Scripts und Setupdateien kann man leicht lesen und auch per Email versenden: mutt -a script -s "script fuer..." adresse === (9) history Die Geschichte der Shell wird zur Fundgrube. history | $PAGER history | grep -i foo reverse-i-search === (10) more... ... === conclusion/ergebnis/zusammenfassung: reiner text ist *gut* - aus diesen gründen: es gibt viele tools für behandlung von text. text ist mit vielen programmen anzeigbar (editor+pager; browser, mailer, newsreader) keine abhaengigkeit vom editor oder viewer. keine spezielle "brille" (programm) noetig. keine konvertierung noetig; ready for email! eigenschaften: frei: kostenlos (free beer), text ist gut zu komprimieren. text ist direkt ausdruckbar. der code ist direkt kopierbar bzw modizifierbar. scripts sind auf eigene bedürfnisse anpaßbar und erweiterbar. man lernt strukturiert und in abläufen zu denken. man kann sich durch kombinationen selber helfen. aehnliche strukturen imperativer sprachen -> vorteil für die erlernung anderer sprachen. nachteile: geringere performance im vergleich mit compiliertem und optimiertem code. -> compiler! =========================================================== Benötigte Hilfsmittel: Ein Beamer mit einer Auflösung von mindestens 1024x768. Rechner: Ein 486er mit einer Knoppix sollte genügen. Ein Zugang zum Netz per ssh nach draussen sollte reichen, dann kann alles auch im eigenen account gezeigt werden. Programme: ssh, terminal (zB xterm), vim 6.3. Eventuell noch ein X mit einem graphischen Webbroser, zum Zeigen von Websites oder zum Suchen mit Google, Workshop: Möglichst abends oder am Wochenende, ca 3-5 Stunden. Maximal 10 Teilnehmer. Adressen: Dokumentation: http://www.guckes.net/vortraege/bps/ Kontakt: Sven Guckes shell_scripting@guckes.net +49-179-3966141 Persönliche Angaben: Sven Guckes, geboren 1967, Studium der Mathematik und Informatik an der Freien Universität Berlin; lebt in Berlin. Benutzer von Shells und TextTools seit ca 1989. Vorträge, vor allem zu TextTools, seit 2001 in Brandenburg, Chemnitz, Dresden, Karlsruhe, Köln, Ludwigsburg, Magdeburg, München, Pforzheim, Zweibrücken; Brüssel, Eisenstadt, Graz, StPölten, Wien; Swansea; Utrecht. Spezialgebiete: "Text Tools" (zB mutt, screen, slrn, vim, zsh), Anwendung von MailingListen + Newsgruppen, und zur Effizienz von User Interfaces. Projekte: zu viele. ;-) letzte Änderung: Tue Feb 28 17:00:00 CET 2006