Einführung in Linux Holger Gollan (Axel Tombrink) Universität Duisburg-Essen Rechenzentrum Essen
description
Transcript of Einführung in Linux Holger Gollan (Axel Tombrink) Universität Duisburg-Essen Rechenzentrum Essen
12.11.03Einführung in Linux - 1
Einführung in Linux
Holger Gollan(Axel Tombrink)
Universität Duisburg-EssenRechenzentrum Essen
12.11.03Einführung in Linux - 2
Übersicht I
➢ Einführung
➢ Zur Geschichte von Unix/Linux
➢ Grundlagen
➢ Installation von SuSE 8.1
➢ Netzwerk und Dienste
➢ Dateien und Verzeichnisse
12.11.03Einführung in Linux - 3
Übersicht II
➢ Nutzer und Rechte
➢ Die Kommando-Shell
➢ System- und Dienstprogramme
➢ Hilfe ?!?
➢ weitere Veranstaltungen
12.11.03Einführung in Linux - 4
Geschichte
➢ Stammbaum
➢ Eigenschaften
➢ Linux ist doch kostenlos, oder?
12.11.03Einführung in Linux - 5
Stammbaum I
➢ 1969: Multics von Ken Thompson➢ Abkehr von Batch-Systemen
➢ 1971: uniplexed information and computing system (unics) auf einer PDP-7
➢ geschrieben in Assembler
➢ 1973: Dennis Ritchie stellt Unix auf C um➢ bessere Portierbarkeit
➢ 1975: Freigabe des Quelltextes
12.11.03Einführung in Linux - 6
Stammbaum II
➢ 1991: Linus Thorvald entwickelt einen UNIX-Kern für 386er-Prozessoren (V 0.11)
➢ Nutzung des Internets zur weiteren Verbreitung
➢ 1992: Erste Distributionen (V 0.99)
➢ 1994: Kernel 1.0
➢ 1996: Kernel 2.0
➢ 2000: Kernel 2.4
12.11.03Einführung in Linux - 7
Eigenschaften
➢ hierarchisches Dateisystem
➢ Prozesse können im Hintergrund laufen
➢ Multitasking, multiuser
➢ Pipelining
➢ Netzwerkmöglichkeiten
12.11.03Einführung in Linux - 8
GPL
➢ Linux selbst unterliegt der General Public License.
➢ Linux kann frei und kostenlos verteilt, eingesetzt und erweitert werden.
➢ Der Quelltext muss immer beigefügt werden.
12.11.03Einführung in Linux - 9
Kosten
➢ Um den eigentlichen Linux-Kern herum gibt es viele zusätzliche Software
➢ X-Window-System➢ Office-Pakete➢ grafische Oberflächen
➢ auch kommerzielle Software ist verfügbar
➢ Distributionen liefern außerdem Routinen zur Installation und zur Verwaltung.
12.11.03Einführung in Linux - 10
Grundlagen
➢ Nutzerkennung und Passwort
➢ Wer bin ich?
➢ Wer sind die Anderen?
➢ Wechsel des Passworts
➢ Verlassen des Systems
12.11.03Einführung in Linux - 11
Nutzerkennung
➢ In einem Multiusersystem muss jeder Nutzer eine eindeutige Kennung besitzen.
➢ Diese wird beim so genannten Login-Vorgang abgefragt.
➢ Aus Sicherheitsgründen sollte die Kennung durch ein Passwort geschützt sein, welches beim Login ebenfalls abgefragt wird.
12.11.03Einführung in Linux - 12
whoami
➢ Das Kommando whoami zeigt die derzeit aktuelle Nutzerkennung an.
➢ Dieses Kommando kann nützlich sein, um sich vor der Anwendung bestimmter Befehle abzusichern.
12.11.03Einführung in Linux - 13
who
➢ Das Kommando who zeigt eine Liste der derzeit aktiven Benutzer im System an.
➢ An der Ausgabe ist der Zeitpunkt des jeweiligen Login-Vorgangs abzulesen.
12.11.03Einführung in Linux - 14
passwd
➢ Das Kommando passwd ermöglicht die Änderung des Passworts.
➢ Zur Sicherheit muss zunächst das alte, und danach zweimal das neue Passwort angegeben werden.
➢ Nur der Nutzer selbst kann sein Passwort ändern.
12.11.03Einführung in Linux - 15
exit
➢ Mit einem Logout wird die aktuelle Sitzung im System beendet. Möglichkeiten:
➢ exit➢ quit➢ <STRG> + D
➢ Sollten noch Programme in der aktuellen Sitzung laufen, so wird der Nutzer darauf hingewiesen.
12.11.03Einführung in Linux - 16
Shutdown
➢ Das gesamte System wird durch den Befehl shutdown beendet.
➢ shutdown -h now➢ shutdown -r now
12.11.03Einführung in Linux - 17
InstallationSuSE 8.1
12.11.03Einführung in Linux - 18
Netzwerk und Dienste
➢ IP-Adressen
➢ Netzbereiche und Netzmasken
➢ Dienstprogramme➢ ping, traceroute➢ telnet, ftp➢ die r-tools➢ ssh
12.11.03Einführung in Linux - 19
IP-Adressen
➢ In einem IP-Netzwerk ist jeder IP-Knoten durch seine IP-Adresse identifiziert.
➢ Eine IP-Adresse besteht aus 4 Bytes, also Zahlen zwischen 0 und 255, die durch Punkte miteinander verbunden sind.
➢ Die Adresse 127.0.0.1 bezieht sich immer auf localhost, also den Rechner selbst.
12.11.03Einführung in Linux - 20
hostname
➢ Der IP-Adresse ist in der Regel ein so genannter hostname zugeordnet.
➢ Die Zuordnung erfolgt über➢ die Datei /etc/hosts➢ NIS (Network Information Services)➢ DNS (Domain Name Server)
12.11.03Einführung in Linux - 21
Netz-Klassen
➢ Klasse A➢ 1.x.x.x - 126.x.x.x
➢ Klasse B➢ 128.1.x.x - 191.254.x.x➢ z.B. Standort Essen 132.252.x.x
➢ Klasse C➢ 192.1.1.x - 223.254.254.x
12.11.03Einführung in Linux - 22
reservierte Bereiche
➢ In jeder Klasse von IP-Adressen sind gewisse Bereiche reserviert, die für private Netze genutzt werden können, also nicht nach außen geroutet werden.
➢ 10.x.y.z➢ 172.16.x.y - 172.31.x.y➢ 192.168.0.x - 192.168.255.x
12.11.03Einführung in Linux - 23
Netzmasken
➢ Netzmasken dienen der Unterteilung größerer Nutze in Subnetze.
➢ Binäres UND auf Netzmaske und IP-Adresse liefert die Netzwerkadresse, z.B.
➢ 132.252.165.15 + 255.255.255.224 = 132.252.165.0
➢ 132.252.165.33 + 255.255.255.224 = 132.252.165.32
➢ Alle Rechner mit gleicher Netzwerkadresse liegen in einem Subnetz.
12.11.03Einführung in Linux - 24
ping
➢ stellt fest, ob die Route zum angegebenen Ziel funktioniert.
➢ entweder mit hostname➢ oder mit IP-Adresse
12.11.03Einführung in Linux - 25
traceroute
➢ verfolgt die Route bis zum Ziel
➢ zeigt die Zwischenstationen der IP-Pakete auf dem Weg zum Ziel
➢ kommt die Verbindung zum Ziel nicht zustande, so kann man die "Bruchstelle" ablesen
12.11.03Einführung in Linux - 26
telnet
➢ dient zur Anmeldung auf einem entfernten Rechner
➢ gültige Nutzerkennung wird benötigt
➢ auf dem entfernten Rechner muss der telnetd laufen
➢ Vorsicht: Der gesamte Verkehr, inklusive der Passwörter, wird im Klartext übertragen
12.11.03Einführung in Linux - 27
ftp I
➢ dient zum Austausch von Dateien zwischen zwei Rechnern
➢ gültige Nutzerkennung wird benötigt, es sei denn, anonymous ftp ist zugelassen.
➢ auf dem entfernten Rechner muss der ftpd laufen
➢ Vorsicht: Der gesamte Verkehr, inklusive der Passwörter, wird im Klartext übertragen
12.11.03Einführung in Linux - 28
ftp II
➢ Aufruf:➢ ftp <ip-addr> bzw. ftp <host>
➢ Wichtige Befehle:➢ ls: zeigt Verzeichnisinhalt an➢ cd: wechselt remote das Verzeichnis➢ lcd: wechselt lokal das Verzeichnis➢ get: holt Datei vom entfernten Rechner➢ put: schiebt Datei auf entfernten Rechner
12.11.03Einführung in Linux - 29
r-Tools I
➢ ermöglichen das remote-Arbeiten auf einem entfernten Rechner, ohne sich explizit anzumelden
➢ umgeht die Sicherheitsprobleme von telnet und ftp, setzt dabei aber auf die Sicherheit des entfernten Systems
➢ benötigt einen entsprechenden Dämonen und eine Authorisierungsdatei auf dem entfernten System
12.11.03Einführung in Linux - 30
r-Tools II
➢ rsh (remote shell)➢ dient zum Ausführen von Programmen auf dem
entfernten Rechner
➢ rlogin (remote login)➢ dient zum Starten einer interaktiven Sitzung
➢ rcp (remote copy)➢ dient zum Kopieren von Dateien zwischen zwei
Rechnern
12.11.03Einführung in Linux - 31
ssh
➢ Bei Programmen aus der ssh-Familie findet die gesamte Kommunikation verschlüsselt statt.
➢ Dadurch werden Passwörter nicht mehr im Klartext übermittelt.
➢ benötigt den sshd.
12.11.03Einführung in Linux - 32
Übung 1
➢ Testen Sie die Netzverbindung zu einem anderen Gerät im Pool.
➢ per IP-Adresse (132.252.165.x)➢ per Hostnamen (linux(x).hrz.uni-essen.de)
12.11.03Einführung in Linux - 33
Übung 2
➢ Stellen Sie eine ftp-Verbindung zum Rechner 132.252.164.225 her.
➢ userid: xhrz➢ passwd: xhrz123
➢ Laden Sie die folgenden drei Dateien herunter:
➢ lesbar➢ unlesbar➢ gruppe
12.11.03Einführung in Linux - 34
Dateien und Verzeichnisse
➢ Dateiarten
➢ Struktur des Dateisystems
➢ Dateiverwaltung
12.11.03Einführung in Linux - 35
Dateiarten
➢ Unter Unix/Linux gibt es vier Dateiarten:➢ normale Dateien➢ Verzeichnisse➢ Gerätedateien (devices)➢ pipes
12.11.03Einführung in Linux - 36
Verzeichnisbaum
➢ Unter Linux gibt es, anders als unter Windows-Systemen, nur einen einzigen Verzeichnisbaum.
➢ Hier sind alle Partitionen an so genannten Mount-Points aufgehängt.
➢ Auch externe Geräte finden sich an einer Stelle in diesem Verzeichnisbaum (/dev)
12.11.03Einführung in Linux - 37
Verzeichnisse I
➢ Der Inhalt eines Verzeichnisses besteht aus Dateien sowie weiteren Verzeichnissen.
➢ Zwei besondere Verzeichnisse gehören standardmäßig zu jedem Verzeichnis:
➢ . Das Verzeichnis selbst➢ .. Das übergeordnete Verzeichnis im
Verzeichnisbaum
12.11.03Einführung in Linux - 38
Verzeichnisse II
➢ Zum Wechsel zwischen Verzeichnissen gibt es das Kommando cd (change directory)
➢ Neue Verzeichnisse werden mit dem Kommando mkdir (make directory) angelegt.
➢ Zum Löschen von Verzeichnissen kann das Kommando rmdir (remove directory) benutzt werden.
12.11.03Einführung in Linux - 39
Pfade
➢ Dateien und Verzeichnisse sind auf zwei unterschiedlichen Wegen ansprechbar.
➢ absoluter Pfad: Ausgehend von der eindeutigen Wurzel / des Dateisystems
➢ Relativer Pfad: Ausgehend vom aktuellen Verzeichnis
➢ Das aktuelle Verzeichnis kann mit dem Befehl pwd (present working directory) ermittelt werden.
12.11.03Einführung in Linux - 40
Links I
➢ Durch so genannte Links kann man Dateien unter mehreren Namen ansprechen.
➢ Syntax: ln [-s] <orig> <link>
➢ Die Option -s schafft einen symbolischen Link.
➢ Bei einem symbolischen Link wird ein Verweis auf das Original erzeugt, welcher gesondert im Dateisystem abgelegt wird.
12.11.03Einführung in Linux - 41
Links II
➢ Im Gegensatz zu symbolischen Links verweisen so genannte Hard Links auf die gleiche Stelle im Dateisystem.
➢ Ein einziger Eintrag im Filesystem ist damit unter zwei verschiedenen Namen erreichbar; eine Unterscheidung zwischen Original und Link ist nicht möglich.
➢ Hard Links können nicht über Partitionen hinweg gebildet werden.
12.11.03Einführung in Linux - 42
Dateiverwaltung
➢ ls
➢ cp
➢ mv
➢ rm
➢ cat
➢ head
➢ tail
12.11.03Einführung in Linux - 43
Vorbemerkungen
➢ Die Kommandos besitzen in der Regel eine größere Anzahl von Optionen, die i.a. mit einem Minus nach dem Kommandonamen eingeleitet werden.
➢ Nähere Infos erhält man über die man-Pages (Aufruf: man <cmd>).
➢ Vorsicht: Die Auswirkungen eines Kommandos sind in der Regel nicht mehr rückgängig zu machen.
12.11.03Einführung in Linux - 44
ls
➢ Das Kommando ls (list) zeigt den Inhalt eines (des aktuellen) Verzeichnisses an.
➢ Syntax: ls [<dir>]
➢ Wichtige Optionen:➢ -l: long listing➢ -a: listet alle, auch versteckte Dateien➢ -t: sortiert nach Änderungsdatum➢ -r: dreht die Sortierreihenfolge um
12.11.03Einführung in Linux - 45
cp
➢ Das Kommando cp (copy) kopiert eine oder mehrere Dateien an einen anderen Ort.
➢ Syntax: cp <src1> [<src2>...] dest
➢ Vorsicht: Die Zieldatei wird eventuell ohne Nachfrage überschrieben.
➢ Wichtige Optionen:➢ -i: interaktiver Modus -> Nachfrage➢ -r: rekursives Kopieren
12.11.03Einführung in Linux - 46
mv
➢ Das Kommando mv (move) benennt Dateien oder Verzeichnisse um.
➢ Syntax: mv <src> <dest>
➢ Vorsicht: Die Zieldatei wird eventuell ohne Nachfrage überschrieben.
➢ Wichtige Optionen:➢ -i: interaktiver Modus -> Nachfrage➢ -b: legt eine Sicherheitskopie an
12.11.03Einführung in Linux - 47
rm
➢ Das Kommando rm (remove) löscht Dateien oder Verzeichnisse.
➢ Syntax: rm <datei>
➢ Wichtige Optionen:➢ -r: rekursives Löschen➢ -i: interaktiver Modus -> Nachfrage
12.11.03Einführung in Linux - 48
cat
➢ Das Kommando cat (concatenate) zeigt Dateiinhalte an.
➢ Syntax: cat <datei>
➢ Wichtige Optionen:➢ -n: gibt Zeilennummern aus➢ -A: Darstellung von Steuerzeichen
12.11.03Einführung in Linux - 49
head
➢ Das Kommando head gibt den Anfang einer Datei aus.
➢ Syntax: head <datei>
➢ Wichtige Optionen:➢ - #: Anzahl der auszugebenden Zeilen
12.11.03Einführung in Linux - 50
tail
➢ Das Kommando tail gibt das Ende einer Datei aus.
➢ Syntax: tail <datei>
➢ Wichtige Optionen:➢ - #: Anzahl der auszugebenden Zeilen
12.11.03Einführung in Linux - 51
Editoren
➢ Unter Linux gibt es verschiedene Editoren, um Dateien zu erstellen bzw. zu verändern:
➢ auf der Kommandozeile➢ vi➢ joe➢ pico
➢ im grafischen Modus➢ nedit➢ kedit➢ emacs
12.11.03Einführung in Linux - 52
Übung 3
➢ Erstellen Sie eine Kopie der Datei /etc/passwd in Ihrem Heimatverzeichnis.
➢ Erzeugen Sie einen symbolischen und einen Hard Link zu dieser Kopie.
➢ Studieren Sie das unterschiedliche Verhalten der beiden Link-Varianten.
➢ ls -l➢ rm➢ ...
12.11.03Einführung in Linux - 53
Übung 4
➢ Erzeugen Sie mehrere Verzeichnisse unterhalb Ihres Heimatverzeichnisses.
➢ Kopieren Sie verschiedene Dateien in diese neuen Verzeichnisse und benutzen Sie dabei sowohl absolute als auch relative Pfade.
➢ Benutzen Sie die Befehle rmdir bzw. rm, um die neuen Verzeichnisse wieder zu löschen.
12.11.03Einführung in Linux - 54
Nutzer und Rechte
➢ Nutzer und Gruppen➢ /etc/passwd, /etc/shadow, /etc/group
➢ Zugriffsrechte
➢ suid, sgid, T-Modus
12.11.03Einführung in Linux - 55
Nutzer
➢ Jeder Benutzer wird intern durch eine eindeutige Kennzahl, die so genannte uid, identifiziert.
➢ Der uid sind login-Name und Passwort zugeordnet.
➢ Die uid 0 gehört dem Super-User root.
12.11.03Einführung in Linux - 56
Gruppen I
➢ Jeder Nutzer gehört mindestens einer Gruppe an.
➢ Über Gruppen kann man gemeinsame Rechte an Ressourcen vergeben.
➢ Nutzer können auch in mehreren Gruppen Mitglied sein, von denen eine die Hauptgruppe und eine die derzeit aktive Gruppe ist.
12.11.03Einführung in Linux - 57
Gruppen II
➢ Vom Nutzer neu angelegte Dateien gehören in die aktuelle Gruppe des Nutzers.
➢ Mit Hilfe des Befehls newgrp kann die aktuelle Gruppe geändert werden.
➢ Der Befehl id liefert den derzeitigen Status.
12.11.03Einführung in Linux - 58
/etc/passwd, /etc/shadow
➢ Wesentliche Daten des Nutzers werden in die /etc/passwd eingetragen
➢ Name➢ uid➢ Hauptgruppe➢ Home-Verzeichnis➢ Login-Shell
➢ Die verschlüsselten Passwörter werden in der Datei /etc/shadow hinterlegt.
12.11.03Einführung in Linux - 59
/etc/group
➢ Die wesentlichen Informationen über die Gruppen sind in der Datei /etc/group hinterlegt.
12.11.03Einführung in Linux - 60
Verwaltung
➢ Die Nutzer- und Gruppenverwaltung kann per Kommandozeile (useradd, usermod, userdel, groupadd, groupmod, groupdel) oder über yast bzw. yast2 erfolgen.
➢ yast->Administration des Systems
12.11.03Einführung in Linux - 61
Eigentümerschaft
➢ Eigentümerschaft an Ressourcen wird über die uid verwaltet.
➢ Der Eigentümer legt die Zugriffsrechte für die jeweilige Ressource fest.
➢ Der Eigentümer kann auch die Gruppe einer Datei/eines Verzeichnisses ändern, nicht jedoch den Besitzer.
➢ root ist immer zusätzlich Eigentümer aller Ressourcen.
12.11.03Einführung in Linux - 62
Benutzerklassen
➢ Drei Benutzerklassen pro Datei/Verzeichnis➢ u (user) - Besitzer der Datei➢ g (group) - Mitglieder der Gruppe, zu der die
Datei gehört➢ o (other) - alle anderen Nutzer
➢ Außerdem a (all) - alle Nutzer im System
12.11.03Einführung in Linux - 63
Rechte
➢ Drei Rechte pro Benutzerklasse➢ r (read)➢ w (write)➢ x (execute)
➢ Vorsicht bei Verzeichnissen, da sich hier Lese- und Schreibrecht auf den Inhalt des Verzeichnisses bezieht. Das Ausführrecht bei Verzeichnissen bewirkt, dass der Nutzer in das Verzeichnis wechseln darf.
12.11.03Einführung in Linux - 64
Änderung der Rechte
➢ Der Eigentümer einer Datei/eines Verzeichnisses kann die Zugriffsrechte mit Hilfe des chmod-Befehls ändern.
➢ Entweder symbolisch, z.B.➢ chmod a+x datei
➢ oder nummerisch, z.B.➢ chmod 640 datei
12.11.03Einführung in Linux - 65
nummerische Rechte
➢ Bei der nummerischen Beschreibung der Dateirechte stehen drei Ziffern, in dieser Reihenfolge, für die drei Nutzerklassen user, group, other.
➢ Der Wert wird durch Addition der einzelnen Werte für die gesetzten Rechte ermittelt:
➢ 4 = read➢ 2 = write➢ 1 = execute
12.11.03Einführung in Linux - 66
umask
➢ Mit Hilfe des umask-Befehls kann man voreinstellen, welche Rechte bei einer neu erstellten Datei nicht gesetzt sein sollen.
➢ Oft wird das x-Recht bei nicht ausführbaren Dateien automatisch nicht gesetzt.
➢ Beim Kopieren von Dateien werden die alten Rechte übernommen, wenn sie nicht durch die umask gefiltert werden.
12.11.03Einführung in Linux - 67
SUID
➢ Auch laufende Prozesse haben einen Eigentümer, normalerweise den Nutzer, von dem sie gestartet wurden.
➢ Dies kann hinderlich sein, wenn sie auf Systemressourcen zugreifen müssen.
➢ SUID-Programme können daher mit den Rechten des Programmeigentümers laufen.
➢ Vorsicht: Dies öffnet Sicherheitslücken!
12.11.03Einführung in Linux - 68
SGID
➢ Ebenso kann auch die Gruppe eines laufenden Programms von der aktuellen Gruppe des startenden Nutzers verschieden sein.
➢ Außerdem kann man auch bei Verzeichnissen das SGID-Bit setzen.
➢ Als Konsequenz gehören dann neu angelegte Dateien automatisch zur gleichen Gruppe wie das Verzeichnis selbst.
12.11.03Einführung in Linux - 69
T-Modus
➢ Haben mehrere Nutzer Schreibrecht in einem Verzeichnis, z.B. /tmp, so sind sie in der Lage, gegenseitig Dateien zu löschen.
➢ Dieses kann durch den so genannten T-Modus verhindert werden, durch den sicher gestellt wird, dass nur noch die Rechte der Datei selbst für den Löschvorgang wichtig sind.
12.11.03Einführung in Linux - 70
Einrichten desX-Window Systems
12.11.03Einführung in Linux - 71
Übung 5
➢ Richten Sie einen zweiten normalen Nutzer auf Ihrem System ein, dessen Gruppe von der des ersten Nutzers verschieden ist.
➢ Sorgen Sie als erster Nutzer dafür, dass die beiden Dateien lesbar und unlesbar sich so verhalten, wie ihr Inhalt es beschreibt.
12.11.03Einführung in Linux - 72
Übung 6
➢ Richten Sie einen weiteren Nutzer ein, der zur gleichen Gruppe wie der bei der Installation eingerichtete Nutzer gehört.
➢ Sorgen Sie als erster Nutzer dafür, dass sich die Datei gruppe so verhält, wie ihr Inhalt es beschreibt.
12.11.03Einführung in Linux - 73
Die Kommando-Shell
➢ Kommandotypen
➢ Standarddateien
➢ Kommandofolgen
➢ Kommandogruppen
➢ Pipes
➢ Hintergrundprozesse
➢ Die Shell-Umgebung
➢ Expandierung, Wildcards
12.11.03Einführung in Linux - 74
Kommandotypen
➢ Ein Kommando wird in der Regel als Kindprozess der Shell gestartet.
➢ Der Vaterprozess wartet dann, bis der Kindprozess beendet wird.
➢ Es gibt drei Arten von Kommandos➢ eingebaute Systemkommandos (intern); laufen
nicht als Kindprozess, sondern in der Shell ab➢ sonstige Systemkommandos (extern)➢ vom Nutzer erstellte Programme und Prozeduren
12.11.03Einführung in Linux - 75
Standarddateien➢ Jeder Prozess besitzt
➢ Standardeingabe - Tastatur➢ Standardausgabe - Bildschirm➢ Standardfehlerausgabe - Bildschirm
➢ Diese Standards lassen sich umlenken➢ Standardeingabe: cat < datei➢ Standardausgabe: ls > datei➢ Standardfehlerausgabe: rm -r dir 2> error➢ Anhängen an Datei: cat datei1 >> datei2
12.11.03Einführung in Linux - 76
Kommandofolgen
➢ Normalerweise werden Kommandos nacheinander in getrennte Zeilen geschrieben.
➢ Sie können aber auch in eine Zeile geschrieben werden, getrennt durch ein ';'
➢ cat datei1 >> datei2; rm datei1
12.11.03Einführung in Linux - 77
Kommandogruppen I
➢ Mehrere Kommandos können auch in einer Kommandogruppe zusammengefasst werden.
➢ (pwd; ls) > datei
➢ Die Standardausgabe der Gruppe besteht aus den Ausgaben der einzelnen Kommandos.
12.11.03Einführung in Linux - 78
Kommandogruppen II
➢ Dabei wird die Kommandogruppe immer in einem eigenen Prozess ausgeführt.
➢ Vergleiche➢ cd verz; ls -ls➢ pwd
➢ mit➢ (cd verz; ls -ls)➢ pwd
12.11.03Einführung in Linux - 79
Pipes
➢ Man kann die Standardausgabe eines Kommandos als Eingabe eines weiteren Kommandos nutzen.
➢ cat datei | more
➢ Die so genannte Pipe wird in einem neuen Prozess ausgeführt, der Kindprozesse für jedes einzelne Teilkommando startet.
➢ Standardausgabe ist die Ausgabe des letzten Kommandos
12.11.03Einführung in Linux - 80
Hintergrundprozesse I
➢ Kommandos können durch das Zeichen '&' am Ende des Befehls in den Hintergrund geschickt werden.
➢ Standardeingabe ist /dev/null, Ausgaben bleiben auf dem Bildschirm.
➢ Mit Hilfe des Befehls nohup (no hang up) können Hintergrundprozesse von der Shell gelöst werden, um eine frühzeitige Beendigung zu verhindern.
12.11.03Einführung in Linux - 81
Hintergrundprozesse II
➢ Vordergrundprozesse können durch ein <STRG> + c abgebrochen werden.
➢ Für Hintergrundprozesse gibt es den Befehl kill pid, eventuell kill -9 pid.
➢ Die Prozessnummer wird beim Start eines Hintergrundprozesses mitgeteilt; ansonsten kann sie mit dem Befehl ps (process status) ermittelt werden.
12.11.03Einführung in Linux - 82
Die Shell-Umgebung
➢ Variablen
➢ Sondervariablen
➢ Maskierung
➢ Kommandoersetzung
➢ Die Prologdatei .profile
12.11.03Einführung in Linux - 83
Variablen
➢ In der Shell können Variablen mit Werten belegt werden.
➢ Name=Wert, z.B: a=5
➢ Dieser Werte können durch vorangestelltes $-Zeichen abgerufen werden.
➢ b=$a; echo $b
12.11.03Einführung in Linux - 84
Sondervariablen
➢ Einige Variablen sind bereits systemseitig definiert und haben eine besondere Bedeutung.
➢ HOME: absoluter Pfad des Heimatverzeichnisses➢ PATH: enthält eine Liste derjenigen
Verzeichnisse, die beim Aufruf eines Programms durchsucht werden
➢ PS1: enthält den Login-Prompt
12.11.03Einführung in Linux - 85
Maskierung I
➢ Gewisse Zeichen haben in der Shell eine besondere Bedeutung:
➢ < > ; $ \ & ( ) |
➢ Um diese Sonderbedeutung zu unterdrücken, müssen diese Zeichen maskiert werden.
➢ \ maskiert nur das nächste Zeichen➢ ' ' maskiert alles Eingeschlossene (außer ')➢ " " maskiert alles außer $ \ '
12.11.03Einführung in Linux - 86
Maskierung II
➢ d=$HOME e=\$HOME➢ echo $d $e
➢ -> /home/user $HOME
➢ f='$HOME' g=“$HOME“➢ echo $f $g
➢ -> $HOME /home/user
12.11.03Einführung in Linux - 87
Maskierung III➢ Vorsicht bei der Berechnung des Wertes von
Variablen; auch hier werden die Sonderzeichen maskiert und verlieren damit ihre Sonderbedeutung.
➢ h='ls -l | wc'➢ $h
➢ Um den in einer Variablen enthaltenen String als Kommando auszuführen, benötigt man den Befehl eval.
➢ eval $h
12.11.03Einführung in Linux - 88
Kommandoersetzung I
➢ Einer Variablen wird die Standardausgabe eines Kommandos zugewiesen, wenn dieses innerhalb umgekehrter Hochkommata ` ` steht.
➢ h=`ls -l | wc`➢ echo $h
12.11.03Einführung in Linux - 89
Kommandoersetzung II
➢ Umgekehrte Hochkommata maskieren nicht.➢ d=/etc➢ h=`ls -l $d | wc`➢ echo $h
➢ Umgekehrte Hochkommata werden durch ein \ und zwischen ' ' maskiert, nicht aber zwischen " ".
➢ n=“Aktuelles Verzeichnis ist `pwd`“➢ echo $n
12.11.03Einführung in Linux - 90
Die Prologdatei .profile
➢ Existiert eine Datei namens .profile im Heimatverzeichnis, so werden die darin enthaltenen Kommandos beim Login automatisch ausgeführt.
➢ Dadurch kann jeder Nutzer sich seine eigene Umgebung erstellen.
➢ Beim ls-Kommando ist diese Datei nur bei der Option -a sichtbar.
12.11.03Einführung in Linux - 91
Expandierung, Wildcards
➢ Wildcards können benutzt werden, um aus einer Menge von Dateien nach gewissen Kriterien auszuwählen.
➢ * steht für eine beliebige, auch leere Zeichenfolge
➢ ? steht für genau ein beliebiges Zeichen➢ [Zeichenkette] steht für genau ein Zeichen
aus der angegebenen Zeichenkette➢ [Zeichen1-Zeichen2] steht für genau ein
Zeichen zwischen Zeichen1 und Zeichen2
12.11.03Einführung in Linux - 92
Übung 7
➢ Führen Sie den folgenden Befehl im Hintergrund aus und killen Sie ihn:
➢ find / -name "c*" -print >out 2>err
➢ Listen Sie alle Dateien im Verzeichnis /bin auf, deren Namen
➢ mit a beginnen➢ mit c oder l beginnen, und auf s enden➢ mit a-k beginnen und aus genau drei Zeichen
bestehen
12.11.03Einführung in Linux - 93
System- und Dienstprogramme
➢ ein Sortierprogramm
➢ ein Textsuchprogramm
➢ ein Suchkommando
➢ Plattenbelegung
➢ Datenkomprimierung
12.11.03Einführung in Linux - 94
sort
➢ Der Befehl sort sortiert die Zeilen einer Textdatei.
➢ Syntax: sort [+pos] [-pos] <datei>
➢ Wichtige Optionen:➢ -r: sortiert in absteigender Reihenfolge➢ -f: Groß- und Kleinbuchstaben werden nicht
unterschieden➢ -u: entfernt doppelte Zeile in der Ausgabe
12.11.03Einführung in Linux - 95
grep
➢ grep durchsucht die Inhalte von Dateien nach vorgegebenen Mustern
➢ Syntax: grep <muster> <datei>
➢ Im Muster können Metazeichen verwendet werden:
➢ ^: sucht das Muster am Anfang der Zeile➢ $: sucht das Muster am Ende der Zeile➢ .: steht für ein beliebiges Zeichen
12.11.03Einführung in Linux - 96
find I
➢ Mit Hilfe von find kann man Dateibäume nach Dateien durchsuchen, die gewissen vorgegebenen Kriterien entsprechen
➢ find <dir> -name <muster> -print
➢ Obiges Kommando sucht, beginnend im Verzeichnis <dir>, rekursiv nach allen Dateien, die dem angegebenen Muster entsprechen
12.11.03Einführung in Linux - 97
find II
➢ Statt des Namens können auch andere Kriterien für die Suche angegeben werden
➢ -perm: Zugriffsrechte➢ -ctime: letzte Änderung
➢ Außerdem kann auf die ausgewählten Dateien auch sofort ein Befehl angewendet werden
➢ -exec statt -print
12.11.03Einführung in Linux - 98
df, du
➢ Das Kommando df gibt Informationen über die Belegung des Dateisystems.
➢ Das Kommando du zeigt den belegten Platz eines Verzeichnisses, einschließlich aller Unterverzeichnisse
➢ du -a: Information über jede Datei➢ du -s: nur die Gesamtbelegung
12.11.03Einführung in Linux - 99
Datenkomprimierung
➢ Mit dem Kommando compress kann man Dateien komprimieren.
➢ Dabei wird die alte Datei gelöscht, es entsteht eine neue Datei mit der Endung .Z
➢ Umkehrung durch den Befehl uncompress
➢ Mehrere Dateien können durch zip zu einer Datei zusammengefügt werden, Umkehrung durch unzip
12.11.03Einführung in Linux - 100
Übung 8
➢ Sortieren Sie die Ausgabe des Befehls ls -l so, dass die Dateien der Größe nach sortiert werden, beginnend mit der größten.
➢ Finden Sie rekursiv alle Dateien ab dem Verzeichnis /usr, die mit c beginnen und mit p enden.
➢ Finden Sie alle Dateien im Verzeichnis /etc, die das Textmuster "ftp" enthalten.
12.11.03Einführung in Linux - 101
Hilfe ?!?
➢ Web-Seiten➢ www.suse.de➢ www.linuxfibel.de➢ www.selflinux.de
➢ News-Groups
➢ Programmberatung des HRZ
➢ ELUG und EliSta
12.11.03Einführung in Linux - 102
Veranstaltungen
➢ Benutzeroberfläche KDE
➢ Linux-Systemadministration
➢ Linux/Unix-Vertiefungskurs
12.11.03Einführung in Linux - 103
ENDE!
Vielen Dank für dieAufmerksamkeit