1.03k likes | 1.28k Views
Einführung in Linux Holger Gollan (Axel Tombrink) Universität Duisburg-Essen Rechenzentrum Essen. Übersicht I. Einführung Zur Geschichte von Unix/Linux Grundlagen Installation von SuSE 8.1 Netzwerk und Dienste Dateien und Verzeichnisse. Übersicht II. Nutzer und Rechte Die Kommando-Shell
E N D
Einführung in LinuxHolger Gollan(Axel Tombrink)Universität Duisburg-EssenRechenzentrum Essen
Übersicht I • Einführung • Zur Geschichte von Unix/Linux • Grundlagen • Installation von SuSE 8.1 • Netzwerk und Dienste • Dateien und Verzeichnisse
Übersicht II • Nutzer und Rechte • Die Kommando-Shell • System- und Dienstprogramme • Hilfe ?!? • weitere Veranstaltungen
Geschichte • Stammbaum • Eigenschaften • Linux ist doch kostenlos, oder?
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
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
Eigenschaften • hierarchisches Dateisystem • Prozesse können im Hintergrund laufen • Multitasking, multiuser • Pipelining • Netzwerkmöglichkeiten
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.
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.
Grundlagen • Nutzerkennung und Passwort • Wer bin ich? • Wer sind die Anderen? • Wechsel des Passworts • Verlassen des Systems
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.
whoami • Das Kommando whoami zeigt die derzeit aktuelle Nutzerkennung an. • Dieses Kommando kann nützlich sein, um sich vor der Anwendung bestimmter Befehle abzusichern.
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.
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.
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.
Shutdown • Das gesamte System wird durch den Befehl shutdown beendet. • shutdown -h now • shutdown -r now
Netzwerk und Dienste • IP-Adressen • Netzbereiche und Netzmasken • Dienstprogramme • ping, traceroute • telnet, ftp • die r-tools • ssh
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.
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)
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
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
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.
ping • stellt fest, ob die Route zum angegebenen Ziel funktioniert. • entweder mit hostname • oder mit IP-Adresse
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
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
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
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
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
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
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.
Ü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)
Ü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
Dateien und Verzeichnisse • Dateiarten • Struktur des Dateisystems • Dateiverwaltung
Dateiarten • Unter Unix/Linux gibt es vier Dateiarten: • normale Dateien • Verzeichnisse • Gerätedateien (devices) • pipes
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)
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
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.
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.
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.
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.
Dateiverwaltung • ls • cp • mv • rm • cat • head • tail
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.
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
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
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
rm • Das Kommando rm (remove) löscht Dateien oder Verzeichnisse. • Syntax:rm <datei> • Wichtige Optionen: • -r: rekursives Löschen • -i: interaktiver Modus -> Nachfrage
cat • Das Kommando cat (concatenate) zeigt Dateiinhalte an. • Syntax:cat <datei> • Wichtige Optionen: • -n: gibt Zeilennummern aus • -A: Darstellung von Steuerzeichen
head • Das Kommando head gibt den Anfang einer Datei aus. • Syntax: head <datei> • Wichtige Optionen: • - #: Anzahl der auszugebenden Zeilen
tail • Das Kommando tail gibt das Ende einer Datei aus. • Syntax: tail <datei> • Wichtige Optionen: • - #: Anzahl der auszugebenden Zeilen