Vorlesung Unix-Praktikum

Ähnliche Dokumente
Vorlesung Unix-Praktikum

Vorlesung Unix-Praktikum

Bash-Skripting Linux-Kurs der Unix-AG

Vorlesung Unix-Praktikum

Bash-Skripting Linux-Kurs der Unix-AG

Computer & GNU/Linux Einführung Teil 4

Übersicht Shell-Scripten

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Vorlesung Unix-Praktikum

Bash-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Übung 4: Schreiben eines Shell-Skripts

Technische Praxis der Computersysteme I 3. Vorlesung

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Shell-Programmierung. von Rolf Schmidt für. LUG Frankfurt

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Shell-Scripting Linux-Kurs der Unix-AG

Übung: Entwickeln eines Shell-Skripts

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Linux und Shell-Programmierung Teil 5

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Linux Prinzipien und Programmierung

Linux und Shell-Programmierung Teil 6

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Schleifen: Immer wieder dasselbe tun

Arithmetik in der tcsh

Shell-Programmierung

Wiederholung: Prozesse

Einführung in die Kommandozeile

Linux-Einführung Übung

Crashkurs Kommandozeile

Einführung Unix Shell

Okt 10, 16 17:29 UNIX/Linux Lösung

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

Überblick zum Thema CDO und Shell-Skripting

105.1 Shell, Scripting

Vorlesung Unix-Praktikum

Vorlesung Unix-Praktikum

Grundlagen der Programmierung

Shell Programmierung. Was ist die Shell überhaupt?

GI Vektoren

Deshalb ist hello + world = 0. Umgekehrt gilt das Gleiche, weshalb 8 plus 3 gleich 83 ist. Dies ist in Zeile 5 in Terminal 2 gezeigt. In der Regel sol

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform

Linux - a bit advanced

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Vorkurs Linux Grundlagen

Unix-Shells. mehrere Befehle in einer Zeile. bash: Grundlagen. Ein- und Ausgaben umlenken. Befehle: Dateien und Verzeichnisse (1)

Unix/Linux Grundlagen für Einsteiger

Arbeiten in der Unix-Kommandozeile

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

Arbeiten in der Unix-Kommandozeile

Technische Praxis der Computersysteme 1

Wiederholung Dinge zum Arbeiten mit dem Computer: Auto Fahrer Paket. Dr. Carsten Gnörlich Tag 2 / 1

Steuerung von Programmabläufen. Lehrstuhl für Angewandte Mathematik Sommersemester Mai und 15. Mai 2008

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Alles, was man auf der Kommandozeile eingeben kann, kann man auch in einem Skript verwenden. Umgekehrt gilt das gleiche.

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Schleifenanweisungen

Arbeiten mit der Shell Teil 2

Wiederholung. Texteditoren Textverarbeitung. Das seht Ihr in Wordpad! Das steht wirklich in der Datei! Dr. Carsten Gnörlich Tag 3 / 1

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Lineare Algebra mit dem Statistikprogramm R

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Grundlagen von C# - 2

ShellScripting : Shell Scripte

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

(Unix) Shell Programmierung

Arbeiten in der Unix-Kommandozeile. PeP et al. Toolbox Workshop

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife?

BASH Handout Vorlesungsbegleitend Version

Algorithmen und ihre Programmierung -Teil 2-

1. Aufgabe (6 Punkte)

Datenbanksysteme SS 2007

Einstieg in die Informatik mit Java

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Brainfuck Interpreter für ZX81

Programmieren mit dem TI-92

Shell-Skripte in Unix

Desktop ade: Me and my shell

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009

Grundlagen der Informatik

Übungspaket 11 Schleifen

BricsCAD System Variablen

Shell-Programmierung fur Unix und Linux

JavaScript Schere, Stein, Papier

(Unix) Shell Programmierung

Da einige Befehle gerne in Vergessenheit geraten werden hier einige essentielle und nützliche Befehle aufgelistet.

Terminal & Shell-Skripte

Computer selbst programmieren Kleine Programme mit VisualBasic erstellen

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Patricia Jung. Einführung in die Shellprogrammierung. Modul IF LIN 04 der Linux-Akademie im Rahmen der Informatica Feminale 2008 in Bremen

WE CERTIFIED WEB ADMINISTRATOR I. Grundlagen der. Shellskript-Programmierung ... Offizielles Curriculum des Europäischen Webmasterverbandes

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Transkript:

1/2 Vorlesung 8. und interaktiv Rechnerbetriebsgruppe Technische Fakultät Universität Bielefeld 07. Dezember 2015

2/2 Willkommen zur achten Vorlesung Was gab es beim letzten Mal? interaktiv for-schleifen seq, basename CSV-Tabellen cut, tr, sed printf

3/2 Willkommen zur achten Vorlesung Was machen wir heute? interaktiv Zeilenweises Arbeiten interaktiv

4/2 Zeilenweises Arbeiten Motivation interaktiv Gegeben sei eine zweispaltige Datei zahlen.txt: 90 17 110 201 6 57 20 15 101 99 Wie addiert man die Datei zeilenweise? 90 + 17 = 110 + 201 = usw.

5/2 Zeilenweises Arbeiten for hilft nicht weiter interaktiv for i in $(cat zeilen.txt); do echo $i done 90 17 110 201... for-schleifen arbeiten elementweise hilft uns nicht weiter

6/2 Zeilenweises Arbeiten Umwandlung in CSV-Tabelle wäre möglich interaktiv > tr -s " " <zahlen.txt tr " " ";" 90;17 110;201 6;57 20;15 101;99 for-schleife zerlegt Zeilen nicht mehr elementweise Weiterverarbeitung mit cut wie bei CSV-Tabellen gezeigt aber kein allgemeingültiger Weg (z.b. wenn Elemente Leerzeichen enthalten dürfen)

7/2 Zeilenweises Arbeiten -Schleifen interaktiv steuerbefehl; do Befehl 1 Befehl 2... Befehl n done Solange steuerbefehl wahr ist, führe Befehl 1,...,Befehl n aus.

8/2 Zeilenweises Arbeiten -Schleifen: Beispiel interaktiv #!/bin/bash zaehler=1 test $zaehler -le 3; do echo $zaehler zaehler=$((zaehler+1)) done >./1.bash 1 2 3

9/2 Zeilenweises Arbeiten -Befehl interaktiv : Eine Zeile aus der Eingabe lesen line liest eine Zeile in die Variable line nimmt den Wert falsch an wenn die Eingabe leer ist

10/2 Zeilenweises Arbeiten ist der perfekte Zuspieler zu #!/bin/bash line; do echo "Zeile: $line" done < zahlen.txt interaktiv >./2.bash Zeile: 90 17 Zeile: 110 201... zahlen.txt wird als Eingabe in die Schleife umgeleitet stellt sie zeilenweise in der Var. line zur Verfügung

11/2 Zeilenweises Arbeiten Lösung für das Addieren der Zahlen interaktiv #!/bin/bash line; do line=$(echo $line tr -s " ") a=$(echo $line cut -d\ -f 1) b=$(echo $line cut -d\ -f 2) echo $a + $b = $((a+b)) done < zahlen.txt

12/2 Motivation: unterschiedlich lange Zeilen interaktiv Verschärfte Bedingungen: zahlen2.txt 1 4 3 8 10 9 7 2 8 1 10 9 12 7 1 1 9 unterschiedlich viele Elemente in den Zeilen!

13/2 Variablen und Speicherbereiche Standardfall: jeder Variablen ist ein Speicherbereich zugeordnet n Werte n Variablennamen und Speicherbereiche interaktiv > a="one" > b="two" a one b two > echo $a $b

14/2 Array-Variablen interaktiv Array-Variablen (Feldvariablen): jeder Variablen sind n Speicherbereiche zugeordnet ein Name für n Speicherbereiche Zugriff/Unterscheidung der Speicherbereiche durch Index > a[0]="one" > a[1]="two" > a[2]="six" a a a [0] [1] [2]... one... one two... one two six... > echo ${a[0]} > echo ${a[1]} > echo ${a[2]}

Übersicht: Länge feststellen, Elemente ausgeben interaktiv > a[0]="one" a one... > a[1]="two" > a[2]="six" a a Ein Element ausgeben: > echo ${a[1]} two [0] [1] [2]... one two... one two six... Alle Elemente ausgeben: > echo ${a[*]} one two six Anzahl aller Elemente ermitteln: > echo ${#a[*]} 3 15/2

16/2 : Mehrere Elemente gleichzeitig setzen interaktiv > b=(eins zwei drei vier fuenf) > echo ${b[*]} eins zwei drei vier fuenf Zuweisungsmechanismus b=(...) hilft sehr beim Zerlegen von Zeilen!

17/2 Vereinfachung des Additions-Skriptes durch interaktiv line; do line=$(echo $line tr -s " ") a=$(echo $line cut -d\ -f 1) b=$(echo $line cut -d\ -f 2) echo $a + $b = $((a+b)) done < zahlen.txt line; do z=($line) echo ${z[0]} + ${z[1]} = $((${z[0]}+${z[1]})) done < zahlen.txt

18/2 Lösung: Datei zahlen2.txt bearbeiten line; do a=($line) letztes=$((${#a[*]} 1)) sum=${a[0]} echo n "$sum " Array aus Zeile zusammenbauen Index des letzten Elementes = Länge des 1 Ersten Summanden a[0] bearbeiten interaktiv for i in $(seq 1 $letztes); do sum=$((sum+${a[$i]})) echo n "+ ${a[$i]} " done Summanden a[1]... a[letztes] bearbeiten echo "= $sum" done < zahlen2.txt Summe ausgeben

19/2 Shellskripte mit interaktiven Abfragen #!/bin/bash -p "Geben Sie einen Dateinamen an: " name echo "Sie gaben ein: $name" interaktiv >./skript.bash Geben Sie einen Dateinamen an: brief.txt Sie gaben ein: brief.txt

20/2 Abfrage mit vorbesetztem Wert #!/bin/bash -p "Dateiname: " -i neu.txt -e name echo "Sie gaben ein: $name" interaktiv >./skript.bash Geben Sie einen Dateinamen an: neu.txt... Nutzer kann Voreinstellung mit der Eingabetaste übernehmen oder einen anderen Wert eingeben

21/2 Abfrage eines einzelnen Tastendrucks #!/bin/bash -p "Drücken Sie eine beliebige Taste: " -n 1 t echo -e "\ndie Taste war: $taste" interaktiv >./skript.bash Drücken Sie eine beliebige Taste: h Die Taste war: h

22/2 Interaktiv laufende Programme interaktiv #!/bin/bash taste="x" test "$taste"!= "e"; do -p "Würfeln oder Ende (w/e)? " -n 1 taste echo if test "$taste" == "w"; then echo $((1+RANDOM%6)) fi done echo "Spiel beendet."

23/2 Interaktiv laufende Programme - Beispiellauf interaktiv >./skript.bash Würfeln oder Ende (w/e)? w 2 Würfeln oder Ende (w/e)? w 6 Würfeln oder Ende (w/e)? w 1 Würfeln oder Ende (w/e)? e Spiel beendet.

24/2 history interaktiv history: Zuletzt eingegebene Befehle anzeigen > history... 1075 ls -l 1076./skript.bash 1077 history Suchen in der History: history grep suchbegriff

25/2 Zuletzt ausgeführte Befehle erneut ausführen interaktiv!präfix: führt letzte Eingabe erneut aus, die mit präfix beginnt > history # nur zur Verdeutlichung 1078 gimp bild1.png 1079 gimp bild2.png 1080 gedit vergleich.bash 1081 ls -la 1082 cat vergleich.bash >!gi gimp bild2.png (!g hätte nicht gereicht - dies würde gedit vergleich.bash ausführen)

26/2 Gezieltes Suchen nach Eingaben interaktiv vgl. (Rückwärtssuche) im Emacs via CTRL-R: CTRL-R, Anfang des Suchbegriffes eingeben zeigt ersten Treffer Suche weiter verfeinern: mehr Suchtext eingeben oder wiederholt CTRL-R zum weitersuchen Eingabetaste: gefundene Eingabe wiederholen

27/2 Länge der History einstellen interaktiv Umgebungsvariable HISTSIZE: > HISTSIZE=1000 für permanente Einstellung:.bash aliases

28/2 Ende der heutigen Vorlesung interaktiv Vielen Dank fürs Zuhören! Bis nächste Woche!