Computergrundlagen Einführung in UNIX Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2013/14 Was ist ein Computer? DDR3Speicher PEG Graphikkarte(n) weitere PCIeKarten Northbridge Southbridge Prozessor USB HD-Audio SM-Bus LAN DDR3Speicher SATA Prozessor • Rechenmaschine • verarbeitet Programme: Serien von Befehlen Ein Computer tut stets genau das, was man ihm sagt ... und nicht, was man denkt, gesagt zu haben. http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 2/17 Von Neumann-Architektur (1945) memory 0 1 2 3 4 5 6 7 8 9 10 ... CPU J. von Neumann, 1903 - 1957 arithmetic logic unit accumulators input/output control unit • Grundprinzip moderner Rechnerarchitektur • random access memory (RAM) – Speicher mit wahlfreiem Zugriff • central processing unit (CPU) – sequenzielle Abarbeitung von Befehlen im RAM http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 3/17 Personal Computer DDR3Speicher PEG Graphikkarte(n) weitere PCIeKarten Northbridge Southbridge Prozessor http://www.icp.uni-stuttgart.de A. Arnold USB HD-Audio SM-Bus LAN DDR3Speicher SATA Prozessor Computergrundlagen 4/17 Betriebssysteme • Philosophie der Benutzerschnittstelle • meist nicht graphisch (DOS, UNIX, Cisco IOS) http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 5/17 Betriebssysteme Benutzer Programme (Anwendungen, Apps) Shell Bibliotheken Systemaufrufe Kernel Treiber Treiber Treiber Grafikkarte Festplatte ... • Vermittler zwischen Benutzer, Programmen und Hardware • Kontrolle von Zugriffsrechten http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 5/17 Warum UNIX/Linux? • Windows: dominiert PC-Markt • UNICES: (Linux), Mac OS X, IBM AIX, Oracle Solaris, ... • Supercomputer Top-500 von 2010 Betriebssystem Installationen GFlops Linux 455 27.162.011 other UNICES 23 1.702.295 Windows 5 412.590 17 3.257.787 andere • UNIX-Systeme dominieren wissenschaftliches Rechnen • auch auf fast allen Internet-Servern • ... und auf den Pool-Rechnern der Physik / im ICP http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 6/17 Und woher bekomme ich Linux? • es gibt nicht ein, sondern viele Linuxe — Distributionen • Live-CDs: ausprobieren ohne Installation • Dual-Boot: Installation parallel mit anderen OS • Achtung: manchmal lässt Windows keinen Platz mehr — dann löschen die Installer es nach einer Nachfrage! Distributionen • (K)Ubuntu - benutzerfreundlich, mit Gnome/Unity bzw. KDE-GUI http://www.ubuntu.com, http://www.kubuntu.org • Xubuntu: einfacher, aber auch schneller, für Netbooks http://www.xubuntu.org • OpenSuSE: sehr benutzerfreundlich, einfache Administration http://www.opensuse.org http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 7/17 Terminal und Shell • Shell in einem Terminal • Terminal: Tastatur-Eingabe und Zeichen-Ausgabe • Shell: startet und verwaltet Programme • Philosophie: eine Aufgabe — ein Programm • Komplexität durch Verknüpfen von Programmen • funktioniert genauso auch per Netzwerk http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 8/17 Grundlegende Shell-Benutzung • Cursor-Up/Down: vorherige Befehle wiederholen • Tabulator: automatische Ergänzung von Dateinamen • Zeilen sind editierbar • linke Maustaste: markieren, mittlere: einfügen • Control-a/e: Anfang/Ende der Zeile • Genaueres hängt vom Shell-Typ ab (sh, bash, csh,...) http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 9/17 Dateien • alle Daten werden in Dateien gespeichert • Dateien können in Verzeichnissen zusammengefasst werden • eine Datei wird durch Ihren Pfad identifiziert • besondere Pfade: . .. ~ ~name aktuelles Verzeichnis Übergeordnetes Elternverzeichnis eigenes Benutzerverzeichnis (Home) Benutzerverzeichnis (Home) des Benutzers name • Dateien, die mit „.“ beginnen, sind versteckt • Die Shell (und jedes andere Programm) hat ein aktuelles Arbeitsverzeichnis • Pfade, die nicht mit „ / “ oder „ ~ “ anfangen, sind relativ zum Arbeitsverzeichnis http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 10/17 Dateibaum / /dev /home /dev/sdb1 /media /media/ELC /home/axel (~) /home/axel/test /home/axel/dir /home/axel/dir/a /home/axel/dir/b /home/axel/dir/c http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 11/17 Beispiele: Pfade • ~/.local/share/Trash Ort des Mülleimers im eigenen Home-Directory, das .local-Verzeichnis ist versteckt • /home/axel/.local/Trash Dasselbe Verzeichnis, wenn das Home-Directory /home/axel ist • .local/share/Trash Auch dasselbe Verzeichnis, wenn ich im Home-Directory bin • share/Trash . oder wenn ich im Verzeichnis „~/.local“ bin http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 12/17 Grundlegende Dateisystembefehle man <program> info <program> ls <file>... cp [-r] <src>... <dst> mv <src>... <dst> rm [-r] <file>... pwd mkdir <dir>... cd <dir>... cat <file>... less <file>... Hilfe, verlassen mit q Ausführliche Hilfe Datei(en) auflisten Dateien kopieren (-r: rekursiv) Dateien verschieben/umbenennen Dateien löschen aktuelles Verzeichnis ausgeben Verzeichnis erzeugen das Arbeitsverzeichnis wechseln Textdatei auf Terminal ausgeben Textdatei seitenweise anschauen [u]mount <dev> <dir>... Ein-/aushängen von Laufwerken http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 13/17 Was ist wo? / /usr /usr/local .../bin .../lib .../include .../share /home /dev /media/... /proc Wurzel (root-) Verzeichnis, Systemsoftware Softwarepakete des Herstellers vom Admin installierte Software ausführbare Programmme Bibliotheken Header-Dateien Daten wie Icons, Sounds meist Lage der Benutzerverzeichnisse Gerätedateien (nur Linux) Temporär eingehängte Medien (CD, USB-Massenspeicher, ...) (nur Linux) Systeminformationen http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 14/17 Wildcards • • • • • Wildcards werden von der Shell aufgelöst (Pattern-Matching) Details hängen von der Shell ab (man bash!) „*“ passt auf jeden String, auch den leeren „?“ passt auf genau ein Zeichen „[a-zA-Z]“ passt genau auf die angegebenen Zeichen(bereiche) Beispiel Verzeichnis: a abcd a.txt b bc .d d d3 Pattern * *.* *b? *d* [a-z][0-9] .* Treffer a abcd a.txt b bc d d3 a.txt bc abcd d d3 d3 . .. .d http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 15/17 Texteditoren • Zum Editieren von Textdateien (Konfiguration, Quellcode, ...) • unter UNIX wird fast alles über Textdateien gesteuert • Graphisch: (x)emacs, nedit, kate, eclipse, ... Emacs • Graphisch oder nicht graphisch • mehrere Text-Puffer • komplett mit Tastatur steuerbar • Spezialmodi für Python/C/LaTeX/... • falls aus Versehen geöffnet: Control-x Control-c zum Verlassen • Alternativ: xemacs, Aquamacs http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 16/17 Editor in der Shell: vi • funktioniert in der Shell • braucht außer Escape keine Sondertasten → tut auch, wenn emacs& Co. versagen (z. B. langsames Netz)! • besser: vim (vi Improved), gvim (eigenes Fenster) Befehlsmodus (Escape) [N]dd N Zeile(n) löschen [N]yy N Zeile(n) kopieren p Zeilen einfügen h,j,k,l Cursortastenersatz Eingabemodus (i,a,o,...) • Texteingabe, mit Escape beenden Befehlsmodus (:) x speichern & beenden s/A/B A durch B ersetzen q! Beenden ohne Speichern 42 Zeile 42 anspringen http://www.icp.uni-stuttgart.de A. Arnold Computergrundlagen 17/17