Linux
Alle Studiengänge
Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm
Hochschule Harz
FB Automatisierung und Informatik
mwilhelm@hs-harz.de
http://www.miwilhelm.de
Raum 2.202
Tel. 03943 / 659 338
Inhalt
1. Einführung, Literatur, Begriffe
2. Installation
3. Konsolen-Befehle, Shell, Manual
4. Komplexe Befehle (grep, find, tar, sed, cron, netcat) 5. C-Programmierung (C, IO, Thread, make)
6. Python (Sprache)
7. Python (GUI)
Alexander Mayer, Shell-Programmierung in Unix;
Computer & Literatur, ISBN 3-932311-78-7
Linux: Das umfassende Handbuch, 2015, Michael Kofler, 1435 Seiten, ISBN-10: 383623775X
Linux-Kommandoreferenz: Shell-Befehle von A bis Z, Michael Kofler, ISBN-10: 3836225956
Linux-Server: Das umfassende Handbuch, Dirk Deimeke, Charly Kühnast, ISBN-10: 3836230208
Shell-Programmierung: Das umfassende Handbuch, Jürgen Wolf, Stefan Kania, ISBN-10: 3836223104
Literatur
LINUX – DAS UMFASSENDE HANDBUCH, 2015 14. Auflage ISBN: 978-3-8362-3775-8
Linux verstehen und anwenden, Kai Petzke ISBN 3-446-21166-7
Bash Programmierung , Christian Graiger ISBN 978-3-939084-30-3
Literatur
Historische Entwicklung
Schichtenmodell von UNIX
Logisches Dateisystem
Physisches Dateisystem
Gerätedateien
Die UNIX-Kommandos als Filter
Das Betriebssystem UNIX
Historische Entwicklung
Bis 1969 wurden die EDV-Systeme im Batch-Betrieb gefahren
Programm mit Lochkarten entwickeln
Abgabe
Programm durch den Operator
Ausdruck
Das Betriebssystem UNIX
Ziel der Entwicklung:
Multiuser System
Multitask System
Entwicklung im Team und im Dialog
Workstation vs. Großrechner
hohe Funktionalität
strukturelle Einfachheit / Transparenz
leichte Bedienbarkeit
Unix ist von Programmierern für Programmierer
1969 von Ken Tompson bei Bell Laboratories für die interaktive Programmentwicklung entwickelt worden (Assembler PDP 7).
Tompson entwickelt die Sprache B, Dennis Ritchie entwickelt C;
1971 wurde UNIX in C auf eine PDP 11 portiert
Bis Ende der 70er Verbreitung durch akademische Institutionen mit Quellcode. Versionen nach Berkely oder AT&T wurden 1991 zu einer Version zusammengeführt: System V, Release 4 (SVR4)
aber: XENIX (Microsoft), SINIX, HP/UX, AIX, SCO Unix, Minix habe eigene Bedeutung. Neueste Entwicklung ist LINUX.
ca. 400 Programme gehören zum Umfang von UNIX
Kein Entwicklungsauftrag
Vertrieb an Hochschulen
Kern des Unix-Systems ca. 20,000 Zeilen, Ubuntu heute 14 Mill.
Davon 2000 Zeilen Assembler
Geschichte:
Schichtenmodell von Unix:
Shell als
Kommandointerpreter
Programmiersprache
Zugriffe zwischen den
Schichten über Schnitt-
stellen
Unixbegriffe
Daemon: Disk and Execution Monitor
Root: Unix Systemadministrator
Shell: Programm zur Entgegennahme von Befehlen
Pipes Datentransfer zwischen Prozessen (FIFO)
Konsole: Fenster mit Texteingabe
tar / gz: Komprimierungsdatei
vi / Emacs, pico, nano, sed: Unix-Editoren
X-Windows, KDE, Gnome: Linux-Oberflächen
ubunto, kubuntu, Knoppix : Linux-Derivate
Mint: Linux-Derivate
Debian, Suse, Red Hat: Linux-Derivate
Yellow Dog: Linux-Derivate
Konsole vs. Shells
Kommandos werden in einem Konsolenfenster eingegeben
Die Kommandos werden dann von einer Shell ausgewertet
Einige Kommandos in den Shells implementiert.
−
Diese Kommandos heißen auch interne Shellbefehle.
−
Der Grund ist bessere Performance.
Unix-Linux-Stammbaum:
Linux-Stammbaum: besser http://www.levenez.com/unix/unix.pdf
Quelle: http://www.fixmbr.de/der-linux-stammbaum/
Linux-Aufbau
Linux besteht im Kern nur aus den Betriebskomponenten
Die Shells, Bash, k, c-Shell, gehören nicht zum BS
Auch die Oberflächen gehören nicht zum BS
Die Oberflächen können auch zur Laufzeit gewechselt werden.
Die Linuxderivate haben unterschiedliche Laufzeiten
−
Normale Version ca. 6 Monate bis 1 Jahr
−
LongTerm Support (LTS)
−
Red Hat bis zu 10 Jahre
−
Ubuntu ca. 5 Jahre
Linux-Derivate: Oberflächen
Gnome: Debian, Fedora und allen Enterprise.Distr.
Unity für Ubuntu, Ableger von Gnome, aktueller Standard
KDE viele Optionsmöglichkeiten, unübersichtlich
Xfce für leistungsschwache Rechner
LXDE für leistungsschwache Rechner
Fluxbox
Pantheon Für Elementary OS, Bildet OS X nach
Bodhi Linux Ubuntu mit Enlightenment E17, sparsam,
effektvoll
■
Ubuntu mit GNOME als grafische Oberfläche oder als Server-Variante ohne grafische Oberfläche
■
Kubuntu - mit KDE als Desktopumgebung
■
Xubuntu - mit dem schlanken Xfce als grafischer Oberfläche - besonders für ältere Rechner geeignet.
■
Edubuntu - eine speziell angepasste Version für Schulen, mehr im Artikel Edubuntu.
■
Ubuntu Studio - Optimierte Ubuntu-Version für Multimedia-
Ubuntu-Versionen
■
Gobuntu - Sämtliche Komponenten dieser Version von
Ubuntu stehen unter freien Lizenzen. Dies bedeutet jedoch auch, dass Hardware, die propritäre Treiber oder Firmware benötigt nicht funktionieren wird.
■
Ubuntu Server - Speziell für Server optimiert. Es wird keine graphische Oberfläche installiert. Serverdienste können bei der Installation ausgewählt werden.
■
Ubuntu JeOs - Spezielle Version um Ubuntu als virtuelle
Appliance in einer virtuellen Maschine zu betreiben. Weitere Informationen findet man in den Release Notes von JeOs.
Ubuntu-Versionen 3
■
Mint
−
KDE Oberfläche
−
Xfce Oberfläche
−
Chinnamon Oberfläche Mutlimedia Programme
−
Mate
■
Elementary OS – kanadische Linux-Distribution auf Basis von Ubuntu,à la OS X
Ubuntu-Versionen
Linux-Derivate:
CentOS
−
(Community Enterprise OS, Basis Red Hat)
Damn Small Linux
−
basiert auf Debian
Debian
−
Stabil, aber “veraltete” Treiber
Sabayon Linux (Gentoo)
−
Update werden auf dem Rechner compiliert, (Portage)
−
Media-Center XBMC, (Core, Xfce, LXDE, Enlightnement)
Linux-Derivate:
Red Hat Enterprise
−
Servervariante stark, Desktop für Entwickler, nicht kostenlos
Fedora
−
Aus Red Hat, nur freie Programme
−
Gnome, KDE, LXDE, Xfce
−
Nicht unbedingt für Laien
Gentoo
−
Zielgruppe Entwickler und Netzwerkspezialisten
Arch
Linux-Derivate:
Open Suse
−
Benutzerfreundlichkeit, YAST (Yet another Setup Tool)
−
Anwenderfreundlich
Puppy Linux
−
Sehr schnell und klein
Ultimate Linux Gamer
−
Vorinstalliertes PlayOnLInux (Wine), auch Live-CD
GParted
−
Live-Linux
Knoppix
−
Live-Linux
Linux-Derivate:
Ubuntu
Oberfläche GNOME
Oberfläche KDE
Logisches Dateisystem
Das Dateisystem unter Linux besitzt einen baumähnlichen Aufbau 5 Komponenten:
Normale Dateien: entspricht den üblichen Dateien
Gerätedateien: Verweise zu E/A-Geräten
Verzeichnisse: speichert Dateien und Verzeichnisse
Benannte Pipes Datentransfer zwischen Prozessen (FIFO)
Symbolische Links: Mehrere Verweise auf eine phys. Datei
Wurzel des Dateibaumes ist das „Root“ (/)
Jeder Namen besteht aus 14 bzw. 255 Zeichen
Unterscheidung zwischen Groß- und Kleinschreibung
Es gibt nur einen Dateibaum
Es gibt keine Laufwerke
Festplatten sind in /dev eingetragen und werden mit dem mount-Befehl im Verzeichnis /mnt oder /media eingetragen
Dateibaum
Mount eines USB-Sticks mittels Namens:
■
Anlegen des USB-Verzeichnisses, mkdir /mnt/usb1
■
mount -t vfat /mnt/usb1 -L BUFF_E BUFF_E=Name
unmount mittels Verzeichnis:
Verzeichnisbaum
root oberstes Verzeichnis
bin Standardbefehle, /usr/bin, Bibliotheken sbin Systembefehle, Admin, Bibliotheken
usr User (veraltet), beinhaltet weitere Kommandos etc Verwaltungsdateien
home Nutzer
var Spool Verzeichnis, Unix-Derivat, variable Dateien opt KDE Bereich
prog Aktuelle Session boot Systemstart Infos
dev Treiber für Laufwerke, Grafik, SCSI, Geräte temp temporäre Dateien
lib Bibliotheken
mnt Zugriff auf die Geräte
Verzeichnisse:
www.cygwin.com
cygwin:
cygwin:
cygwin:
cygwin:
cygwin:
cygwin:
cygwin:
Editoren
•
ed
•
fzf-vim
•
gvim
•
hexedit
•
joe
•
nano
•
vom
Shells
•
bash
•
zsh
•
fzf-bash
•
mksh Kornshell
System
•