Tafelübung zu BSRvS 1 0. Erste Schritte

Ähnliche Dokumente
Tafelübung zu BSRvS 1 0. Erste Schritte

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

Tafelübung zu BS 0. Erste Schritte

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

Betriebssysteme. Tafelübung 0. Erste Schritte. Horst Schirmeier.

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

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

UNIX Die wichtigsten Befehle

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

Linux eine Einführung

Vorsemesterkurs Informatik

Das CIP der Mathematik

Unix/Linux Grundlagen für Einsteiger

C-Programme erstellen und ausführen

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

Einführung in das Arbeiten an Unix-Rechnern

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

Basiskonzepte des Rechnerbetriebs

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

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

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

Tafelübung zu BSRvS 1 2. Prozesssynchronisation

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

Das CIP der Mathematik

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

Arbeiten mit der Shell Teil 2

Computergrundlagen Einführung in UNIX 1

Einführung in die Kommandozeile

Computer & GNU/Linux Einführung Teil 4

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

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Abgegebene Aufgaben. Inhalt. Abgaben

Tafelübung zu BSRvS 1 1. Prozesse, at

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Tafelübung zu BSRvS 1 3. Kreuzung

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

Fallbeispiel Unix. Betriebssysteme. Hermann Härtig TU Dresden

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

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

GNU/Linux für Neulinge

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

Anhang III: Arbeiten am CIP Pool in C++

Einführung in Linux Ein Untertitel

Programmierkurs. Steffen Müthing. October 15, Interdisciplinary Center for Scientific Computing, Heidelberg University

Fallbeispiel Unix. Betriebssysteme. Hermann Härtig TU Dresden

Einführung in die Kommandozeile

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Peter Wägemann, Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 7

Dateisystem 2, RegEx, Manpages

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

Wichtige Shell-Kommandos (LINUX)

Wichtige Shell-Kommandos (LINUX)

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

Einführung Unix Shell

Linux. Aufgabe: cworld Übung 7 Anhang. Als die Computer noch größer waren: Linux Terminal Arbeiten unter Linux Arbeitsumgebung Manual Pages

Vorlesung Unix-Praktikum

Arbeiten in der Unix-Kommandozeile

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

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

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

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

Betriebssysteme (BS) Einführung. Olaf Spinczyk.

Terminal & Shell-Skripte

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

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

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

Unix-Grundkurs 1. Thema heute: Shell-Skripten

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

SCI Linux Einführung

Linux-Einführung Übung

Vorlesung Unix-Praktikum

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

Computergrundlagen Einführung in UNIX 1

Tafelübung zu BS 1. Prozesse, Shell

Der Standard-Editor vi

Arbeiten in der Unix-Kommandozeile

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

Linux-Befehlsreferenz

Übung 2 - Betriebssysteme I

Übungen zu Systemprogrammierung 1

Computer & GNU/Linux Einführung Teil 2

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

Inhaltsverzeich nis Ober den Autor...

Computer & GNU/Linux Einführung Teil 2. Simon Haller iis.uibk.ac.at

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 1

Transkript:

Tafelübung zu BSRvS 1 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/ss2009/bsrvs1/ 1 Agenda Organisatorisches Fortsetzung Grundlagen C-Programmierung UNIX-Benutzerumgebung Terminal, Shell UNIX-Kommandos GNU Compiler Collection (gcc) Aufgabe 0: Erste Schritte in C BSRvS 1: 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! (Mo. 14-16 Uhr, Do. 10-12 Uhr; GB 4 R. 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 BSRvS 1: U0 Erste Schritte 3 Grundlagen C-Programmierung Foliensatz C-Einführung BSRvS 1: U0 Erste Schritte 4

UNIX-Benutzerumgebung Umgebung, Terminal, Shell UNIX-Kommandos GNU Compiler Collection (gcc) BSRvS 1: 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 BSRvS 1: 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> BSRvS 1: 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) BSRvS 1: 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 BSRvS 1: U0 Erste Schritte 9 UNIX-Kommandos man-pages Dateisystem Benutzer Prozesse diverse Werkzeuge Texteditoren BSRvS 1: 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 BSRvS 1: U0 Erste Schritte 11 Dateisystem ls chmod cp mv ln ln -s rm mkdir rmdir Verzeichnis auflisten; wichtige Optionen: -l langes Ausgabeformat -a auch mit. beginnende Dateien werden gelistet 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!) BSRvS 1: U0 Erste Schritte 12

Benutzer id, groups eigene Benutzer-ID, Gruppenzugehörigkeit who am Rechner angemeldete Benutzer BSRvS 1: U0 Erste Schritte 13 Prozesse ps Prozessliste ausgeben -u x Prozesse des Benutzers x -ef alle Prozesse (-e), ausführliches Format (-f) top -o cpu Prozessliste, sortiert nach aktueller Aktivität kill <pid> Prozess abschießen (Prozess kann aber dennoch geordnet terminieren oder sogar ignorieren) kill -9 <pid> Prozess gnadenlos abschießen (Prozess kann nicht mehr hinter sich aufräumen oder ignorieren) BSRvS 1: 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 BSRvS 1: 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,...) BSRvS 1: 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 square square.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! BSRvS 1: U0 Erste Schritte 17 Aufgabe 0: Erste Schritte in C Beispiel: Zahl quadrieren /* square.c */ #include <stdio.h> compilieren/linken: int square(int x) { return x * x; } int main() { printf( %d\n, squar(5)); return 0; } hsc@uran:~/bsrvs1/a0$ gcc Wall o square square.c square.c: In function main : square.c:8: warning: implicit declaration of function squar /tmp/ccmrodqm.o: In function `main': square.c:(.text+0x25): undefined reference to `squar' collect2: ld returned 1 exit status hsc@uran:~/bsrvs1/a0$ Da haben wir uns wohl vertippt... BSRvS 1: U0 Erste Schritte 18

Aufgabe 0: Erste Schritte in C Beispiel: Zahl quadrieren compilieren/linken: ausführen: /* square.c */ #include <stdio.h> int square(int x) { return x * x; } int main() { printf( %d\n, square(5)); return 0; } hsc@uran:~/bsrvs1/a0$ gcc Wall o square square.c hsc@uran:~/bsrvs1/a0$ ls square square.c hsc@uran:~/bsrvs1/a0$./square 25 hsc@uran:~/bsrvs1/a0$ BSRvS 1: U0 Erste Schritte 19 Aufgabe 0: Erste Schritte in C mit UNIX-Umgebung experimentieren in der Rechnerübung, in der Linux-VM von der BSRvS1-Website, oder in einer eigenen Linux-Installation Summe der Quadratzahlen von 1 bis n (1 2 +2 2 +3 2 +4 2 +...) 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; } BSRvS 1: U0 Erste Schritte 20