Informatik I
Übung 1 : Linux, Terminal & Kompilieren
Daniel Hentzen
dhentzen@student.ethz.ch

Analysis I / II - 16
Mechanik I / II - 11
WuF I / II - 8
Masch.elemente & Innoprozess - 8
Linalg - 6
Informatik I - 4
Chemie - 3
C
Java
Objective C
C++
C#
...

TIOBE-Index Feb. 2015

C++
- 1979, Erweiterung von C
- object-oriented
- effizient, auf Performance ausgelegt
- Anwendung im wissenschaftlichen Bereich
Ausblick
Vorlesung
Homepage & Forum (OLAT)
Lehrbuch
S. Prata : C++ Primer Plus, 6th Edition
Prüfung
120 min, handschriftlich
Zusammenfassung : 5 A4 Blätter (10 Seiten)
keine MCQ's, keine "Theoriefragen"
Programmieren!
Übungen (!)
-
Vorbesprechung
- Abgabe : Dateien an dhentzen@student.ethz.ch
- in der Regel nur Eclipse Dateien (keine Textdateien!)
- Betreff : Info1 Exercise1 Vorname Nachname
- Rückgabe & Nachbesprechung in der (über)nächsten Übung
Material
Präsentationen unter www.slid.es/dhentzen
(html-Format, am besten mit Chrome...)
Slides, Übungen, MLs, Notizen,... unter
Übung 1
Linux, Terminal & Kompilieren
Material (VPN !)
VirtualBox (OS X / Windows,...)
Fedora (Info1_2015_fedora64.ova)

Installation Fedora (!)
Voraussetzung : VirtualBox und Fedora heruntergeladen
- VirtualBox installieren & starten
- Unter Datei / Appliance importieren : Info1_2015_Fedora64bit.ova öffnen
- Importieren
- Starten (grüner Pfeil)
- Benutzer : info1, Passwort : info1
KEINE UPDATES DURCHFÜHREN !!
Aufgabe 1 : Olat und Forum
Aufgabe 2 : Linux Terminal
siehe Beiblatt 2
Linux

Software
▲
Betriebssystem (OS)
▼
Hardware
Linux Kernel
- Linus Torvalds, 5. Oktober 1991
- Kernel
- Computer Programm
- Fundament des OS
-
free and open source software
- GNU General Public License
- Format : Linux distributions
- Debian
- Ubuntu
- Linux Mint
- Fedora
- Arch Linux
Fedora

Erfolgsgeschichte
Konsole / Terminal
- direkter Zugang zum Kernel
- Input / Output
- Befehle : siehe Beiblatt 2
Befehle
$ ls // zeigt an was das aktuelle Verzeichnis beinhaltet
$ mkdir Info1 // erstellt ein Verzeichnis unter dem Namen "Info1"
$ cd Info1 // navigiert in das Verzeichnis "Info1"
$ cd .. // navigiert ein Verzeichnis nach oben
$ mv Downloads/HelloWorld.zip Info1/HelloWorld /* verschiebt die zip-Datei nach "HelloWorld" */
$ unzip HelloWorld.zip // entpackt die zip-Datei
$ rm HelloWorld.zip // Datei löschen
Aufgabe 3 : Kompilieren
Compiler
Programmiersprache ► Assemblersprache ► Maschinensprache


Debugger
- verarbeitet Befehle Schritt für Schritt
- findet und zeigt Fehler im Programm an
Befehle
$ gedit main.cpp // öffnet die Datei im Texteditor
$ g++ -c main.cpp // übersetzt die Datei in Maschinensprache (kompilieren)
$ g++ -S main.cpp // generiert die Assembler-Datei (kompiliert nicht)
$ g++ -o HelloWorld main.o // einzelne, ausführbare Datei erstellen
$ ./HelloWorld // Datei ausführen
$ gdb HelloWorld // Datei debuggen
$ disas main // zeigt Maschinencode und Assembly der Funktion "main" an
Aufgabe 4 : Hello World !
PrtSc-Taste
print screen : Bildschirmfoto
-
ohne PrtSc : System Settings / Keyboard / Short Cuts / Screenshots
- Take a screenshot of a window ► neue Tastenkombination
-
Speicherort : Files / Pictures
- main : Funktion mit Rückgabewert int ("Integer")
- return 0 : Rückgabewert der Funktion ist 0
- argc, argv : Parameter der Funktion
- argc : Typ int ("Integer")
- argv : Typ char ("Character")
- zwischen {...} : Definition der Funktion
- cout : gibt Text auf die Konsole aus
- endl : springt in neue Zeile
argc, argv
- argv : "argument vector" : beinhaltet die übergebenen Argumente
- argv[0] : 1. Argument : immer der Pfad zum Programm
- argv[1] : 2. Argument
- etc... (beliebig viele)
- argc : "argument count" : beinhaltet Anzahl der Argumente in argv
Beispiel
./HelloWorld ETH Zurich
- argv : [home/Info1/...; ETH; Zurich]
- argc : 3
Ausgabe :
Hello World!
Übung 1 : Linux, Terminal & Kompilieren
By Daniel Hentzen
Übung 1 : Linux, Terminal & Kompilieren
- 1,659