Uebung-01 - Übungsaufgaben zu BUS PDF

Title Uebung-01 - Übungsaufgaben zu BUS
Course Betriebssysteme und Systemsoftware
Institution Rheinisch-Westfälische Technische Hochschule Aachen
Pages 4
File Size 149.6 KB
File Type PDF
Total Downloads 9
Total Views 123

Summary

Übungsaufgaben zu BUS...


Description

Betriebssysteme und Systemsoftware Sommersemester 2017

¨ Ubungsblatt 1 Abgabe: 04.05.2017

Aufgabe 1.1: Linux-, Shell und C-Playground (3+0.5 = 3.5 Punkte) ¨ Wir fangen mit ein paar ’Ubungen’ zum warm werden an, um uns ein bisschen mit Linux vertraut zu machen. ¨ Diese Aufgabe ist eine Vorbereitung f u ¨ r Aufgaben in diesem und dem n¨achsten Ubungsblatt. a) Get and Install Linux Zum Bearbeiten der Aufgaben ben o¨ tigt ihr ein Linux. Um Zugriff auf ein Linux System zu bekommen stehen euch verschieden M o ¨ glichkeiten zur verfugung. ¨ • Linux auf der Festplatte eines Rechners installieren. • Linux in einer Virtuellen Maschine installieren: z.B. https://www.virtualbox.org/ • Linux von einem USB Stick booten: z.B. mittels – https://rufus.akeo.ie/(windows) – https://unetbootin.github.io(MacOS) • Einen Rechner im RBI Rechner Pool benutzen (http://rbi.informatik.rwth-aachen. de/Pool+Helpdesk/) ¨ Um sich einen Uberblick u¨ ber verschiedene Linux Distributionen zu verschaffen, kann man unter https://distrowatch.com/dwres.php?resource=major nachschauen. Fur ¨ Anf¨anger geeignet ist z.B. Linux Mint mit Mate Desktop (https://linuxmint.com/edition.php? id=228 ). Um sich Intensiv mit Linux auseinanderzusetzen ist gentoo eine gute Wahl ( https: //gentoo.org/get-started/). ¨ Offne ein Terminal und gebe die folgenden Befehle ein (ohne $): $ $ $ $

uname -a cat / e tc / is sue gcc -- v er si on w

Wie lautet die Ausgabe der eingegebenen Befehle? b) RTFM - Read The ’Friendly’ Manual!!! Wer Probleme mit den Shell- und teilweise auch den C-Aufgaben hat, kann natu ¨ rlich Google ¨ ¨ oder Ahnliches zur Hilfe heranziehen – es geht aber auch professioneller. Offnet dazu eine Shell und gebt die folgenden Befehle ein (ohne $): $ man man $ m an gr ep ...

Zitiere einen kurzen Absatz aus mindestens 3 verschiedenen man pages.

1

Betriebssysteme und Systemsoftware Sommersemester 2017

Aufgabe 1.2: Bash: Grundlagen (0.5+0.5+1 = 2 Punkte) a) Geben Sie einen Kommandozeilen-Befehl an, mit dem in einer u¨ ber Standard-Eingabe gelesenen Zeichenkette die erste (und nur die erste!) ’6’ durch eine ’7’ ersetzt wird. Beispiel (mein-befehl ist der hier zu definierende Befehl): $ echo "BuS 2016: Abgabe der 1. Uebung am 6.5" | mein-befehl BuS 2017: Abgabe der 1. Uebung am 6.5

b) Erlautern ¨ Sie, was der folgende Befehl bewirkt: $ cut -d ’ ’ -f 1 d* c) Diesmal wollen wir uns den grep-Befehl genauer anschauen, lose an folgendem leicht abgewandelten xkcd1 orientiert:

2

Hilf Cueball und Megan, die Adresse in den E-Mails zu finden. Die E-Mails befinden sich in der Datei emails , die im Lernraum zur Verf¨ugung steht. Eine Adresse ist dabei wie folgt aufgebaut: Vorname Name Straße Hausnummer PLZ Ort Nutzen Sie grep, um die gew u ¨ nschten Zeilen herauszufiltern. Geben Sie als L o¨ sung den Befehl an, mit dem die Adresse aus der Datei gefiltert wird. Geben Sie außerdem die Adresse an (Personenname, Straße und PLZ + Ort), sowie die Zeilennummern, in denen Sie diese Adresse gefunden haben. Geben Sie des weiteren Absender und Empf ¨anger der gesuchten E-Mail an. Als kleiner Tipp: Es ist vielleicht hilfreich, sich bei der Suche nach Adressen auf eine der drei Zeilen zu konzentrieren. Postleitzahlen haben hier u ¨ brigens immer 5 Ziffern, und Ortsnamen bestehen aus h o¨ chstens zwei W o¨ rten. Bei grep hilft es manchmal enorm, sich mit --color die eigentlichen matchenden Bereiche farbig markieren zu lassen. 1 2

https://xkcd.com/208/ Title Text: Wait, forgot to escape a space. Wheeeeee[taptaptap]eeeeee.

2

Betriebssysteme und Systemsoftware Sommersemester 2017

Aufgabe 1.3: Bash: Textverarbeitung (0.5+1+0.5 = 2 Punkte) In dieser Aufgabe betrachten wir Textbearbeitung mittels bash. UNIX bietet hierzu eine Vielzahl kleiner Utility-Programme an, die zur Manipulation von Textfiles geeignet sind (z.B. awk, grep, cut, paste, sort, uniq, diff, tr, wc, cat, . . . ). Viele Aufgaben, zu denen man bei anderen Betriebssystemen komplette Programme schreiben musste, ¨ lassen sich unter UNIX durch geschickte Verkn ¨upfung dieser Tools uber ¨ Pipes direkt auf der Kommandozeile einer Shell l ¨osen. Um die Aufgaben zu bearbeiten, ladet zun ¨achst die folgende Textdatei aus ’The War of the Worlds’ herunter: http://www.openfst.org/twiki/pub/FST/FstExamples/wotw.txt Hinweis: wget L o¨ st die Aufgaben unter Verwendung der genannten UNIX–Tools. Gebt dabei neben der L o¨ sung die verwendete Befehlsfolge an. a) Entfernt alle Sonderzeichen " ?

. ! : ; , + & ‘

aus wotw.txt und entfernt alle sich wiederholenden Leerzeichen. b) Wieviele Zeilen in wotw.txt enthalten die Zeichenfolge “road” nicht (dabei nicht nach Groß- und Kleinschreibung unterscheiden)? c) Welches sind die 10 h ¨aufigsten W¨orter in wotw.txt? Gebt hierbei auch die absolute H ¨aufigkeit dieser 10 W o¨ rter an.

Aufgabe 1.4: Git (0.5+0.5+0.5+0.5 = 2 Punkte) F ¨ur das verteilte Bearbeiten von Texten und Quellcode werden h ¨aufig sogenannte verteilte Versionskontrollsysteme verwendet. Damit lassen sich Zwischenst a¨ nde sichern und die Zusammenarbeit zwischen verschiedenen Autoren besser abstimmen. Ein Beispiel fur ¨ ein solches Werkzeug, das z.B. f u ¨ r die Entwicklung des Linuxkerns verwendet wird ist Git. Eine gute Einf u ¨ hrung findet ihr unter: https://www.atlassian.com/git/tutorials/setting-up-a-repository F¨ur die Bearbeitung der folgenden Aufgaben bereitet ein Verzeichnis mit drei Dateien {A, B, C}.txt vor. ¨ k o¨ nnte das Der Inhalt dieser Dateien kann beliebig sein, wenn ihr nicht selber kreativ werden mochtet tool fortune euch aushelfen. L o¨ st dann die folgenden Aufgaben unter Verwendung von Git. Gebt die verwendete Befehlsfolge an, ihr m u ¨ sst dabei nur die Befehle angeben, welche git enthalten. a) Initialisiert das zuvor angelegte Verzeichnis als Git Repository. euren ersten Commit b) Registriert die drei Dateien in dem Versionsverwaltungssystem und f uhrt ¨ durch. ¨ etwas an den Dateien. Wie k o c) Andert ¨ nnt ihr die Unterschiede zu dem letzten Commit anschauen? ¨ ¨ d) Erstellt f ur ¨ die Anderungen einen erneuten Commit. Wie erhaltet ihr einen Uberblick u ¨ ber die vorhandenen Commits?

3

Betriebssysteme und Systemsoftware Sommersemester 2017

Bislang habt ihr nur in einem einzigen lokalem Git Repository gearbeitet. Wenn man alleine arbeitet ist dies schon sehr n u ¨ tzlich, arbeitet man im Team hat jeder Nutzer typischerweise ein eigenes ¨ ber ein zenlokales Git Repository auf seinem Rechner. Meistens werden die lokalen Repositories u trales remote Repository, welches uber ¨ das Internet immer erreichbar ist synchronisiert. Hierzu gibt es verschiedene Anbieter, wie beispielsweise die folgenden: https://git.rwth-aachen.de/ , https://bitbucket.org/ oder https://github.com/ Wir empfehlen euch Git weiter anzuschauen und dieses Versionsverwaltungssystem auch f ur ¨ die ¨ Bearbeitung der Ubungen zu verwenden.

Aufgabe 1.5: PDF Manipulation (1+0.5 = 1.5 Punkt) Diese Aufgabe ist besonders praktisch f ur ¨ eure Abgabe der L o¨ sung in Form eines einzigen PDFDokuments. a) Betrachtet folgendes Szenario. Ihr habt die Dateien A.pdf (enth ¨alt eventuell bereits mehrere Seiten), B.png und C.jpg vorliegen. Wie ko¨ nnt ihr diese Dateien mithilfe der Tools convert und pdfunite zu einem einzigem PDF-Dokument Abgabe1.pdf zusammenf u ¨ gen? Hinweis: Diese Aufgabe l a¨ sst sich zwar auch nur mit Hilfe von convert l¨osen, aber aus Gr ¨unden der Qualit ¨at solltet ihr convert besser nicht auf bereits bestehende (Maschinen-erstellte) PDFs anwenden. Als Alternative zu pdfunite konnt ¨ ihr auch pdftk verwenden. b) Betrachtet folgendes Szenario: Ihr habt ein großes PDF-Dokument A.pdf mit mehreren Hundert Seiten vorliegen. Euch interessieren aber nur die Seiten 5-9, 23 und 240-242. Deshalb hattet ¨ ihr gerne nur ein PDF-Dokument Relevant.pdf mit genau diesen Seiten. Wie konnt ¨ ihr dies mithilfe des Tools pdftk erreichen?

4...


Similar Free PDFs