Linux-Grundlagen Geschichte Distributionen Dateisystem Benutzer und Rechte Paketmanagement Prozessmanagement Konsole Gängigste Programme
Geschichte Anfang 1980er erschien erste proprietäre Software mit einschränkenden Lizenzmodellen (kommerzielles Linux) – Programme wurde nur noch als fertige Kompilate im Binärformat ausgeliefert – Modifikation und Weitergabe wurden untersagt („Copyright“)
Geschichte 1983 Gründung des GNU-Projektes von Richard Matthew Stallman später schrieb er die GNU General Public License (GPL) um freie Software im Copyright- System zu ermöglichen Anschließend schnelle Verbreitung und Entwicklung ABER: Kernel fehlt noch
Geschichte Linus Torvalds entwickelte und veröffentliche 1991 den Betriebssystem-Kern (Kernel) names 'Linux' 1992 erfolgte die Lizenzierung von 'Linux' unter der GPL somit wurde Linux der Kern für das unixartige GNUBetriebsystem
Opensource Code liegt in einer menschenlesbaren Form vor Open Source Initiative (OSI) und Free Software Foundation (FSF) etablierten diverse Lizenzen Unterschiede in der Auslegung der Begrifflichkeiten „Freie Software“ i.d.R. vergleichbar mit „Open Source Software“
Ziele des GNUProjekts Erstellung einer freien Lizenz Schaffung eines auf dieser Lizenz aufbauen- den Betriebsystems (Kern und Tools) -> GNU General Public License („GPL“) -> GPLlizenziertes, unixartiges Betriebsystem
Die GNU General Public License („GPL“) garantiert die uneingeschränkte Nutzung des Programms, auch zu kommerziellen Zwecken erlaubt die Weitergabe des Programms (auch gegen Geld), der Quellcode muss jedoch mitgegeben werden ermöglicht die Anpassung des Programms an die eigenen Bedürfnisse oder zum Zweck des Selbststudiums gestattet die Weitergabe eigener Modifikationen unter Beachtung der restlichen oberen Regeln
Distributionen Distributionen nehmen verschiedene Aufgaben war, unter anderem – durchsuchen sie das Internet nach neuen Programmen / Projekten – engagieren sie sich in der (Weiter)Entwicklung bereits existierender Softwareprojekte – bündeln sie alle diese Software regelmäßig mit einem Installationsprogramm zu einer neuen und einfach zu installierenden GNU/LinuxDistribution
Distributionen Es existieren viele verschiedene Distributionen, welche teils unterschiedliche Ziele verfolgen – Debian: Nur freie und nicht von Patentschutz behaftete Software, wird ausschließlich ohne Firma weiterentwickelt (in der Freizeit der Projektmitglieder) t.b.a.
Distributionen Ubuntu Einfach und perfekt für Anfänger von Installation an Damn Small Linux Klein & fein für alte Hardware ;)
Dateisystem Aufgabe des Dateisystems: Abstraktion von d er physischen Datenspeicherung Dateiverwaltung in hierarchischer Form („Baumstruktur“) über Dateien und Verzeichnisse Besonderheit: Unter GNU/Linux ist alles eine Datei
Dateisystem - Hierarchie $ tree -L 1 / / |-- bin |-- lib |-- selinux |-- boot |-- lost+found |-- srv |-- cdrom |-- media |-- sys |-- dev |-- mnt |-- tmp |-- etc |-- proc |-- usr |-- home |-- root `-- var |-- initrd |-- sbin
Dateisystem - Hierarchie / - Die Wurzel des Dateisystems /bin - Enthält elementare Programme /boot - Enthält den Betriebsystemkern Linux /dev - Enthält die Gerätedateien /etc - Enthält Konfigurationsdateien und Bootskripte /home - Enthält private Daten der Benutzer
Dateisystem - Hierarchie /media - Mountpoint für Wechseldatenträger /proc - Schnittstelle für (Kernel)Interna /root - private Dateien des Superusers /tmp - Temporäre Dateien /usr - Executables der installierten Progr. /var - Div. Systemdateien (z.B. LOGFiles)
Dateisystem - Pfade Pfade in einem Dateisystem führen immer zu einem bestimmten spezifischen Ziel (= einer D atei oder einem Verzeichnis) Trennung zwischen den Dateien und Verzeich nissen: Unter Windows: „\“ (ein Backslash) C:\WINDOWS\Datei.txt Unter GNU/Linux: „/“ (ein Slash) /tmp/Datei.txt
Dateisystem - Pfade „/“ (Slash, gesprochen „root“): Die Wurzel des Dateis ystems „.“ (ein einfacher Punkt): Das aktuelle Verzeichnis = das Verzeichnis, in dem man sich gerade aufhält „..“ (zwei einfache Punkte): Das Verzeichnis, das diesem Verzeichnis übergeordnet ist (näher an der Wurzel liegt) „~“ (eine Tilde): Das Heimatverzeichnis des aktuelle n Benutzers
Dateisystem - Pfade Absolute Pfade - sind unabhängig vom aktuellen Verzeichnis (funktionieren also immer) - beginnen bei der Wurzel „/“, z.B. „/etc/resolv.conf“ Relative Pfade - sind abhängig vom aktuellen Verzeichnis
Dateisystem - Besonderheiten Achtung: GNU/Linux unterscheidet (im Gegensatz zu Windows) zwischen Groß und Kleinschreibung index.html Index.html index.HTML INDEX.ht ml -> alles verschiedene, gültige Dateinamen bei Verzeichnissen gilt dies ebenso
Dateisystem - Mounten Zugriff auf Wechseldatenträger, weitere Festpl atten / Festplattenpartitionen, Netzwerkfreigab en, etc. durch „Einhängen“ („mounten“) in den Verzeichnisbaum Benutzer hängt Dateisysteme nicht selbst ein. Es fehlen die nötigen Rechte (root) Wechseldatenträger (CDs, DVDs, USBSticks, etc.) werden vom System automatisch eingehangen
Dateisystem - Links Verknüpfungen (= „Links“) im Dateisystem sind Verweise auf andere Dateien oder Verzeichniss e, zum Beispiel: $ ln -s /home/linux/studium/i6/projekt/ /home/linux/aktuelles projekt Der Link „/home/linux/aktuelles- projekt“ zeigt nun auf „/home/linux/studium/i6/projekt/ “ Links erhöhen somit den Komfort beim Umgang mit Dateien
Rechtemanagement Linux ist ein Mehrbenutzer-OS Zuordnung der Benutzer zu Gruppen (mind. eine) -> "id" gibt Auskunft darüber Rechte werden hinsichtlich Benutzer (u) Gruppe (g) und Anderen (o) vergeben
Rechtemanagement mögliche Rechte sind Lesen = Read Schreiben = Write Ausführen = Execute bei Verzeichnissen bedeutet Execute die Möglichkeit in ein Verzeichnis zu wechseln
Rechtemanagement Besondere Attribute Benutzerkennung = Set User ID Zur Laufzeit erhält Datei die Rechte des Besitzer, nicht wie üblich die Rechte des Programmstarters Gruppenkennung = Set Group ID Zur Laufzeit erhält Datei die Rechte der Besitzergruppe Klebrigkeit = Sticky-Bit Dateien können nur vom Erzeuger oder Besitzer des Verzeichnisses umbenannt oder gelöscht werden
Rechtemanagement drwxr-xr-x linux linux d: Directory = Verzeichnis rwx: Rechte des Besitzers der Datei r-x: Rechte der Gruppe der Datei r-x: Rechte der Rest der Welt linux: Besitzer der Datei linux: Gruppe der Datei
Rechtemanagement Besitzer in der Konsole ändern chown [option] [neuer_nutzer](:[gruppe]) [Datei/Vz] chgrp ändert äquivalent die Gruppe Rechte in der Konsole ändern chmod u+x,g-r,o-rwx,u+s,g+s,o+t dateiname -rwxr-xr-x 1 toffen toffen 0 2008-11-25 23:16 dateiname -rws--s--T 1 toffen toffen 0 2008-11-25 23:16 dateiname
Paketmanagement Der Paketmanager einer Distribution gehört zu den wichtigsten Tools überhaupt zu seinen Aufgaben gehören u.a.: Installation von Paketen Aktualisierung von Paketen Verifizierung von Paketen restlose Deinstallation Abhängigkeiten auflösen
Paketmanagement Vorteile vollständige und saubere Deinstallation von Software möglich kompliziertes und lästiges Kompilieren entfällt Einspielen neuer Programmversionen / Sic herheitsupdates schnell und einfach möglich
Paketmanagement Nachteile Distributoren haben Paket z.T. um eigene P atches erweitert / Code entfernt Durch Vorkompilation ist keine Optimierung auf die Hardware des Anwenders möglich Aktuellste Programmversionen nicht sofort verfügbar
Paketmanagement unter Debian/Ubuntu: APT Paketmanager / dpkg (Debian GNU/Linux Package Manager) wird von Debian, auf Debian- basierenden Systemen (z.B. Ubuntu) aber auch von MacOSX verwendet benutzt das Paketformat DEB meist Frontends wie „apt-get“ oder „aptitude“ benutzt Synaptic: GUI zur Paketverwaltung
Paketquellen - Bereiche Main: Freie Opensource Software mit vollem Support, gebräuchlichste Pakete Restricted: Software mit Support, häufig gebrauchte Pakete, allerdings nicht unter vollständig freier Lizenz Universe: Freie Opensource Software, großer Umfang, allerdings ohne Support und auf eigenes Risiko Multiverse: Nicht freie Software ohne Support. Verwendung auf eigenes Risiko
Paketverwaltung Synaptic - Demo
Prozessmanagement Jedes gestartete Programm wird durch einen Prozess abstrahiert Prozesse erhalten zur Laufzeit immer die Rechte des aufrufenden Benutzers Weiterhin wird jedem Prozess eine eindeutige PID („Process ID“) zugewiesen
Prozessmanagement Im Ubuntu: Prozessmanager unter: ->System ->Systemverwaltung->Systemüberwachung Prozessmanager = Taskmanager (Windows- Sprache) Prozessmanager - Demo
Prozessmanagement Übersicht über alle laufenden Prozesse liefern auch die Befehle „top“, „ps aux“ und „pidof program mname“ Befehle zum Beenden von laufenden Prozessen: "kill PID", "kill -9 PID", "killall Programmname"
Konsole Die Konsole – häufig auch „Shell“ oder „Terminal“ genannt – ist die CLI Ebene (Command Line Interface) von GNU/Linux Am häufigsten eingesetzte Shell ist die Bourne -AgainShell „bash“
Konsole - Infos Informationen, Onlinehandbücher und Hilfe „whatis schlagwort“ Liefert Informationen zum angegebenen S chlagwort „whereis schlagwort“ Zeigt den Ort der Datei Schlagwort im Dat eisystem an „man schlagwort“ Öffnet das Onlinehandbuch zu Schlagwort /usr/share/doc/ Dokumentation und Beispielkonfigurations dateien
Konsole - Infos „whoami“ Zeigt den Benutzernamen, mit dem man mo mentan unterwegs ist „id“ Zeigt die Benutzer ID und die Gruppen, bei denen der aktuelle Benutzer Mitglied ist
Konsole - Dateien, Verzeichnisse „ls“ Zeigt Inhalt des aktuellen Verzeichnisses an „ls -l“ Zeigt Inhalt des Verzeichnisses als Detailliste an „clear“ oder Strg+l (← das ist ein "el") Löscht Bildschirminhalt
Konsole - Dateien, Verzeichnisse „cd pfad“ Wechselt in den angegebenen Pfad „pwd“ Zeigt das Verzeichnis, in dem man sich aktu ell befindet „df -h“ Zeigt freien Speicherplatz auf Datenträger an
Konsole - Kopieren, Löschen... „cp quelle ziel“ Kopiert eine Datei von der Quelle zum Ziel „mv quelle ziel“ Verschiebt die Datei von der Quelle zum Ziel auch zum Umbenennen von Dateien „rm datei“ Löscht die angegebene Datei Parameter „-r“ bei „cp“ und „rm“ für rekursiv
Konsole - Dateien, Verzeichnisse „touch datei“ Ändert den Zeitstempel für die Datei Legt Datei mit Größe 0 Byte neu an „mkdir verzeichnis“ Legt ein neues Verzeichnis mit dem angege benen Namen an
Konsole - Textwork „less datei“ Zeigt die Datei in einem scrollbaren Fenster an „cat datei“ gibt Dateiinhalt direkt auf Konsole aus „nano datei“ Öffnet die Datei in einem relativ einfachen, selbsterklärenden Editor
Konsole - Superuser "sudo befehl" Nach Passworteingabe wird angegebener Befehl als Superuser ausgeführt. „sudo su“ macht aktuelles Terminal zur Root-Konsole, beenden mit „exit“ oder Strg+D
Konsole - Allgemein Bash History „Strg+r Suchbegriff“, bei mehreren Möglichkeiten mit Strg+r durchschalten Befehl "history" direkt in der Konsole Grep sucht in Kombination mit einer Pipe die Zeile, in der der angegebene Begriff vorkommt z.B.: „dmesg | grep agp
Konsole - Tab vervollständigen TabVervollständigung beginnen den Befehl/Dateinamen/ Verzeichnisnamen/Pfad einzugeben drückt man nach ein paar Zeichen <TAB>, v ersucht die Shell automatisch die gewünschte Eingabe aufzufüllen
Konsole - Apt aptget update lokale Paketbeschreibungen aktualisieren aptget upgrade aktualisiert die lokal installierten Pakete aptget install "PaketName" installiert das Paket mit dem Namen PaketN ame
Konsole - Apt aptcache search „Name“ durchsucht Paketcache nach „Name“ aptcache show "Name" Infos über Paket „Name“ ausgeben lassen aptget remove "PaketName" entfernt das Paket mit dem Namen PaketNa me aptget clean und aptget autoclean ungenutzte Pakete entfernen
Gängigste Programme Textverarbeitung: Openoffice.org Browser: Firefox Mailclient, Kalender: Evolution FTP-Client: gFTP Grafikbearbeitung: Gimp Texteditor: gEdit Picture Viewer: gThumb
Diskussion - Fragen Bei konkreten Problemen sofort nachfragen Dr. Tux als Anlaufstelle für Fragen aller Art Linux-Tutorium mit vertiefenden Themen