Tafelübung zu BS 0. Erste Schritte

Ähnliche Dokumente
0. Erste Schritte. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Tafelübung zu BSRvS 1 0. Erste Schritte

Betriebssysteme. Tafelübung 0. Erste Schritte. Olaf Spinczyk. Agenda.

Betriebssysteme. Tafelübung 0. Erste Schritte. Olaf Spinczyk. Agenda.

Tafelübung zu BS 0. Erste Schritte

Übungen zu Systemprogrammierung I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2003 C-Uebung1.fm

D.2 Sonderzeichen (2)

UNIX-Benutzerumgebung und Shell. die Zuordnung der Zeichen zu den Sonderfunktionen kann durch ein UNIX-Kommando (stty(1)) verändert werden

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

UNIX Die wichtigsten Befehle

Vorsemesterkurs Informatik

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

Unix/Linux Grundlagen für Einsteiger

Das CIP der Mathematik

Betriebssysteme UNIX/Linux Übungsthema 1 Einführung in UNIX/Linux. Dirk Wenzel Dr. Jörg Gruner

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

Grundlagen der Programmierung

C-Programme erstellen und ausführen

UNIX/Linux-Minikurs. Ralf Seidler, Daniel Walther, Torsten Bosse. Institut für Informatik Friedrich-Schiller-Universität Jena

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

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

Basiskonzepte des Rechnerbetriebs

Einführung in die Kommandozeile

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

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

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.

Einführung in das Arbeiten an Unix-Rechnern

Linux-Befehlsreferenz

Computernutzung für Experimentalphysiker Frei progammierbare Rechner als Werkzeuge in der Experimentalphysik Teil 2

Computer & GNU/Linux Einführung Teil 4

Einführung Unix Shell

Tafelübung zu BSRvS 1 2. Prozesssynchronisation

Computergrundlagen Einführung in UNIX 1

GNU/Linux für Neulinge

Einführung in die Kommandozeile

SCI Linux Einführung

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

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

Terminal & Shell-Skripte

Fallbeispiel Unix. Betriebssysteme. Hermann Härtig TU Dresden

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

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

Vorlesung Unix-Praktikum

Arbeiten in der Unix-Kommandozeile

Linux I II III Res/Pro WN/TT Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

Basiskonzepte des Rechnerbetriebs. 6 Die Shell: Der UNIX-Kommandointerpreter

Linux I II III Res WN/TT NLTK XML Weka E Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

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

Informatik für Schüler, Foliensatz 1 Einführung bis...

Anhang III: Arbeiten am CIP Pool in C++

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP

Linux-Einführung WS 2010/2011

Vorkurs Informatik WS 2007/2008 Einführung in die Unix-Systemumgebung

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Computergrundlagen Einführung in UNIX 1

Dateisystem 2, RegEx, Manpages

Arbeiten in der Unix-Kommandozeile

Okt 02, 17 12:28 UNIX/Linux Lösung

LINUX Gesamtmitschrift

Der Standard-Editor vi

1 Linux-Befehlsübersicht

Linux-Einführung Übung

ÜBUNG Regeln für die Hausaufgaben. Was gibt es im UNIX-Pool zu beachten? Der erste Besuch im UNIX-Pool

Arbeiten mit der Shell Teil 1

Patrick Ditchen 4. Auflage. Shell-Skript Programmierung. Inklusive CD-ROM

Infrastruktur. INE1-Praktikum 1. Einführung. Augabe 1: Programme starten und konfigurieren. INE1 Informatik für Ingenieure 1

Kommandos im Unix-Grundkurs Digicomp-UXE. Inhalt

Übung: Entwickeln eines Shell-Skripts

Einführung in die Angewandte Bioinformatik

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)

L A TEX, Linux, Python

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

Einführung in die Programmierung WS 2014/15. Übungsblatt 0: Einführung

Kommandozeilen effizient nutzen und verstehen

Arbeiten mit der Shell Teil 1

Kurzanleitung zum Editor vi

UNIX Grundlagen. Sascha Frank SS August 2006 UNIX I. Sascha Frank. Einführung. Basic Befehle. Quellen

Strukturiertes Programmieren

Übung 4: Schreiben eines Shell-Skripts

Literatur. Einführung in Unix. Login. Passwort. Mag. Thomas Griesmayer. Benutzererkennung und Passwort Case-Sensitiv Prompt

Computer & GNU/Linux Einführung Teil 2

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

Arbeiten mit der Shell Teil 2

Debian GNU/Linux. Unix Grundlagen und Betrieb. Christian T. Steigies

Befehl Beispiel Beschreibung An- und Abmelden: es geht aber auch einfach: reboot. es geht aber auch einfach. halt. Strg + l (kleines L) mkdir --help

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim

Arbeiten mit der Shell Teil 2

Grundlegende Kommandos unter UNIX / LINUX

Arbeiten mit der Shell Teil 1

Prof. Dr. Heinrich Müller. Informatik VII Universität Dortmund. Organisatorisches zum Vorkurs Informatik

Übungsblatt 1: Zur Benutzung von Computern im CIP-Pool der Informatik

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

Computer & GNU/Linux Einführung Teil 3

Vorbereitungskurs Informatik - Tag 1

Der UNIX-Werkzeugkasten Programmieren mit UNIX

Dateisystem. Heimo Schön 4/2002 Seite 1/31

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

Inhalt Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Terminal - historisches (etwas vereinfacht) Seriell. Computer. Netzwerk DFÜ.

Übungen zu Systemprogrammierung 1 (SP1)

Transkript:

Tafelübung zu BS 0. Erste Schritte Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/ 1

Agenda Organisatorisches Fortsetzung Grundlagen C-Programmierung UNIX-Benutzerumgebung Terminal, Shell UNIX-Kommandos GNU Compiler Collection (gcc) Aufgabe 0: Erste Schritte in C BS: U0 Erste Schritte 2

Organisatorisches: Übungsaufgaben Theoriefragen und praktische Programmieraufgaben Vorstellung der neuen Aufgaben in der Tafelübung Bearbeitung in Dreiergruppen Gruppenmitglieder sollten in derselben TÜ angemeldet sein Lösungen werden komplett bewertet und die Punkte gleichermaßen an die Mitglieder verteilt Hilfestellung: - betreute Rechnerübung! (Do. 10:00-12:00, Fr. 12:00-14:00, GB4, 006) - INPUD-Forum (http://inpudforum.cs.uni-dortmund.de) Abgabe Di. 08:00 in der Woche nach der Tafelübung (eine Woche Bearbeitungszeit) über ASSESS Aufgabenblätter auf der Veranstaltungswebsite notwendig für erfolgreiche Übungsteilnahme: mindestens 50% der Punkte in jeder Aufgabe BS: U0 Erste Schritte 3

Grundlagen C-Programmierung Foliensatz C-Einführung BS: U0 Erste Schritte 4

UNIX-Benutzerumgebung Umgebung, Terminal, Shell UNIX-Kommandos GNU Compiler Collection (gcc) BS: U0 Erste Schritte 5

Benutzerumgebung, Terminal diese Punkte machen (u.a.) einen UNIX-Account aus: Benutzername Identifikation (User-ID und Group-IDs) Home-Directory eingestellte Login-Shell Terminal Kommandozeile früher: dedizierte Endgeräte zur Kommunikation mit Zentralrechner heute: Terminalemulation (z.b. xterm, Konsole, gnome-terminal) Quelle: http://de.wikipedia.org/w/index.php?title=datei:televideo925terminal.jpg&filetimestamp=20060103074352 BS: U0 Erste Schritte 6

Terminal-Sonderzeichen einige Zeichen haben unter UNIX besondere Bedeutung Funktionen: u.a. Korrektur von Tippfehlern Steuerung der Bildschirm-Ausgaben Einwirkung auf den Ablauf von Programmen Zuordnung Zeichen Funktion leider nicht einheitlich kann mit einem Kommando (stty(1)) verändert werden Übersicht: <Backspace> <Ctrl>-U <Ctrl>-C <Ctrl>-Z <Ctrl>-D <Ctrl>-S / <Ctrl>-Q letztes Zeichen löschen alle Zeichen der Zeile löschen Interrupt Programm abbrechen Stop Programm wird angehalten End Of File Bildschirmausgabe anhalten/fortsetzen auf deutschen Tastaturen: <Strg> statt <Ctrl> BS: U0 Erste Schritte 7

UNIX-Kommandointerpreter: Shell meist stehen verschiedene Shells zur Verfügung: sh, ksh, csh, tcsh, bash, zsh... auf GNU-Systemen gebräuchlich: bash beim Öffnen eines Terminals startet die ausgewählte Login-Shell Wechsel der Login-Shell: chsh(1) BS: U0 Erste Schritte 8

Aufbau eines UNIX-Kommandos UNIX-Kommandos bestehen aus... Kommandoname (der Name einer Datei, in der ein ausführbares Programm oder eine Kommandoprozedur für die Shell abgelegt ist) nach dem Kommando wird automatisch in allen Verzeichnissen gesucht, die in der Environment-Variable $PATH gelistet sind daher kann man normalerweise ls schreiben statt /bin/ls einer Reihe von Optionen und Argumenten Abtrennung Kommandoname/Optionen/Argumente durch Leerzeichen oder Tabulatoren Optionen sind meist einzelne Buchstaben mit einem vorangestellten - (Minuszeichen) (z.b. ls -l ) Argumente sind häufig Namen von Dateien, die von einem Kommando verarbeitet werden BS: U0 Erste Schritte 9

UNIX-Kommandos man-pages Dateisystem Benutzer Prozesse diverse Werkzeuge Texteditoren BS: U0 Erste Schritte 10

man-pages aufgeteilt in verschiedene Sections (1) Kommandos (2) Systemaufrufe (3) C-Bibliotheksfunktionen (5) Dateiformate (spezielle Datenstrukturen etc.) (7) Verschiedenes (z.b. IP, GPL, Zeichensätze,...) man-pages werden normalerweise mit der Section zitiert: printf(3) sonst teilweise mehrdeutig (printf(1) vs. printf(3))! Aufruf unter Linux: man [section] Begriff z.b. hsc@uran:~$ man 3 printf Suche nach Sections: man -f Begriff Suche nach Stichwort: man -k Stichwort mehr Informationen über man: man man BS: U0 Erste Schritte 11

Dateisystem ls pwd chmod cp mv ln ln -s rm mkdir rmdir Verzeichnis auflisten; wichtige Optionen: -l langes Ausgabeformat -a auch mit. beginnende Dateien werden gelistet Aktuelles Verzeichnis ausgeben Zugriffsrechte einer Datei ändern Datei(en) kopieren Datei(en) verlagern (oder umbenennen) Datei linken (weiteren Verweis auf dieselbe Datei erzeugen) symbolischen Link erzeugen Datei(en) löschen Verzeichnis erzeugen Verzeichnis löschen (muss leer sein!) BS: U0 Erste Schritte 12

Benutzer id, groups eigene Benutzer-ID, Gruppenzugehörigkeit who am Rechner angemeldete Benutzer BS: U0 Erste Schritte 13

Prozesse ps Prozessliste ausgeben -u x Prozesse des Benutzers x -ef top -o cpu kill <pid> kill -9 <pid> alle Prozesse (-e), ausführliches Format (-f) Prozessliste, sortiert nach aktueller Aktivität Prozess abschießen (Prozess kann aber dennoch geordnet terminieren oder sogar ignorieren) Prozess gnadenlos abschießen (Prozess kann nicht mehr hinter sich aufräumen oder ignorieren) BS: U0 Erste Schritte 14

diverse Werkzeuge cat more, less head, tail pr, lp, lpr wc grep, fgrep, egrep find sed tr awk cut sort Dateien hintereinander ausgeben Dateien bildschirmweise ausgeben Anfang/Ende einer Datei ausgeben (10 Zeilen) Datei ausdrucken Zeilen, Wörter und Zeichen zählen nach bestimmten Mustern o. Wörtern suchen Dateibaum durchlaufen Stream-Editor, z.b. zum Suchen/Ersetzen Zeichen aufeinander abbilden oder löschen Pattern-Scanner einzelne Felder aus Zeilen ausschneiden sortieren BS: U0 Erste Schritte 15

Texteditoren Geschmackssache aber einen solltet ihr beherrschen! Klassiker mit Nerdfaktor: vim, emacs (mit graphischem Frontend: xemacs, gvim) Minimalisten: pico, nano weitere mit X-Frontend: kwrite, kate, gedit, Eclipse,... zum Programmieren nicht geeignet: Office-Programme (MS Word, OpenOffice Writer,...) BS: U0 Erste Schritte 16

GNU Compiler Collection ursprünglich: GNU C Compiler mittlerweile: Sammlung von verschiedenen Compilern (u.a. C, C++, Java, Objective-C, Fortran 95,...) viele versch. Zielplattformen (x86, AMD64, Alpha, IA-64...) C-Compiler: gcc Compilieren und Linken eines C-Programms: gcc -Wall -o sum_n sum_n.c -Wall alle Warnungen ausgeben -o <Ziel> Name für ausführbare Datei weitere nützliche Parameter (siehe man-page): -Werror, -ansi, -pedantic, -D_POSIX_SOURCE Warnungen sind grundsätzlich ernstzunehmen und zu beseitigen, daher möglichst immer mit -Werror übersetzen! BS: U0 Erste Schritte 17

Aufgabe 0: Erste Schritte in C /* sum_n.c: Addiert alle Zahlen von 1 bis n */ #include <stdio.h> int sum_n(int n) { int i = 1, res = 0; while (i (i <= n) res += i++; return res; } int main() { printf( %d\n, sum_(5)); return 0; } compilieren/linken: hsc@uran:~/bs/a0$ gcc -Wall -o sum_n sum_n.c sum_n.c: In function main : sum_n.c:9: warning: implicit declaration of function sum_ /tmp/cckcnwmh.o: In function `main': sum_n.c:(.text+0x3e): undefined reference to `sum_' collect2: ld returned 1 exit status hsc@uran:~/bs/a0$ Da haben wir uns wohl vertippt... BS: U0 Erste Schritte 18

Aufgabe 0: Erste Schritte in C compilieren/linken: ausführen: /* sum_n.c: Addiert alle Zahlen von 1 bis n */ #include <stdio.h> int sum_n(int n) { int i = 1, res = 0; while (i (i <= n) res += i++; return res; } int main() { printf( %d\n, sum_n(5)); return 0; } hsc@uran:~/bs/a0$ gcc -Wall -o sum_n sum_n.c hsc@uran:~/bs/a0$ ls sum_n sum_n.c hsc@uran:~/bs/a0$./sum_n 15 hsc@uran:~/bs/a0$ BS: U0 Erste Schritte 19

Aufgabe 0: Erste Schritte in C mit UNIX-Umgebung experimentieren in der Rechnerübung, in der Linux-VM von der BS-Website, oder in einer eigenen Linux-Installation Summe der Zahlen s+(s+i)+(s+2 i)+...+(s+n i), mit (s+n i) < e Adressen von Variablen ausgeben: Adressoperator: & Format für printf(): %p #include <stdio.h> int main(void) { int x; printf( Die Variable x ist an Adresse %p.\n, (void *)&x); return 0; } BS: U0 Erste Schritte 20