FAQ zu Linux Inhaltsverzeichnis: 1.) Was ist Linux? a. Begriffserklärung b. Kurze Einführung 2.) Grundlegende Unterschiede a. b. c. d. e. f. g. Features Rechte Befehle/ Parameter Verzeichnisstruktur Dateiformate Top – Task-Manager Joe – Editor 3.) Spezifisches -> comming soon VON: BENJAMIN REINPRECHT QUELLEN (U.A.): http://www.selflinux.org/selflinux/ http://www.drni.de/linux/slm/ http://linux-fuer-alle.de/ 1.) Was ist Linux? A.) Begriffsklärung Prinzipiell ist mit dem Begriff "Linux" nur der Kernel gemeint (= der Teil des Systems, der z.B. die Ressourcen für die laufenden Programme und die Anwender verwaltet/ ein Regler für die Kommunikation zwischen Hard- & Software). Obwohl der Kernel ein essentieller Teil des Systems ist, wäre er ohne zusätzliche Software allerdings nutzlos. Um diesen Kernel effektiv nutzen zu können, ist weitere Software notwendig -> das eigentliche Betriebssystem. Derzeit wird in den meisten Fällen die Software des GNU-Projektes in Verbindung mit dem Linux-Kernel verwendet. Das GNU-Projekt entwickelt bereits seit 1984 „Freie Software“ und als 1991 die Arbeit am Linux-Kernel begann, war dieses Softwaresystem bereits fast fertig, sodass man auf einen Großteil „Freier Software“ für die Linux-Entwicklung zurückgreifen konnte. Heute sind beide Komponenten, der Linux-Kernel und die GNU-Betriebssoftware, kaum noch voneinander zu trennen. Korrekterweise müsste man also eigentlich, wenn man das Betriebssystem meint, von "GNU/Linux" sprechen, da hier immer der Kernel (Linux) und die Systemwerkzeuge (GNU) gemeinsam gemeint sind. Es hat sich allerdings heute eingebürgert, dass umgangssprachlich unter dem Begriff "Linux" die Kombination aus Kernel und Systemwerkzeugen gemeint ist. B.) Kurze Einführung (GNU/)Linux ist ein hochstabiles, sehr schnelles und voll funktionsfähiges Betriebssystem. Es wird von einer Gemeinschaft von tausenden von Leuten im Internet programmiert und unter der GNU General Public License verteilt -> es ist frei erhältlich. Es wird weltweit von mehreren Millionen Leuten, Organisationen und Firmen benutzt. Kurz ein Diagramm von www.linuxcounter.org Calculating number of Linux users Linux Counter registered users Estimated Linux users June 2001 110.000 18 mill. February 2005 180.000 29 mill. Shell Eine Shell ist ein Programm, das zwischen dem Benutzer und dem System arbeitet. Auf der Shell hat man die Möglichkeit, Befehle und Programme auszuführen. Zudem verfügt jede Shell über eine eigene Scriptsprache. Damit können Skripte zur Arbeitserleichterung geschrieben werden. Unter Linux ist die Bash (Bourne Again Shell) die Standardshell. X-Server Es ist möglich ein Linux-Betriebssystem (also Kernel und Systemprogramme) auf einem Plattenplatz von <50 MB unterzubringen (zum Beispiel mit Hilfe einer RAMDisk, wie sie bei Embedded-Linux-Systemen verbreitet ist). Allerdings steht dann mit Sicherheit nur eine Shell (Befehlszeilen-Prompt) als Benutzerschnittstelle zur Verfügung. Hier fehlt eine grafische Oberfläche, welche nicht Teil des Betriebssystems, sondern ein Programm, das auf diesem läuft, ist. Diese grafischen Oberflächen nennt man X-Server/ X Window System/ X11. Desktop Der X-Server bringt einem nicht den gewünschten Arbeitskomfort. Dazu dient ein Desktop wie KDE oder GNOME. Dieser ermöglicht das Arbeiten, wie man es von anderen grafischen Betriebssystemen her kennt. Man verfügt über eine Arbeitsfläche mit Fenstern und kann Programme über Icons starten. Bibliothek Eine Bibliothek ist eine Sammlung von wiederkehrenden Programmteilen. Da viele Programme gleiche oder ähnliche Teile haben, ist es ineffektiv, diesen Teil immer wieder zu programmieren. Daher werden diese Teile in eine externe Datei ausgelagert. Da mehrere Programme darauf zugreifen, kann die Größe des einzelnen Programms verkleinert werden. Fehlt die Bibliothek, läuft aber das gesamte Programm nicht mehr. Distribution Alles oben Genannte zusammengestellt und aufeinander abgestimmt ergibt eine Distribution. Linux-Distributoren sind unabhängige Organisationen, die Software für Linux sammeln und vertreiben. 2.) Grundlegende Unterschiede a. Features: Hier sollen einmal die wichtigsten Unterschiede und Besonderheiten erläutert werden. "Echtes" Multitasking Unter Linux können theoretisch beliebig viele Programme gleichzeitig ausgeführt werden. Natürlich wird genau genommen zu einer Zeit immer nur ein Programm ausgeführt, aber die Programme wechseln sich so schnell mit der Prozessorbenutzung ab, dass sie „scheinbar gleichzeitig“ laufen. Dateisysteme & Festplatten Festplatten gibt es natürlich auch unter Linux. Es gibt nur keine Laufwerksbuchstaben. Der Verzeichnisbaum fängt mit / an. Eventuelle Laufwerke sind in Unterverzeichnissen zu finden. so können /etc und /usr die erste Festplatte sein und /home könnte eine weitere sein. Hier wird auch schon deutlich, daß der DOSgewohnte \ ("Backslash") hier durch einen / ("Slash") ersetzt wurde. Dateisysteme gibt es viele. Linux kann auf DOS oder Win95 formatierte Festplatten ebenso zugreifen wie auf Atari-, CD-ROM-, Apple- oder WinNT-Dateisysteme. Linux selber verwendet jedoch hauptsächlich das Dateisystem ext2, welches lange Dateinamen und Zuordnung von Benutzern/Besitzern und Dateien ermöglicht. Wichtig: Linux unterscheidet in Groß- und Kleinschreibung! /home/ich/Hallo und /home/ich/hallo sind zwei verschiedene Dateien! Geräte & Treiber Unter Linux findet sich für jedes Gerät im Verzeichnis /dev eine Datei. (z.B.: /dev/ttyS0 - die erste serielle Schnittstelle). Dies scheint auf den ersten Blick völliger Blödsinn zu sein, erleichtert aber die Programmierung wesentlich. Dem Programmierer kann es egal sein, ob die Ausgabe seines Programms auf den Bildschirm, in eine Datei oder auf ein Bandlaufwerk ausgegeben wird. Auch Treiber gibt es unter Linux. sie werden entweder fest in den Systemkern (Kernel) eincompiliert oder als Zusatz-Module geladen. b.) Rechte - Für das Funktionieren eines Mehrbenutzer Systems ist das Vorhandensein verschiedener „Benutzer" mit verschieden Privilegien notwendig. Ein normaler Benutzer kann ein Linux System z.B. nicht einfach herunterfahren oder die gesamte Festplatte löschen. - Abgesehen vom Recht, etwas tun zu dürfen(-> Zugriffsrecht) gibt es auch Eigentumsrechte. - Jeder Benutzer kann mehreren Gruppen angehören. Gleichzeitig hat jede Datei einen Benutzer und eine Gruppe als Eigentümer. Zugriffsrechte & Eigentumsrechte Die Zugriffsrechte und Eigentümer einer Datei können mit dem Befehl ls -ls angezeigt werden. Dies soll an folgendem Beispiel erläutert werden (Ausschnitt): drwx------ 2 root root 1024 Dec 27 13:16 conf/ drwxr-x--- 5 niels weber 1024 Dec 27 17:29 data/ drwxr-x--- 2 niels weber 1024 Dec 21 21:38 images/ -rw-r----- 3 niels weber 1024 Dec 23 00:34 interna drwxr-xr-x 2 root root 1024 Nov 25 18:35 mnt/ weber 6144 Jan 5 04:02 proxy_cache/ drwxr-x--- 66 wwwrun drwxr-x--- 5 root root 2048 Jun 6 1997 sbin/ drwxr-x--- 2 root root 1024 Jun 6 1997 support/ Die erste Spalte stellt die Zugriffsrechte und bestimmte Statusinformationen dar. d Steht für Verzeichnis („directory“), r für lesen („read“), w für schreiben („write“) und x für ausführbar („executable“; Verzeichnisse müssen als ausführbar deklariert werden, damit der Benutzer darauf zugreifen kann.) Von der ersten Stelle abgesehen ist diese Darstellung in Dreiergruppen gegliedert: d rwx r-x --- 5 niels weber 1024 Dec 27 17:29 data/ Das erste Segment, rwx, zeigt die Zugriffsrechte für den Eigentümer einer Datei bzw. hier den des Verzeichnisses an. Das nächste Segment, r-x, stellt die Rechte für die Gruppe dar. Die übrig bleibende Zeichenkette --- bestimmt die Rechte für "den Rest der Welt", also Benutzer, die keine Eigentümer der Datei sind. (Aus Gründen der Übersichtlichkeit wurden zusätzliche Leerzeichen eingefügt) In der zweiten und dritten Spalte sind die Eigentümer der Datei aufgeführt: - rw- r-- --- 3 niels weber 1024 Dec 23 00:34 interna Diese Datei gehört dem Benutzer niels und der Gruppe weber. Niels darf (rw) lesend und schreibend darauf zugreifen während die Gruppe weber nur lesenden Zugriff darauf hat. Der "Rest der Welt" darf auf diese Datei in keiner Art und Weise zugreifen. Änderung der Zugriffs- & Eigentumsrechte Zugriffsrechte ändern Mit chmod (Change Mode) ändern Sie die Zugriffsrechte auf eine oder mehrere Dateien. Sie können Rechte entweder wegnehmen (-) oder hinzufügen (+). Zusätzlich müssen Sie angeben, ob dies für die Gruppe (g) den Eigentümer (u) oder den Rest der Welt (o) geschehen soll. Mehrere Angaben können Sie durch Komata abtrennen. Beispiele: - Die Datei geheim soll nur noch für Sie zugänglich sein. Also nehmen Sie der Gruppe und allen anderen die Rechte. mueller@mein-pc:/home/mueller > chmod g-rwx,o-rwx geheim - Sie wollen die Datei projekt mit all Ihren Kollegen gemeinsam bearbeiten. Also geben Sie der Gruppe Schreibrecht. mueller@mein-pc:/home/mueller > chmod g+w projekt Eigentümer ändern chown (Change Owner) teilt einer Datei oder mehreren Dateien einen neuen Eigentümer und eine neue Gruppe zu. Dies funktioniert allerdings nur, wenn Sie als root eingeloggt sind. Die Option -R (Recursive) schließt evtl. vorhandene Unterverzeichnisse und die darin enthaltenen Dateien ein. Beispiel: Dieser Befehl weist das Verzeichnis /home/mueller und alle darin enthaltenen Dateien dem Benutzer mueller zu. mein-pc:/root # chown mueller.users /home/mueller -R Wichtig: Dasselbe Prinzip funktioniert natürlcich auch mit der Änderung einer Gruppe – der Befehl hierzu ist aber chgrp [GRUPPE] [DATEI] statt chown [OWNER] [DATEI] c.) Befehle/ Parameter Basics startx startet das X-Window-System und eine grafische Benutzeroberfläche logout ordnungsgemäßes Abmelden von der Konsole [BEFEHL] --help gibt einen kurzen Hilfetext zum [BEFEHL] aus shutdown -r now Rechner neustarten shutdown -h now Rechner herunterfahren ls kurze Liste des Verzeichnisinhaltes ls -l ausführliche Liste des Verzeichnisinhaltes ls -la alle Dateien des Verzeichnisses ausführlich auflisten mkdir [VERZ] neues Verzeichnis [VERZ] erstellen rmdir [VERZ] das leere Verzeichnis [VERZ] löschen rm -rf [VERZ] alles unterhalb des Verzeichnisses [VERZ] löschen date Anzeige von Datum und Uhrzeit Navigation im Dateisystem pwd gibt das aktuelle Verzeichnis aus cd / wechselt ins Hauptverzeichnis cd .. wechselt in das übergeordnete Verzeichnis cd wechselt in das vorherige Verzeichnis cd wechselt ins Home-Verzeichnis des Benutzers cd [VERZ] wechselt ins Verzeichnis [VERZ] Suchen, Anzeigen & Starten von Dateien whereis [PROGRAMM] sucht in den Verzeichnissen nach [PROGRAMM] cat [DATEI] zeigt den Inhalt der Datei [DATEI] an less [DATEI] … man kann aber auch nach oben blättern cp [DATEI1] [DATEI2] kopiert Datei [DATEI1] in Datei [DATEI2] mv [DATEI1] [DATEI2] benennt Datei [DATEI1] in [DATEI2] um mv [DATEI] [VERZ] verschiebt Datei [DATEI] ins Verzeichnis [VERZ] rm [DATEI] löscht die Datei [DATEI] touch [DATEI] erzeugt die leere Datei [DATEI] [PROG] Programm [PROG] (im Pfad befindend) starten ./[PROG] Programm [PROG] (im Verzeichnis befindend) starten [PFAD]/[PROG] Programm [PROG] (im Verzeichnis [PFAD] befindend) starten Benutzerverwaltung id Benutzernamen und die Gruppenmitgliedschaften aus whoami Ausgabe des Benutzernamens who Ausgabe der Benutzernamen, des Terminals und der Login-Zeit passwd ändert das Passwort des aktuellen Benutzers useradd -m [USERNAME] legt den neuen Benutzer [USERNAME] an mit Home-Dir. passwd [USERNAME] ändert das Passwort des Benutzers [USERNAME] (nur als root) userdel -r [USERNAME] löscht den Benutzer [USERNAME] und sein Homeverzeichnis groupadd [GRUPPE] erzeugt eine neue Gruppe [GRUPPE] groupdel [GRUPPE] löscht die Gruppe [GRUPPE] d.) Verzeichnisstruktur Unter Linux gibt es keine Laufwerksbuchstaben wie "A:" oder "C:", sondern ein RootVerzeichnis "/", welches sich auf einem beliebigen Laufwerk befindet. Das kann eine Diskette, die erste Partition einer Festplatte oder auch ein entferntes Netzwerklaufwerk sein. Dem Anwender kann es erstmal egal sein, wo seine Daten gespeichert werden - hauptsache er findet sie das nächste Mal dort auch wieder. Alle anderen Geräte wie CD-ROM- und Diskettenlaufwerke, sowie weitere Festplattenpartitionen müssen erst in diesen Verzeichnisbaum eingehängt/ MOUNTEN1 werden. Anschließend kann dann über ein Verzeichnis darauf zugegriffen werden. Verzeichnis kurze Beschreibung / root-Verzeichnis /sbin/ /boot/ /dev/ CDROM, ...) /home/ /root/ /tmp/ (Basisverzeichnis) Programme für den Systemverwalter Verzeichnis für Startdateien und den Kernel Gerätedateien (für Tastatur, Maus, Modem, Benutzerverzeichnisse Verzeichnis des Systemverwalters temporäre Dateien /usr/ /usr/bin/ /usr/X11R6/bin/ Oberfläche /usr/src/ Dateien/Programme für die Benutzer Anwendungsprogramme für die Benutzer Anwendungsprogramme für die grafische Quellcodes (z. B. vom Linux-Kernel) /var/ (Mailverzeichnis) /var/log/ Verzeichnis für sich ändernde Daten /proc/ /opt/ /mnt/ Systeminformationen; Schnittstelle zum Kernel optionale Programme (teilweise KDE, Eigenes) Mount-Point für Disketten, CD-ROMs, etc... 1 Protokoll-Dateien Der Ort, an dem ein Gerät gemountet wird, heißt "Mount-Point" und befindet sich normalerweise unterhalb des Verzeichnisses "/mnt". Das CD-ROM-Laufwerk wird zum Beispiel im Verzeichnis "/mnt/cdrom", das Diskettenlaufwerk im Verzeichnis "/mnt/floppy" gemountet. Wenn erst einmal eine Diskette gemountet ist, darf man sie nicht einfach aus dem Laufwerk nehmen, bevor man sie nicht mit dem Befehl "umount" aus dem Verzeichnisbaum entfernt hat. /etc/ /etc/init.d/ /etc/X11/ /lib/ glibc) /usr/lib/ Anwendungsprogramme systemweite Konfigurationsdateien Start- + Stopscripte der Systemdienste Konfigurationsdateien von XFree86 allg. Programm-Bibliotheken (Programmlader, Programm-Bibliotheken für e.) Dateiformate Es kann auf jedem Linux- und Unix-Rechner das Archivformat "tar" gepackt und entpackt werden, während das Paketformat "rpm" beispielsweise bei Red Hat, SuSE und Mandrake und "deb" bei auf Debian basierenden Distributionen verwendet wird. Hier geht es um tar-Archive (die mit gzip oder bzip2 komprimiert worden sind) und um zip-Archive, die aus der DOS/Windows-Welt bekannt sind. 1.) Endung: "tar" Archive mit der Endung "tar" sind reine Zusammenfassungen von Dateien. Es wird die Verzeichnisstruktur gespeichert, der Inhalt aber nicht komprimiert. Weiterhin werden in einem Tar-Archiv zu jeder Datei die Rechte und Eigentümer gespeichert. Daher ist "tar" das bevorzugte Archivformat unter Linux bzw. Unix. a.) tar xfv [ARCHIVNAME].tar ("x" steht für extract, also auspacken) ("f" für file/ aus einer Datei ("v" für verbose/ gesprächig) b.) Verwendet man statt "x" ein "c" (create), kann man Verzeichnis und/oder Dateien einpacken und ein eigenes Archiv erzeugen. tar cfv [ARCHIVNAME].tar [VERZEICHNIS1] [VERZEICHNIS2] [DATEI1] [DATEI2] c.) Möchtest man den Inhalt auflisten lassen, so verwendet man den Schalter "t". tar tfv [ARCHIVNAME].tar 2.) Endung: "gz" Eine Datei mit der Endung "gz" steht für eine mit gzip komprimierte Datei. Es kann jedoch nur eine einzige Datei komprimiert werden. Wenn du mehrere Dateien komprimieren möchtest, musst du aus diesen erst einmal ein Archiv erstellen (siehe oben). Der folgende Befehl komprimiert eine Datei (dekomprimieren durch gunzip): gzip [DATEINAME] Als Ergebnis erhält man die Datei namens "[DATEINAME].gz". 3.) Endung: "bz2" Die Handhabung einer Datei mit der Endung "bz2" verhält sich ähnlich wie bei einer "gz"-Endung. Der Vorteil von "bz2" sind die bedeutend kleineren Dateien. Der folgende Befehl komprimiert eine Datei: bzip2 [DATEI](entkomprimeren mit „bunzip“) Das tar-Kommando kann das Zusammenfassen und Komprimieren bzw. Dekomprimieren und Auspacken auch in einem Schritt erledigen: tar cfvj [ARCHIV].tar.bz2 [VERZEICHNIS1] [DATEI1] tar xfvj [ARCHIV].tar.bz2 4.) Endung: "zip" ZIP-Dateien wurden und werden noch immer hauptsächlich unter DOS bzw. Windows verwendet. Zum Datenaustausch zwischen Linux und Windows sollte dieses Format bevorzugt werden. a.) Der folgende Befehl komprimiert einzelne Dateien: zip [ARCHIV].zip [DATEI1] [DATEI2] (entzippen mit „unzip“) b.) Möchte man hingegen Dateien in einer kompletten Verzeichnisstruktur archivieren, so lautet das Kommando: zip -r [ARCHIV].zip [VERZEICHNIS1] [VERZEICHNIS2] c.) Mit dem folgenden Befehl kann man sich den Inhalt eines ZIP-Archivs ausgeben lassen: unzip -l [ARCHIV].zip f.) Top – Task-Manager 1.) Starten top wird wie folgt gestartet: mueller@mein-pc:/home/mueller > top 2.) Bedienung Etwas ungewohnt aber durchaus nicht unpraktisch gestaltet sich die Bedienung. Das einfache Drücken einer Taste genügt, um dem Programm mitzuteilen, was Sie wünschen. Die wichtigsten Tasten sind: zeigt die Hilfe mit allen Tastenkürzeln an. - + sortiert die Liste nach dem Speicherverbrauch der Programme. - + sortiert die Liste wieder nach der Prozessorbelastung der Programme. killt2 einen Prozess. Sie werden nach dem PID (PID Steht für Process Identifier. Jeder Prozess bekommt bei seinem Start eine solche einmalige Zahl grausam anmutende Befehl kill dient eigentlich nur zum Senden eines Signals an den mit PID angegebenen Prozess. Signale gibt es viele, sie sind nummeriert, aber namentlich Genanntes prägt sich ja bekanntlich besser ein, hier einmal die wichtigsten: kill -SIGTERM („Freundlich“); kill -SIGKILL („Unfreundlich“) 2Der zugewiesen) dem gewünschten Signal gefragt. beendet top 3.) Informationen Hier soll kurz auf ein paar der Spalten eingegangen werden, die top in seiner tabellarischen Ausgabe anzeigt: PID Logischerweise der PID des angezeigten Programms USER Der Benutzer, der das Programm aufgerufen hat SIZE Die Größe des Programms im Arbeitsspeicher SHARE Menge des Speichers, den das Programm mit anderen gemeinsam nutzt %CPU Anteil an der Prozessorauslastung durch das Programm %MEM Anteil an der Auslastung des Arbeitsspeichers durch das Programm 4.) Wozu? kann in vielen Fällen ein hilfreiches Tool sein. Kommt Ihnen Ihr Computer z.B. viel zu langsam vor, so kann es sein, dass ein oder mehrere Programme die Ressourcen übermäßig beanspruchen. Diese Programme kann man mit top leicht ausfindig machen und ggf. beenden. Desweiteren ist es sehr interessant zu sehen, was das System am meisten belastet. top g.) Joe - Editor JOE ist ein Akronym und steht für "Joe's Own Editor". Joe steht wiederum für den Vornamen seines Erfinders, "Joseph Allen". Er sollte eigentlich bei jeder LinuxDistribution dabei sein. (andere Editors wären: pico, emacs, vi, ae) Wenn JOE installiert ist, kannst man ihn mit "joe" starten. Hat man einen Dateinamen angegeben, wird der Inhalt der Datei in den Editor geladen. Andernfalls bekommst du ein leeres Editorfenster. JOE wird ausschließlich über Tastenkombinationen gesteuert. Dazu drückt man die <Strg>-Taste, danach meistens die Taste "K" und zum Schluss (man sollte die Taste "K" bereits losgelassen haben) die entsprechende Taste. Wichtig: Man sollte wissen, dass man mit mit <Strg> + K + H jederzeit eine übersichtliche Hilfe erhalten kann. Beendet wird die Hilfe mit der gleichen Tastenkombination. Die wichtigsten beiden Befehle sind sicherlich das Speichern und das Verlassen des Editors. <Strg> + K + X <Strg> + C <Strg> + K – D <Strg> + <Shift> + oder - Speicherung des Textes Beendest des Editors ohne Speichern Speicherung der geöffneten Datei. UNDO-Funktion (Rückgängig) Navigation im Text <Strg> + K + U <Strg> + K + V <Strg> + K + L <Strg> + X <Strg> + Z <Strg> + A <Strg> + E Zum Anfang der Datei springen. Ans Ende der Datei springen. Zu einer bestimmten Zeile springen. Zum nächsten Wort springen. Zum letzten Wort zurückspringen. An den Anfang der Zeile springen. Ans Ende der Zeile springen. Blockoperationen <Strg> + K + B <Strg> + K + K <Strg> + K + Y <Strg> + K + M <Strg> + K + C Anfang der Markierung festlegen Ende der Markierung festlegen markierten Block löschen markierten Block verschieben markierten Block kopieren <Strg> + Y aktuelle Zeile löschen Einen Editor bedienen zu können ist unter Linux sehr wichtig, da viele Einstellungen in Konfigurationsdateien gemacht werden. Es gibt noch wesentlich komplexere und mächtigere Editoren als Joe, jedoch ist deren Bedienung nicht unbedingt leicht zu erlernen. 3.) Spezifisches -> comming soon