Upload
christa-jaeger
View
224
Download
2
Embed Size (px)
Citation preview
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