1
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
1
UnixEinführung, HistorieZugang, einige einfache KommandosUmgang mit der ShellUnix-FilesystemDatei- und verzeichnisorientierte KommandosRedirection, Pipes und FilterEditor picoKommandos zur ProzessverwaltungShell-Scripts
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
2
Einführung, Historie
Allgemeines:Multi-Tasking System
Multi-User System
Geräteunabhängiges hierarchisches Filesystem
Hoher Portabilitätsgrad (90 - 95 % des Systems ist C-Code)
Geeignet für die ganze Leistungsbandbreite: vom Handheld über PC und Großrechner bis hin zum Supercomputer
Historisch bedingt kompakter Betriebssystemaufbau: Viele kleine Programme erfüllen eng abgegrenzte Aufgaben. (Small is beautiful)
Kein Realzeitsystem. Es gibt aber realzeitfähige Versionen
Hohe Verbreitung, z.B. im Server-Bereich
2
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
3
Einführung, Historie
Ursprung: Mitte der 60-iger Jahre, gemeinsames Projekt von AT&T, General Electric und dem MIT
Wichtige Randbedingungen:Erstellt von Softwareentwicklern und Systemprogrammierern
Unix ist ein System aus der Praxis für die Praxis.
Der Zeit entsprechende harte SpeicherplatzbeschränkungenTypische Hauptspeicher hatten seinerzeit 64 bis 128 kB!
Small is beautiful!
Die Entwickler benutzten Unix selbst.Was du nicht willst, das man dir tu’, das füg’ auch keinem anderen zu!
Viele kommerzielle und universitäre Varianten
Standard seit 1989: System V, Release 4
Es gibt viele Unix-Versionen mit Bezug auf den Standard: SunOS (Sun Workstation) Darwin (Mac OS X)Linux (PC) AIX (IBM)
. . .
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
4
Zugang, einige einfache Kommandos
An- und Abmelden:mit Usernamen und Passwort
Anmeldung an den AIX-Server der FH:Mit den Windows-Zugangsdaten über sshunter MS Windows:
Nach erfolgreichem Einloggen erscheint das Prompt der Shell:$ _
Achtung:Unix ist case-sensitive.
Rechnername für den Externzugriff.
Intern genügt login.
Nach Eingabe des Benutzernamens
mit Connect verbinden. Nach erfolgreicher Verbindung einloggen.
Cursor(Eingabemarke)
3
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
5
Zugang, einige einfache Kommandos
Die korn shell ist die Standard-Login-Shell des AIX-Servers.Wechsel zur Bourne Again Shell durch Eingabe von bash.
Es erscheint:bash-4.0$ _ oder auf anderen Rechnern nur bash$ _
Weitere Login-Möglichkeiten:Aus einer Shell heraus mit ssh oder su.
Remote-Login:ssh [<username>@]<hostname> oder ssh [–l <username>] <hostname>
Bei fehlendem Usernamen wird der aktuelle genommen. (secure shell)
Identitätswechsel:su [-] [<username>] (switch user)
Fehlender Username: Login als root (Administrator)Das – bewirkt einen Wechsel der Arbeitsumgebung
(z.B. Ausführung der Login-Scripte des neuen Benutzers).
Schalter eines Unix-Kommandos.
Hier mit Parameter
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
6
Zugang, einige einfache Kommandos
Änderung des Passworts:passwd
Verlassen einer Shell:exit
Schließung der Login-Shell = Ausloggen
Datum und Uhrzeit:date
Angemeldete Benutzer:who
Die Variantewho am I
zeigt, als welcher Benutzer man im aktuellen Fenster angemeldet ist.(Das who–Kommando ist an der HS Ka aus Sicherheitsgründen deaktiviert)
4
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
7
Zugang, einige einfache Kommandos
Online-Hilfe:man ([<knr>] <kommando> | -k <suchwort>)
Kapitelstruktur der Manpages (manual pages):1. Kommandos (einschl. BS-Kommandos)2. Systemaufrufe3. Bibliotheksaufrufe
…<knr>: Vorgabe der Kapitelnummer. Default: niedrigste KapitelnummerNeuere Versionen (z.B. Linux) zeigen die Alternativen.
Aufbau einer Hilfe-Seite:Purpose: Kurze Beschreibung des KommandosSyntax (BNF-angelehnt)Description: ausführliche Beschreibung einschließlich aller OptionenExamples (optional): einige BeispieleBugs (optional): Bekannte FehlerSee also: Querverweise
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
8
Zugang, einige einfache Kommandos
Online-Hilfe (2):-k <suchwort>: Stichwortsuche über alle Kapitel. An der FH nicht verfügbar.
Beispiel:
Übungen:man clear Beispiel eines einfachen Kommandosman ls Beispiel eines umfangreicheren Kommandos
5
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
9
Umgang mit der Shell
Umgang mit der ShellHistory, Command-Line-Editing, Completion, Programmabbruch
History:Speicherung aller Eingaben auch über eine Sitzung hinaus.
history!<nr> Wiederholung des Kommandos mit der Nummer <nr>!<bef_anf> Wiederholung des letzten mit <bef_anf> beginnenden Kommandos
Alternative Navigation in der History-Liste mit den Pfeiltasten:
Selektion und Ausführung eines Kommandos der Liste:
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
10
Umgang mit der Shell
Command-Line-Editing:Funktion der bash und anderer Shells (nicht der korn-Shell !)
Einige Kommandos:Pfeiltasten: Verschieben des Cursors in der Befehlszeile Rückw Löschen nach linksBackspaceEntf Del Löschen des Zeichens unter dem CursorCtrl + a Sprung an den Anfang.Ctrl + e Sprung ans Ende.Ctrl + k Löschen ab Cursor bis Zeilenende. Ctrl + u Löschen der gesamten Befehlszeile.+ bedeutet gleichzeitiges Drücken: am Besten erst Ctrl und sofort danach den Buchstaben.
Übung:Editieren eines Kommandos aus der History und mit Return abschicken.
6
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
11
Umgang mit der Shell
Completion:Vervollständigung der Eingabe durch die Tab-Taste:
VervollständigtBS-Kommandos (einschl. installierter Software)DateinamenPfadnamen
sofern der Anfang eindeutig ist.
Bietet beim zweiten Drücken die Alternativen an.
Resultat: Prüfung während der Eingabe !
Übung:1. Vervollständigung von his2. Vervollständigung von da
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
12
Umgang mit der Shell
Programmabbruch:Wichtige Control-Sequenzen:Ctrl + c ProgrammabbruchCtrl + z Unterbrechung der ProgrammausführungCtrl + d Beendigung der Eingabe
Übung:1. Kommando wc Was passiert?
Abbruch mit Ctrl + c Ergebnis?
2. Kommando wcAbbruch mit Ctrl + d Ergebnis?
7
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
13
Unix-Filesystem
Das Unix Filesystem
Vier unterschiedliche Dateiarten:1. Ordinary Files (Reguläre oder gewöhnliche Dateien):
Aus Benutzersicht die häufigste Dateiart Die Daten sind unstrukturiert. Ihre Interpretation hängt vom bearbeitenden Programm ab.Die Bedeutung von Dateierweiterungen ist reine Konvention.(Gilt so nicht für Desktops)
2. Directory (Dateiverzeichnis):Dienen der VerzeichnisverwaltungPro Verzeichnis zwei Dateien, bezeichnet mit . und ..
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
14
Unix-Filesystem3. Special Files (spezielle Gerätedateien):
Repräsentieren die logische Beschreibung von physikalischen Geräten, wie z.B. Bildschirm, Festplatten, Drucker, usw. Befinden sich im Verzeichnis /dev
4. Named Pipes:Spezielle Pipes, hier nur der Vollständigkeit halber erwähnt.
Verzeichnisstruktur:Ein einheitlicher VerzeichnisbaumEin Hauptverzeichnis (root directory), dargestellt durch: /Weitere Standardverzeichnisse:
/user enthält die Home-Directories der Benutzer/dev Devicefiles/usr Systemsoftware, installierte SW, Libraries, Manuals, .../export für den Netzzugriff/etc Konfigurations- und Logindaten.
. . .
8
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
15
Unix-Filesystem
Verzeichnisse eines Benutzers:Home-Directory pro Benutzer fest zugeordnetes Verzeichnis
Login-Directory Verzeichnis nach dem Einloggen. Häufig identisch mit dem Home-Verzeichnis
Working-Directory aktuelles VerzeichnisErfragbar mit: pwd (print working directory)
Regeln für File- und Verzeichnisnamen:maximal 255 Zeichenunzulässige Zeichen: / ? * “zulässige, aber von der Shell interpretierte Zeichen: < > | Leerzeichen (Blank)
optionale Trennung des Namens durch PunkteDer am weitesten rechts stehende Teil heißt Dateierweiterung oder Extention.Beispiele: prog.o index.html gcc.3.0.5
Mit einem Punkt beginnende Dateinamen gelten als „versteckt“: .bin-mal-weg
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
16
Unix-FilesystemVerzeichnisbaum:/|+-dev|+-home| || +-herbert| || +-erich| | || | +-briefe| | | || | | +-anna| | | | || | | | +-brief1.txt| | | | || | | | +-brief2.txt| | | || | | +-gabi| | | | || | | | +-brief1.txt| | | | || | | | +-brief2.txt| | | || | | +-marie| | | || | | +-brief1.txt| | || | +-faxe| | | || | | +-bank| | | || | | +-vater
Drei Möglichkeiten ein Verzeichnis / eine Datei anzugeben:
absoluter Pfad: Geht vom Wurzelverzeichnis aus. Beispiel: /home/erich/briefe/anna
relativer Pfad: Geht vom Working-Directory aus.Beispiel von Erich’s Bankfaxe-Verzeichnis ausgehend:
../../briefe/anna
Pfadangabe ab dem Home-Directory: Beispiel: ~/briefe/annaDie Tilde ersetzt dabei das Home-Verzeichnis. Aus Benutzersicht ist er wie ein absoluter Pfad.
Was unterscheidet den Gültigkeitsbereich dieser Pfade?absoluter Pfad:Home-Verz.-Pfad:relativer Pfad:
9
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
17
Unix-Filesystem
Ein absoluter Pfad beginnt immer mit dem /
Ein relativer Pfad beginnt miteinem Verzeichnisnamen: beschreibt ein Verzeichnis im aktuellen Arbeitsverz../: bezeichnet das aktuelle Arbeitsverzeichnis..: bezeichnet das Verzeichnis über dem Arbeitsverz.
Welche Pfade sind gültig (pwd /home/erich/faxe/vater)?home/erich/briefe/anna/brief2.txt../../briefe/anna/brief2.txt/home/herbert../bank../gabi/brief3.txt~/gabi/brief2.txt~/briefe/marie/brief1.txt./faxVonGestern.txt
Verzeichnisbaum:/|+-dev|+-home| || +-herbert| || +-erich| | || | +-briefe| | | || | | +-anna| | | | || | | | +-brief1.txt| | | | || | | | +-brief2.txt| | | || | | +-gabi| | | | || | | | +-brief1.txt| | | | || | | | +-brief2.txt| | | || | | +-marie| | | || | | +-brief1.txt| | || | +-faxe| | | || | | +-bank| | | || | | +-vater
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
18
Unix-Filesystem
Zugriffsrechte:Drei Benutzerklassen:
user (u) Eigentümer des Objekts. Eigentümer ist der, der es angelegthat oder dem diese Rechte nachträglich übertragen wurden.
group (g) Gruppe von Benutzern. Ein Benutzer kann mehreren Gruppen angehören.
others (o) Alle anderen Benutzer
Drei Zugriffsrechte:read (r) Leserecht. Bei Verzeichnissen darf der Inhalt gelesen werden. write (w) Schreib- und Löschrecht. Bei fehlendem Schreibrecht kann
nach entsprechendem Nachfragen trotzdem gelöscht werden. execute (x) Ausführungsrecht. Bei Verzeichnissen vollständiger Zugriff.
D.h., der fremde Benutzer kann es zu seinem Working-Directory machen,neue Dateien anlegen und auf Dateien je nach ihren Rechten zugreifen.
10
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
19
Unix-FilesystemZugriffsrechte (2):
Zum Zugriff auf eine Datei muss man Zugriff auf alle Verzeichnisse des Pfads und die Datei selbst haben.Das Recht, eine Datei anzulegen oder zu löschen hängt letztlich von den Verzeichnisrechten ab. Daher wird ein fremder Zugriff am effektivsten über Verzeichnissperren blockiert.
jar - -
-- - -jajar - x
jar - -
-- - -ja-- - x
-r - -
-- - --(-)r - -
-r - -
-- - ---- - -
Datei lesenDateirechtecdVerz.-ListingVerzeichnisrechte
cd: Kommandozum Verzeichnis-wechsel
(-): Anzeige nur der Namen der Objekte
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
20
Unix-Filesystem
Zugriffsrechte (3):
Der Administrator (root) kann unabhängig von den Zugriffsrechten immer auf alles zugreifen. Warum?
jar w -
(-)r - -jar w x
-r w -
-r - --r - x
-r w -
-r - --r w -
-r w -
-r - --r - -
Datei löschen oder schreibenDateirechteDatei anlegenVerzeichnisrechte
(-): Löschen nur nach Rückfrage
11
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
21
Unix-FilesystemFür Unix existieren verschiedene Filesysteme. Einige gebräuchliche:
maximale
Journaling BS Filegröße Filesystemgröße Dateianzahl
Reiser ja Linux, BSD 1 EB 1 EB 232-3
ext3 ja Linux, BSD 2 TB 32 TB variabel
ext4 ja Linux FS-Größe 1 EB variabel
UFS ja Solaris, 8 ZB 8 ZB variabelFreeBSD, NetBSD, (Max OS X, Linux)
xfs ja IRIX, Linux, 8 EB 8 EB 263 (~8*1018)FreeBSD
HFS+ ja, optional Mac OS 8, 9, X, 8 EB 16 EB 232-1teilweise Linux
1 TB = 1012 Byte, 1 PB = 1015 Byte, 1 EB = 1018 Byte, 1 ZB = 1021 ByteTera Peta Exa Zetta
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
22
Datei- und verzeichnisorientierte Kommandos
Datei- und verzeichnisorientierte Kommandos:
Generell: Behandlung nur der wichtigsten Kommandos und OptionenSiehe Literatur und die Online-Dokumentation (z.B. man pages).
<datei> meint immer Datei oder Verzeichnis plus optionalem Pfad.
Wildcards:*: kein, ein oder mehrere beliebige Zeichen?: genau ein beliebiges Zeichen
Übungen:Was bedeutet:1.briefe*.doc
Was gehört dazu: briefe.doc briefe1.doc briefAnErich.doc
2.briefe?.docWas gehört dazu: briefe.doc briefe1.doc brief01.doc
12
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
23
Datei- und verzeichnisorientierte Kommandos
Ausgabe des Verzeichnisinhalts:ls [<optionen>] [<datei(en)>]
Einige Optionen:-a Auch Einträge, die mit einem Punkt beginnen, anzeigen-l Anzeige in ausführlicher Form-r Reihenfolge der Ausgabe umkehren-t Sortierung nach dem Zeitpunkt der letzten Änderung-F Hinter jedem Verzeichnisnamen ein /, hinter jeder ausführbaren Datei ein *-R Ausgabe inklusive aller Subdirectories und deren Files
Die Optionsschalter sind miteinander kombinierbar, so liefern z.B.ls -la und ls -l -a
dasselbe Ergebnis.
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
24
Datei- und verzeichnisorientierte Kommandos
Ergebgnis von ls –la:total 1048drwx------ 7 jawi0001 fbg01 1024 Feb 01 09:38 .drwxr-xr-x 712 bin bin 14848 Feb 02 15:06 ..-rw-r--r-- 1 jawi0001 fbg01 10326 Jan 08 11:04 .pinerc-rw-r--r-- 1 jawi0001 fbg01 177 Jun 27 1997 .plan-rwxr-xr-x 1 jawi0001 fbg01 713 May 03 1996 .profiledrwxr-xr-x 2 jawi0001 fbg01 512 Jan 18 17:01 .public_html-rw-r--r-- 1 jawi0001 fbg01 18 Jan 08 10:41 ausg.tmp-rw-r--r-- 1 jawi0001 fbg01 2141 Jun 27 1997 cline.gifdrwx------ 2 jawi0001 fbg01 512 Jan 08 11:04 mail
Zeitstempel(letzte Modifikation)
Zugriffscodes für User, Group und Others zu je drei Rechte: r, w, x. - = Recht ist nicht
gesetzt.
Spalte Dateiart:- = Ordinary Filed = Directoryl = Link. . .
Gesamtgröße in Blöcken
FilenamenDateigröße in Bytes
Gruppe des Datei-
besitzers
Username des Dateibesitzers
Gilt so für AIX !Gilt so für AIX !
13
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
25
Datei- und verzeichnisorientierte Kommandos
Übung:Was bedeuten: rwxr-xr--
rw-r--r--
Änderung der Zugriffsrechte:chmod [-R] <wer><operator><was> <objekt(e)> (change mode)
<wer>: u, g, o oder a = alle, also ugo<operator>: + fügt die Rechte hinzu
- nimmt die Rechte weg= setzt die Rechte neu
<was>: r, w, x (die Zugriffsrechte)
<objekt(e)>: Dateien, Verzeichnisse
Wie verlieren bei obigen Dateien Gruppe und Andere alle Rechte?
.
-R : rekursiver Abstieg:Änderung der Rechte aller Dateien und Verzeichnisse des angegebenen Verzeichnisses
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
26
Datei- und verzeichnisorientierte KommandosAusgabe des Working Directories (aktuellen Verzeichnisses):
pwd (print working directory)
Anlegen eines oder mehrerer Verzeichnisse:mkdir [<optionen>] <verzeichnis(se)> (make directory)
Erzeugung der Verzeichnisse im aktuellen Verzeichnis.-p: legt ganze Pfade an. Also auch Zwischenverzeichnisse.
Beispiel:mkdir neu/zwischen/ganzneu Geht das?
Verzeichniswechsel:cd [<verzeichnis>] (change directory)
<verzeichnis> kann auch ein Pfad sein. Ohne <verzeichnis>: Wechsel zum Home-Verzeichnis
14
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
27
Datei- und verzeichnisorientierte Kommandos
Übungen:1. Einloggen und Bourne Shell mit bash aufrufen.
2. Verzeichnis uebung anlegen:
3. Verzeichniswechsel nach uebung:
4. Erzeugung einer Datei durch: ls > bsp.txt (Erklärung später)
5. Anzeige des Verzeichnisinhalts:
6. Anzeige des Dateiinhalts:
7. Die Datei privatisieren:
8. Prüfen:
9. Sich selbst das Leserecht nehmen:
10.Prüfen:
11.Anzeige des Dateiinhalts:
12.Leserecht wieder setzen und überprüfen:
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
28
Datei- und verzeichnisorientierte Kommandos
Kopieren von Dateien:cp [<optionen>] <quell-datei> <ziel-datei> (copy)
Die Quelldatei wird unter dem Namen der Zieldatei angelegt. Eine existierende Zieldatei wird überschrieben.Eigentümer wird derjenige, der das Kommando ausführt.
Kopieren ins aktuelle Verzeichnis:cp [<optionen>] <quell-datei> .
Optionen:-i Aktiviert Nachfrage bei existierender Zieldatei
-r Kopiert ganze Verzeichnisbäume, Quelle und Ziel müssen Verzeichnisse sein.Zielverzeichnis existiert: Neues Unterverzeichnis mit dem Namen des Quellverz.Zielverzeichnis existiert nicht: Erzeugung und Hineinkopieren des Inhalt des Quellverzeichnisses.
15
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
29
Datei- und verzeichnisorientierte Kommandos
Dateien oder Verzeichnisse umbenennen und verschieben:mv [<optionen>] <quelle> <ziel> (move)
Quelle und Ziel im gleichen Verzeichnis? Ja: Umbenennen!Nein: Verschieben!
Quelle und Ziel sind Verzeichnisse: Verschiebung des Quellverzeichnisbaums.Bei gleichem Laufwerk werden nur Verzeichniseinträge verändert.–i-Option: Nachfragen bevor überschrieben wird.
Ausgabe des Inhalts einer oder mehrerer Dateien:cat [<optionen>] [<datei(en)>] (concatenate)
Eine oder mehrere Dateien werden hintereinander ins Terminal ausgegeben.Fehlt die Dateiangabe, wird vom Terminal gelesen! (Abbruch mit ctrl + d)
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
30
Datei- und verzeichnisorientierte Kommandos
Löschen von Dateien:rm [<optionen>] <datei(en)> (remove)
Fehlende Schreibrechte: Nachfragen
Optionen:–i Nachfragen, bevor gelöscht wird.-r Löschung von Verzeichnissen samt Inhalt (rekursiver Abstieg)
Vorsicht! Ohne -i erfolgt keine Nachfrage!
Was bewirkt rm –r .. ?
Löschen von Verzeichnissen:rmdir <verzeichnis(se)> (remove directory)
Die Verzeichnisse müssen leer sein.
16
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
31
Übungen:1. Erzeugung folgenden Verzeichnisbaums in uebung:
uebungsub1
sub1_asub1_b
sub2sub2_asub2_b
2. Anzeigen des Verzeichnisbaums:
Falls anderes Ergebnis:1. Sicherstellen, dass in uebung:
cd ~/uebung2. Listing der Verzeichnisse in uebung:
ls -F3. Löschung der angelegten Verzeichnisse
samt Unterverzeichnissen: rm –r sub1 sub2
Datei- und verzeichnisorientierte Kommandos
bsp.txt sub2/ sub1/ ./sub1:sub1_a/ sub1_b/
./sub1/sub1_a:
./sub1/sub1_b:
./sub2:sub2_a/ sub2_b/
./sub2/sub2_a:
./sub2/sub2_b:
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
32
Übungen:3. Kopieren von bsp.txt nach sub1:
4. Anzeigen des Verzeichnisbaums:
5. Kopieren von bsp.txt nach sub2_a als doc-File:
6. Wechsel nach sub1 und Kopieren des doc-Files nach sub1_a (relative Pfade):
Datei- und verzeichnisorientierte Kommandos
17
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
33
Datei- und verzeichnisorientierte Kommandos
Übungen:
7. Anzeigen des gesamten Verzeichnisbaums:
8. Wechsel ins uebung-Verzeichnis mit einem Pfad ab dem Homeverzeichnis:
9. Ermittlung des Pfads zum Homeverzeichnis:
10.Wechsel ins sub2-Verzeichnis mit einem absolutem Pfad:
ls -FR ..bsp.txt sub1/ sub2/../sub1:bsp.txt sub1_a/ sub1_b/
../sub1/sub1_a:bsp.doc
../sub1/sub1_b:
../sub2:sub2_a/ sub2_b/
../sub2/sub2_a:bsp.doc
../sub2/sub2_b:
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
34
Datei- und verzeichnisorientierte KommandosVerweise auf Dateien und Verzeichnisse:
ln [<optionen>] <original> <link> (link)
Hard- und Softlinks.
Die gebräuchlicheren Softlinks (-s) erlauben Verweise:auf Verzeichnisse über Dateisystemgrenzen innerhalb eines Verzeichnisbaums hinweg
Übung und Beispiel:Erzeugung eines Softlinks namens myLink zum Verzeichnis sub1_a in uebung:
18
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
35
Redirection, Pipes und Filter
Redirection, Pipes und Filter:
Redirection:Umlenkung der Standard-aus- und -eingabe.
Standardeingabe: Tastatur Standardausgabe: Bildschirm Fehlerausgabe: Bildschirm
Diese drei Datenströme kann man in Dateien umlenken:Standardeingabe: <kommando> < <datei> Eingabe aus Datei statt Tastatur
Standardausgabe: <kommando> > <datei> Ausgabe in Datei statt Bildschirm<kommando> >> <datei> Ausgabe an Datei anhängen
Fehlerausgabe: <kommando> 2> <datei> Ausgabe in Datei statt Bildschirm<kommando> 2>> <datei> Ausgabe an Datei anhängen
Warum die 2 ?
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
36
Redirection, Pipes und Filter
Redirection (2):Das kann man kombinieren, z.B.:
<kommando> < abc >> uvw 2> xxyz
Das bedeutetLesen aus:Schreiben nach: wie:Fehler nach: wie:
19
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
37
Redirection, Pipes und Filter
Pipes:Verknüpfung zweier Kommandos derart,
dass die Ausgabe des ersten zur Eingabe des zweiten wird.
Beispiel zu Motivation:Zählung der Objekte in einem Verzeichnis:
cd ~/uebung sichert ab, dass in uebungls > dir.tmp Liste aller Objekte in dir.tmpwc -w dir.tmp Zählt die Worte in einer Datei.rm dir.tmp Diese Datei brauchen wir nicht mehr.
Das ist umständlich!Viel besser wäre es, die Ausgabe von ls mit der Eingabe des wc zu kombinieren.
Etwa so:
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
38
Redirection, Pipes und Filter
Pipes (2):Syntax der Kommandoverknüpfung mit Pipes:
<kommando> (| <kommando>)+
Wie sähe das Zählbeispiel aus?
Die Syntax zeigt, dass viele Kommandos mit einer Pipe verknüpft werden können.
Pipes und Redirection kann man miteinander kombinieren. Z.B.:ls | wc –w > fileAnz.txtcat fileAnz.txt Prüfen, was in der Datei steht!
20
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
39
Redirection, Pipes und Filter
Pipes (3):
Zwischenergebnisse gehen in Pipes verloren.
Mit dem tee-Kommando kann man sie abspeichern:tee [<optionen>] <datei>
Durch die -a-Option können die Daten an die Datei angehängt werden. Default ist ein Neuanlegen.
Beispiel:ls | tee dliste.txt | wc –wcat dliste.txt
tee ist so eineArt T-Stück:
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
40
Redirection, Pipes und Filter
Filter:Kommandos, die durch den Pipe-Mechanismus verknüpft werden können.Also alle Befehle, die
ihre Eingabe vom Terminal erwarten, wenn keine Datei angegeben wird, und/oderihre Ergebnisse auf das Terminal ausgeben
Wichtige Filterbefehle:cat Verbindet Dateien, Ergebnis ins Terminal (siehe Folie 29)wc Zählt Zeilen, Worte und Zeichenfgrep, grep Sucht nach Zeichenketten und Suchmusternsort Sortiertmore Passt die Ausgabe an die Fenstergröße an, seitenweise Ausgabetail Teilweise Ausgabe einer Datei
. . .
21
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
41
Redirection, Pipes und Filter
Ermittlung der Anzahl der Zeichen, Worte und Zeilen:wc [optionen] [<file>] (word count)
Optionen:-l Zählung der Zeilen (lines)-w Zählung der Worte (words)-c Zählung der Zeichen (characters)
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
42
Redirection, Pipes und Filter
Durchsuchen von Dateien nach einem String:fgrep [<optionen>] <string> [<file(s)>] (fast grep)
Standardausgabe ist die gefundene Zeile.Bei mehreren Dateien wird der Dateiname der Ergebnismeldung vorangestellt.
Einige Optionen:-i Ignoriert die Groß/Kleinschreibung bei der Suche.-v Ausgabe der Zeilen, die den String nicht enthalten.-n Zusätzliche Ausgabe der Zeilennummer
Leistungsstärkere Variante:grep [<optionen>] <reg-expr> [<file(s)>] (get regular expression)
Einfachste Form eines regulären Ausdrucks (siehe Literatur): ein String
22
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
43
Redirection, Pipes und Filter
Übungen:1. Vorbereitung:
cd ~/uebungcp bsp.txt karl.txtcp bsp.txt otto.txtcp bsp.txt luise.datcp bsp.txt xantippe.tmp jetzt sollten 5 Dateien im Verzeichnis uebung stehen!
2.ls –F > nameList.txt Legt eine Datei mit den Objektnamen ancat nameList.txt Was steht drin?
3. Wie zählt man die darin enthaltenen Files? Erst mal selektieren! Wie?
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
44
Redirection, Pipes und Filter
Übungen:
4. Extraktion der Filenamen in fnamen.txt und Ermittlung ihrer Anzahl:
5. Ermittlung der Unterverzeichnisse im Arbeitsverzeichnis:
23
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
45
Redirection, Pipes und Filter
Sortieren:sort [<optionen>] [<datei(en)>]
Das Ergebnis der zeilenweisen Sortierung wird ins Terminal geschrieben. Der Inhalt der Dateien bleibt dabei unverändert.Mehrere Dateien werden als Ganzes sortiert.
Optionen:-d Lexikographische Sortierung (nach Buchstaben, Ziffern und Leerzeichen) -f Ignorierung von Groß- und Kleinschreibung -r Rückwärts sortieren-o <file> Ergebnisausgabe in die Datei <file> statt ins Terminal
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
46
Redirection, Pipes und Filter
Übungen:1. Absteigende Sortierung der Filenamen und Ausgabe aufs Terminal:
2. Absteigende Sortierung des Inhalts der Datei fnamen.txt:
24
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
47
Redirection, Pipes und Filter
Seitenweise Anzeige:more [<optionen>] [<datei(en)>]
Nach jeder Bildschirmseite wartet more auf eine Eingabe. Einige Kommandos:<leertaste> Nächste Seite anzeigen<return> Nächste Zeile anzeigen.b Eine Seite zurück.q Quit. Beenden von more.
Einige Optionen:-c Clear screen. Der Bildschirm wird vor jeder Ausgabe gelöscht.-<n> Seitenwechsel nach <n> Zeilen.+<n> Ausgabe erst ab der <n>-ten Zeile der Datei.
Eine typische Anwendung ist die seitenweise Ausgabe des Verzeichnisses mitls -la | more
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
48
Redirection, Pipes und Filter
Teilweise Ausgabe einer Datei:tail [<optionen>] [<datei>]
Einige Optionen:+<n> Ausgabe ab der n-ten Zeile-<n> Ausgabe der letzten n Zeilen-f Permanente Ausgabe der letzten Zeilen einer Datei bei Aktualisierung
Anwendungsbeispiel:Überwachung einer Errorlog-Datei bei der Script-Entwicklung für Internetanwendungen:
tail –f messages.log
25
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
49
Editor pico
Editor pico:Neben dem Standardeditor vi ein verbreiteter einfacher Editor. Aufruf:
pico [<file>]
Online Hilfe:Ctrl + g
Filename
Titelzeile
Dateiinhalt
Man beachte, dass die Maus hier nicht funktioniert!
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
50
Editor picoAlles weitere kann man der Online-Hilfe entnehmen:
Die Ctrl-Taste wird hier durch ein ^ dargestellt. Bei Aufruf ohne Dateiangabe wird bei Beendigung nach einem Dateinamen gefragt.Bei Beendigung ohne vorherige Sicherung erfolgt eine Abfrage.
26
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
51
Kommandos zur Prozessverwaltung
Unix Prozesskonzept und prozessorientierte Kommandos:Prozess = ein Programm während der Ausführung (etwas vereinfacht)
Ein Programm kann mehrfach gestartet werden mehrere Prozess-Inkarnationen eines Programms
Zwei Arten von Prioritäten: Eine wird vom System vergeben, die andere vom Benutzer (nice).
Systemprioritäten je nach bisher verbrauchter Zeit, Größe, Wartezeit oder Ausführungsmodus (System- oder Benutzermodus), …
Prozesse können ihrerseits Prozesse, sog. Child-Prozesse, erzeugen.
Jeder Prozess erhält eine eindeutige Identifikationsnummer, die PID (processidentification). Diese wird in Kommandos benötigt.
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
52
Kommandos zur Prozessverwaltung
Liste aller Prozesse:ps [<option(en)>]
Wichtige Optionen:-e Informationen über alle Prozesse (every)-f Vollständige Informationen, darunter die gesamte Aufrufzeile (full)-l Viele Informationen (long)-t<tn> Beschränkung auf die dem Terminal <tn> zugeordneten Prozesse-u<un> Beschränkung auf die dem User <un> zugeordneten Prozesse.
<un> kann die UID oder der Login-Name sein.
Das eigene Terminal kann man mitwho am I
in Erfahrung bringen (2. Spalte).
27
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
53
Kommandos zur ProzessverwaltungBeispiel:ps -l –u jawi0001S UID PID PPID C PRI NI SZ WCHAN TTY TIME CMDR 163008 13473 24551 13 66 20 140 pts/20 0:00 psS 163008 24551 42462 1 60 20 288 pts/20 0:03 bashS 163008 42462 36061 0 60 20 284 pts/20 0:00 ksh
Erläuterungen:S Prozesszustand: R=Running, S=Sleep, W=Waiting, ... (state)UID Benutzernummer (user identification)PID Prozessnummer (process identification)PPID PID des Elternprozesses (parent process identification)PRI Priorität: je größer die Zahl, desto geringer die Priorität (priority)NI Nice-Wert: je größer die Zahl, desto geringer die PrioritätSZ Prozessgröße in Seiten. Die Seitengröße ist rechnerabhängig. (size)WCHAN Ereignis(se), auf die der Prozess wartet.TTY zugeordnetes TerminalTIME bisher verbrauchte CPU-ZeitCMD Kommandoname
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
54
Die bash ist ein Child-Prozess der
ksh
Kommandos zur Prozessverwaltung
Prozessaufruf-Ketten:
Beispiel:ps -l –u jawi0001S UID PID PPID C PRI NI SZ WCHAN TTY TIME CMDR 163008 13473 24551 13 66 20 140 pts/20 0:00 psS 163008 24551 42462 1 60 20 288 pts/20 0:03 bashS 163008 42462 36061 0 60 20 284 pts/20 0:00 ksh
Login Shellksh
Der ps-Prozess ist ein Child-Prozess der
bash
28
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
55
Kommandos zur Prozessverwaltung
Nice-Priorität:Dient dazu, rechenzeit-intensive Programme auf die Nutzung ungenutzter Zeiten zu
beschränken.
Damit verhält man sich nett zu den anderen Benutzern, ist also „nice“.
nice [-<incr>] <prog_aufruf><incr>: Default 10. Je größer der Wert, desto geringer die Priorität.
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
56
Kommandos zur Prozessverwaltung
Prozessterminierung:kill -9 <pid>
9 steht für SIGKIL, ein vom Prozess nicht ignorierbares Signal.
Voraussetzung:Eigener Prozess, d.h. vom gleichen Benutzer gestartet.Man verfügt als Administrator über die notwendigen Rechte.
Vorsicht:Alle noch nicht geschriebenen Daten können verloren gehen und vom Programm geöffnete Dateien können zerstört werden.
29
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
57
Kommandos zur ProzessverwaltungHintergrundprozesse:Ein aus einer Shell gestartetes Programm mit eigenem Fenster
blockiert die Shell.
Lösung:Starten des Programms als Hintergrundprozess:
<prog_aufruf> &
Wenn er schon gestartet ist:Mit Ctrl + z unterbrechen (suspend) und mit
bg (background)als Hintergrundprozess fortsetzen.
Liste der aktuellen Background-Jobs:jobs [<option(en)>]
Beispiel:jobs -l[1]+ 45817 Running xemacs &
PIDAufrufzeile
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
58
Kommandos zur Prozessverwaltung
Übung:1. Start des Editor pico im Hintergrund:
[1] 847914
2. Auflistung der Hintergrundjobs:
[1]+ 847914 Stopped (tty output) pico
3. Terminierung des Hintergrundjobs:
[1]+ Killed pico
PID
lfd. Nummer des Hintergrundjobs
30
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
59
Shell-Scripts
Shell-Scripts:Shell-Scripts sind Textdateien:
Enthalten eine Folge von Programmaufrufen und /oder Shell-KommandosKönnen eine Ablaufsteuerung enthalten Beim Aufruf können dem Script Parameter mitgegeben werden
Sie spielen in der Administration und Konfiguration von Unix eine große Rolle.
Jede Shell hat ihre eigene Kommandosprache. Daher ist ein Eintrag in der ersten Zeile notwendig, der die ausführende Shell bestimmt. z.B.:
#!/usr/bin/ksh für die Korn shell
#!/usr/pack/bash-4.0-ab/bin/bash für die Bourne again shell
Aufruf:source <script-file> ( <parameter>)*
Wenn die Scriptdatei ausführbar ist (x-Recht), kann man source weglassen.
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
60
Shell-Scripts
Kommando-Übersicht:Ein- und AusgabekommandosLogische und arithmetische AusdrückeAblaufkontrolle:
Bedingte AnweisungenZählschleifenbedingte SchleifenSchleifenabbruch
KommentareKommando zum Verlassen des ScriptsAufruf anderer ScriptsAuswertung von Exit-Stati aufgerufener Programme und Shells
31
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
61
Shell-Scripts
Login-Scripts:Eine der Login-Shell zugeordnete Script-Datei, die beim Login durchlaufen wird.Login-Scripts stehen im Home-Directory.
Für die korn-Shell: .profile Testaufruf ohne Aus/Einloggen: . .profileDarin könnte stehen: bash # Aufruf einer besseren Shell
Für die bash: .bashrcDie bash ist moderner und folgt dem Ressourcenfile-Schema: .<progname>rc
Darin können z.B. Kommando-Makros (alias) oderDefaultrechte für neu angelegte Dateien und Verzeichnisse (umask)
vereinbart werden.
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
62
Shell-Scripts
Ausgabe:echo "<string>"
Die Zeichenkette <string> darf leer sein oder Variablen enthalten.
Beispiele:echo "Hallo Karl-Otto, auf geht‘s! "echo ""echo "Der Pfad lautet heute: $PATH"
Kommentar:Der Text hinter einem # ist ein Kommentar.
32
Betriebssysteme Dr. W. JakobStudiengang Kartographie und Geomatik Unix.ppt
63
Shell-Scripts
Kommando-Makros:alias <name>=<wert>
Der wert muss in Anführungszeichen stehen, wenn Blanks enthalten sind.
Auflistung aller Definitionen: aliasLöschung einer Definition: unalias <name>Löschung aller Definitionen: unalias -a
Beispiele:alias ll="ls –laF" # ausführliches Listingalias dt="ls -ctl" # Nach Datum absteigend sortiertalias ld="ls -l | fgrep drwx" # Auflistung aller Verzeichnissealias ty=morealias h=historyalias ren=mv
Top Related