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

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

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

Vorsemesterkurs Informatik

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

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

Unix/Linux Grundlagen für Einsteiger

Grundlagen der Programmierung

Einführung in die Kommandozeile

Basiskonzepte des Rechnerbetriebs

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

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.

Linux-Befehlsreferenz

Einführung in das Arbeiten an Unix-Rechnern

Einführung Unix Shell

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

GNU/Linux für Neulinge

Grundlegende Kommandos unter UNIX / LINUX

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

Computer & GNU/Linux Einführung Teil 4

SCI Linux Einführung

Einführung in die Kommandozeile

Übung: Entwickeln eines Shell-Skripts

Linux-Einführung WS 2010/2011

Terminal & Shell-Skripte

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

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

Computer Algebra Plan der Vorlesung. erstes Drittel: linux, emacs, L A TEX zweites Drittel: Sage als Taschenrechner letztes Drittel: Python für Sage

Praktikum RO1 Einführung Linux / Ubuntu / Bash

1 Linux-Befehlsübersicht

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim

Dateisystem 2, RegEx, Manpages

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

Computergrundlagen Einführung in UNIX 1

L A TEX, Linux, Python

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

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

Einführung in die Angewandte Bioinformatik

Linux-Einführung Übung

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

LINUX Gesamtmitschrift

Übung 4: Schreiben eines Shell-Skripts

Anhang III: Arbeiten am CIP Pool in C++

Strukturiertes Programmieren

Kommandos im Unix-Grundkurs Digicomp-UXE. Inhalt

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

Kommandozeilen effizient nutzen und verstehen

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

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

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

Linux Kurs Vorlesung 2 - Terminal

Computer & GNU/Linux Einführung Teil 3

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

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

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

Wichtige UNIX Kommandos

Arbeiten mit der Shell Teil 2

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

Übungen zu Algorithmen

Exkurs: Unix Programme

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

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

Informatik I - Einstiegskurs

CoMa WS 10/11. Homepage: Forum:

Der UNIX-Werkzeugkasten Programmieren mit UNIX

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Einleitung 1. Entwicklung von Unix 11. Bedienung von Linux 19

Lösungen zum UNIX/LINUX- Kompakt-Kurs

Das CIP der Mathematik

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

Vorbereitungskurs Informatik - Tag 1

Pooleinführung. Dieses Dokument soll euch den Einstieg in den Unixpool erleichtern. Wir behandeln hier folgende Fragen:

Vorlesung Unix-Praktikum

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

Übungen zu Systemprogrammierung 1 (SP1)

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme

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

Einführung in das wissenschaftliche Rechnen

Dateisystem 1, Suchen & Finden

2. Prozesssynchronisation

2.Übung Systemsoftware (SYS) Hochschule Mannheim

Ein- und Ausgabeumlenkung

105.1 Shell, Scripting

Benutzung der Manpage, Shell Teil 3

Einführung ins Praktikum Wissenschaftliches Rechnen I

Shell-Skript-Programmierung

Übung 1: Wichtige Kommandos unter Linux

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10

Einführung Wissenschaftliches Rechnen. René Lamour. Sommersemester 2015

Arbeiten mit der Shell in Linux

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Tafelübung zu BS 1. Prozesse verwalten

SelfLinux Dateien unter Linux

Konzept der CoMa HEUTE. Studieren an der Uni was bedeutet das? das Konzept der CoMa. der Rechner-Pool

Arbeiten mit der Shell Teil 1

Transkript:

Betriebssysteme Tafelübung 0. Erste Schritte http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12, TU Dortmund Agenda Organisatorisches Grundlagen C-Programmierung UNIX-Benutzerumgebung Terminal, Shell UNIX-Kommandos GNU Compiler Collection (gcc) Aufgabe 0: Erste Schritte in C 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 Hilfestellung: betreute Rechnerübung! INPUD-Forum (http://inpud.cs.tu-dortmund.de/) Abgabe abhängig von Woche der Übung über ASSESS: Kalenderwochen 16,18,20,...: Donnerstag 10:00 bevor nächstes Blatt erscheint Kalenderwochen 17,19,21,..: Dienstag 10:00 nachdem das nächste Blatt erschienen ist 3 Organisatorisches: Übungsaufgaben Aufgabenblätter auf der Veranstaltungswebsite https://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/downloads/index.html Übungsvorbesprechungsfolien ebenfalls unter dieser URL Musterlösungen werden NUR in der Übung präsentiert! notwendig für erfolgreiche Übungsteilnahme (Studienleistung): mindestens 50% der Punkte in jedem Aufgabenblatt (A0 inklusive!) Bestehen der Studienleistung ist Voraussetzung für die Klausurzulassung! 4

Grundlagen C-Programmierung Foliensatz C-Einführung ( bis Folie 23 ) 5 UNIX-Benutzerumgebung Umgebung, Terminal, Shell UNIX-Kommandos GNU Compiler Collection (gcc) 6

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) 7 Terminal-Sonderzeichen (1) 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 8

Terminal-Sonderzeichen (2) Übersicht: <Backspace> letztes Zeichen löschen <Ctrl>-U alle Zeichen der Zeile löschen <Ctrl>-C Interrupt Programm abbrechen <Ctrl>-Z Stop Programm wird angehalten <Ctrl>-D End Of File <Ctrl>-S / <Ctrl>-Q Bildschirmausgabe anhalten/fortsetzen auf deutschen Tastaturen: <Strg> statt <Ctrl> 9 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) 10

Aufbau eines UNIX-Kommandos UNIX-Kommandos bestehen aus... 1. 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 11 Aufbau eines UNIX-Kommandos UNIX-Kommandos bestehen aus... 2. 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 12

UNIX-Kommandos man-pages Dateisystem Benutzer Prozesse diverse Werkzeuge Texteditoren 13 man-pages aufgeteilt in verschiedene Sections (mehr infos: man man) (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 14

Dateisystem ls -l langes Ausgabeformat Verzeichnis auflisten; wichtige Optionen: -a auch mit. beginnende Dateien werden gelistet pwd Aktuelles Verzeichnis ausgeben chmod Zugriffsrechte einer Datei ändern cp Datei(en) kopieren mv Datei(en) verlagern (oder umbenennen) ln Datei linken (weiteren Verweis auf dieselbe Datei erzeugen) ln s symbolischen Link erzeugen rm Datei(en) löschen mkdir rmdir Verzeichnis erzeugen Verzeichnis löschen (muss leer sein!) 15 Benutzer id, groups who eigene Benutzer-ID, Gruppenzugehörigkeit am Rechner angemeldete Benutzer 16

Prozesse ps Prozessliste ausgeben -u x Prozesse des Benutzers x -ef top -o cpu alle Prozesse (-e), ausführliches Format (-f) 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) 17 SIGTERM vs. SIGKILL Quelle: Daniel Stori (http://turnoff.us/geek/dont-sigkill/) CC BY-NC-ND 4.0 18

SIGTERM vs. SIGKILL Quelle: Daniel Stori (http://turnoff.us/geek/dont-sigkill/) CC BY-NC-ND 4.0 19 SIGTERM vs. SIGKILL Quelle: Daniel Stori (http://turnoff.us/geek/dont-sigkill/) CC BY-NC-ND 4.0 20

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 21 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, geany, Eclipse,... zum Programmieren nicht geeignet: Office-Programme (MS Word, OpenOffice Writer,...) 22

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, ARM, IA-64...) C-Compiler: gcc Compilieren und Linken eines C-Programms: Wall alle Warnungen ausgeben o <Ziel> Name für ausführbare Datei weitere nützliche Parameter (siehe man-page): Werror, ansi, Wpedantic, D_POSIX_SOURCE Warnungen sind grundsätzlich ernstzunehmen und zu beseitigen, daher möglichst immer mit Werror übersetzen! 23 GNU Compiler Collection mit UNIX-Umgebung experimentieren in der Rechnerübung, in der Linux-VM von der BS-Website, oder in einer eigenen Linux-Installation 24

Aufgabe 0: Erste Schritte in C Programm: /* 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 <= 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... 25 Aufgabe 0: Erste Schritte in C Programm: /* 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 <= n) res += i++; return res; } int main() { printf( %d\n, sum_n(5)); return 0; } compilieren/linken: hsc@uran:~/bs/a0$ gcc -Wall -o sum_n sum_n.c hsc@uran:~/bs/a0$ ls sum_n sum_n.c ausführen: hsc@uran:~/bs/a0$./sum_n 15 hsc@uran:~/bs/a0$ 26

Speicheradressen von Variablen ausgeben Möglich durch den Adressoperator & printf() Formatzeichen ist %p #include <stdio.h> int main(void) { int x; printf( Die Variable x ist an Adresse %p.\n, (void *)&x); return 0; } 27