Versuchsziele. Dateien: a1: abcd Abcd abccd abcccd cbad cab werr werrr

Ähnliche Dokumente
Computer & GNU/Linux Einführung Teil 4

Grundlagen der Informatik 2

Inhalt. Fachbereich Automatisierung und Informatik, Shellprogrammierung 1

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

Unix/Linux Grundlagen für Einsteiger

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 1B

Übersicht Shell-Scripten

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

Die Shell. Ein Vortrag von Frederik und Michael 1 / 35

Hochschule Harz Vorlesung Grundlagen der Informatik 2 vi-editor Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Nils Nause (Student Informatik)

Vorlesung Unix-Praktikum

Systemverwaltung mittels Skripts

Linux-Einführung Übung

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

Versuchsziele: Aufgabe: Hochschule Harz FB Automatisierung und Informatik. und Formulare Erstellen einer XHTML-Seite mit Formular-Elementen

Bash-Skripting Linux-Kurs der Unix-AG

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

Shell-Scripting Linux-Kurs der Unix-AG

Arbeiten mit der Shell Teil 2

Shell-Scripting Linux-Kurs der Unix-AG

Allgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer

Shell-Scripting Linux-Kurs der Unix-AG

Unix-Grundkurs 1. Thema heute: Shell-Skripten

Bash-Skripting Linux-Kurs der Unix-AG

Der Standard-Editor vi

Vorlesung Unix-Praktikum

Übung 2 - Betriebssysteme I

Crashkurs Kommandozeile

Shell-Scripting Linux-Kurs der Unix-AG

Praktikum RO1 Einführung Linux / Ubuntu / Bash

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

Bash-Scripting Linux-Kurs der Unix-AG

ZWEITE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

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

Programmierwerkzeuge unter Unix

Elementare Unix-Befehle 11

Exkurs: Unix Programme

Arzu Sanli Ibrahim Canakci

Shellkurs Shell, SSH, Skripte... Justus Pfannschmidt, Carola Bothe, Samuel Domiks Freie Universität Berlin

UNIX Die wichtigsten Befehle

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Einführung Unix Shell

UNIX/Linux Lösung. Mär 08, 16 16:11 Seite 1/6

Sep 25, 18 8:36 UNIX/Linux Lösung

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Einführung in die Kommandozeile

Arbeiten mit der Shell Teil 2

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Grundlagen der Programmierung

Vorlesung Unix-Praktikum

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

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

105.1 Shell, Scripting

Ein- und Ausgabeumlenkung

Unterschiede in Dateien mit diff

Dateisystem 1, Suchen & Finden

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):

UNIX Power Tools. Helferlein für den Alltag. Maximilian Haupt

1.103 Grundlagen der Dateibearbeitung mit vi

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A

Windows PowerShell. CmdLets. PipeLine / Filter. Variablen / Operatoren. Schleifen / Prüfmethoden. Funktionen / Skripte. Allgegenwärtige Parameter

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 4A

UNIX/Linux Lösung. Mär 18, 18 15:34 Seite 1/6

Das CIP der Mathematik

Benutzung wichtiger Konsolenbefehle auf dem Raspberry Pi und anderen Linux Systemen

Shell-Scripting Teil 2 - Reguläre Ausdrücke

Basiskonzepte des Rechnerbetriebs

Dateisystem 2, RegEx, Manpages

Einführung in die Programmierung für Computerlinguisten

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

Dateisystem 2, Suchen & Finden

Linux und Shell-Programmierung Teil 5

Stream EDitor SED und Reguläre Ausdrücke

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

Vorlesung Unix-Praktikum

Übung: Entwickeln eines Shell-Skripts

Arbeiten mit der Shell Teil 1

Linux und Shell-Programmierung Teil 6

LINUX Gesamtmitschrift

Funktionen in JavaScript

Arbeiten in der Unix-Kommandozeile

Übung 4: Schreiben eines Shell-Skripts

Arbeiten mit der Shell Teil 2

Arbeiten in der Unix-Kommandozeile

Benutzer- und Rechtevergabe

Vordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 2001/ April 2002

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

Arbeiten mit der Shell Teil 1

Technische Praxis der Computersysteme 1

Funktionen in JavaScript

ÜBUNG 3 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

Die Shell. [prompt]> <command> <flags> <args>

Zeichenketten. Beispiel: Gegeben sind text1 = Hallo und text2= Welt. Dann wird in der Variablen text3 die Zeichenkette HalloWelt abgespeichert.

Linux Grundlagen Tutorium

Transkript:

Hochschule Harz FB Automatisierung und Informatik Dipl. Inf. Michael Wilhelm Versuch: Linux Informatikgrundlagen Thema: Shellprogrammierung und komplexe Konsolenbefehle Versuchsziele Einfache Kenntnisse in der Shellprogrammierung Erstellen von alias Abfragen mit grep und egrep Hinweise: Benutzen Sie zwei Konsolenfenster. Aufruf des zweiten Fenster: Rechte Maustaste über die blaue Überschrift Eintrag: "Duplicate Session" im ersten wird die Datei editiert und gespeichert ESC:w, im zweiten Fenster wird die Shell, Datei getestet Nummerierung: ESC : set Number Arbeitsverzeichnis auf der PS3: im aktuellen Homeverzeichnis : labor Die Dateien wurden schon erstellt. Bei einer Fehlermeldung bzgl. eines Scriptes (Schreibschutz) bitte folgende Aktionen durchführen: ls -a Anzeige der Dateie z. B..Aufgabe.swp rm -f.aufgabe.swp Löschen der Datei Dateien: a1: abcd Abcd abccd abcccd cbad cab werr werrr a2: editor $y=$x ela emma alben a3: abeditor $x=3 (( abcd = 3 + a )) ((\tabcd\t= 3 + a)) a4: 12bfe.abcd ^12bFe abcabc abcabcabc abc3abcx \tab ist die Taste Tab abc4abc a5: 13f abcd 1214 y=2*(5*(x+z)) a6: havefunwertvollwer hallo (hallo)a ((((())))) a7: 12345 56789 234.56 a8: 12.11.10 1.1.1 01.01.2010 11.11.abc a9: ^hallowelt hier ein wer-wolf hier noch ein werwerwolf hier ein dritter werwerwerwolf 1

1. Aufgabe Erstellen Sie ein alias für den folgenden grep-befehl: grep i 'abcd' a* Name des Alias: gr 2. Aufgabe Erstellen Sie drei Skripte, welche jeweils den Befehl grep aufrufen. Die Suchmaske soll mittels Parameter dem jeweiligen Skript beim Aufrufen übergeben werden. Als Dateimaske dient immer der Stern. Falls kein Parameter übergeben wird, muss das Skript eine Fehlermeldung ausgeben a) Der Suchstring soll am Anfang beginnen Skriptname: ga b) Der Suchstring soll am Ende liegen Skriptname: ge c) Der Suchstring soll von Anfang bis Ende sein Skriptname: gae Alle Skripte sollen direkt aufrufbar sein. Also ohne der Hilfe der Bash (siehe chmod). 3. Aufgabe Senden eines Bugreport an root Erstellen Sie ein Miniskript, fünf Zeilen, mit folgendem Inhalt. Lesen Sie komfortabel die Betreffzeile ein Lesen Sie komfortabel die Inhaltszeile ein Senden Sie die Mail an root mittels mail Parameter von mail: -s Subject (Betreff) -v Verbose Syntax von mail: echo 'Hallo hier eine mail von user'? mail empfänger -s Subject Das Fragezeichen muss durch ein besonderes Zeichen ersetzt werden. 2

4. Aufgabe Erstellen Sie einen Ausdruck bzw. schreiben Sie ihn in ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die am Anfang oder am Wortanfang die beiden Buchstaben "ab" nacheinander haben. Als Filter wird a* benutzt. Benutzen Sie grep. a1:abcd a1:abccd a1:abcccd a3:abeditor a3:(( abcd = 3 + a )) a3:(( abcd = 3 + a)) a4: 12bfe.abcd a4:abcabc a4:abcabcabc a4:abc3abcx a4:abc4abc a5:13f abcd 1214 a8:11.11.abc 5. Aufgabe Erstellen Sie einen Ausdruck bzw. schreiben Sie ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die am Anfang die beiden Buchstaben "ab" oder "ed" nacheinander haben. Als Filter wird a* benutzt. Benutzen Sie egrep. a1:abcd a1:abccd a1:abcccd a2:editor a3:abeditor a4:abcabc a4:abcabcabc a4:abc3abcx a4:abc4abc 3

6. Aufgabe a) Erstellen Sie einen Ausdruck bzw. schreiben Sie ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die irgendwo mit einer Klammerauf starten, dann beliebige Zeichen haben und danach mit einer Klammerzu enden. Als Filter wird a* benutzt. Benutzen Sie grep. a3:(( abcd = 3 + a )) a3:(( abcd = 3 + a)) a5:y=2*(5*(x+z)) a6:(hallo)a a6:(((()))) b) Erstellen Sie einen Ausdruck bzw. schreiben Sie ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die irgendwo mit einer Klammerauf starten, dann beliebige Zeichen haben und danach mit einer Klammerzu enden. Als Filter wird a* benutzt. Benutzen Sie egrep. a3:(( abcd = 3 + a )) a3:(( abcd = 3 + a)) a5:y=2*(5*(x+z)) a6:(hallo)a a6:(((()))) 4

7. Aufgabe a) Erstellen Sie einen Ausdruck bzw. schreiben Sie ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die am Anfang ein den Text 'ab' haben und genau danach mindestens einen Buchstaben c. Als Filter wird a* benutzt. Es darf maximal ein "c" in dem Ausdruck vorkommen. Benutzen Sie grep. a1:abcd a1:abccd a1:abcccd a4:abcabc a4:abcabcabc a4:abc3abcx a4:abc4abc b) Erstellen Sie einen Ausdruck bzw. schreiben Sie ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die am Anfang ein den Text 'ab' haben und danach mindestens zweimal den Buchstaben c. Als Filter wird a* benutzt. Es darf maximal ein "c" in dem Ausdruck vorkommen. Benutzen Sie egrep. a1:abccd a1:abcccd 8. Aufgabe Erstellen Sie einen Ausdruck bzw. schreiben Sie ein Script, welches alle Zeilen bzw. alle Dateien ausgibt, die mindestens zweimal hintereinander den Text "wer" haben. Als Filter wird a* benutzt. Benutzen Sie egrep. a9:hier noch ein werwerwolf a9:hier ein dritter werwerwerwolf 5

9. Aufgabe (schwer) Geben Sie mittels eines Ausdrucks die drei Dateien aus, die die meisten Zeilen mit "ab" haben. Als Filter wird a* benutzt. Benutzen Sie grep. Hinweise: Sie brauchen mindestens drei Kommandos Testen Sie die Kommandos nacheinander Eventuell können Sie Befehle auch einzeln testen a4:5 a1:4 a3:3 6

Weitere Hinweise: Alias: Zuweisen von Zeichenketten an einem neuen Befehl alias dir='ls p' alias..='cd..' alias cd..='cd..' For-Schleife bezüglich einer Menge Feste Schleifenanzahl: for i in 1 2 3 4 5 6 do echo "Hallo" done head head test.dat Anzeige der ersten zehn Zeilen Parameter: -n Anzahl der Zeilen tail tail test.dat Anzeige der letzten zehn Zeilen Parameter: -n Anzahl der Zeilen egrep-parameter $ Zeilenende \$ Alles außer Lerrraum (space, tab etc.) \< steht für Wortanfang, links oder rechts steht ein space, tab. CR, Anfang \> steht für Wortende \b steht Wortanfang oder Wortende ( ) Gruppe für eine Alternative mit Oder, Zeichen ( ) Gruppe, um eine Wiederholung zu definieren * 0,1,n? 0,1 + 1,n {n} das vorangegangene Zeichen tritt n-mal auf {n,} das vorangegangene Zeichen tritt n-mal oder öfter auf {n,m} das vorangegangene Zeichen tritt mindestens n-mal und maximal m-mal auf 7

sort Die Funktion sort sortiert eine Ascii-Datei nach folgenden Kriterien: Als Standard wird die erste Spalte genommen Die Spalten werden durch Leerzeichen oder Tab s getrennt (Default) Der Parameter r, revers, vertauscht die Reihenfolge Mit dem Parameter t kann man die Trennung direkt vorgeben o -t. o Der Punkt trennt nun alle Zeile und bestimmt so die Aufteilung der Spalten Der Parameter n zeigt, das die aktuelle Spalte numerisch ist Mit dem Parameter k kann man die aktuelle Spalte setzen o k 3 Dritte Spalte bis Ende der Zeile o k 3,3 Nur dritte Spalte Beispiel mit Datei dsat: 11.11.1976 12.05.2010 18.12.1988 31.04.2001 3.11.1966 Aufruf: sort dsat sort n dsat sort -n k 3 sdat sort -n -t. k 3 sdat 11.11.1976 12.05.2010 18.12.1988 3.11.1966 31.04.2001 3.11.1966 11.11.1976 12.05.2010 18.12.1988 31.04.2001 11.11.1976 12.05.2010 18.12.1988 3.11.1966 31.04.2001 3.11.1966 11.11.1976 18.12.1988 31.04.2001 12.05.2010 8

Strings und if-bedingungen Eine Stringabfrage mit einem Text if [ $sstr = "J" ] then fi In einer if-bedingung kann man eine zusätzliche Bedingung einfügen: if [ $a -eq 1 -o $b -lt 3 ] a AND o OR Abfrage eines leeren Strings: if [ -z "$sstr" ] then fi Abfrage eines nichtleeren Strings: if [ -n "$sstr" ] then fi Numerische Abfragen: [ x lt 1 ] Numerische Abfrage (Leerzeichen beachten) [ x-gt 1 ] Numerische Abfrage [ x le 1 ] Numerische Abfrage (Leerzeichen beachten) [ x-ge 1 ] Numerische Abfrage [ x ne 1 ] Numerische Abfrage (Leerzeichen beachten) [ x-eq 1 ] Numerische Abfrage Parameter eines Skriptes Positionsparameter Bedeutung $# Anzahl der Argumente ohne kommandoname $0 Name des Kommandos (kommandoname) $1 1. Argument nach dem Kommandoname : : $9 9. Argument nach dem Kommandoname $@ alle Argumente ohne Kommandoname $* alle Argumente ohne Kommandoname, expandiert durch das Zeichen IFS 9

vi-codes ESC i ESC A ESC O ESC o Einfügen eines Zeichens, Bearbeitenmodus Ans Ende einer Zeile springen Neue Zeile oberhalb des Kursors Neue Zeile unterhalb des Kursors ESC dd ESC ndd ESC yy ESC nyy ESC p ESC P ESC u ESC /abc n ESC:%s/ab/cd/ ESC ZZ ESC :x ESC :w ESC :q! Eine Zeile löschen n Zeilen löschen Eine Zeile kopieren n Zeilen kopieren Zeilen unterhalb einfügen Zeilen oberhalb einfügen Undo Suche abc Nächste Suche Ersetzt die Buchstaben ab durch cd Speichern und Ende Speichern und Ende Speichern Ende ohne speichern bash -x skriptname ESC : set Number zeigt die einzelnen Schritte beim Ablauf des Skriptes setzen der Zeilennummerierung Labor-Script: Dieses Script kopiert alle Dateien mit der Maske a* in die jeweiligen Verzeichnisse der Benutzer eins bis achtundsechzig. Danach wird das Userrecht vom "root" auf den jeweiligen Benutzer gesetzt. Getestet werden kann das mit dem Befehl ls -l. for ((i=1; i<=68; i++)) do mkdir /home/ati11_$i/labor4 cp /home/ati11_69/labor/a* /home/ati11_$i/labor4 chown ati11_$i /home/ati11_$i/labor1/a* chown ati11_$i /home/ati11_$i/labor1 done 10