====== Arbeiten mit Linux ====== ===== Praktische Tipps für die Anwendung ===== Dateien und Programme werden - anders als in Windows - nicht per Doppelklick geöffnet! Die Programmbezeichnungen sind in den meisten Fällen nicht ident mit jenen unter Windows, z.B. Explorer (Windows)-> Nautilus (Linux / GNOME) bzw. Konquerer (Linux / KDE). Die Verzeichnisstruktur sieht ebenfalls anders aus. Es gibt einen Basisordner mit einer Reihe von Unterordner. Steht man im Verzeichnis //home/user/Documents // so entspricht das z.B. den eigenen Dateien unter Windows. {{ :informatik:k5inf:betriebssysteme:linux:bild12.jpg }} ==== Benutzertypen ==== Man unterscheidet in Linux zwischen zwei Benutzern: **ROOT** und **USER**. Der Unterschied liegt darin, dass der normale User nur eingeschränkte Rechte auf dem Computer besitzt, währenddessen ein ROOT-User Systemverwaltungsrechte besitzt. Will man z. B. einen neuen User anlegen, so ist das nur als ROOT-User mit Hilfe von YaST möglich. Beim Erstellen von Dateien kann man unter Linux bestimmte Eigenschaften und Zugriffsrechte vergeben, die für drei Gruppen gelten können: - für den User selbst - für andere Gruppen - für Sonstige ==== Linux-Verzeichnisstruktur ==== Das Dateisystem beginnt mit einem Wurzelverzeichnis. Es enthält im Regelfall keine Dateien, sondern nur die folgenden Verzeichnisse: {{ :informatik:k5inf:betriebssysteme:linux:bild_13.jpg }} * **/bin**: enthält elementare Linux-Kommandos zur Systemverwaltung, die von allen Benutzern ausgeführt werden können * **/boot**: enthält Dateien, die zum Booten des Systems verwendet werden * **/dev**: enthält alle //Device //-Dateien. Auf fast alle Hardware-Komponenten, etwa die serielle Schnittstelle oder eine Festplattenpartition, wird über so genannte Device-Dateien zugegriffen. Dabei handelt es sich um speziell gekennzeichnete Dateien, in denen keine Daten gespeichert werden, sondern die vielmehr eine Verbindung zum Linux-Kernel herstellen und somit den Zugriff auf viele Hardware-Komponenten ermöglichen. * **/etc**: enthält Konfigurationsdateien für das ganze System. * **/home**: enhält die Heimatverzeichnisse aller Linux-Anwender. Das ist jenes Verzeichnis, auf dem sich der Anwender nach dem Einloggen automatisch befindet und auf dessen Dateien er uneingeschränkten Zugriff hat. * **/lib**: enhält einige gemeinsame Bibliotheken. Die Dateien werden zur Ausführung von Programmen benötigt. * **/lost+found**: ist normalerweise leer. Enthält es doch Dateien, dann handelt es sich um Dateifragmente, die beim Versuch, das Dateisystem zu repaieren nicht mehr zugeordnet werden konnten. * **/root**: enthält die Dateien des Benutzers ''root'' * **/tmp**: enthält temporäre Dateien * **/usr**: enthält alle Anwendungsprogramme * **/srv**: Pfad für den Webserver (**/srv/www/htdocs**) * ... === Übersicht Linux - Windows === {{:informatik:k5inf:betriebssysteme:linux:bild14.jpg }} {{ :informatik:k5inf:betriebssysteme:linux:bild15.jpg }} ===== Arbeiten auf der Konsole ===== **Gnome Terminal** findet man unter //Weiter Anwendungen //. {{:informatik:k5inf:betriebssysteme:linux:bild16.jpg|}} promt // user@linux-aosk:~-> // hat folgende Bedeutung: * // user //: Benutzername * // linux-aosk //: Rechnername * // ~ //: Homeverzeichnis ==== Kommandos zur Bearbeitung von Dateien ==== Obwohl unter KDE und Gnome moderne Dateimanager zur Verfügung stehen, verwenden erfahrene Linux-Anwender oft noch immer diverse, text-orientierte Kommandos. ^Kommando ^Beschreibung ^Kommando in DOS| ^Hilfe^^^ |man //Befehl//|Hilfe zum Kommando| | |//Befehl// - - help|Hilfe zum Kommando| | ^Als Root^^^ |su|wechselt als Root (Passwort eingeben)| | |sudo|einen Befehl als Root ausführen| | ^Verzeichnisbaum^^^ |cd|wechselt das aktuelle Verzeichnis| | |cd /|wechselt ins root-Verzeichnis|| |ls|zeigt alle Dateien des aktuellen Verzeichnisse an|dir| |ls -l|zeigt eine detaillierte Liste| | |ls -a|zeigt versteckte Dateien an| | |mkdir|erzeugt ein neues Verzeichnis|md| |rmdir|löscht Verzeichnisse|rd| |pwd|zeigt aktuellen Pfad an|| ^Joker^^^ | * |steht für eine beliebige Anzahl von beliebigen Zeichen| | | ? |steht für ein beliebiges Zeichen| | ^Dateien^^^ |mv quelle ziel|verschiebt Dateien bzw. ändert ihren Namen|move| |cp quelle ziel|kopiert Dateien|copy| |cp ordner ziel -r|kopiert gesamten ordner inkl. aller unterordner an ziel| | |cat|zeigt Dateiinhalt an|type| |less|öffnet Anzeigeprogramm| | |more|zeigt Dateiinhalt seitenweise an| | |touch Dateiname|erstellt leere Datei| | |mcedit Dateiname|öffnet Datei in einem Editor zur Bearbeitung|edit | |vim Dateiname|öffnet Datei mit dem Editor VIM zur Bearbeitung| | |vimtutor|Tutorial zum Erlernen vom Editor VIM| | |rm|löscht Dateien|del| |rm unterordner -r|löscht gesamten Unterordner inkl. aller Dateien| | |find -name dateinamen|sucht Dateien nach Namen| | ^Packen und Komprimieren von Verzeichnissen und Dateien^^^ |tar|vereint mehrere Dateien (und Verzeichnisse) in einer Datei| | |tar -t|Inhalt eines Archivs anzeigen| | |tar -x|Dateien aus Archiv holen| | |tar -c|neues Archiv erzugen| | |tar -f|um Namen des Archiv anzugeben| | |tar -xvjf|entzippen| | ==== Weitere Befehle ==== * [[http://www.shellbefehle.de/befehle/]] ==== Übung 1 ==== - Erstelle in deinem Home-Directory einen Ordner uebungen. - Speichere das File {{:informatik:k5inf:betriebssysteme:linux:uebung1.tar|}} in diesen Ordner! - Entpacke das Archiv mit Hilfe von ''tar -xvjf uebung1.tar''. Welche Verzeicnisse und Dateien befinden sich nun in deinem Home-Directory? - Gib den Befehl ''./hallo'' ein. - Finde die Datei ''ichbinhier''. - Wechsle in das Verzeichnis, in dem sich die Datei befindet. - Erstelle ein Verzeichnis mit dem Namen ''backup'' in deinem Homedirectory. - Kopiere das gesamte Verzeichnis ''uebung1'' in das Verzeichnis ''backup''. - Lösche das Verzeichnis ''uebung1''. - Erstelle ein Verzeichnis mit dem Namen ''aufgabe'' und wechsle hinein. - Erstelle drei leere Dateien ''datei1'' bis ''datei3''. - Öffne mit einem Editor ''datei1'' und gib drei Zeilen Text ein. Speicher ab! - Lasse dir die Datei mit einem entsprechendem Kommando ausgeben! - Gib den Befehl ''tac datei1'' ein. Was passiert? - Wechsle in die grafische Oberfläche! - Orientiere dich an der Oberfläche! - Versuche den Bildschirmhintergrund umzustellen. - Öffne ein Konsolenfenster. Lösche darin den gesamten Ordner ''uebungen'' inklusive Unterverzeichnis. ==== Übung 2 ==== * {{:inf:betriebssysteme:arbeitenmitderbash.pdf|Arbeiten mit der Bash (Grundkurs 1-3, Experten 4-7) }} ===== Zugriffsrechte von Dateien ===== Linux ist als Multiuser-System konzipiert und benötigt daher Mechanismen, die steuern, wer auf welche Dateien zugreifen kann, wer sie ändern darf etc. Mit jeder Datei bzw. mit jedem Verzeichnis werden folgende Informationen gespeichert: * der Besitzer (''owner'') der Datei * die Gruppe, der die Datei zuzuordnen ist * neun Zugriffsbits ''rwxrwxrwx'' für ''read / write / execute'' für den Besitzer, für alle Gruppenmitglieder und für den Rest der Welt) * einige weitere Zusatzbits für Spezialfunktionen Der Besitzer (''owner'') einer Datei ist in der Regel die Person, die die Datei erzeugt hat. Als Gruppe wird normalerweise die primäre Gruppe des Besitzers verwendet. Die Zugriffsinformationen ''r, w'' und ''x'' steuern, wer die Datei lesen, schreiben (verändern) und ausführen darf. Diese Informationen werden getrennt für den Besitzer, für die Gruppe und für alle anderen Benutzer gespeichert. Das ermöglicht es, dem Besitzer mehr Rechte zu geben als anderen Benutzern. Die Informationen werden meist Zugriffsbits genannt, weil sie intern als Zahl gespeichert werden. Die Zugriffsbits, der Besitzer sowie die Gruppenzugehörigkeit einer Datei können mit ''ls -l'' betrachtet werden. ^Kommando ^Beschreibung| |chmod|Ändern der Dateirechte| |chmod 640 dateiname|Ändert die Dateirechte auf _rw_ r__ ___| |chown|Ändern des Eigentümers| |chgrp|Ändern der Gruppe| **BSP**:\\ |//Dateiattribute // | //Anzahl der Links auf eine Datei // | // Besitzer der Datei // | //Benutzergruppe // | //Dateigröße // | //Datum // | //Verzeichnis // | |drwxr-xr-x |3|petra|gruppe5b|454|...|...|