UNIX/Linux-Betriebssystem Einführung · Entwicklungsgrundlage sind viele Komponenten des freien...
Embed Size (px)
Transcript of UNIX/Linux-Betriebssystem Einführung · Entwicklungsgrundlage sind viele Komponenten des freien...

Folie 1Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX/Linux-Betriebssystem Einführung
Version 2.26 Version 2.26
Ingenieurbüro Stockmayer GmbHIngenieurbüro Stockmayer GmbH
[email protected]@stockmayer.de
www.stockmayer.dewww.stockmayer.de

Folie 2Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Ingenieurbüro Stockmayer
Herzlich Willkommen!!

Folie 3Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Vorstellung des ReferentenVorstellung des Referenten

Folie 4Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Vorstellung der Teilnehmer
? Name
? Firma, Abteilung, Verantwortlichkeit
? Erfahrungen mit Betriebssystemen
? Gründe für Ihre Seminar-Teilnahme
? Erwartungen

Folie 5Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Organisatorisches
Teil-Teil-nehmer-nehmer-listeliste
Unter-Unter-lagenlagen
Kurs-Kurs-dauerdauer
PausenPausen

Folie 6Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Seminarziele
Sie können mit dem Betriebssystem UNIX umgehen
Sie haben den Überblick über Funktionen und Leistungsumfang, vor allem Shell, Dateisystem und Editor
Sie besitzen die Voraussetzung für den Ein-
stieg in die Softwareentwicklung unter UNIX und in die Systemadministration

Folie 7Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Inhalt
UNIX - EinführungUNIX - Einführung
UNIX - EigenschaftenUNIX - Eigenschaften
Die GrundlagenDie Grundlagen
Die wichtigsten Komponenten eines UNIX-SystemsDie wichtigsten Komponenten eines UNIX-Systems
– Benutzer und Gruppen Benutzer und Gruppen – DateisystemDateisystem– ProzesseProzesse– ShellShell– Editor viEditor vi
Kapitel 1
Kapitel 2
Kapitel 3
Kapitel 4
Kapitel 4.1
Kapitel 4.2
Kapitel 4.3
Kapitel 4.4
Kapitel 4.5

Folie 8Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Einführung
Inhalt • UNIX-HistorieUNIX-Historie
• UNIX-StandardsUNIX-Standards
• UNIX-DerivateUNIX-Derivate
• LINUX und GNULINUX und GNU
• UNIX-StrukturUNIX-Struktur
• Grafische Oberfläche X-WindowsGrafische Oberfläche X-Windows
• UNIX-PhilosophieUNIX-Philosophie
Kapitel 1
Kapitel 1

Die Anfänge von UNIX liegen in einem Betriebssystem-Entwicklungsprojekt namens MULTICS für Großrechner der Firma General Electric in den 60er Jahren.
Da die Benutzung des Betriebssystems sehr teuer war, entwickelten die Programmierer Ken Thompson, Brian Kernighan und Dennis Ritchie der Firma AT&T für den Minicomputer DEC PDP/7 eine kleine, einfache Version eines Betriebssystems, dem sie den Namen UNIX gaben.
Das UNIX-System wurde in der Programmiersprache C geschrieben.
Der Quellcode wurde gegen eine geringe Gebühr Interessenten (z.B. Unis) zur Verfügung gestellt.
Diese entwickelten das System für ihre eigenen Lehr- und Einsatzzwecke weiter.
Die daraus entstehenden Entwicklungslinien sorgten leider zum Auseinanderlaufen der Funktionalitäten und der Schnittstellen von UNIX.
Folie 9Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
1960
1970
1979
Projekt für Großrechenanlagen führt zur Entwicklung eines kleinen Betriebssystems:
Die Anfänge von UNIX
UNIX System V(entwickelt von eigentlichenUNIX- „Erfindern“)
BSD UNIX (eine Version: SunOS)Berkeley Software Distribution,an kalifornischer Universität entwickelt
Haupt-kategorien
Historie

Aufgrund der Rivalität unter den HW-Herstellern erfolgte lange keine Standardisierung von UNIX.
Es gibt daher viele UNIX-Varianten, sie können aber in zwei Hauptkategorien eingeteilt werden:
UNIX System V:Wurde von den eigentlichen „Erfindern“ von UNIX entwickelt (AT&T Bell Laboratories).
BSD UNIX (Berkeley Software Distribution):Wurde an der Universität von Kalifornien in Berkeley (weiter)entwickelt (z.B. SunOS von Sun Microsystems).
UNIX System V Release 4 (UNIX SVR4) kombinierte schließlich die Eigenschaften von AT&T UNIX und BSD UNIX.
Es kann heute als das Standard-UNIX betrachtet werden (Posix == IEEE1003 == IEC9945).
LINUX entspricht diesem Standard.
Folie 10Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Standards
UNIX V System + SunOS =
UNIX System V Release 4
Standard - UNIX
Kombination von Eigenschaften der Hauptkategorien ergibt heutiges Standard-UNIX:
heute als Solarisbezeichnet
2001

Weitere kommerzielle UNIX-Derivate:
- IRIX (SGI)
- Ultrix (DEC, veraltet)
- XENIX (Microsoft, veraltet)
- SINIX (Siemens, veraltet)
- NextStep ( --> Apple System X)
Weitere freie (nicht-kommerzielle) UNIX-Derivate:
- BSD 386
- GNU/Hurd
- NetBSD
Folie 11Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Derivate
• Einige kommerzielle UNIX- Derivate:
– SCO UnixWare (Santa Cruz Operations, „Original-UNIX“)– Solaris (SUN, hieß früher SunOS)– HP/UX (HP)– AIX (IBM)
• Einige freie (nicht-kommerzielle) UNIX- Derivate:
- LINUX
- FreeBSD
- Minix

Die Entwicklung von LINUX wurde 1990 von dem damals 23jährigen finnischen Informatikstudenten Linus Torvalds begonnen.
Das erste lauffähige LINUX-System wurde 1991 veröffentlicht.
Seitdem wird LINUX von vielen Freiwilligen über das Internet ständig weiterentwickelt
Die aktuelle Version 4.4 ist seit Mitte 2016 verfügbar (vorher gab es 1.0, 1.2, 2.0, 2.2, 2.4, 2.6 und 3.2).
Ausgangspunkt war Minix, ein Mini-Unix-System des Informatikprofessors Andrew Tanenbaum.
Entwicklungsgrundlage sind viele Komponenten des freien UNIX-Systems GNU („GNU is not UNIX“, ab 1985 von der FSF (Free Software Foundation) unter Leitung von Richard Stallman entwickelt).
Bis auf den Kern enthält das GNU-System alles (häufig in weit verbesserter Form), was ein UNIX-System braucht (Tools, C-Compiler, Editoren, usw.).
Der eigene Kern HURD ist leider immer noch nicht fertig.
Folie 12Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Linux und GNU
1990
1991
2016
Beginn der Entwicklung von LINUX durch Linus Torvalds
Ausgangspunkt: Minix ( = Mini - Unix - System)
Basis: GNU - System (freies UNIX - System), enthält alles, was ein UNIX System braucht
Erstes lauffähiges LINUX - System
aktuelle Version 4.12

1) Kern + Treiber(module)
Hardware-Abstraktion
Synchronisation der Ressourcen (CPU, Speicher, I/O, Interrupt)
Verwaltung der log. Einheiten (User, Dateisystem, Prozess, Netz)
2) Systemaufrufe (Schnittstelle zum Kern, etwa 1200, normiert)
3) Bibliotheken (Clib, Xlib, ...)
4) Dienstprogramme (UNIX-Kommandos: ls, cp, ...)
5) Benutzerschnittstelle (Shell, grafische Oberflächen)
6) Anwendungen (text- oder grafisch orientiert)
Folie 13Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Struktur
Unterscheidung von Abstraktionsebenen
1) Kern + Treiber(module)
2) Systemaufrufe
3) Bibliotheken
4) Dienstprogramme
5) Benutzerschnittstelle
6) Anwendungen
Hard-ware

UNIX gilt als „unfreundliches“ Betriebssystem, rein für SW-Entwicklungs-Experten:
Dies liegt zum einen daran, dass es lange keine (einheitliche) grafische Oberfläche gab.
Zum anderen ist die Administration schwer zu erlernen, da sie wegen der fehlenden Verwaltungs-Oberflächen per Editor über Konfigurationsdateien erfolgt.
Beide Punkte sind heute nicht mehr gültig (vor allem durch das Aufkommen von LINUX).
Folie 14Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Struktur
UNIX galt lange als „unfreundliches“ Betriebssystem, weil...
... es lange keine einheitliche grafische Oberfläche gab
... die Konfigurierbarkeit wegen fehlender Tools sehr mühsam war

Die grafische Oberfläche unter UNIX ist X-Windows.
Aufteilung in:
X-Server, der die Benutzerein- (Tastatur, Maus) und die Grafikausgabe kontrolliert.
X-Clients, die eigentlichen Anwendungen.
X-Windows arbeitet vollständig getrennt vom Betriebssystem:
Das Betriebssystem wird bei Fehlern nicht beeinträchtigt.
Kann weggelassen werden (Speicherplatz + Ressourcen).
Leicht gegen eine andere Oberfläche austauschbar.
Folie 15Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Grafische Oberfläche X-Windows
• Die grafische Oberfläche ist X-Windows
• X-Windows arbeitet getrennt vom Betriebssystem– keine Beeinträchtigung des Betriebssystem bei Fehlern – X-Windows kann weggelassen werden – leicht gegen andere Oberfläche austauschbar
X-Server X-Client
teilt sich auf in:

Der X-Server und die X-Clients sind grundsätzlich über Netzwerk miteinander verbunden (auch wenn sie auf dem gleichen Rechner laufen!).
Sie können daher (ohne Umprogrammierung) auch auf getrennten Rechnern laufen (remote).
Auf dem X-Client läuft die Anwendung.
Auf dem X-Server erfolgt die Darstellung und Bedienung der Anwendung.
Aussehen und Verhalten der Fenster (z.B. Tastatur- und Mausbedienung) definiert der Fenster-Manager (window manager), der ebenfalls austauschbar ist.
Die bekanntesten Fenster-Manager sind:
CDE Common Desktop Environment
KDE K Desktop Environment
Gnome
OL(V)WM OpenLook (Virtual) Windowmanager
MWM Motif Window Manager
FVWM(2/95), Afterstep, Enlightenment, ...
Folie 16Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Grafische Oberfläche X-Windows
• X-Server und X-Clients über Netzwerk verbunden, laufen aber auch auf getrennten Rechnern
Netzwerk
Prozess
X - Client
Anwendungen
X - Server
Darstellung und Bedienung der Anwendung
Netzverbindung

Einfacher Aufbau (simple is beautiful)
Alles ist eine Datei — Ein hierarchischer Dateibaum
Datei = Folge von Bytes mit zeilenorientiertem ASCII-Text
Viele einfache Werkzeuge einfach kombinierbar
Mündiger Benutzer wird vorausgesetzt
Jeder weiß, was er tut
Man überlegt vorher, danach ist es zu spät
Kooperatives Arbeiten wird vorausgesetzt
Nichts wird verborgen (Quellcode, Dokumentation, ...)
Kommando-orientierte Bedienung (Shell) ist zumindest möglich
Folie 17Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Philosophie
• Einfacher Aufbau
Ein hierarchischer Dateibaum
Viele einfache Werkzeuge einfach kombinierbar
• Mündiger Benutzer: Jeder weiß, was er tut
• Kooperatives Arbeiten: Nichts wird verborgen
• Kommando-orientierte Bedienung (Shell)

Folie 18Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
Inhalt• Multitasking-SystemMultitasking-System• Multiuser-SystemMultiuser-System• Hierarchisches DateisystemHierarchisches Dateisystem• GeräteunabhängigkeitGeräteunabhängigkeit• Programmierbare ShellProgrammierbare Shell• NetzwerkfähigkeitNetzwerkfähigkeit• PortabilitätPortabilität• Weitere EigenschaftenWeitere Eigenschaften
Kapitel 2
Kapitel 2

Multitasking-System
Führt viele Programme (Prozesse) scheinbar gleichzeitig aus, ohne dass sich die einzelnen Anwendungen bei ihrer Ausführung stören.
UNIX verwendet preemptives Multitasking, d.h. ein zentraler Scheduler teilt den auszuführenden Prozessen reihum Rechenzeit zu (analog Windows NT/2000).
MS-DOS und Windows 3.1/95/98/ME setzen hingegen kooperatives Multitasking ein, d.h. die Anwendungen selbst müssen die Kontrolle über die CPU wieder abgeben (unsicher!).
Folie 19Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
• Multitasking-SystemMultitasking: Fähigkeit viele Programme scheinbar gleichzeitig auszuführen,
die einzelnen Anwendungen stören sich bei ihrer Ausführung nicht
Scheduler
Task 1
Task 2
Task 3
(z.B. kde)
(z.B. soffice)
(z.B. less)
1
2
3
zeitlicherzeitlicherAblaufAblauf

Folie 20Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
• Multiuser-System
Viele Benutzer können sich gleichzeitig anmelden und interaktiv arbeiten
Jeder Benutzer hat eigene persönliche Umgebung (kann kein anderer Benutzer ändern)
Einstellungen von einzelnen Benutzern beeinflussen sich nicht gegenseitig

Folie 21Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
Vergleich der Betriebssysteme
Single-Tasking
KooperativesMulti-Tasking
PreemptivesMulti-Tasking
Single - User Multi - User
MS - DOSCP/M
Windows 3.1Windows 95/98Windows ME
Windows NT/2000/XPWindows Vista, 7
OS/2
Moderne UNIX- Systeme(z.B. Solaris, SunOS, Linux-Systeme), VMS

Hierarchisches Dateisystem
Ein einziger Dateibaum, in den alle Platten(Partitionen) (lokal oder über Netzwerk) eingehängt (in ein Verzeichnis montiert) werden.
Es gibt keine Laufwerksbuchstaben, d.h. keine Beschränkung der Anzahl physikalischer Platten und keine Probleme mit Konfigurationsdaten beim Plattenaustausch.
Viele Dateisystem-Typen werden unterstützt (FAT, VFAT, FAT32, NTFS, HPFS, ISO9660, MINIX, EXT2, Ext3, ReiserFS, ...).
Folie 22Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
Hierarchisches Dateisystem.
// (root) (root)
usrusrtmptmphomehomebinbin etcetc
PeterPeter UrsulaUrsula
AdressenAdressenBriefeBriefePrivatPrivat GeschäftGeschäft
WurzelverzeichnisWurzelverzeichnis ein einziger Dateibaum, in den alle Platten eingehängt werden
Keine Laufwerksbuchstaben, d.h. keine Beschränkung der Plattenanzahl
(A:)(C:)
(D:)

Geräteunabhängigkeit
Geräte sind jegliche Hardware wie z.B. Festplatte, CD-ROM, Modem, Netzwerkkarte, Soundkarte, parallele/serielle/USB Schnittstelle, Bildschirm, Tastatur und Maus.
Jedem Gerät ist im Verzeichnis /dev (devices) eine Datei zugeordnet, über die es mit den normalen Dateioperationen ansprechbar ist.
Diese einheitliche Schnittstelle (für jedes Gerät durch einen Gerätetreiber realisiert) stellt die Geräteunabhängigkeit her.
Folie 23Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
• Geräteunabhängigkeit– Geräte sind jegliche Hardware, z.B.:
– Jedem Gerät ist im Verzeichnis /dev (devices) eine Datei zugeordnet
● Diese einheitliche Schnittstelle (durch Gerätetreiber realisiert) stellt die Geräteunabhängigkeit her

Programmierbare Shell
Die Shell arbeitet als Vermittler (Kommando-Interpreter) zwischen dem Benutzer und dem Kern (Herz eines UNIX-Betriebssystems), entspricht » COMMAND.COM.
Sie ist nicht im Kern integriert, sondern liegt wie eine „Schale“ um den Kern (kann daher ausgetauscht werden).
Shell-Kommandos können zu Shell-Skripten (Batchfiles) zusammengefasst und automatisch ausgeführt werden.
Die Shell bietet eine vollständige Programmiersprache.
Folie 24Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
Programmierbare Shell Shell =
- Vermittler zwischen
Benutzer und Kern
- nicht im Kern integriert, liegt
wie „Schale“ um Kern
(austauschbar)
- bietet vollständige Programmiersprache
Kernel
Shell
Kommandos
Benutzerprogramme
Shell

Netzwerkfähigkeit
UNIX stellt viele Netzwerk- und Kommunikationsdienste bereit:
File-, Print-, Datenbank-Server, Gateway, Firewall, Mail-, News-, WEB-, Proxy-Server, ...
UNIX-Standard-Netzwerkprotokoll ist TCP/IP (Transmission Control Protocol/Internet Protocol) wird weltweit im Internet eingesetzt
Viele Netzwerkdienste sind direkt im Kernel integriert
Folie 25Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
• Netzwerkfähigkeit– UNIX stellt viele Netzwerk- und Kommunikationsdienste bereit:
– UNIX-Standard-Netzwerkprotokoll ist TCP/IP
wird weltweit im Internet eingesetzt
– Viele Netzwerkdienste sind direkt im Kernel integriert

Portabilität
Bedeutet, dass Software von einer Hardware-Plattform (z.B. i386, SPARC, 68000) auf eine andere übertragbar ist, sodass Verhalten und Funktionalität erhalten bleiben.
Das UNIX-Betriebssystem ist auf sehr vielen Plattformen verfügbar (Chip-Card bis 390-Mainframe), da es zu etwa 98% in der Programmiersprache C realisiert ist.
Sehr viele unter UNIX vorhandene Anwendungen sind ebenfalls in C/C++ programmiert, und lassen sich daher auch einfach auf andere UNIX-Plattformen übertragen.
Folie 26Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
• Portabilität– Software von einer Hardware-Plattform auf eine andere übertragbar
Verhalten und Funktionalität bleiben erhalten
– UNIX-Betriebssystem auf sehr vielen Plattformen verfügbar (ca. 98% in Programmiersprache C realisiert)
– viele Anwendungen ebenfalls in C/C++ programmiert einfache Übertragbarkeit auf andere UNIX-Plattformen

z.B. gibt es Linux auf Diskette, im USB-Stick oder in Handys,
auch sind Echtzeiteigenschaften in Linux-Varianten möglich.
Folie 27Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Eigenschaften
• Weitere Eigenschaften– Ressourcen-schonend (keine Graphik notwendig)
– Ausgereift, stabil und hochperformant
– 32-Bit/64-Bit-fähig
– Speicherschutz-Mechanismen + virtueller Arbeitsspeicher
– Prozess-Synchronisation über viele Mechanismen
– Multiprocessing und Clustering
– Remote-fähig
– Threads

Folie 28Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Grundlagen
InhaltInhalt• Schreibweisen im SkriptSchreibweisen im Skript• An- und AbmeldenAn- und Abmelden• Anzeigen von DateienAnzeigen von Dateien• DruckenDrucken• HilfestellungHilfestellung
– Manual-SeitenManual-Seiten• SteuertastenSteuertasten• Die wichtigsten KommandosDie wichtigsten Kommandos• Kommando-SyntaxKommando-Syntax
Kapitel 3
Kapitel 3

UNIX ist im englischsprachigen Raum entstanden.
Wenn möglich werden in diesem Skript deutsche Begriffe verwendet (aber die englischen Begriffe mit angegeben, da sie in der Literatur verwendet werden).
Grundsätzlich sollte man vor der englischen Dokumentation nicht zurückschrecken.
Sie ist meist in einem einfach verständlichen, technischem Englisch geschrieben und oft am aktuellsten.
Folie 29Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Schreibweisen im Skript
• Kommandos und Dateinamen werden in Courier geschrieben: ls, /etc/profile
• Platzhalter für vom Anwender vorzugebende Angaben werden GROSS, kursiv und in Courier geschrieben: DATEI, PFAD
• Optionale Angaben stehen in eckigen Klammern: [OPTIONEN ]
• mögliche Wiederholung eines Parameters: durch drei Punkte ausgedrückt. . .

Das Heimat-Verzeichnis (homedirectory) wird dem Benutzer vom Systemverwalter in der Datei /etc/passwd zugeordnet.
Folie 30Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
An- und Abmelden
• auf jedem Terminal wird Anmelde-Aufforderung (Login-Prompt) angezeigt
• Anmelden (Login): an beliebigen Terminal:
Benutzernamen und Paßwort eingeben
zugeordnete Login-Shell wird gestartet
Benutzer kommt ins Heimat-Verzeichnis
Eingabe-Prompt wird von Shell angezeigt und wartet auf Benutzereingaben

Folie 31Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
An- und Abmelden
Sitzung (Session)• nach Anmelden: Eigentümer der Sitzung auf diesem Terminal bis zur
Abmeldung
• Alle in dieser Sitzung ausgeführten Prozesse und erzeugten Dateien gehören dem angemeldeten Benutzer
• nach dem Abmelden mit exit wird wieder Anmelde-Aufforderung angezeigt

Folie 32Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
An- und Abmelden
• Login-Umgebung
Nach dem Anmelden wird konfigurierbare Login-Umgebung für den Benutzer eingerichtet:
Einstellungen und Daten, die die Sitzung steuern – (z.B.: welche Tasten lösen welche Funktionen aus)

Folie 33Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 1
– Fahren Sie Ihren UNIX-Rechner hoch (Booten)!– Starten Sie die grafische Oberfläche mit startx (wenn sie nicht
automatisch gestartet wird)!
• Melden Sie sich an (Login)!
• Melden Sie sich ab (Graphik, exit)!
• Fahren Sie die grafische Oberfläche herunter!
• Fahren Sie den Rechner herunter (Graphik, ALT-STRG_ENTF)!

Folie 34Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Anzeigen von Dateien
• seitenweises Anzeigen und Durchblättern von Dateiinhalten mit „Pagern“:
more DATEI
less DATEI # von Linux
• Die wichtigsten Kommandos zum Blättern:
LEERZEICHEN eine Seite weiterblättern
RETURN eine Zeile weiterblättern
/TEXT RETURN TEXT suchen (n wiederholt, next)
q more/less verlassen (quit)
h Hilfe anzeigen (help)

Folie 35Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
• Kommando zum Drucken – lp oder lpr (line print)
• Das Ausdrucken einer Datei DATEI – lp DATEI oder lpr DATEI
• Die Ausgabe eines Kommandos KMDO wird ausgedruckt durch:– KMDO | lp
– (Pipe-Symbol | durch AltGr-< erzeugt)
Vor dem Drucken ev. den Text Formatieren:
pr DATEI | lp
mit den Optionen:
-l72 # 72 Zeilen pro Seite (kleines L: lines)
-o10 # um 10 Zeichen einrücken (offset)
-n # nummeriert
Beispiel:
pr -l72 -o10 -n DATEI | lp

Hilfe zu einem Kommando KMDO erhält man über:
Man-Pages (Standard, unter LINUX -s weglassen):
man [[-s] ABSCHNITT ] KMDO (section)
whatis KMDO (Kommandos suchen)
apropos KMDO (Begriffe suchen)
Usage-Meldungen:
KMDO -? oder (nicht bei jedem Kommando)
KMDO -h oder (nicht bei jedem Kommando)
KMDO --help (bei GNU-Programmen)
Info-Dateien (bei GNU-Programmen):
info KMDO
HowTo‘s: The Linux Documentation Project (www.tldp.org)
Folie 36Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Hilfestellung
Hilfe zu einem Kommando KMDO erhält man über:
– Man-Pages (Standard, unter LINUX -s weglassen):
man [[-s] ABSCHNITT ] KMDO (section)
– Usage-Meldungen:
KMDO -? (--help bei Linux)
– Info-Dateien (bei GNU-Programmen):
info KMDO
– HowTo‘s (in Internet www.tldp.org)
– Internet (Newsletter, Googeln)

Manual-Seiten haben eine feste Struktur (NAME, SYNOPSIS, DESCRIPTION, OPTIONS, ...).
Im Abschnitt SEE ALSO finden sich Verweise auf verwandte Kommandos (teilweise der gleiche Name in einem anderen Abschnitt).
Bei längeren Manual-Seiten nicht alles durchlesen, sondern mit Textsuche arbeiten (/TEXT RETURN und n/N (next) zum Wiederholen der Suche), um die gewünschte Information zu finden.
Manual-Seiten sind in folgende Abschnitte aufgeteilt:
1 Ausführbare Programme oder Shellbefehle
2 (C-)Systemaufrufe (Kernelfunktionen)
3 (C-)Bibliotheksaufrufe (Systembibliotheken)
4 Gerätedateien
5 Format und Bedeutung von Konfigurationsdateien
6 Spiele
7 Makropakete und Konventionen
8 Kommandos zur Systemadministration
9 Kernelroutinen (LINUX)
Folie 37Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Manual-Seiten
• Manual-Seiten haben feste Struktur
(NAME, SYNOPSIS, DESCRIPTION, OPTIONS, ...).
• Im Abschnitt SEE ALSO:
Verweise auf verwandte Kommandos
• längere Manual-Seiten nicht ganz durchlesen, sondern mit Textsuche arbeiten:
/TEXT RETURN und n/N (next) zum Wiederholen der Suche gewünschte Information finden

Weitere Steuertasten (LINUX bzw. bash-spezifisch):
Cursor-Auf/Ab In alten Kommandos blättern
Cursor-Links/Rechts, Entf, BACKSPACE, ...
Aktuelles Kommando editieren
Shift-Bild-Auf/Ab In Kommandoausgabe blättern
Strg-Alt-BACKSPACE X-Windows abbrechen
Strg-Alt-F1..F6 Textterminal 1..6 anwählen
Strg-Alt-F7 Grafikterminal anwählen
Auf englischsprachigen Tastaturen: CTRL-Taste verwenden!
Folie 38Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Steuertasten
Wichtige SteuertastenRETURN eingegebenes Kommando ausführen
BACKSPACE letztes eingegebenes Zeichen löschen
Strg-C laufendes Kommando abbrechen
Strg-D Ausloggen/Dateiende EOF (end of file)
Strg-L Bildschirm neu aufbauen
Strg-S Terminal-Scrolling anhalten (stop)
Strg-Q Terminal-Scrolling laufen lassen

Beispiele:
cd (change directory):
cd /etc
cd /usr/lib
cd text
pwd (print working directory) aktuelles Verzeichnis anzeigen
ls (list):
ls /etc
ls /usr/lib
ls text
ls -l (list long):
ls -l /etc
date gibt Datum+Uhrzeit aus
(date +%T ® Uhrzeit
date '+%d. %m. %Y' ® Datum
s. man date
echo 'dies ist ein Text' 'und noch einer'
grep 'made' text/gedicht
ls -l /usr/bin | more
Folie 39Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Die wichtigsten Kommandos
• cd wechselt in anderes Verzeichnis
• ls zeigt Inhalt eines Verzeichnisses an
• ls -l zeigt ein Verzeichnis ausführlich an
• * steht für alle Dateien in einem Verzeichnis
• clear löscht das Terminal
• date gibt Datum+Uhrzeit aus
• echo 'TEXT' gibt TEXT auf dem Terminal aus
• grep 'TEXT' DATEI sucht Zeilen mit TEXT in DATEI
• KMDO | more seitenweise Ergebnisanzeige eines Kommados
• exit Abmelden / Terminal-Fenster schließen

Bei UNIXWARE mit Alt-Druck-F1 oder Alt-Druck-h
Bei X-Terminals über die Setup(Pause)-Taste ein neues Terminal holen
Folie 40Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 2a
• Schalten Sie mit Strg-Alt-F1 auf die (virtuelle) Textkonsole 1 um und loggen Sie sich dort ein!
• Loggen Sie sich auf den Textkonsolen 2 bis 6 ein!
• Schalten Sie wieder auf die Grafikoberfläche zurück mit Strg-Alt-F7!
• Starten Sie in der Grafikoberfläche weitere Terminals!
• Loggen Sie sich wieder aus den Grafikterminals aus!
• Loggen Sie sich wieder aus den Textkonsolen aus!

Weitere Hilfe bei Linux:In der Menue-Leiste: Rettungsring
Folie 41Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 2b
• Sehen Sie sich die Dateien /etc/passwd, /etc/profile und gedicht mit Hilfe eines Pagers an!
• Sehen Sie sich die Manualseiten und Usage-Meldungen zum Kommando man an!
• Probieren Sie whatis und apropos mit ls aus!
• Browsen Sie in den HowTos herum!
• Probieren Sie die Steuertasten aus!
• Probieren Sie die wichtigsten Kommandos aus!

Whitespace: Leerzeichen, Tabulator und Zeilenvorschub (oder mehrere).
Ein Kommandoaufruf hat folgendes Aussehen:
KMDO [OPTIONEN ] [PARAMETER ]
Die einzelnen Komponenten (Wörter) des Aufrufes werden durch ein (oder mehr) Whitespaces getrennt.
Das 1. Wort auf der Kommandozeile ist immer das auszuführende Kommando.
Das Kommando liest die OPTIONEN und ändert entsprechend sein Standardverhalten.
Die PARAMETER bezeichnen meist Dateinamen, die vom Kommando zu bearbeiten sind.
Optionen sind einbuchstabig und werden durch einen Bindestrich - eingeleitet (Parameter nicht),
Optionsbuchstaben stehen für den Anfangsbuchstaben eines englischen Wortes (Merkhilfe!).
Sie stehen immer vor den Parametern.
Ihre Reihenfolge ist beliebig.
Sie können zusammengefaßt werden:
ls -l -i -a ® ls -lia
Das erste Wort, das nicht mit einem -(oder --) beginnt, schließt die Liste der Optionen ab.
Folie 42Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Kommando-Syntax
Ein Kommandoaufruf hat folgendes Aussehen:
KMDO [OPTIONEN ] [PARAMETER ]
-auszuführendes Kommando-liest Optionen, ändert entsprechend Standardverhalten
-bezeichnet Dateinamen, vom Kommando zu bearbeiten
-einbuchstabig, durch „-“ eingeleitet-stehen immer vor Para- metern-mehrere Optionen können zu einer zusammengefasst werden
Leerzeichen Leerzeichen

Eine expliziter Abschluß der Optionsliste ist auch durch -- möglich (z.B. um mit einem - beginnende Dateinamen zu verarbeiten).
Einige Programme kennen sehr viele Optionen (z.B. ls, ps). Bitte nur die wichtigsten merken und die anderen bei Bedarf nachschlagen!
Kommandos aus dem GNU-Projekt kennen auch Optionswörter, sie werden durch -- eingeleitet, z.B.:
ls --help --recursive --interactive
Manche Optionen benötigen einen Parameter (z.B. Änderung des Default-Trennzeichens). Er ist direkt nach der jeweiligen Option anzugeben (z.B. -t:).
Nur wenige Programme (z.B. tar, find, dd) halten sich nicht an diesen Kommando-Syntax-Standard (find / -name 'xx'; dd if=).
Folie 43Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Kommando-Syntax
Beispiele für Kommandoaufrufe Kommando Optionen + Parameter
ls -l -a -ils -lai (bzw. ls -ial, ...)ls --all --inode # Linux
more /etc/passwdtouch -- -i (bzw. rm -- -i)rm -r /home/usr1 -i # Datei -i wird gelöscht!
mount -t iso9660 /dev/cdrom /cdromsort -t: /etc/passwd

Folie 44Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Grundlagen Benutzer und Gruppen
InhaltInhalt• Multiuser-SystemMultiuser-System
• BenutzerBenutzer
• Benutzer-TypenBenutzer-Typen
• Aufgaben des SuperusersAufgaben des Superusers
• GruppenGruppen
Kapitel 4
Kapitel 4.1
Kapitel 4.1

Folie 45Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Benutzer
Multiuser-System: iuser-System:
mehrere Benutzer gleichzeitig
an einem Rechner
Zu jedem Benutzer (Konto, Account) gehören:
- Name (Kennung)
- Passwort
- Persönliche Umgebung (Heimat -Verzeichnis):
kann nur selbst konfiguriert und geändert werden
dort werden Dateien und Verzeichnisse angelegt

Es gibt folgende Benutzer-Typen:
Den privilegierten Benutzer (root)
Die gewöhnlichen Benutzer (können sich anmelden)
Verwaltungs-Benutzer (können sich nicht anmelden)
Der privilegierte Benutzer heißt auch Superuser oder Systemadministrator (bzw. Sysadmin oder root).
Jeder Benutzer erhält beim Einrichten eine beliebige, aber eindeutige Benutzer-Nummer (UID=User ID), meist größer als 100 bzw. 1000 (Linux).
Der Superuser hat die UID 0 (daran wird er erkannt).
Folie 46Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Benutzer
Privilegierter BenutzerPrivilegierter Benutzer gewöhnlicher gewöhnlicher VerwaltungsVerwaltungs-auch: BenutzerBenutzer BenutzerBenutzerSuperuser / Superuser / Systemadministrator / rootSystemadministrator / root
Benutzernummer (UID) für jeden :
UID : 0 UID: beliebig, aber eindeutig

Die Aufgaben des Superusers sind:
Installieren/Konfigurieren/Überwachen des Betriebssystems.
Einrichten von Benutzern + Gruppen
Einrichten neuer Hardware + Treiber
Einrichten/Konfigurieren von Programmen + Diensten
Backup von Programmen + Daten
Gewährleisten der Systemsicherheit (Netzwerk)
Damit er diese Aufgaben wahrnehmen kann, wird er durch keinerlei Zugriffsrechte eingeschränkt!
Deshalb sollte man höchste Vorsicht walten lassen, wenn man unter der Kennung root arbeitet.
Aufgaben, für die keine besonderen Rechte notwendig sind, daher auf keinen Fall als root durchführen.
Achtung: Löscht man unter UNIX eine Datei oder ein Verzeichnis, dann gibt es (in aller Regel) keine Möglichkeit, dies wieder rückgängig zu machen (zumindest auf der Kommandozeile).
Folie 47Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Benutzer
Der privilegierte Benutzer / SuperuserDer privilegierte Benutzer / Superuser
• Hat verschiedene Aufgaben nicht durch Zugriffsrechte eingeschränkt
wenn man als Superuser arbeitet: nur Aufgaben ausführen, für die besondere Rechte nötig sind
löscht man eine Datei oder Verzeichnis keine Möglichkeit dies rückgängig zu machen!

Zu jedem Account gehört ein Paßwort (sollte so gewählt sein, dass es nicht erraten werden kann, oft mindestens 6 Zeichen lang).
Der root-Account ist ebenfalls nur durch ein Passwort geschützt (das nur ganz wenige Leute kennen sollten).
Die Benutzerdaten (Name, UID, GID der primären Gruppe, Beschreibung, Login-Verzeichnis, Login-Shell) sind in der Datei /etc/passwd gespeichert.
Das (verschlüsselte) Paßwort und die Verfallszeiten von Account/Passwort stehen in /etc/shadow.
Die Kennung, unter der man angemeldet ist, kann man sich mit whoami oder who am i anzeigen lassen.
Alle aktuell angemeldeten Benutzer kann man sich mit who anzeigen lassen.
Das aktuelle Paßwort wird mit passwd (password) geändert (mind. 6 Zeichen, mind. 1 Sonderzeichen).
Auf Systemen mit NIS (Network Information System) ist yppasswd zu verwenden (yellow pages).
Folie 48Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Benutzer
• zu jedem Account gehört Paßwort
• die Benutzerdaten sind in der Datei /etc/passwd
• Paßwort und Verfallszeiten von Account/Paßwort stehen in /etc/shadow
• Änderung des aktuellen Paßworts mit passwd
• Anzeigen von:Anzeigen von:– Kennung, unter der man angemeldet ist mit:
whoami oder who am i
– allen angemeldeten Benutzern mit: who

Eine temporäre Änderung der Benutzerkennung ist mit su [-] [USER] (substitute user, switch user) möglich:
su USER Kennung USER, alte Umgebung beibehalten
su - USER Kennung und Umgebung von USER (inklusive Startup-Dateien und Heimat-Verzeichnis)
su Kennung root, alte Umgebung beibehalten
su - Kennung und Umgebung von root
Der Rücksprung zur vorherigen Benutzerkennung erfolgt mit exit.
Folie 49Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Benutzer
• mit su [-] [USER] temporäre Änderung der Benutzerkennung
su USER Kennung USER, alte Umgebung beibehalten
su - USER Kennung und Umgebung von USER
su Kennung root, alte Umgebung beibehalten
su - Kennung und Umgebung von root
• mit exit Rücksprung zur vorherigen Benutzerkennung

Neben Benutzern gibt es unter UNIX noch Gruppen, das sind Zusammenfassungen beliebiger Benutzer.
Jeder Benutzer gehört einer primären Gruppe an.
Jede Gruppe erhält beim Einrichten eine beliebige, aber eindeutige Gruppen-Nummer (GID=Group ID).
Die Gruppendaten (Name, GID, Liste der Mitglieder) sind in der Datei /etc/group gespeichert.
Folie 50Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Gruppen
• Gruppen = Zusammenfassungen beliebiger Benutzer
• Jeder gehört primären Gruppe an
• Jede Gruppe erhält beliebige, aber eindeutige Gruppen-Nummer (GID)
• Die Gruppendaten sind in der Datei /etc/group

Die aktuelle Gruppe und in welchen Gruppen man Mitglied ist, kann man sich durch id (identity) – eventuell mit Option -a (all) – anzeigen lassen.
groups gibt nur die Namen der Gruppen aus, in denen man Mitglied ist.
newgrp GRP (new group) wechselt in eine andere Gruppe (nur beim Anlegen von Dateien relevant, man muss zuvor in /etc/group eingetragen sein).
Der Rücksprung zur vorherigen Gruppenkennung erfolgt mit exit.
Folie 51Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Gruppen
Anzeigen von:Anzeigen von:
• aktueller Gruppe mit id (identity)
• Namen der Gruppen, in denen man Mitglied ist mit groups
• mit newgrp GRP (new group) Wechsel in andere Gruppe
• mit exit Rücksprung zur vorherigen Gruppenkennung

Folie 52Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Benutzer und Gruppen
Kommandoswho(ami) aktuellen Benutzernamen ausgeben
who alle angemeldeten Benutzer ausgeben
(yp)passwd Paßwort ändern ((yellow pages) password)
su Benutzer ändern (substitute user)
exit aktuelle Anmeldung verlassen (Ausloggen)
id aktuellen Benutzer ausgeben (identity)
groups Gruppennamen des Benutzers ausgeben
newgrp in andere Gruppe wechseln (new group)
Beispiele:
su - # wechselt in root
su - usr16 # wechselt zu User usr16 mit Umgebung
newgrp dialup # wechselt in Gruppe dialup

Folie 53Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 3a
• Ermitteln Sie Ihre eigene UID und GID durch:– entsprechende Kommandos– Ansehen der entsprechenden Konfigurationsdateien
• Loggen Sie sich mehrmals auf verschiedenen Terminals ein und überprüfen Sie anschließend, wer alles auf Ihrem System angemeldet ist.
• Ändern Sie Ihr Passwort
• Zeigen Sie alle Gruppen an, in denen Sie Mitglied sind und wechseln Sie in eine dieser Gruppen.

Sofern andere Benutzer bekannt und installiert sind.
Folie 54Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 3b
• Loggen Sie sich auf einer Textkonsole als anderer User ein und wieder aus.
• Wechseln Sie mit su die Benutzerkennung (mit und ohne -).
– Was für unterschiedliches Verhalten von su ergibt sich?
• Wenn Sie mehrmals hintereinander das Kommando su USER verwenden, wie oft müssen Sie dann exit eingeben, bis Sie wieder ausgeloggt sind?

Folie 55Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem
Inhalt• BegriffeBegriffe
• Auskunftsfunktionen 1Auskunftsfunktionen 1
• AufbauAufbau
• Auskunftsfunktionen 2Auskunftsfunktionen 2
• Verändernde KommandosVerändernde Kommandos
• ZugriffsrechteZugriffsrechte
• StandardverzeichnisseStandardverzeichnisse
Kapitel 4.2
Kapitel 4.2

Folie 56Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Inhalt „Begriffe“• Dateiname, versteckte DateiDateiname, versteckte Datei
• Dateibaum, VerzeichnisDateibaum, Verzeichnis
• Dateisystemobjekt (DSO)Dateisystemobjekt (DSO)
• Eltern-, Aktuelles, Heimat-VerzeichnisEltern-, Aktuelles, Heimat-Verzeichnis
• Pfadname, absoluter Pfad, relativer PfadPfadname, absoluter Pfad, relativer Pfad

Dateiname
Ein Dateiname (file name) unter UNIX kann aus bis zu 255 (bei manchen Dateisystemtypen auch mehr) beliebigen Zeichen (außer /) bestehen (in älteren UNIX-Versionen max. 14 Zeichen).
Dateinamen dürfen keinen Schrägstrich (/) enthalten, da er als Verzeichnistrenner in Pfaden dient.
Leerzeichen oder Sonderzeichen der Shell (z.B. *, ?, $, >, #, &, ...) könnten, sollten aber nicht verwendet werden (da sie sonst vor der Shell zu schützen sind).
UNIX unterscheidet grundsätzlich zwischen Groß- und Kleinschreibung, insbesondere auch in Datei- und Verzeichnisnamen.
Es ist also möglich, Dateien mit den Namen TEST, Test, test und TeSt im selben Verzeichnis zu erzeugen (dies sollte aber aus Gründen der Übersicht vermieden werden).
Versteckte Dateien im Heimatverzeichnis beginnen mit einem Punkt ., sie werden von ls (ohne Option -a) nicht angezeigt, z.B.:
.profile .bashrc .exrc
Folie 57Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Dateiname (auch: file name)• Dateinamen können aus bis zu 255 beliebigen Zeichen bestehen
• Dateinamen dürfen keinen Schrägstrich „/“ enthalten
• Leerzeichen oder Sonderzeichen der Shell (*,?,$,...)nicht verwenden
• Unterscheidung zwischen GROSSSCHREIBUNG und kleinschreibung:
TEST test TeSt tEsT ...

Dateibaum
Unter UNIX (wie auch in anderen Betriebssystemen) werden alle Dateien in hierarchisch organisierten Verzeichnissen abgelegt, die den so genannten Dateibaum (directory tree) bilden.
Der Startpunkt (Wurzelverzeichnis, root directory) des UNIX-Dateibaums hat den Namen / (nicht \ wie unter MS-DOS).
Folie 58Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Dateibaum• alle Dateien werden in hierarchisch organisierten Verzeichnissen abgelegt,
die bilden den Dateibaum
• Startpunkt (Wurzelverzeichnis, root directory) des UNIX-Dateibaums ist „/“
/ (root)
usrtmphomebin etc
Peter Ursula
AdressenBriefePrivat Geschäft
Wurzelverzeichnis
dev var

Verzeichnis (Katalog, Ordner)
Ein Verzeichnis (directory) ist eine vom Betriebssystem verwaltete Datei, die eine Liste von Namen von Dateien und Unterverzeichnissen enthält
Zu jedem Namen enthält sie einem Verweis (Index-Node oder Inode) auf die zugehörigen Daten.
Die Namen innerhalb eines Verzeichnisses müssen eindeutig sein (jeder kann nur 1* vorkommen).
Folie 59Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Verzeichnis (Katalog, Ordner)
Verzeichnis
= vom Betriebs-systemverwaltete Datei
enthält Liste von NamenNamenvon Dateien undUnterverzeichnissen
enthält zu jedem NamenNamen VerweiseVerweise auf zugehörigeDaten
auch: Index-NodeIndex-Nodeoder InodeInode
NamenNamen müssen eindeutig sein sind einmalig

Dateisystemobjekt (DSO)
Zusammenfassung von Dateien und Verzeichnissen.
Jedes DSO gehört:
Einem bestimmten Benutzer (Besitzer)
Einer bestimmten UNIX-Gruppe (Gruppe).
Jedes DSO kennt Zugriffsrechte für:
Den Besitzer (user)
Die Gruppe (group)
Alle anderen (others)
Folie 60Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Dateisystemobjekt (kurz: DSO)• Zusammenfassung von Dateien und Verzeichnissen
• jedes DSO gehört:– bestimmtem Benutzer – bestimmter UNIX-Gruppe
• jedes DSO kennt Zugriffsrechte für:
Besitzer Gruppe alle anderen
(user) (group) (others)

Aktuelles Verzeichnis
Jeder angemeldete Benutzer befindet sich zu jedem Zeitpunkt in seinem aktuellen Verzeichnis (current directory, working directory, Arbeitsverzeichnis).
Der Punkt . ist der Name des aktuellen Verzeichnisses (analog MS-DOS).
Dateien im aktuellen Verzeichnis sind besonders einfach erreichbar, Beispiel:
gedicht briefe.txt
Folie 61Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Aktuelles Verzeichnis• jeder angemeldete Benutzer steht zu jedem Zeitpunkt in einem
aktuellen Verzeichnis (Arbeitsverzeichnis)
• Der Punkt ist Name des aktuellen Verzeichnisses
• Dateien im aktuellen Verzeichnis sind einfach erreichbar
gedicht briefe.txt
.

Eltern-Verzeichnis
Zu jedem Verzeichnis gibt es genau ein Eltern-Verzeichnis (parent directory).
Das Root-Verzeichnis ist sein eigenes Eltern-Verzeichnis.
Der doppelte Punkt .. ist in jedem Verzeichnis der Name seines Eltern-Verzeichnisses (analog MS-DOS).
Dateien im Eltern-Verzeichnis sind ebenfalls sehr einfach erreichbar, Beispiel:
../text ../user12/text/gedicht
Anmerkung: Im Englischen wird die Beziehung zwischen zwei aufeinander folgenden Verzeichnissen (Prozessen) mit "parent-" und "child-"directory (process) und im Deutschen mit "Eltern-" und "Kind-"Verzeichnis (Prozess) bzw. "Vater-" und "Sohn-"Verzeichnis (Prozess) bezeichnet. Im Skript wird "Eltern-/Kind-"Verzeichnis (Prozess) verwendet.
Folie 62Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Eltern-Verzeichnis• zu jedem Verzeichnis gibt es genau ein Eltern-Verzeichnis
• zwei Punkte : Name des Eltern-Verzeichnisses
• Dateien im Eltern-Verzeichnis ebenfalls einfach erreichbar
../text ../user12/text/gedicht
. .

Heimat-Verzeichnis
Nach dem Anmelden ist das beim Einrichten des Benutzers festgelegte Heimat-Verzeichnis (home directory), z.B. /home/user12, sein aktuelles Verzeichnis.
Die Heimat-Verzeichnisse aller Benutzer befinden sich im gleichen (Eltern)Verzeichnis, meist:
/home oder /usr/home
Bitte das Heimat-Verzeichnis nicht mit dem Verzeichnis /home verwechseln!
Folie 63Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Heimat-Verzeichnis• beim Anmelden wird das Heimat-Verzeichnis des festgelegt = sein
aktuelles Verzeichnis
/home/user12
• die Heimat-Verzeichnisse aller Benutzer sind im gleichen (Eltern-)Verzeichnis, meist:
/home /usr/home
• NICHT mit dem Verzeichnis /home verwechseln!

Pfadname (path name)
Wegen der hierarchischen Dateisystem-Struktur genügt ein Dateiname alleine nicht, um ein DSO eindeutig zu bezeichnen.
Neben dem Dateinamen ist daher auch das Verzeichnis anzugeben, in dem der Dateiname steht (rekursiv).
Die einzelnen Namenskomponenten werden durch den Verzeichnistrenner / getrennt (\ unter MS-DOS): .../VERZ1/VERZ2/DATEI
Folie 64Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Pfadname (path name)• um DSO eindeutig zu bezeichnen immer Dateinamen und Verzeichnis, in
dem Dateiname steht, nötig!! (wegen hierarchischen Dateisystem-Struktur)
• Namenskomponenten durch Verzeichnistrenner „/“ getrennt :
.../VERZ1/VERZ2/DATEI

Absoluter Pfad
Beschreibt den Weg zu einer Datei ausgehend vom Root-Verzeichnis / (d.h. fängt immer mit / an).
Lautet immer gleich, egal wo man steht.
Besteht aus / + allen Verzeichnisnamen auf dem Weg durch den Dateibaum zu einer Datei + dem Dateinamen, jeweils getrennt durch Schrägstrich (/).
Beispiel: /home/Peter/Privat/brief.txt
Folie 65Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Absoluter Pfad• Beschreibt den Weg zu einer Datei ausgehend vom Root-Verzeichnis /
( beginnt immer mit /)
• immer gleich, egal wo man steht
/ (root)
usrtmphomebin etc
Peter Ursula
AdressenBriefePrivat Geschäft
Beispiel:
/home/Peter/Privat/brief.txt/home/Peter/Privat/brief.txt
brief.txt

Relativer Pfad
Beschreibt den Weg zu einer Datei ausgehend vom aktuellen Verzeichnis.
Hängt davon ab, wo man im Dateibaum steht.
Kennzeichen: Relative Pfade fangen nicht mit / an. Explizite Angabe mit ./ ist möglich (nicht notwendig).
Beispiel: gedichtPeter/Privat/brief.txt../usr12/gedicht
Folie 66Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Relativer Pfad• beschreibt den Weg zu einer Datei ausgehend vom aktuellen Verzeichnis
( beginnt nicht mit /, kann mit ./ beginnen)
• abhängig von der Position (aktuelles Verzeichnis) im Dateibaum
• Beispiel: gedichtPeter/Privat/brief.txt../usr12/gedicht

Folie 67Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Begriffe
Logischer Dateibaum / (root)
usrtmphomebin etc
Peter Ursula
AdressenBriefePrivat Geschäft
Relativer Pfad:../Peter/Privat/brief.txt
Relativer Pfad:../Privat/brief.txt
Absoluter Pfad:/home/Peter/Privat/brief.txt
brief.txt

Mit cd (change directory) kann man zwischen Verzeichnissen hin- und herwechseln:
cd PFAD Wechselt in das Verzeichnis PFAD
cd / Wechselt in das Root-Verzeichnis
cd .. Wechselt in das Eltern-Verzeichnis (Leerz!)
cd Wechselt in das eigene Heimat-Verzeichnis
cd ~ Analog
Mit pwd (print working directory) kann man das aktuelle Verzeichnis ausgeben.
Mit ls (list) kann man den Inhalt von Verzeichnissen (alphabetisch nach Namen sortiert) ausgeben:
ls Inhalt des aktuellen Verzeichnisses ausgeben
ls PFAD Inhalt von Verzeichnis PFAD ausgeben
Die wichtigsten Optionen:
-l Ausgabe im langen Format (long)
-a Alle Dateien (auch versteckte) ausgeben (all)
-d Verzeichnis-Name statt Inhalt ausgeben (directory)
-R Kompletten Dateibaum ausgeben (recursive)
Folie 68Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Auskunftsfunktionen 1
• mit cd (change directory): zwischen Verzeichnissen wechseln
cd PFAD wechselt in das Verzeichnis PFAD
cd / wechselt in das Root-Verzeichnis
• mit pwd (print working directory): aktuelles Verzeichnis ausgeben
• mit ls (list): Inhalt von Verzeichnissen ausgeben
ls Inhalt des aktuellen Verzeichnisses ausgeben
ls PFAD Inhalt von Verzeichnis PFAD ausgeben

Folie 69Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Auskunftsfunktionen 1
• Die Ausgabe von ls -l (long) besteht aus folgenden Komponenten:
drwxrwxrwx 3 usr3 users 342 Mar 30 17:49 text
Zugriffsrechte
DateitypAnzahl Linksauf Datei
Besitzer
Gruppe
Dateilänge(Byte)
letztes Änderungsdatum
Dateiname
Dateitypen können sein:
- normale Datei (File)
d Verzeichnis (directory)
c Zeichengerät (character device)
b Blockgerät (block device)
l Verweis (link)
p FIFO (named pipe)
s Socket
Das Modifikationsdatum wird entweder mit Monat/Tag/Uhrzeit oder mit Monat/Tag/Jahr (wenn älter als 1/2 Jahr) angegeben.

Mit cat (concatenate) kann man Dateien aneinanderhängen und auf dem Bildschirm ausgeben (ohne Blätter-Möglichkeit):
cat DATEI1 DATEI2 ...
Mit more oder less (bei Linux und auch wieder zurück) kann man Dateien seitenweise auf dem Bildschirm ausgeben und darin blättern:
more DATEI ...
less DATEI ...
Folie 70Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Auskunftsfunktionen 1
• mit cat (concatenate): Dateien aneinanderhängen und auf dem Bildschirm ausgeben
cat DATEI1 DATEI2 ...
• mit more oder less: Dateien seitenweise auf dem Bildschirm ausgeben und darin blättern
more DATEI ...
less DATEI ...

Folie 71Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 4a
• Probieren Sie die verschiedenen Varianten von cd aus und lassen Sie sich jeweils das aktuelle Verzeichnis mit pwd ausgeben.
• Probieren Sie ls mit verschiedenen Optionen aus (Gesamtliste per Usage-Meldung oder man-Page).
• Welche Dateien enthält Ihr Heimat-Verzeichnis?
• Geben Sie einige Dateien aus dem Verzeichnis /etc seitenweise bzw. ohne Aufteilung in Seiten auf dem Bildschirm aus.

Folie 72Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 4b
• Schauen Sie sich die Inhalte (Dateien und Unterverzeichnisse) folgender Verzeichnisse an:
– / Root-Verzeichnis
– /etc Konfigurations-Dateien (et cetera)
– /tmp Temporäre Dateien (temporary)
– /bin Ausführbare Programme (binary)
– /home Heimat-Verzeichnisse der Benutzer
– /usr Dateibaum für zusätzliche UNIX-Programme(unix system ressources)
– /var variable Dinge: Logbücher, ...

Folie 73Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Inhalt• Dateitypen, DateiartenDateitypen, Dateiarten• Gewöhnliche und ausführbare DateienGewöhnliche und ausführbare Dateien• Dateisystem, Physikalische PartitionDateisystem, Physikalische Partition• Inode, Hard-Link, Symbolischer LinkInode, Hard-Link, Symbolischer Link• GerätedateiGerätedatei

UNIX-Dateitypen (1. Zeichen bei ls -l):
Gewöhnliche Dateien (-)
Verzeichnisse (d, directory)
Ein/Ausgabe-Geräte (block- oder zeichenorientiert, b/c)
Symbolische Links (l)
Named Pipes (p)
Sockets (s)
Mit file DATEI kann über den Dateiinhalt die Dateiart ermittelt werden (/etc/magic die Extension hat unter UNIX keine Funktion).
Gewöhnliche und ausführbare Dateien
Gewöhnliche Dateien umfassen Textdateien, C-Code, ASCII-Daten, Skripte, Binärdateien, usw.
Ausführbare Dateien (Binärprogramme, Skripte) werden unter UNIX nicht durch eine Extension (.bat, .com, .exe, .cmd), sondern durch das Recht „ausführbar“ (executable) gekennzeichnet, das im Prinzip für jede Datei vergebbar ist.
Folie 74Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
• UNIX-Dateitypen
– Gewöhnliche DateienGewöhnliche Dateien (-)– VerzeichnisseVerzeichnisse (d, directory)
– Ein/Ausgabe-GeräteEin/Ausgabe-Geräte (b/c, block- oder zeichenorientiert)
– Symbolische Symbolische LLinksinks (l)– Named Named PPipesipes (p)– SSocketsockets (s)
• mit file DATEI: Ermittlung der Dateiart über den Dateiinhalt

Dateisystem
Das UNIX-Dateisystem kennt – im Gegensatz zum Windows-Dateisystem – keine Laufwerksbuchstaben A:, B:, ... sondern nur einen logischen Dateibaum.
In diesen Dateibaum werden alle physikalischen Platten (Partitionen) in einem beliebigen, frei wählbaren Verzeichnis (mount point) eingehängt („montiert“, englisch: mount).
z.B.: mount /cdrom
mount /floppy
mount /dev/hda3 /usr # kann nur root
Folie 75Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Dateisystem• keine Laufwerksbuchstaben, nur einen logischen Dateibaum
• in Dateibaum werden alle physikalischen Platten (Partitionen) in beliebigem, frei wählbaren Verzeichnis (mount point) eingehängt
/ (root)
usrtmphomebin etc
Peter Ursula
AdressenBriefePrivat Geschäft
dev

Physikalische Partitionen
Eine Festplatte umfaßt meist mehrere (physikalische) Partitionen (CD-ROM und Floppy nur eine).
Eine Partition wird beim Formatieren eingeteilt in:
Super-Block Dateisystem-Beschreibung (Typ, Größe,Anz. freier/belegter Inodes/Datenblöcke)
Inode-Tabelle Liste der verfügbaren Inodes
Datenblöcke Dateiinhalte bzw. Indirektionsblöcke
Boot-Block Urlader für Systemstart
Während dem Booten werden die Dateisysteme der zu montierenden Partitionen in Verzeichnisse des Dateibaums eingehängt.
Die Verzeichnisse sollten leer sein (müssen aber nicht).
Mindestens die Root-Partition (/) muß vorhanden sein (wird beim Booten vom Kern zuerst montiert).
Welche weiteren Partitionen beim Booten wo im Dateibaum eingehängt werden, steht in der Datei /etc/fstab (filesystem table).
Folie 76Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Physikalische Partitionen• Eine Festplatte umfaßt meist mehrere (physikalische) Partitionen
• beim Booten: die Dateisysteme der zu montierenden Partitionen werden eingehängt in Verzeichnisse des Dateibaums

Folie 77Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Logischer Aufbau
/
boot
usr local
var
pool
floppy
cdromCDROM Floppy
1. Festplatte, 1. Partition
1. Festplatte, 2. Partition
1. Festplatte, 3. Partition
1. Festplatte, 4. Partition
2. Festplatte, 1. Partition
2. Festplatte, 2. Partition
Physikalischer Aufbau

Standardverzeichnisse/bin Grundlegende Programme für alle Benutzer (binary).
/dev Gerätedateien (devices).
/etc (Fast alle) Konfigurationsdateien (et cetera).
/home Enthält die Heimat-Verzeichnisse der Benutzer.
/lib Systembibliotheken (library).
/opt Zusätzliche (kommerzielle) Software (optional)./sbin Programme für den Superuser (system binary).
/tmp Temporäre Dateien aller Benutzer (temporary).
/usr 2. (analoge) Dateihierarchie (unix system ressources).
/var (Temporäre) System-Zwischendateien (variable).
Folie 78Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
/
boot
usr local
var
tmp
floppy
cdrom
1. Festplatte, 1. Partition (Boot-Partition)
1. Festplatte, 2. Partition(Root-Partition)
1. Festplatte, 3. Partition
1. Festplatte,4. Partition
2. Festplatte, 1. Partition
2. Festplatte, 2. Partition
CDROM
Floppy
Zusammenhänge nach dem Montieren

Mit df (disk free) kann man sich zu einer oder allen montierten Partitionen ihre Größe und ihren Belegungsgrad in Prozent anzeigen lassen:
df [VERZ]
Mit mount ev. /sbin/mount nur die montierten Partitionen.
Mit du (disk usage) kann man sich den von einem Verzeichnisbaum belegten Platz
anzeigen lassen:du [VERZ] Größe des Verzeichnisses VERZ
und aller Unterverzeichnisse darindu [-s] VERZ Unterverzeichnisse nicht auflisten(silent)
Folie 79Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Auskunftsfunktionen 2
• mit df (disk free):
Anzeige von Größe und Belegungsgrad einer oder aller montierten Partitionen (in kByte oder Prozent)
df [VERZ]
• mit du (disk usage):
Anzeige von belegtem Platz eines Verzeichnisbaums
du [VERZ] Größe des Verzeichnisses VERZ und aller Unterverzeichnisse darin
du [-s] VERZ Unterverzeichnisse nicht auflisten (silent)

Inode (Index-Node)
Jedem DSO in einem UNIX-Dateisystem wird eine eindeutige Nummer zugewiesen, die auf den sogenannten Inode (Informationsknoten) verweist.
Für jedes DSO stehen im zugehörigen Inode seine Eigenschaften (Attribute) bis auf Name und Inhalt.
Verzeichnisse enthalten nur eine Liste der darin abgelegten DSO-Namen + der Nummer des jeweils zugehörigen Inodes.
Kommando zum Anzeigen der i-Nummern:
ls -i
Folie 80Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau - Inode
Inode 123 Daten
Block 2Block 2
Block 1Block 1
......
Block 3Block 3
BesitzerBesitzer
BesitzergruppeBesitzergruppe
#Hardlinks:2#Hardlinks:2
Hardlink1
Verzeichnis 2
Name3 Name3 987987
...... ......
Inode 987 Daten
ÄnderungsdatumÄnderungsdatum
Verzeichnis 1
123123Name1Name1
...... ......
Verzeichnis 2123123Name2Name2
...... ......
Hardlink2
Verzeichnis1/Name1Verzeichnis1/Name1......
......
......
Partition 1
Partition 2
Hardlink3
Symbolischer LinkSymbolischer Link

Hard-Link (Physikalischer Link)
Weiterer Verzeichniseintrag zu einer Datei, der auf denselben Inode zeigt (nicht unterscheidbar!).
Kann keine Partitionsgrenzen überschreiten, da Inode-Nummern nur in derselben Partition eindeutig sind.
Kann nur auf normale Dateien verweisen (nicht aber auf Verzeichnisse und Geräte).
Die Anzahl Hard-Links auf ein DSO wird gezählt, erst beim Löschen des letzten wird der Dateiinhalt freigegeben.
Folie 81Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Hard-Link (Physikalischer Link)• weiterer Verzeichniseintrag zu einer Datei, der auf denselben Inode zeigt
• kann keine Partitionsgrenzen überschreiten ( Inode-Nummern nur in derselben Partition eindeutig)
• Kann nur auf normale Dateien verweisen –
– Die Anzahl Hard-Links auf einem DSO wird gezählt, erst beim Löschen des letzten wird der Dateiinhalt freigegeben!!

Symbolischer Link (Soft-Link)
Verweist auf eine Datei, deren Inhalt den Pfadnamen (absolut oder relativ) einer anderen Datei enthält.
Entspricht einer „Verknüpfung“ unter WINDOWS.
Kann Partitionsgrenzen überschreiten.
Das Ziel muss nicht existieren (zeigt ins „Leere“).
Kann auf alle DSO verweisen (insbes. Verzeichnisse), d.h. im Dateibaum sind „Rekursionen“ möglich.
Die Anzahl Soft-Links auf ein DSO wird nicht gezählt.
Folie 82Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Symbolischer Link (Soft-Link)• Verweist auf Datei, deren Inhalt enthält den Pfadnamen (absolut oder
relativ) einer anderen Datei
• kann Partitionsgrenzen überschreiten
• kann auf alle DSO verweisen (insbesondere Verzeichnisse) „Rekursionen“ im Dateibaum möglich
• Anzahl der Soft-Links auf DSO wird nicht gezählt

Folie 83Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Zweck von Links• immer gleichen Namen für Gerät festlegen
• einfacher Zugriff vom Heimat-Verzeichnis aus
• Plattenplatz sparen
• Schreibfehler / geänderte Konventionen abfangen
• Konsistenz erhalten bei Updates
• gültige Version aus mehreren vorhandenen auswählen
• Programme / Skripts verhalten sich abhängig vom Namen ihres Aufrufs anders

Folie 84Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Unterschiede zwischen den beiden Link-Typen Hard Symbolic
• Referenz per Inode Name• Anzahl Links auf Datei bekannt –• Über Partitionen hinweg möglich – • Ziel kann ein Verzeichnis sein – • Rekursion möglich – • Ziel muss existieren –• Geschwindigkeit schnell langsam• Äquivalent unter WINDOWS – Verknüpfung

Gerätedatei:
Alle physikalischen Geräte in einem UNIX-System sind im Dateibaum unter dem Verzeichnis /dev (device) per Dateiname ansprechbar.
Man unterscheidet je nach Art des Datenzugriffs zeichen- (zeichenweiser, serieller Zugriff) und blockorientierte Geräte (wahlfreier Zugriff):
/dev/console /dev/hda
/dev/psaux /dev/sdb
/dev/tty01
Jedes Gerät wird über einen Treiber angesprochen, der entweder fester Teil des Kerns ist oder erst bei Bedarf als Modul nachgeladen wird.
Zwei wichtige Pseudo-Geräte sind:
/dev/null Alle Daten, die dort gespeichert werden, gehen verloren
/dev/zero Von diesem Gerät können beliebig viele Nullbytes
gelesen werden (Vorsicht!).
Die Gerätedateien enthalten Verweise auf eine Tabelle mit Treiber-Startadressen (Major-Device-Number)
Kommt das gleiche Gerät mehrfach vor, so wird der gleiche Treiber verwendet, aber die einzelnen Geräte über eine Minor-Device-Number unterschieden.
Folie 85Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Aufbau
Gerätedatei
• alle physikalischen Geräte sind im Dateibaum unter dem Verzeichnis /dev (device) per Dateiname ansprechbar
• man unterscheidet zeichen- und blockorientierte Geräte
• jedes Gerät wird über einen Treiber angesprochen
• zwei wichtige Pseudo-Geräte sind:
/dev/null alle dort gespeicherten Daten gehen verloren
/dev/zero es können beliebig viele Nullbytes gelesen werden

Folie 86Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Auskunftsfunktionen
Kommandoscd Verzeichnis wechseln (change directory)
pwd aktuelles Verz. ausgeben (print working directory)
ls Dateien und Verzeichnisse auflisten (list)
file Dateityp feststellen
more Textdateien seitenweise am Bildschirm ausgeben
less analog more (eher bei Linux)
cat Dateien aneinanderhängen (concatenate)
df freien Plattenplatz ausgeben (disk free)
du Speicherverbrauch von DSO ausgeben (disk used)
Beipiele:
cd /etc
cd /usr/lib
cd text
cd ../usr3/text
ls -i
ls -a
ls -ali
file /etc/passwd
more /etc/passwd
less /etc/group
cat /etc/hosts

Folie 87Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 5a
• Stellen Sie den Dateityp verschiedener Dateien in folgenden Verzeichnissen fest: Heimat-Verzeichnis, /usr/include, /usr/bin, /boot.
• Suchen Sie nach Textdateien und lassen Sie sich deren Inhalt ausgeben.
• Stellen Sie fest, wieviel Speicherplatz die Verzeichnisse /home, /etc und /usr belegen.
• Stellen Sie fest, welche Partitionen wohin montiert sind und wieviel Speicherplatz darauf noch frei ist.

Folie 88Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 5b
• Suchen Sie einige ausführbaren Dateien.
• Suchen Sie einige versteckte Dateien und zeigen Sie ihren Inhalt an.
• Suchen Sie einige zeichen- und block-– orientierte Gerätedateien.
• Suchen Sie einige Hard-Links und – Symbolische Links.
• Ermitteln Sie die Inode-Nummern einiger Dateien (ls -i gibt die Inode-Nummer zu Dateien aus).

Beispiele:
mkdir (make directory) legt neue Verzeichnisse an:
mkdir VERZEICHNISmkdir -p VERZEICHNISPFAD (path, erzeugt auch
fehlende Zwischen-verzeichnisse)
rmdir (remove directory) löscht Verzeichnisse (nur wenn sie leer sind!):
rmdir VERZEICHNIS
touch legt neue leere Dateien an oder aktualisiert das Änderungsdatum von Dateien:
touch DATEI
Folie 89Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Verändernde Kommandos
• mkdir legt neue Verzeichnisse an:
mkdir VERZEICHNIS
• rmdir löscht Verzeichnisse (nur leere)
rmdir VERZEICHNIS
• touch legt neue leere Dateien an oder aktualisiert das Änderungsdatum von Dateien:
touch DATEI

Die wichtigsten (gemeinsamen) Optionen sind:
-i Vor Datei überschreiben fragen (interactive)
-r/-R Ganzen Dateibaum bearbeiten (recursive)-f Überschreiben des Ziels erzwingen (force)
Beispiele:
cp -i file1 file2
cp f1 f2 f3 a* dir
mv f1 ../dir
Folie 90Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Verändernde Kommandos
• cp (copy) kopiert Dateien
• mv (move) verschiebt oder benennt Dateien um
• Die Syntax der beiden Kommandos ist identisch:
cp/mv [OPTIONEN] QUELLDATEI ZIELDATEI
cp/mv [OPTIONEN] QUELLDATEIEN ZIELVERZ

ln (link) legt Links (weitere Verweise) auf DSO an:
ln QUELLDATEI ZIELDATEI (Variante 1)ln -s QUELLDSO ZIELDSO (Variante 2)
Variante 1 legt Hard-Links an:
Können nur auf Dateien in der gleichen Partition zeigen.
Variante 2 legt Symbolic Links an (symbolic):
Können auf beliebige DSO in anderen Partitionen zeigen.
Beim Anlegen von symbolischen Links sollte mit absoluten Pfaden gearbeitet werden.
rm (remove) löscht Dateien oder Verzeichnisbäume:
rm [OPTIONEN ] DATEI
Die wichtigsten Optionen sind (analog zu cp/mv):
-i Vor jedem Löschen fragen (interactive)-r/-R Ganzen Dateibaum bearbeiten (recursive)-f Löschen erzwingen ohne Meldung (force)
Beispiel:
rm -ri dir/a*
Folie 91Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Verändernde Kommandos
• ln (link) legt Links auf DSO an:
ln QUELLDATEI ZIELDATEI (Variante 1: Hard-Links)
ln -s QUELLDSO ZIELDSO (Variante 2: Soft-Links)
–
– Beim Anlegen von symbolischen Links sollte mit absoluten Pfaden gearbeitet werden!
• rm löscht Dateien oder Verzeichnisbäume:
rm [OPTIONEN] DATEI

Folie 92Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Verändernde Kommandos
Kommandosmkdir Verzeichnis anlegen (make directory)
rmdir Verzeichnis löschen (remove directory)
touch Änderungsdatum eines DSO verändern oder ein leeres DSO anlegen
cp DSO kopieren (copy)
mv DSO umbenennen oder verschieben (move)
ln Hard-Link auf ein DSO anlegen (link)
ln -s Symbolic-Link auf ein DSO anlegen (link)
rm DSO löschen (remove)
Beispiele:
mkdir unter
rmdir unter
touch f1 f2
cp f1 f3
mv f1 f5
ln f5 f6
ln -s f5 f7
rm -i f*

Folie 93Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 6
• Erzeugen Sie in ihrem Heimatverzeichnis einige (leere) Dateien, Verzeichnisse, sowie Hard-Links und symbolische Links.
• Zeigen Sie mit ls -l die Datei-Informationen an.
• Kopieren Sie einige dieser DSO.
• Benennen Sie einige der neuen DSO um.
• Verschieben Sie einige der neuen DSO
• Löschen Sie alle von Ihnen angelegten DSO wieder.

Das UNIX Dateisystem kennt 3 verschiedene Arten von Zugriffsrechten:
Lesen (r=read)
Schreiben (w=write)
Ausführen (x=execute)
Sie können pro DSO definiert werden für (a=all):
den Besitzer (u=user)
die Gruppe (g=group)
alle anderen Benutzer (o=others)
Folie 94Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• Es gibt 3 verschiedene Arten von Zugriffsrechten:
– Lesen (rr=read)
– Schreiben (ww=write)
– Ausführen (xx=execute)
• Sie können pro DSO definiert werden für (aa=all):
– den Besitzer (uu=user)
– die Gruppe (gg=group)
– alle anderen Benutzer (oo=others)

Folie 95Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• Die Zugriffsrechte werden vom Kommando ls -l in folgender Form ausgegeben:
- r w x r w x r w x
Das erste Feld bezeichnet den Dateityp:Das erste Feld bezeichnet den Dateityp: - normale Dateid Verzeichnis (directory)c zeichenorientiertes Gerät (character device)
b blockorientiertes Gerät (block device)
l Symbolischer Link
p Named Pipes Socket
user group otherRechtevektormit 3 * 3 Rechten

Folie 96Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• Bedeutung der Zugriffsrechte bei Dateien:
– Lesen: Dateiinhalt kann gelesen werden– Schreiben: Dateiinhalt kann verändert werden– Ausführen: Datei kann als Programm ausgeführt werden
• Beispiel:
-rw-r--r-- Datei ist für den Besitzer les- und schreibbar, für alle anderen nur lesbar
-rwxr-xr-x wie oben, aber die Datei ist für alle auch ausführbar
-rw------- Datei nur für den Besitzer les- und schreibbar
-r--r--r-- Datei für alle nur lesbar (auch für den Besitzer!)
u g o

Bedeutung der Zugriffsrechte bei Verzeichnissen:
Lesen: Verzeichnisinhalt kann aufgelistet werden (ls)
Schreiben: Dateien können angelegt/gelöscht werden (touch, mkdir, cp, mv, rm, rmdir)
Ausführen: In Verzeichnis kann gewechselt werden (cd)
Folie 97Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• Bedeutung der Zugriffsrechte bei Verzeichnissen:
– Lesen: Verzeichnisinhalt kann aufgelistet werden – Schreiben: Dateien können angelegt/gelöscht werden – Ausführen: In Verzeichnis kann gewechselt werden (cd)
• Beispiel:
drwxr-xr-x Besitzer darf Dateien anlegen und löschen, Rest darf Verzeichnis lesen und in Verzeichnis wechseln
drwx------ Verzeichnis ist nur für Besitzer lesbar/schreibbar/besuchbar
drwxrwx--- Besitzer und Gruppe dürfen alles, Rest nichts
u g o

Rechte-Anomalie
Über Veränderungen am Inhalt einer Datei entscheiden die Dateirechte.
Über Veränderungen am Namen einer Datei entscheiden die Rechte des Verzeichnisses, in dem die Datei steht (umbenennen, verschieben, löschen).
D.h. eine Datei kann z.B. gelöscht werden, obwohl man kein Schreibrecht auf sie hat.
Mit dem Nichtsetzen des Schreibrechts im Verzeichnis kann also ein Löschen (aller) Dateien dieses Verzeichnisses verhindert werden - nicht mit dem Schreibrecht einer Datei!
Folie 98Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
Rechte-Anomalie• über Veränderungen am Inhalt einer Datei entscheiden die Dateirechte
• über Veränderungen am Namen einer Datei entscheiden die Rechte des Verzeichnisses, in dem die Datei steht
d.h. eine Datei kann z.B. gelöscht werden, obwohl man kein Schreibrecht auf sie hat

Folie 99Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• chmod verändert die Zugriffsrechte einer Datei (change modus):– chmod RECHTE DATEI
• Nur dem Besitzer einer Datei möglich!
• Die RECHTE können angegeben werden als:
– Buchstaben (kein Leerzeichen): [ugoa] [+-=] [rwx] (+ = Hinzufügen, - = Wegnehmen, = = Absolut Setzen)
– Oktalzahl: 000-777 (dreistellig)

Folie 100Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• Zugriffsrechte können als Bitmuster interpretiert werden
RechteRechte WertWertr w x 7r w - 6r - x 5r - - 4- w x 3- w - 2- - x 1- - - 0

Weitere Beispiele:
chmod a+rx file1 file2chmod 754 a*
Folie 101Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
Beispielechmod u=rw,go=r DATEI Besitzer hat Schreib- und Leserecht auf
DATEI, der Rest hat nur Leserecht (Komma als Trennzeichen)
chmod a+x DATEI Jeder erhält (zusätzlich) Ausführungsrecht für DATEI
chmod -R a+x VERZ Wie oben, nur werden alle Unterverzeichnisse
des Verzeichnisses VERZ und ihre Dateien darin eingeschlossen
chmod o-rwx DATEI Rest bekommt die Lese-, Schreib- und
Ausführungsrechte für DATEI entzogen
chmod 666 DATEI Jeder erhält Schreib- und Leserecht

umask (usage mask) legt Standardzugriffsrechte von DSO fest, die neu angelegt werden:
Die Usage Mask besteht aus 3 Oktalziffern, die von den Zugriffsrechten 777 (für Verzeichnisse) bzw. 666 (für Dateien) Rechte entfernen (maskieren).
umask setzt die Maske oder gibt ihren aktuellen Wert aus:
umask ® 022 (meist)
umask MASK (z.B. umask 027)
Folie 102Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• umask (usage mask) legt Standardzugriffsrechte für neue DSO fest
• die Usage Mask besteht aus 3 Oktalziffern
• umask setzt die Maske oder gibt ihren aktuellen Wert aus:
umask ® 022
umask MASK (z.B. umask 027)

Folie 103Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
Wirkung beim Anlegen neuer Dateien• umask 022
0 0 0 0 1 0 0 1 0 Usage MaskUsage Mask
1 1 0 1 0 0 1 0 0
bei Dateien wird das Flag x nicht automatisch gesetzt explizit mit chmod setzen!
r w - r - - r - - Zugriffsrechte derZugriffsrechte derneuen Dateineuen Datei

Folie 104Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
Wirkung beim Anlegen neuer Verzeichnisse• umask 027
0 0 0 0 1 0 1 1 1 Usage MaskUsage Mask
1 1 1 1 0 1 0 0 0
beim Anlegen eines Verzeichnisseswerden nur die gesetzten Bits maskiert
r w x r - x - - - Zugriffsrechte desZugriffsrechte desneuen Verzeichnissesneuen Verzeichnisses

Die Zugriffsrechte von symbolischen Links werden von umask nicht beeinflußt, sie lauten stets:
lrwxrwxrwx
Die tatsächlichen Zugriffsrechte eines symbolischen Links werden durch das DSO bestimmt, auf das der symbolische Link zeigt.
Erst beim Zugriff auf das DSO werden die Rechte überprüft (d.h. ein symbolischer Link kann ohne Schreibberechtigung für sein Ziel gelöscht werden).
Folie 105Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Dateisystem - Zugriffsrechte
• Die Zugriffsrechte von symbolischen Links nicht von umask beeinflußt, immer:– lrwxrwxrwx
• Die tatsächlichen Zugriffsrechte eines symbolischen Links durch DSO bestimmt, auf das symbolischer Link hinweist

Folie 106Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 7
• Legen Sie (als normaler Benutzer) verschiedene DSO an und ändern Sie die Zugriffsrechte darauf.
• Überprüfen Sie, was diese Änderungen bewirken.
• Legen Sie Dateien und Verzeichnisse mit unterschiedlichen Belegungen der umask an.
• Versuchen Sie (als normaler Benutzer) Dateien und Verzeichnisse in (System)Verzeichnissen anzulegen.– Wo klappt das und warum?

Folie 107Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse
Inhalt• Multitasking, Zeitscheiben-VerfahrenMultitasking, Zeitscheiben-Verfahren
• Start, Verwaltung, Beenden von ProzessenStart, Verwaltung, Beenden von Prozessen
• Prozess-StatiProzess-Stati
• Prozess-UmgebungProzess-Umgebung
• SignaleSignale
• KommandosKommandos
Kapitel 4.3
Kapitel 4.3

UNIX kann mehrere Kommandos (Tasks) gleichzeitig durchführen (Multitasking).
Hierzu führt es eine Prozess-Liste der aktiven Prozesse.
Ein Scheduler teilt jedem Prozess einen kurzen Abschnitt der verfügbaren Rechenzeit zu (Zeitscheibe).
Die Länge des Abschnitts hängt von der Priorität des Prozesses ab (beim Start festlegbar, später änderbar).
Ein Prozess beendet sich entweder selbst oder er wird von seinem Besitzer vorzeitig abgebrochen.
Folie 108Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Multitasking
• UNIX: multitasking - fähig
• eine Prozess-Liste der aktiven Prozesse wird geführt• ein Scheduler teilt jedem Prozess einen kurzen Abschnitt der verfügbaren
Rechenzeit zu
• Länge des Abschnitts hängt von der Priorität des Prozesses ab
• Ein Prozess beendet sich selbst oder er wird von Besitzer vorzeitig abgebrochen
SchedulerScheduler
Task 1
Task 2
Task 3
11
22
33
ZeitlicherAblauf

Folie 109Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Multitasking
Prozess 7
Prozess 7 Proz
ess 1
Proz
ess 1
Prozess 2Prozess 2
Prozess 3
Prozess 3
Prozess 4
Prozess 4Proze
ss 5
Proze
ss 5
Prozess 6Prozess 6
Zeitscheiben-Verfahren
zeitlicherzeitlicherAblaufAblauf(Uhrzeigersinn)(Uhrzeigersinn)
aktuelleraktuellerProzessProzess

Prozesse werden durch folgende Aktionen gestartet:
Eingabe eines Programmnamens und RETURN.
Aufruf aus einem Binärprogramm oder Skript heraus.
Durch einen Betriebssystem-Prozess (z.B. cron).
Ein Prozess ist ein laufendes (aktives) Programm, und nicht die Programm-Datei selbst (bleibt auf der Festplatte stehen ;-).
D.h. zum gleichen Programm (auf der Festplatte) können beliebig viele Prozesse erzeugt werden.
Folie 110Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Start
• Ein Prozess ist ein laufendes (aktives) Programm
zum gleichen Programmzum gleichen Programm Erzeugung beliebig vieler Prozesse beliebig vieler Prozesse möglich
• Start von Prozessen durch :
Eingabe Eingabe eines Programm-eines Programm-namens namens und und RETURNRETURN
Aufruf Aufruf aus einem aus einem Binärprogramm Binärprogramm oder oder Skript Skript
durch durch Betriebssystem-Betriebssystem-Prozess Prozess (z.B. cron).(z.B. cron).

Jedem Prozess wird vom Betriebssystem eine eindeutige Prozess-ID (PID) zugewiesen.
Die Prozessnummern werden aufsteigend vergeben, wird die Obergrenze (32767) erreicht, so wird wieder von vorne begonnen.
Der erste gestartete Prozess ist der Prozess init, er hat die Prozessnummer 1 (oder in seltenen Fällen 0).
Er liest die Anweisungen zum Booten des Systems aus der Datei /etc/inittab (initialization table).
Ein Prozess kann beliebig viele Kind-Prozesse (child processes) starten.
Er ist dann der Eltern-Prozess (parent process) dieser Prozesse.
Die Kind-Prozesse kennen die Prozessnummer ihres Eltern-Prozesses (parent process ID=PPID).
Die Prozesse bilden daher eine Prozess-Hierarchie (analog dem Dateisystem), der Prozess init ist die Wurzel dieser Hierarchie.
Folie 111Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Verwaltung
• jedem Prozess wird vom Betriebssystem eine eindeutige Prozess-ID (PID) zugewiesen
• der erste gestartete Prozess ist der Prozess init oder systemd: Prozessnummer 1

Folie 112Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Verwaltung
• ein Prozess kann beliebig viele Kind-Prozesse starten
Eltern-Prozess dieser Prozesse
Prozess-Hierarchie,
der Prozess init ist die Wurzel
kennen Prozessnummer ihres Eltern-Prozesses (PPID)
ElternEltern
KindKind
KindKind KindKind
KindKind

Die laufenden Prozesse können mit Hilfe des Kommandos ps (process status, unter LINUX auch pstree, top) angezeigt werden.
Jeder Benutzer kann alle im System laufenden Prozesse auflisten ® Sicherheitsproblem, Datenschutz!
Jeder Benutzer kann nur seine Prozesse abbrechen.
Der Superuser kann jeden Prozess abbrechen.
Folie 113Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Verwaltung
• laufende Prozesse können mit ps angezeigt werden
• jeder kann alle im System laufenden Prozesse auflisten ® Sicherheitsproblem
• jeder kann nur seine Prozesse abbrechen
• der SuperuserSuperuser kann jeden Prozess abbrechen

Mit ps (process status) werden Informationen über Prozesse angezeigt:
ps [OPTIONEN ]
Die wichtigsten Optionen von ps sind:
-e alle Prozesse (every)
-l mehr Informationen ausgeben (long)
-u user Prozess dieses Benutzers (user)
-t terminal Prozesse an diesem Bildschirm(tty)
-x Prozesse ohne Terminal anzeigen (Dämonen, ältere Linuxe)
-a alle Prozesse (ältere Linuxe)
Folie 114Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Verwaltung
• mit ps Anzeige von Informationen über Prozesse
ps [OPTIONEN]
• Die Ausgabe von ps besteht aus folgenden Komponenten:
PID TTY TIME CMD 52 tty1 0:01 bash
Terminal-Terminal-namename
Prozess-Prozess-IDID
Rechen-Rechen-zeitzeit
KommandoKommando

Folie 115Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Verwaltung
• Die Ausgabe von ps -l besteht aus folgenden Komponenten:
S UID PID PPID PRI NI ADDR SZ WCHAN TTY TIME CMD R 100 52 45 8 10 FFFF 5984 - pts/14 0:00 bash
User-User-IDID
Prozess-Prozess-StatusStatus Prozess-Prozess-
IDID
Eltern-Eltern-Prozess-Prozess-IDID
PrioritätPriorität
Nice-Nice-WertWert
Start-Start-adresseadresse
Prozess-Prozess-größegröße
Warte-Warte-InfoInfo
TerminalTerminal
Rechen-Rechen-zeitzeit
Kommando-Kommando-AufrufAufruf
Beispiel:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD000 S 101 3642 3638 0 69 0 - 366 n_tty_ pts/0 00:00:00 cat000 S 101 3667 3658 0 69 0 - 678 wait4 pts/1 00:00:00 bash004 S 101 6204 3667 0 69 0 - 402 n_tty_ pts/1 00:00:00 rlogin002 S 101 6206 6204 0 69 0 - 402 ip_set pts/1 00:00:00 rlogin000 S 101 6209 3658 0 69 0 - 733 n_tty_ pts/2 00:00:00 bash000 S 101 7104 6209 0 69 0 - 3251 poll_f pts/2 00:00:02 gimp

Prozesse – Stati
Ein Prozess kann in einem der folgenden Zustände (in der Bildschirmausgebe des Befehls ps -l mit S = Status) sein:
R Lauffähig in der Queue (runnable)
S Wartend auf ein Ereignis (sleeping)
T Angehalten durch die Job-Control (stopped)
W Wartend auf die Zuteilung einer Ressource (waiting)
Z Abgeschlossen (zombie)
Prozess - Umgebung
Jeder Prozess hat eine nur ihm zugängliche (Laufzeit)-Umgebung, die sein Verhalten bestimmt. Sie umfasst:
Auszuführenden Maschinencode
Programmzähler und Aufrufstack
Zu verarbeitende Daten
Ein/Ausgabe-Kanäle
Variablen
Prozesszusammenhang (Eltern / Kinder)
Folie 116Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozess - Stati
WW
TT
RR
SS
** ZZ
* * = Bereit
WW = Waiting
RR = Runnable
SS = Sleeping
TT = Stopped
ZZ = Zombie

Läuft ein Prozess ordnungsgemäß bis zum Ende, so beendet ihn UNIX automatisch.
Das manuelle Beenden eines laufenden Prozesses geschieht mit dem Kommando kill:
kill [-SIGNAL ] PID
Durch kill wird dem Prozess PID ein Signal geschickt, auf das er reagieren kann (oder muss) oder das er auch ignorieren kann (dies kann durch den Entwickler entschieden werden).
Folie 117Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Beenden
• manuelles Beenden eines laufenden Prozesses mit kill:
kill [-SIGNAL] PID
• kill ist Signal für den Prozess PID
er kann auf das Signal reagieren – oder
er muß auf das Signal reagieren– oder
er kann das Signal ignorieren

Es gibt etwa 30 unterschiedliche Signale, die kill verschicken kann.
Signale werden vor allem vom Kern, aber auch von den Prozessen selbst gesendet und empfangen.
Signale sind über ihren Namen (mit oder ohne den Präfix SIG) oder ihre Nummer (1..30) angebbar.
Die vollständige Liste aller Signale erhält man durch:
kill -l (list) oder
man [-s] 7 signal
Bestimmte Tasten lösen ebenfalls Signale aus, z.B.:
SIGTSTOP (19) anhalten (Strg-Z)
SIGCONT (18) Weiterlaufen (continue, fg/bg)
Viele Signale werden auch automatisch vom Betriebssystem ausgelöst:
SIGQUIT (3) Prozessende erreicht
SIGILL (4) Nicht erlaubte Anweisung (illegal)
SIGFPE (8) Mathefehler (floating point error)
SIGBUS (10) Zugriffsverletzung (Bus-Alignment)
SIGSEGV (11) Falscher Speicherzugr. (segment violation)
SIGPIPE (13) Prozess in Pipeline weg (broken pipe)
SIGCHLD (18) KindProzess beendet (child)
Folie 118Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Signale
• Die wichtigsten Signale sind:
SIGHUP (1) Konfigurationsdatei lesen (hangup)
SIGINT (2) Abbruch mit STRG/CTRL-C (interrupt)
SIGKILL (9) Bedingungsloser Prozessabbruch
SIGTERM (15) Prozess beenden (terminate)

Das Beenden eines Prozesses PID ist manchmal nicht so einfach möglich:
Er kann mit dem Standard-Signal SIGTERM (terminate, 15) von kill sauber (d.h. mit Aufräumen) beendet werden, er kann dieses Signal aber auch ignorieren:
kill PID
Das Signal SIGKILL (9) beendet ihn sicher, läßt ihm aber keine Möglichkeit mehr zum Aufräumen (z.B. Löschen temporärer Dateien, sollte nicht der Normalfall sein):
kill -9 PID
Folie 119Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Signale
• Beenden eines Prozesses PID oft nicht einfach möglich:
– mit Standard-Signal SIGTERM von kill sauber beenden, aber:• er kann dieses Signal auch ignorieren
• kill PID
– Signal SIGKILL beendet sicher, läßt aber keine Möglichkeit mehr zum Aufräumen • kill -9 PID

Folie 120Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Prozesse - Kommandos
Kommandos
ps listet Prozesse auf (process status)
kill beendet Prozesse (verschickt Signale)
top listet fortlaufend alle Prozesse auf (nur LINUX)
pstree Prozesshierarchie auflisten (nur LINUX)

Folie 121Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 8a
• Listen Sie mit ps auf:– Ihre eigenen Prozesse – Alle DämonProzesse (haben kein Terminal)– Sämtliche Prozesse
• Rufen Sie top in einem Fenster auf.– Welcher Prozess kostet am meisten CPU?
• Welche Prozesse kosten viel CPU, wenn:– Die Maus bewegt wird– Der InternetBrowser (z.B. firefox) gestartet wird

Folie 122Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 8b
• Beenden Sie durch kill in einem anderen Fenster:
– Das laufende Programm top
– Das laufende Programm InternetBrowser
– Eine laufende bash– Ein Terminal-Fenster– Die X-Oberfläche (startkde/kde/kdm)
• Verfolgen Sie über die Eltern-Prozessnummer die Prozesshierarchie

Folie 123Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell
Inhalt• FunktionsweiseFunktionsweise
• Shell-TypenShell-Typen
• FunktionalitätenFunktionalitäten
Kapitel 4.4
Kapitel 4.4

Eine Shell ist ein Programm, das Kommandos vom Benutzer entgegennimmt und sie ausführt.
Sie zeigt dazu eine Eingabe-Aufforderung (Prompt) an und wartet dann auf eine Eingabe
Wird ein Kommando eingegeben, so startet sie einen entsprechenden
Prozess und wartet auf sein Ende. Dieses Warten kann durch ein & am Ende der Kommandozeile vermieden werden (HintergrundProzess).
find / -name passwd > erg 2> err &
Danach gibt die Shell die PID des Prozesses und dann erneut die Eingabe-Aufforderung an und wartet auf eine Eingabe des Benutzers.
Folie 124Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Funktionsweise
Ausführung von Kommandos:Ausführung von Kommandos:
Eingabe-Aufforderung wird angezeigt
warten auf Eingabe
Kommandoeingabe
Start des entsprechenden Prozesses
warten auf Ende
erneute Anzeige der Eingabe-Aufforderung
warten auf neue Eingabe des
ShellShell==
ProgrammProgramm
bekommt Kommandos vom und führt diese aus

Eine Shell führt auch sogenannte Shell-Skripte (Batch-Dateien) aus.
Dies sind normale Textdateien, die eine Folge von Shell-Kommandos enthalten, wie sie auch auf der Kommandozeile eingegeben werden.
Sie bietet eine vollwertige Programmiersprache, die allerdings stark auf die Systemverwaltung und Automatisierung zugeschnitten ist.
Shell-Skripts werden nicht übersetzt, sondern sofort zeilenweise gelesen und ausgeführt (interpretiert).
Folie 125Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Funktionsweise
• Eine Shell führt sogenannte Shell-Skripte aus normale Textdateien, die Folge von Shell-Kommandos enthalten
• Sie bietet vollwertige Programmiersprache (stark auf die Systemverwaltung und Automatisierung zugeschnitten)
• Shell-Skripte werden nicht übersetzt, sondern sofort zeilenweise gelesen und ausgeführt

Die Korn-Shell ksh und die Born-Again Shell bash sind Weiterentwicklungen der originalen Bourne-Shell sh.
Die C-Shell csh (und ihr Nachfolger, die Tenex-C-Shell tcsh) haben (leider) eine völlig andere Syntax als die sh und ihre Abkömmlinge (ähnlich zur Programmiersprache C).
Die Bourne-Shell sh ist für Interaktion nicht gut geeignet, für die Skript-Programmierung ist sie sehr gut geeignet.
Die C-Shells csh/tcsh sind mehr für Interaktion und weniger für Skript-Programmierung geeignet (sie enthält auch einige Fehler und Einschränkungen).
Die Born-Again-Shell bash und die Korn-Shell ksh sind sowohl für Interaktion als auch für Skript-Programmierung geeignet.
Eine Shell ist weitgehend konfigurierbar und an Benutzerwünsche anpassbar, sie definiert letztlich die Arbeitsumgebung des Benutzers.
UNIX kennt viele unterschiedliche Shells:
sh Bourne-Shell (Original-Shell)
csh C-Shell (alter BSD Standard)
tcsh Tenex-C-Shell (BSD Standard)
bash Born-Again-Shell (LINUX Standard)
ksh Korn-Shell (System V Release 4 Standard)
Sie unterscheiden sich in Syntax, Konfigurationsfähigkeit und Funktionalität sowie in der Eignung für interaktives Arbeiten auf der Kommandozeile und für diese Skript-Programmierung.
Folie 126Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Shell-Typen
• UNIX kennt unterschiedliche Shells:
sh Bourne-Shell (Original-Shell)
tcsh Tenex-C-Shell (BSD Standard)
bash Born-Again-Shell (LINUX Standard)
ksh Korn-Shell (System V Release 4 Standard)
• Unterschiede in – - Syntax, Konfigurationsfähigkeit, Funktionalität
– - Eignung für interaktives Arbeiten auf der Kommandozeile und für diese Skript-Programmierung

Folie 127Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 9
• Geben Sie folgendes ein, um festzustellen, welche Login-Shell im Augenblick verwendet wird:echo $SHELL
• Rufen Sie einige Shells über ihren Namen auf, um festzustellen, welche davon installiert sind:– Was ändert sich nach dem Aufruf einer anderen Shell?
– Stellen Sie mit ps fest, welche Shells nun laufen.– Was für Beziehungen haben die gestarteten Shells?
• Kehren Sie mit exit zu Ihrer Login-Shell zurück.

Folie 128Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Funktionalitäten
Inhalt (1)• VerarbeitungsschritteVerarbeitungsschritte
• Shell-Umgebung Shell-Umgebung
• Shell- und Umgebungs-VariablenShell- und Umgebungs-Variablen
• Wichtige vordefinierte VariablenWichtige vordefinierte Variablen
• PfadsuchePfadsuche
• Shell-SkripteShell-Skripte
• HistoryHistory
• Namens-VervollständigungNamens-Vervollständigung

Folie 129Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Funktionalitäten
Inhalt (2)• AliaseAliase
• Standard-Ein/Ausgabe Standard-Ein/Ausgabe
• Datei-UmlenkungDatei-Umlenkung
• PipesPipes
• Dateinamen-ExpansionDateinamen-Expansion
• QuotierungQuotierung

Bevor ein eingegebenes Kommando gestartet wird, führt die Shell automatisch eine Reihe von Standard-Operationen auf den Text der Kommandozeile durch, der dadurch verändert wird.
In den folgenden Abschnitten werden die wichtigsten dieser Operationen besprochen und am Schluss nochmal zusammengefasst
Im letzten Abschnitt wird gezeigt, wie man alle oder einige dieser Schritte durch Quotieren verhindert.
Folie 130Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Verarbeitungsschritte
1) Vor Start eines eingegebenen Kommandos:
Shell führt automatisch Reihe von Standard-Operationen auf den Text der Kommandozeile durch verändert Text
2) Die wichtigsten dieser Operationen werden besprochen und zusammengefasst
3) Im letzten Abschnitt:
es wird gezeigt, wie man diese Schritte durch Quotieren verhindert

Shell-Umgebung
Alle Prozesse (also auch ein Shell-Prozess) haben eine eigene Umgebung (Environment), die ihr Verhalten beeinflusst.
Ein Teil des AnmeldeProzesses ist das Erstellen der Shell-Umgebung. Hierzu werden nach dem Login einige Shell-Konfigurationsdateien gelesen:
/etc/profile (sh + Nachfolger, zuerst gelesen)
~/.profile (sh + Nachfolger, danach gelesen)
Nicht Login-Shells (interaktive Shells) lesen andere Konfigurationsdateien ein (aus Geschwindigkeits- oder sonstigen Gründen), z.B.
~/.bashrc (bash, ressource/run control)
~/.cshrc (csh)
~/.kshrc (ksh)Die verschiedenen Shells kennen oft noch weitere Konfigurationsdateien, die sie beim Login oder Logout lesen und ausführen, z.B.
~/.bash_login (bash beim Login)
~/.bash_logout (bash beim Logout)
Folie 131Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Umgebung
Shell-Umgebung• alle Prozesse haben eigene Umgebung, die Verhalten beeinflusst
• beim AnmeldeProzess wird Shell-Umgebung erstellt, nach Login Lesen von Shell-Konfigurationsdateien
• Nicht-Login-Shells (interaktive Shells) lesen andere Konfigurationsdateien ein
• verschiedene Shells kennen weitere Konfigurationsdateien (werden beim Login oder Logout gelesen und ausgeführt)

Variable
Das Konfigurieren der Shell-Umgebung geschieht mit Hilfe von Variablen.
Der Wert einer Variable kann ein beliebig langer Text sein (andere Datentypen kennt die Shell nicht!).
Der Zugriff auf den Wert einer Variable erfolgt durch $VAR (oder ${VAR}, warum?). Z.B. gibt echo $VAR den Wert einer Variablen auf dem Bildschirm aus.
Es können beliebig viele Variablen benutzt werden.
Variablen werden gemäß Konvention meist GROSS geschrieben (um sie leichter erkennbar zu machen).
Man unterscheidet:
Shell-Variablen:Legen das Verhalten der Shell fest, werden nicht „vererbt“.
Umgebungs-Variablen (Teil der Shell-Variablen):Werden beim Aufruf eines Programms aus der Shell an dessen Umgebung „vererbt“.
Folie 132Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Variable
Variable• Konfigurieren der Shell-Umgebung durch Variablen
• Wert einer Variable kann beliebig langer Text sein
• Setzen mit = VAR='text'
• Zugriff auf den Wert einer Variable erfolgt durch $VAR
• Benutzen von beliebig vielen Variablen möglich
• Variablen werden gemäß Konvention meist GROSS geschrieben
• Man unterscheidet:
– Shell-Variablen
– Umgebungs-Variablen (Teil der Shell-Variablen)

Shell-Variable
set gibt die Liste aller Shell-Variablen mit ihren Werten aus.
Das Setzen einer Shell-Variablen erfolgt durchVAR=TEXT
Keine Leerzeichen um das = verwenden (warum?)!
In der csh erfolgt es durch set VAR=TEXT
Es gibt eine ganze Reihe vordefinierter Variablen.
Ihren Wert nur dann ändern, wenn die Wirkung klar ist!
Umgebungs-Variable
env (environment) gibt die Liste aller Umgebungs-Variablen mit ihren Werten aus (Teilmenge der von set gelieferten Liste).
Das Setzen einer Umgebungs-Variablen erfolgt durch export VAR=TEXT
Das Umwandeln einer Shell-Variable in eine Umgebungs-Variable (exportieren) erfolgt durch: export VAR
Folie 133Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Variable
code1
code2
lsls
shellshell
Prozessstarten
UmgebungsvariableUmgebungsvariable= Teil der Shell-Variable= Teil der Shell-Variable
Shell-VariableShell-Variable
bei Programmaufruf aus der Shell kopiert / vererbtvererbtdie Shell an ihre Umgebungdie Shell an ihre Umgebung
Daten-bereich

Weitere vordefinierte Variable
CDPATH Suchpfad für cd-Kommando
EDITOR Editor für Kommandozeile
MANPATH Suchpfad für man-Kommando
RANDOM Zufallszahl (0..32767)
TZ Zeitzone (time zone)
LANG Sprache z.B.: de_DE
Folie 134Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Variable
Wichtige vordefinierte VariablenHOME Heimat-Verzeichnis des Benutzers
LOGNAME/USER aktueller Loginname
PATH Suchpfad für ausführbare Programme
PS1 Eingabe-Prompt (prompt string)
PS2 Fortsetzungs-Prompt (prompt string)
PWD aktuelles Verz. (print working directory)
SHELL Name der Login-Shell
TERM Name des verwendeten Terminaltyps

Die PS1- und PS2-Variablen
Die Variable PS1 legt die Form der Eingabe-Aufforderung fest, die also somit frei konfiguriert werden kann (Standard: $ oder %).
Die Variable PS2 legt die Form des Fortsetzungs-Prompts fest.
Wird von der Shell ausgegeben, wenn sie erkennt, dass ein Kommando noch nicht voll-ständig ist (Standard: >).
Der Standard-Prompt der root ist #.
Beispiel für eine eigendefinierte Prompt-Variable (für ksh und bash):
PS1="$HOSTNAME \$PWD --> "
Nun wird der Rechnername und das aktuelle Verzeichnis angezeigt.
Folie 135Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Variable
Die PS1- und PS2-Variablen
• PS1 legt Form der Eingabe-Aufforderung fest kann frei konfiguriert werden
Standard: $ oder %
• PS2 legt Form des Fortsetzungs-Prompts fest
gibt Shell aus, wenn Kommando noch nicht vollständig ist Standard: >
• Standard-Prompt der root ist #

Folie 136Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 10
• Setzen Sie eine eigene Variable und greifen Sie darauf zu.
• Starten Sie eine neue Shell und prüfen Sie, ob die Variable da ist.
• Lassen Sie sich alle zur Zeit gesetzten Variablen (Shell- und Umgebungs-Variablen) ausgeben.
• Suchen Sie in den Dateien /etc/profile, ~/.profile und ~/.bashrc nach Variablen-Definitionen und Variablen-Verwendungen.
• Passen Sie die Prompt-Variablen PS1 und PS2 an Ihre Wünsche an (temporär und dauerhaft).

Die PATH-Variable
Enthält eine Liste aller Verzeichnisse (getrennt durch Doppelpunkt :), die die Shell nach ausführbaren Programmen durchsuchen soll („Suchpfad“).
Die Verzeichnisse werden in genau der Reihenfolge durchsucht, in der sie in PATH angegeben sind.
WINDOWS hat ; als Trennzeichen im Suchpfad!
Kann vom Benutzer erweitert oder verändert werden, z.B. durch: PATH=$PATH:$HOME/skripte
PATH=$PATH:$HOME/bin
Soll auch im aktuellen Verzeichnis gesucht werden, ist dies mit anzugeben: PATH=$PATH:.
Folie 137Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Pfadsuche
Die PATH-Variable
• enthält Liste aller Verzeichnisse, die die Shell nach ausführbaren Programmen durchsuchen soll
• Durchsuchen erfolgt in Reihenfolge, wie in PATH angegeben
• kann vom Benutzer erweitert oder verändert werden, z.B. durch:
– PATH=$PATH:$HOME/skripte

Die Shell sucht in folgender Reihenfolge nach Kommandos, das 1. gefundene wird ausgeführt:
Shell-Builtins: In die Shell direkt eingebaute Kommandos (z.B. cd, set, env, ...).
Aliase: Abkürzungen (wie z.B. ll, l, ...).
Funktionen: Zusammenfassungen von Shell-Kommandos unter einem Namen.
Pfadsuche: In der Reihenfolge der Verzeichnisse im Suchpfad PATH nach Programmen.
Fehlermeldung „command not found“.
Folie 138Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Pfadsuche
In folgender Reihenfolge sucht die Shell nach Kommandos,
das erste gefundene wird ausgeführt:
Shell-Builtins: in die Shell direkt eingebaute Kommando
Aliase: Abkürzungen
Funktionen: Zusammenfassungen von Shell-Kommandos unter einem Namen
Pfadsuche: in der Reihenfolge der Verzeichnisse im Suchpfad
PATH nach Programmen
Fehlermeldung „command not found“

Damit ein Kommando gefunden werden kann, muß es ausführbar (ein Shell-Skript auch lesbar) sein.
type simuliert die Suche nach dem tatsächlich ausgeführten Kommando und gibt seinen Typ aus:
type KMDO
Alternativ können auch alle bei der Suche gefundenen Kommandos ausgegeben werden:
type -a KMDO (all)
Das aktuelle Verzeichnis . wird (im Unterschied zu DOS/WIN) nur dann durchsucht, wenn PATH das Verzeichnis . enthält.
Beim Superuser nie der Fall, warum?
Ein Doppelpunkt : am Anfang oder Ende des Pfades oder zwei Doppelpunkte :: hintereinander stehen implizit für das aktuelle Verzeichnis ., z.B.:
PATH=:/bin:/usr/bin (= .:/bin/:usr/bin)
PATH=/bin:/usr/bin: (= /bin:/usr/bin:.)
PATH=/bin::/usr/bin (= /bin:.:/usr/bin)
Folie 139Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Pfadsuche
• damit Kommando gefunden werden kann, muss es ausführbar sein - ein Shell-Skript auch lesbar
• type simuliert Suche nach tatsächlich ausgeführtem Kommando und gibt Typ aus:
• type KMDO
• das aktuelle Verzeichnis wird nur durchsucht, wenn PATH es enthält
• am Anfang oder Ende des Pfades oder stehen für das
aktuelle Verzeichnis
PATH=:/bin:/usr/bin (= .:/bin/:usr/bin)
.
.: ::

Folie 140Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 11
• Sichern Sie die Variable PATH in eine Hilfsvariable.
• Geben Sie den Wert von PATH aus.
• Löschen Sie die Variable PATH.– Welche Kommandos können Sie danach noch aufrufen?
• Stellen Sie die Variable PATH wieder her.
• Ergänzen Sie die Variable PATH um das Verzeichnis ~/bin vorne und den Inhalt der Variablen HOME hinten (temporär und permanent).
• Suchen Sie einige Kommandos mit type.

Shell-Skripte können mit jedem gewöhnlichen ASCII-Texteditor erstellt werden.
Sie können alle UNIX-Kommandos enthalten, die auf der Kommandozeile eingebbar sind.
Beim Aufruf eines Shell-Skriptes werden die darin stehenden Kommandos abgearbeitet.
Ein Skript ist über seinen Namen aufrufbar, wenn:
Die Skript-Datei lesbar + ausführbar ist (rx-Rechte).
Der Suchpfad $PATH das Skript-Verzeichnis enthält.
Der Name eines Shell-Skriptes sollte so gewählt werden, dass daraus auf seine Bedeutung geschlossen werden kann (irgendwann gibt es 100erte davon!).
Die Namen von Shell-Skripten sollten die Endung .sh erhalten (für die Shell nicht notwendig), da sie:
Sofort als Shell-Skripten erkennbar sind.
Mit Suchbefehlen suchbar (und z.B. sicherbar) sind.
Nicht mit bereits vorhandenen UNIX-Kommandos (z.B. test) kollidieren können.
Folie 141Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell-Skripte
• Erstellen von Shell-Skripten mit jedem gewöhnlichen ASCII-Texteditor möglich
• können alle UNIX-Kommandos enthalten, die auf Kommandozeile eingebbar sind
• Abarbeiten der Kommandos beim Aufruf eines Shell-Skriptes
• Ein Skript ist über seinen Namen aufrufbar, wenn:– Skript-Datei lesbar + ausführbar ist
– Der Suchpfad $PATH das Skript-Verzeichnis enthält
• Die Namen von Shell-Skripten sollten (müssen aber nicht) die Endung .sh erhalten

Die erste Zeile eines Shell-Skriptes sollte folgende Form haben („Shee-Bang“-Notation):
#!/bin/sh
Sie legt fest, durch welches Programm (in obigem Fall /bin/sh, aber auch awk, sed, perl, ... sind angebbar) das Skript ausgeführt werden soll.
Fehlt diese Zeile, wird das Skript von der aktuellen Shell ausgeführt. Ist das z.B. die tcsh und handelt es sich z.B. um ein sh-Skript, führt dies zu Fehlern.
Jedes Skript sollte einen Kommentarkopf (#)enthalten mit
- Autor
- Name und Aufgabe
- Datum
- Änderungen
- benötigte Programme
- Fehlermöglichkeiten und exit-Code
Folie 142Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell-Skripte
• Die erste Zeile eines Shell-Skriptes sollte folgende Form haben:
#!/bin/sh
• dadurch wird festgelegt, welches Programm das Skript ausführen soll
• fehlt diese Zeile, wird das Skript von aktueller Shell ausgeführt
• Shellskripte gut dokumentieren!
• mit exit 0 oder exit 1 beenden (0=ok, 1-255=Fehler)

Folie 143Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 12
• Erstellen Sie ein Skript first.sh (mit der Shee-Bang-Notation), das folgendes (mit jeweils einer entsprechenden Überschrift per echo) ausgibt:
– Das aktuelle Datum (date +%D)– Wer gerade am System angemeldet ist– Das aktuelle Arbeitsverzeichnis– Den Typ des verwendeten Terminals ($TERM)
– Den Namen des verwendeten Terminals (tty)
• Machen Sie das Skript für jeden aufrufbar.

Die Shell merkt sich pro Benutzer alle eingegebenen Befehle in einer Datei .bash_history (HISTFILE, auch zwischen Sitzungen) und numeriert sie durch.
Standard sind die letzten 1000 Befehle (HISTSIZE).
Mit dem Befehl history [N] können diese 500 (bzw. die letzten N) Befehle angezeigt werden.
Mit history | grep TEXT kann nach Befehlen mit bestimmten Inhalten gesucht werden.
Die Shell sh kennt dieses History nicht!
Folie 144Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - History
• Shell merkt sich pro alle eingegebenen Befehle (500 bis 1000) in einer Datei .bash_history (Linux) und numeriert sie durch
• mit history [N] können diese 500 oder die letzten N Befehle angezeigt
werden
• mit history | grep TEXT kann nach Befehlen mit bestimmten Inhalten gesucht werden

Mit den Cursortasten-Auf/Ab kann in diesen Befehlen geblättert werden.
Ein alter Befehl kann editiert und durch RETURN erneut gestartet werden.
Achtung: in der ksh oder csh funktioniert dies anders!
Mit !NR (oder r NR in der ksh) kann ein Befehl über seine Nummer erneut aufgerufen werden (repeat).
Mit !TEXT (oder r TEXT in der ksh) kann ein Befehl über seinen Anfangstext erneut aufgerufen werden.
Es wird der neueste passende Befehl gesucht.
Folie 145Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - History
• mit den Cursortasten-Auf/Ab Blättern in Befehlen möglich
• ein alter Befehl kann editiert werden und erneuter Start durch RETURN
• mit !NR erneuter Aufruf eines Befehl über seine Nummer
• mit !TEXT erneuter Aufruf eines Befehls über seinen Anfangstext

In der bash von Linux:
Drücken der Tabulator-Taste während Eingabe eines Kommandos führt zu einer Suche nach passenden Kommando- oder sonstigen Namen durch die Shell.
Ist das eingegebene Stück Text eindeutig, so wird der Name automatisch ergänzt.
Ist es mehrdeutig, so piepst der Rechner. Durch erneutes Drücken der Tabulator-Taste können dann alle passenden Namen angezeigt werden.
Dadurch muss man sich nicht soviel merken, vermeidet Tippfehler und steigert die Eingabegeschwindigkeit.
Bei der Eingabe des 1. Wortes wird nach passenden Kommandos (gemäß Suchpfad PATH) gesucht.
Ab dem 2. Wort wird nach passenden Dateien im Dateisystem gesucht.
Nach $ wird nach passenden Variablen gesucht.
Nach ~ wird nach passenden Usern gesucht
Nach @ wird nach passenden Rechnern gesucht (wenn HOSTFILE=/etc/hosts gesetzt ist).
Folie 146Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Namens-Vervollständigung
• gedrückte Tabulator-Taste während Kommando-Eingabe die Shell sucht nach passenden Kommando- oder sonstigen Namen – Eingabe eindeutig:Name wird automatisch ergänzt– Eingabe mehrdeutig: Tabulator-Taste erneut drücken
alle passenden Namen werden angezeigt
• Eingabe des 1. Wortes: Suche nach passenden Kommandos
• ab dem 2. Wort: Suche nach passenden Dateien im Dateisystem
• nach $: Suche nach passenden Variablen
• nach ~: Suche nach passenden Usern
• nach @: Suche nach passenden Rechnern

Aliase stellen „Abkürzungen“ dar, die wie normale Kommandos aufgerufen werden können.
Das 1. Wort der Kommandozeile wird dabei vor der Ausführung des Kommandos durch einen Text ersetzt.
Damit lässt sich das eigene System „maßschneidern“.
Auf manchen Systemen ist bereits für jeden Benutzer eine Datei ~/.alias vorbereitet, in die er seine persönlichen Aliase eintragen kann
Wird automatisch beim Login gelesen, wenn sie existiert.
Folie 147Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Alias
• Aliase sind „Abkürzungen“ , Aufruf wie normale Kommandos
• 1. Wort der Kommandozeile wird vor Kommando-Ausführung durch Text ersetzt
„ maßschneidern“ eines eigenen Systems

Das Erstellen eines neuen Alias NAME erfolgt durch(kein Leerzeichen um = erlaubt):
alias NAME='ERSATZ'
z.B.alias lr= '/bin/ls -lF /' (list root)
Das Auflisten eines Alias NAME erfolgt durch:alias NAME
Das Auflisten aller Aliase erfolgt durch:alias
Das Löschen eines Alias NAME erfolgt durch:unalias NAME
Folie 148Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Aliase
• Erstellen eines neuen Alias NAME durch
alias NAME='ERSATZ' alias lr= '/bin/ls -lF /'
• Auflisten eines Alias NAME durch:alias NAME
• Auflisten aller Aliase durch: alias
• Löschen eines Alias NAME durch:unalias NAME
um = keine Leerzeichen !!

Folie 149Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 13a
• Probieren Sie die History-Funktionen der Shell aus.
• Probieren Sie die automatische Namens-Vervollständigung der Shell aus.
• Ermitteln Sie, welche Aliase in ihrer Umgebung bereits definiert sind.
• Ermitteln Sie, wo diese Alias-Definition steht.
• Löschen Sie einen vordefinierten Alias (z.B. ll oder dir) und überprüfen Sie dann, ob er noch aufrufbar ist (oder ein gleichnamiges „echtes“ Kommando).

Folie 150Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 13b
• Definieren Sie folgende Aliase temporär (in einem Fenster) und permanent (automatisch nach Login):
cx chmod u+x
c clear
va vi ~/.alias
sa source ~/.alias (oder . statt source)
• Probieren Sie diese Aliase aus (va und sa erleichtern die Definition und Aktivierung neuer Aliase)

Unter UNIX kennt jeder Prozess drei automatisch geöffnete „Standard-Kanäle“, sie heißen:
Standard-Eingabe (stdin, 0)
Standard-Ausgabe (stdout, 1)
Standard-Fehlerausgabe (stderr, 2)
Fast alle UNIX-Kommandos und Anwendungen nehmen Eingaben von der Standard-Eingabe entgegen (normalerweise von der Tastatur).
Ihre Ausgaben werden auf der Standard-Ausgabe ausgegeben (normalerweise auf dem Bildschirm).
Ihre Fehler- und Diagnosemeldungen werden auf der Standard-Fehlerausgabe ausgegeben (normalerweise auf dem Bildschirm).
Programme mit diesem Standardverhalten heißen auch Filter (da die Daten wie durch einen „Kaffeefilter“ hindurchlaufen und dabei verarbeitet werden – Ausnahme z.B. lp)..
Für jede Login-Shell werden beim Login folgende Zuordnungen standardmäßig eingerichtet:
Standard-Eingabe Tastatur
Standard-Ausgabe Bildschirm
Standard-Fehlerausgabe Bildschirm
Alle von einer Shell aus gestarteten Prozesse „erben“ diese Belegung der Standard-Kanäle (außer sie werden beim Kommando-Aufruf umgeleitet).
Folie 151Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Standard-Ein/Ausgabe
• jeder Prozess kennt drei „Standard-Kanäle“ (automatisch geöffnet)
– Standard-Eingabe (stdin, 0)
– Standard-Ausgabe (stdout, 1)
– Standard-Fehlerausgabe (stderr, 2)
• fast alle Kommandos und Anwendungen nehmen Eingaben von der Standard-Eingabe entgegen
• Ausgaben erfolgen auf der Standard-Ausgabe
• Fehler- und Diagnosemeldungen erfolgen auf der Standard-Fehlerausgabe

Folie 152Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Standard-Ein/Ausgabe
Standard-Eingabe und -Ausgabe
stdin 0
Prozess liestEingabenvon stdin
stderr 2
stdout 1Prozess
Prozess schreibt Ausgabennach stdout
Prozess schreibt Fehler und Warnungennach stderr

Durch Umlenken kann die Shell den Standard-Kanälen neu gestarteter Prozesse aber auch andere Dateien zuordnen.
Weil UNIX Dateien und Geräte gleich behandelt, kann es sich dabei sowohl um eine echte Datei als auch um Geräte (z.B. Festplatte oder Drucker) handeln.
Das Umlenken geschieht durch die Shell „von außen“, die Prozesse merken nicht, welche Dateien/Geräte wirklich mit ihren Standard-Kanälen verbunden sind.
Folie 153Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Standard-Ein/Ausgabe
Umlenkung der Standard-Eingabe bzw. -Ausgabe
stdin stdoutProzess Bildschirm
Drucker
Prozess
Datei
Tastatur
Datei
Prozess
/dev/nullBildschirm Datei
stderr
Erfolgt durch die Shell von außen

Viele Kommandos können Dateinamen auch von der Kommandozeile als Parameter lesen, sodass ein Umlenken der stdin nicht notwendig ist:
grep 'error:' logfilecat gedicht
Folie 154Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Datei-Umlenkung
• KMDO < FILE lenkt die Kommando- / Programm-Standard-Eingabe so um, dass sie aus Datei FILE kommt und nicht vom Terminal
• Die Datei muss existieren!
• Beispiel:
grep 'error:' < logfile
cat < gedicht
mail sarah < brief.txt

KMDO > FILE lenkt die Kommando- / Programm - Ausgabe in Datei FILE um
Existiert die Datei bereits, wird sie überschrieben!
Beispiel:
date > now
grep "error:" logfile > err
ls -l > file.lst
echo "Viele Grüße" > brief.txt
KMDO >> FILE hängt die Ausgabe eines Kommandos oder Programmes an eine bereits existierende Datei FILE an.
Existiert die Datei noch nicht, so wird sie erzeugt.
Beispiel:
date >> now
grep "error:" logfile2 >> err
ls -l / >> file.lst
echo "Dein Tux" >> brief.txt
Folie 155Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Datei-Umlenkung
• KMDO > FILE lenkt die Kommando- / Programm - Standard-Ausgabe in Datei FILE um
• Existiert die Datei bereits, wird sie überschrieben!
• Beispiel: date > nowecho "Viele Grüße" > brief.txt
• KMDO >> FILE hängt die Kommando- / Programm - Standard-Ausgabe an bereits existierende Datei FILE an
• Existiert die Datei noch nicht, wird sie erzeugt!!
• Beispiel: date >> now; echo "Dein Tux" >> brief.txt

find sucht nach Dateien im Dateisystem und hat folgende Syntax:
find abwo nachwas [wasdamittun]
find / -name passwd # sucht ab / nach Datei # passwd
Folie 156Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Datei-Umlenkung
• KMDO 2> FILE bzw. KMDO 2>> FILE die Standard-Fehlerausgabe eines Kommandos / Programms wird in eine Datei umgelenkt bzw. an eine bereits existierende Datei angehängt
• Beispiel:
rm DATEI_GIBT_ES_NICHT 2> err
find /etc -print 2> err
find /bin -print 2>> err

Neben Dateien können auch Geräte (Devices) für Umlenkungen genutzt werden, die beiden wichtigsten sind:
/dev/null Alle Daten, die dorthin gesendet werden, gehen verloren („Schwarzes Loch“):
cat .profile > /dev/null
/dev/zero Von diesem Gerät können beliebig viele Nullbytes gelesen werden (Vorsicht!, schnell viel Speicherplatz):
cat < /dev/zero
cat < /dev/zero > /tmp/nulle
Folie 157Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Datei-Umlenkung
• auch Geräte (Devices) können für Umlenkungen genutzt werden, die wichtigsten sind:
/dev/null Alle Daten, die dorthin gesendet werden, gehen verloren:
cat .profile > /dev/null
/dev/zero Von diesem Gerät können beliebig viele Nullbytes gelesen werden:
cat < /dev/zero
oder von einer Tastatur/serielle Schnittstelle lesen: cat < /dev/tty1 cat < /dev/ttyS0

Umlenkungen sind nur beim Start eines Programms möglich, danach kann die Zuordnung nicht mehr geändert werden.
Umlenkungen sollten nach den Optionen und Parametern des Kommandos angegeben werden.
Sollen mehrere Kanäle gleichzeitig umgelenkt werden, so sind die Umlenkungen in beliebiger Reihenfolge hintereinander zu schreiben: ls -l /etc/profile DATEI_GIBT_ES_NICHT \
> files.lst 2> /dev/null
Die gleiche Datei kann nicht für die Umlenkung mehr als eines Standard-Kanals verwendet werden, z.B. (warum?):
sort < liste > listefind / -print > output 2> output
Umlenkungen sind insbesondere für Shell-Skripten interessant, die unbeaufsichtigt und ohne Interaktion mit einem Benutzer ablaufen sollen und deren Ausgaben man sich erst später ansehen möchte.
Folie 158Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Datei-Umlenkung
• Umlenkungen nur beim Start eines Programmes möglich, danach keine Änderung der Zuordnung mehr
• Umlenkungen nach Optionen und Parametern des Kommandos angegeben
• bei Umlenkung mehrerer Kanäle gleichzeitig ist Reihenfolge der Umlenkungen beliebig – ls -l /etc/profile DATEI_GIBT_ES_NICHT \
> files.lst 2> /dev/null
• Verwendung der gleichen Datei für die Umlenkung mehr als eines Standard-Kanals nicht möglich sort < liste > liste

Folie 159Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 14
• Lassen Sie sich von verschiedenen Verzeichnissen mit ls das Inhaltsverzeichnis ausgeben und sammeln Sie diese Ausgaben in einer Datei list.
• Erzeugen Sie mit echo eine Textdatei zeilenweise.
• Überlegen Sie sich ein Kommando, das Meldungen auf der Standard-Ausgabe und der Standard-Fehlerausgabe ausgibt.
– Lenken Sie beide Kanäle einzeln in je eine Datei um.

Prozesse über Pipes verbinden
Häufig möchte man die Ausgabe eines Programmes oder eines Kommandos als Eingabe für ein anderes Programm oder ein anderes Kommando nutzen.
Dies geschieht mit Hilfe einer (unnamed) Pipe |:
KMDO1 | KMDO2
Die Standard-Ausgabe von KMDO1 wird durch die Pipe gesendet und als Standard-Eingabe von KMDO2 verwendet.
Eine Pipe liegt vollständig im Speicher.
Belegt etwa 8 KByte Speicherplatz.
Synchronisiert beide Prozesse (was ist damit gemeint?).
Beide Prozesse laufen gleichzeitig (parallel).
Folie 160Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Pipes
Prozesse über Pipes verbinden• Nutzen der Ausgabe eines Programmes / Kommandos als Eingabe für anderes
Programm / Kommando mit Hilfe einer Pipe |:
KMDO1 | KMDO2
• Standard-Ausgabe von KMDO1 wird durch Pipe gesendet und als Standard-Eingabe von KMDO2 verwendet
PipestdinstdoutProzess1 Prozess2

Ausgaben auf den Fehlerkanal werden durch Pipes nicht umgelenkt, sie müssen für jedes Kommandos getrennt (direkt danach) umgelenkt werden:
KMDO1 2> err1 | KMDO2 2> err2
Eine (unnamed) Pipe transferiert Daten nur in eine Richtung (uni-direktional).
(Unnamed) Pipes können nur zwischen den KindProzessen eines ElternProzesses aufgebaut werden.
Folie 161Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Pipes
• Ausgaben auf den Fehlerkanal nicht durch Pipes umgelenkt, müssen für jedes Kommandos getrennt umgelenkt werden:– KMDO1 2> err1 | KMDO2 2> err2
• eine Pipe transferiert Daten nur in eine Richtung
• Aufbau von Pipes nur zwischen Kind-Prozessen eines Eltern-Prozesses möglich
Pipestdinstdout
Prozess1 Prozess2

Es können beliebig viele Kommandos/Programme zu einer Pipeline (Filterkette) verbunden werden:
KMDO1 | KMDO2 | ... | KMDO_N
Die Standard-Eingabe von KMDO1 und die Standard-Ausgabe von KMDO_N können direkt nach den beiden Kommandos umgelenkt werden.
KMDO1 < in | KMDO2 | ... | KMDO_N > out
Was ist der Unterschied einer Pipe zu einer Lösung mit Umlenken auf/von Zwischendatei?
Manche Pipes nicht sinnvoll:
cd | more
cat file* | ls -l
tee-Stück zweigt ab (-a hängt an):
KMDO1 | tee file1 | KMDO2 | tee -a file2 | ...
Folie 162Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Pipes
• beliebig viele Kommandos/Programme können zu einer Pipeline (Filterkette) verbunden werden:
KMDO1 | KMDO2 | ... | KMDO_N
• Umleitung der Standard-Eingabe von KMDO1 und der Standard-Ausgabe von KMDO_N direkt nach den beiden Kommandos möglich
KMDO1 < in | KMDO2 | ... | KMDO_N > out
• Beispiele ls -l | morecat /etc/passwd | sort | lpps -el | grep 'top'

Folie 163Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 15
• Überlegen Sie sich zwei unterschiedliche Möglichkeiten, eine Datei mit Hilfe von cat, Pipes, Umlenkungen und more seitenweise ausgeben.
• Suchen Sie mit Hilfe von ps -ef, einer Pipe und grep $USER nach Prozessen mit Ihrer Kennung.
• Starten Sie das Programm sleep 1000 in einigen Fenstern (schläft 1000 Sekunden und stoppt dann) und listen Sie mit ps nur diese sleep-Prozesse auf.

Dateinamen-Expansion
Sollen viele Dateien bearbeitet werden, so ist eine Beschreibung von Dateinamen über Muster nützlich.
Die Shell bietet hierzu die sogenannten Metazeichen ? * [...] [!...] ~ {...} an, über die sich Dateinamen-Muster beschreiben lassen (~ und {} nur in der bash)
In einer Kommandozeile angegebene Muster werden von der Shell vor der Ausführung des Kommandos durch die Liste der passenden Dateinamen ersetzt.
Die Kommandos bekommen von den Mustern nichts mehr mit, sondern sehen nur noch die expandierte Liste der passenden Dateinamen.
Achtung: Passt kein einziger Dateiname zum Muster, so bleibt das Muster selbst stehen.
Folie 164Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Dateinamen-Expansion
Dateinamen-Expansion• Bearbeitung vieler Dateien Beschreibung von Dateinamen über Muster
nützlich
• Die Shell bietet hierzu Metazeichen ? * [...] [!...] ~ {...}
• Shell ersetzt in Kommandozeile angegebene Muster vor Kommando - Ausführung durch Liste der passenden Dateinamen
• Kommandos sehen nur noch die Liste der passenden Dateinamen
• Passt kein Dateiname zum Muster, bleibt das Muster selbst stehen

Metazeichen
* steht für beliebig viele beliebige Zeichen (auch 0!):
ls *.txt
? steht für genau 1 beliebiges Zeichen:
ls report.???
[abc] steht für genau 1 Zeichen aus der Menge der Zeichen abc (Zeichenklasse):
ls *.[ch]
[a-z]steht für genau 1 Zeichen aus dem ASCII-Bereich a-z (analog [A-Z] und [0-9]):
ls [a-z]*
[!abc] (oder [^abc]) steht für genau 1 Zeichen außer den angegebenen (Negierte Zeichenklasse):
ls [!a-z]*
{abc,def,ghi} steht für genau eine der Zeichenketten abc, def, ghi aus der Liste (tcsh, bash):
ls {kapitel,chapter}[0-9]*
~USER steht für das Heimat-Verzeichnis von USER.
Kommt ein Leer- oder Sonder-Zeichen im Muster vor, so ist es ebenfalls mit \ zu schützen.
rm Datei\ mit\ Leerzeichen\ im\*Namen
Folie 165Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Dateinamen-Expansion
Metazeichen (einige Beispiele)• * für beliebig viele beliebige Zeichen
ls *.txt
• ? für genau 1 beliebiges Zeichenls report.???
• [abc] für 1 Zeichen aus der Auswahl ([a-c] [!a-z])ls [a-f]*
• ~ für das eigene Heimat-Verzeichnis
• kommt Leerzeichen im Muster vor, ist es mit \ zu schützen

Metazeichen heißen auch Wildcards (oder „Joker “).
Metazeichen und normale Zeichen können zu beliebig langen Mustern aneinandergehängt werden.
Die Dateinamen müssen immer vollständig zum angegebenen Muster passen („verankert“)
Folie 166Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Dateinamen-Expansion
• Metazeichen heißen auch Wildcards oder „Joker “
• Aneinanderhängen von Metazeichen und normale Zeichen zu beliebig langen Mustern möglich
• Dateinamen müssen immer vollständig zum angegebenen Muster passen

Mit Metazeichen nicht beschreibbar sind:
Wiederholung eines Buchstabens oder Textes.
Dateinamen suchen, die Buchstaben nicht enthalten.
Veroderung und Klammerung in einem Muster.
Bei den Metazeichen zur Dateinamen-Expansion handelt sich um eine stark eingeschränkte Form der Regulären Ausdrücke (die unter UNIX in vielen Werkzeugen einsetzbar sind). Vollen Umfang der regulären Ausdrücke erhält man durch Kombination mit grep:
ls | grep '^[a-f].*[0-9]$'
Gegenüber MS-DOS sind die Möglichkeiten der Dateinamen-Expansion stark erweitert:
Beliebige Kombination der Metazeichen möglich.
Komplette Pfadnamen können gesucht werden.
Die Ergebnisliste darf sehr lang werden (20.000 Zeichen).
Folie 167Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Shell - Dateinamen-Expansion
• manches ist mit Metazeichen nicht beschreibbar
• Metazeichen zur Dateinamen-Expansion sind stark eingeschränkte Form der Regulären Ausdrücke
• gegenüber MS-DOS Möglichkeiten der Dateinamen-Expansion stark erweitert

Folie 168Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 16a
• Suchen Sie in /usr/bin nach Dateinamen, die:
– Das Zeichen a enthalten
– Mit a beginnen
– Mit a enden
– Mit a beginnen und enden
– 2 a direkt hintereinander enthalten
– Einen der Vokale aeiou enthalten
– Die Vokale aeio(u) in dieser Reihenfolge enthalten
– Ein Sonderzeichen enthalten (kein Buchstabe + Ziffer)

In lokalisierten Systemen kann die Unterscheidung zwischen Gross- und Kleinschreibung entfallen. Wird aber die Shell-VariableLANG=C
gesetzt, gilt sie wieder. Dies kann grundsätzlich in Skripten so eingestellt werden.
Folie 169Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 16b
• Suchen Sie in /usr/bin nach Dateinamen, die:
– Einen Großbuchstaben enthalten (Problem?, Variable LANG=C setzen)– Genau 1/2/3 Zeichen lang sind (Problem?)– Einen der Vokale 2* direkt hintereinander enthalten
• Suchen Sie in den Unterverzeichnissen bis zur Stufe 4 des Wurzelverzeichnisses / nach C-Dateien (besitzen die Endung .c)

Folie 170Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 16c
• Suchen Sie in Ihrem Heimat-Verzeichnis nach Dateinamen, die mit Punkt beginnen (Problem?).
– Wie können Sie daraus die Namen . und .. weglassen?– Können Sie Namen mit 2 oder mehr Punkten weglassen?
• Suchen Sie in /etc nach Dateinamen, die beide Zeichenketten auto und conf irgendwo im Dateinamen enthalten (bzw. auto oder conf).

Folie 171Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
Inhalt• Wozu dient Quotierung?Wozu dient Quotierung?
• Shell-Standard-OperationenShell-Standard-Operationen
• MetazeichenMetazeichen
• TrennzeichenTrennzeichen
• Escape-ZeichenEscape-Zeichen
• Doppelte AnführungszeichenDoppelte Anführungszeichen
• Einfache AnführungszeichenEinfache Anführungszeichen

Die Shell führt zwischen dem Auslösen eines Kommandos durch RETURN und seinem eigentlichen Start eine Reihe von Standard-Operationen durch.
Eine eingegebene Kommandozeile wird durch diese Operationen zunächst in die endgültige Kommandozeile umgeformt, erst diese wird anschließend wirklich ausgeführt.
Um diese Operationen für Teile der Kommandozeile zu verhindern, sind diese Teile zu „quotieren“.
Folgende Operationen führt die Shell automatisch (in dieser Reihenfolge) beim Kommandoaufruf durch:
1. History-Ersetzung
2. Eingabezeile in Worte zerlegen („Token“)3. Quotierung berücksichtigen
4. Aliase ersetzen
5. I/O-Umlenkung einrichten
6. Variablen ersetzen
7. Kommando-Substitution durchführen (Aufbau-Kurs!)
8. Dateinamen expandieren
Das Ergebnis einer Variablen-Ersetzung wird daher in Kommando-Substitutionen verwendet und auf Metazeichen für Dateinamen-Expansion untersucht.
Das Ergebnis einer Kommando-Substitution wird ebenso auf Metazeichen für Dateinamen-Expansion untersucht.
Für diese beiden Operationen gibt es daher die Möglichkeit, zwar nicht sie selbst zu quotieren, aber ihr Resultat (kann wieder Sonderzeichen enthalten).
Folie 172Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
• Durchführung von einer Reihe von Standard-Operationen zwischen Auslösen eines Kommandos und eigentlichem Start
• um diese Operationen für Teile der Kommandozeile zu verhindern, sind diese Teile zu „quotieren“

Quotierung (Zitieren, Schützen)
Quotierung wird verwendet, um die Sonderbedeutung der Metazeichen (Sonderzeichen) für die Shell aufzuheben, sodaß sie als normaler Text gelten.
Es gibt 3 verschiedene Möglichkeiten, zu quotieren:
Mit Escape-Zeichen (Backslash): \C
Mit einfachen Anführungszeichen: '...' (single quotes)
Mit doppelten Anführungszeichen: "..." (double quotes)
Die Anführungszeichen müssen paarweise auftreten.
Folie 173Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
Quotierung (Zitieren, Schützen)
• Quotierung nützlich, um die Sonderbedeutung der Metazeichen für die Shell aufzuheben, damit als normaler Text gültig
• 3 verschiedene Möglichkeiten der Quotierung:– Escape-Zeichen: \C– einfache Anführungszeichen: '...' – doppelte Anführungszeichen: "..."
Anführungszeichen müssen paarweise auftreten!

Folgende Metazeichen (22 Stück!) haben für die Shell eine besondere Bedeutung:
* ? [ ] = $ < > | & \
" ' ‘ ; ( ) { } ~ ^ !
Die Trennzeichen SPACE TAB NEWLINE werden ebenfalls als Metazeichen behandelt.
Es gibt auch eine Reihe von aus Metazeichen zusammengesetzten Symbolen wie z.B.:
>> 1>&2 == != <=
Werden geschützte Texte (und ungeschützte ohne Metazeichen) direkt hintereinander geschrieben, so ergibt dies ein einziges Wort (Token):
"abc"def'ghi' ® abcdefghi
"abc" def 'ghi' ® abc def ghi
Texte ohne Metazeichen müssen nicht geschützt werden. Der Klarheit halber werden sie aber häufig trotzdem geschützt angegeben:
grep "error:" *.c
Folie 174Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
• folgende Metazeichen haben für die Shell besondere Bedeutung:* ? [ ] = $ < > | & \ " ' ‘ ; ( ) { } ~ ^ !
• die Trennzeichen SPACE TAB NEWLINE werden wie Metazeichen behandelt
• es gibt aus Metazeichen zusammengesetzte Symbole, z.B.: >> 1>&2 == != <=
• Werden geschützte Texte direkt hintereinander geschrieben, ergibt dies ein einziges Wort – "abc"def'ghi' abcdefghi

Escape-Zeichen \ (backslash)
Hebt vor einem Metazeichen C die Sonderbe-deutung dieses einen Zeichens auf:
Wenn man also ein Fragezeichen verwenden will, kann man \? schreiben.
Analog schreibt man für den Backslash selbst: \\.
Dies ist eine allgemeine Konvention, die auch in allen anderen UNIX-Programmen gilt!
Folie 175Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
Escape-Zeichen \ (backslash)
• hebt vor einem Metazeichen C die Sonderbedeutung dieses einen Zeichens auf
allgemeine Konvention, gilt auch in allen anderen UNIX- Programmen
Beispiel:– echo Dies sind mehrere\ \ \ Leerzeichen
– echo \$HOME=$HOME
– echo \*\*\* Titel \*\*\* Warum\?

Doppelte Anführungszeichen "..." (double quotes)
Heben um eine Zeichenkette die Sonderbedeutung aller Metazeichen außer den folgenden auf:
$ (Variablen-Ersetzung)
.̀..̀ und $(...) (Kommando-Substitution, Aufbaukurs!)
\ (Escape)
Doppelte Anführungszeichen können mit einem Backslash davor in der Zeichenkette verwendet werden (\").
Bei der Kommandosubstitution wird in einer Sub-Shell das Kommando zuerst ausgeführt und dessen Standard-Ausgabe anstelle der rückwärtigen Hochkomma eingesetzt (substituiert).
Beispiele:
echo "Konfig.dateien: $(ls -d /etc)"
echo "PATH=<$PATH>"
echo "*.c"
echo "\"Text in Anführungszeichen\""
echo " ' "
echo "Es ist genau ̀date +%T̀"
Folie 176Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
Doppelte Anführungszeichen "..." (double quotes)• heben um Zeichenkette die Sonderbedeutung aller Metazeichen auf, außer :
$ (Variablen-Ersetzung)
\ (Escape)
` Kommandosubstitution (rückwärtiges Hochkomma)
• können mit einem Backslash davor in der Zeichenkette verwendet werden (\")
• Beispiel:
echo "&&&&"
echo "Heimatverzeichnis: $HOME"
echo "Pfad = `pwd`"

Einfache Anführungszeichen '...' (single quote)
Heben um eine Zeichenkette die besondere Bedeutung aller Metazeichen der Shell auf (keine einzige Ausnahme).
Ein einfaches Anführungszeichen darf daher nicht innerhalb einer von einfachen Anfüh-rungszeichen eingeschlossenen Zeichenkette vorkommen (auch dann nicht, wenn davor ein Backslash \ steht), da die Zeichenkette sonst an dieser Stelle endet.
Beispiel:
echo '&&&&'
echo 'Konfig.dateien: $(ls -d /etc)'
echo 'PATH=<$PATH>'
echo '*.c'
echo ' "Text in Anführungszeichen " '
echo ' ' ' # Funktioniert nicht!
echo ' \' ' # Funktioniert ebenfalls nicht!
Folie 177Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Quotierung
Einfache Anführungszeichen '...' (single quote)• heben um eine Zeichenkette die besondere Bedeutung aller Metazeichen der
Shell auf (keine Ausnahmen)
• ein einfaches Anführungszeichen darf nicht innerhalb einer von '...' eingeschlossenen Zeichenkette vorkommen Zeichenkette endet dort sonst
• Beispiel: echo '&&&&'echo '*.c'echo '"Text in Anführungszeichen "'echo ''' # Funktioniert nicht!

Folie 178Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 17a
• Überlegen Sie sich, was von den nachfolgenden Kommandos jeweils ausgegeben wird, und überprüfen Sie anschließend ihre Vermutung:
• echo pwd echo '$HOME' echo "pwd" echo \$HOME echo $HOME echo "\$HOME" echo "$HOME" echo '\$HOME' echo "'"'"'"'" echo '"'"'"'"'

Folie 179Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 17b
• Wenden Sie alle 3 Möglichkeiten der Quotierung auf die Argumente des folgenden echo-Kommandos an:
echo * $TERM > x &
– Was sind die Ergebnisse?– Was passiert, wenn Sie die Leerzeichen zwischen
dem Kommando und den Argumenten auch noch
schützen?

Folie 180Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Kontrollstrukturen der Shell
Inhalt• ÜbergabeparameterÜbergabeparameter
• for-Schleifefor-Schleife
• case-Verzweigungcase-Verzweigung
• test-Kommandotest-Kommando
• if-Verzweigungif-Verzweigung
• while-Schleifewhile-Schleife

Folie 181Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übergabeparameter
● Shell-Skripte können Parameter mitbekommen
$1 ... $9 erste 9 Parameter$* alle Parameter$0 Programmname$# Anzahl der Parameter$? Exit-Code des letzten
Kommandos
Shell-Skripte können durch Parameter gesteuert werden (wie UNIX-Kommandos auch).
Exit-Code:Jedes UNIX-Kommando liefert einen Exit-Code an die Shell zurück. Er ist 0 falls alles ok war, er ist ungleich 0 im Fehlerfall. Damit kann in einem Skript überprüft werden, ob etwas funktioniert hat oder nicht (und später mit if oder while darauf reagieren).
Beispiel:#!/bin/sh# Kommentarecho mein Name ist $0echo der erste Parameter ist $1echo die Anzahl der Parameter ist $#echo alle Parameter sind $*ls -lecho der Exit-Code von ls ist $?

Folie 182Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
For-Schleife
● for-Schleife: über alle Elemente der Liste
for VAR in L1 L2 L3 L4 ... do
KMDO1 $VARKMDO2
done
Jedes Element der Liste wird in die Variable VAR übernommen und dann alle Kommandos der Schleife abgearbeitet. Die Anzahl der Listenelemente bestimmt die Anzahl der Schleifendurchgänge. Der in-Teil kann weggelassen werden: es werden dann alle Argumente aus der Kommandozeile ($*) verwendet.
Beispiele:
for i in Maier Mueller # 2 Maldo
grep $i adressenfile # jeweils suchendone
for i in *.c # alle C-Filesdo
cp $i $i.bak # kopierened - $i < edscript # und editieren
done

Folie 183Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Case-Verzweigung
● case-Verzweigung: Mehrfachauswahl
case $VAR in MUSTER1) KMDO1 ;; MUSTER2) KMDO2 ;; ... esac
In Abhängigkeit der Variablen VAR wird verzweigt: Ist VAR identisch mit MUSTER1, wird Kommando1 abgearbeitet ...
Als Muster sind die Metazeichen (*, ?, []) möglich.
Mit dem Befehl read kann eingelesen werden:
read VAR
Beispiel:echo Bitte Zahlread inputcase $input in
1) ls ;;2) who ;;[3-5]*) echo Zahl ;;*) echo Fehler ;;
esac

Folie 184Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Test-Kommando
● test-Kommando: Untersucht Strings, Zahlen, Fileattribute
test $VARtest $VAR = abc test $VAR != abctest $VAR -le 10 test $VAR -gt 200test -f file test -d dirtest -r file test -w file
test -x fileauch: [ -x file ]
test ist ein eingebautes Kommando der Shell (deshalb niemals eigene Skripte test nennen!). Es kann
Strings vergleichen:VAR=abc # Setzen der Variablentest $VAR = abc # Vergleichenecho $? # Anschauen des Exit-Codes
Zahlen untersuchen:VAR=100test $VAR -le 200
Weitere Optionen: -le steht für: <=-ge >=-lt <-gt >-eq ==-ne !=
Fileattribute untersuchen:
-f file # ob es eine normale Datei ist-d dir # ob Verzeichnis-r file # ob lesbar (für den Anwender)-w file # ob beschreibbar-x file # ob startbar

Folie 185Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
If-Verzweigung
● if-Verzweigung: entweder-oder
if KMDO1 then
KMDO2 [ elif KMDO3
thenKMDO4 ]
[ elseKMDO5 ]
fi
Wenn Kommando1 richtig abgearbeitet ist, wird Kommando2 gestartet. Wenn nicht, wird Kommando3 aktiviert. Läuft dieses richtig, geht es bei Kommando4 weiter, sonst bei Kommando5.
elif und else-Zweige sind optional. elif kann beliebig oft vorkommen.
Im else-Zweig darf auch ein neues if stehen (Schachtelung):if grep root /etc/passwdthen
…
elseif test …then
…fi
fi
Beispiele:if cc file.c # C-Compilerthen
a.out # starten des exeelse
edit file.c # C-File editierenfi
if test $VAR = abc # Vergleichthen
echo 'in VAR steht abc drin'elif test -f file # prueft, ob filethen
echo 'file ist eine normale Datei'else
echo 'weder noch'fi

Folie 186Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
While-Schleife
● while-Schleife: solange ok
while KMDO1 do
KMDO2KMDO3
done
Solange Kommando1 richtig funktioniert (Exit-Code 0), werden die Kommandos2 und 3 abgearbeitet.
Until läuft, solange das Kommando1 nicht richtig funktioniert.break bricht Schleife ab.continue leitet nächsten Durchgang ein.
Beispiele:while true # immer wahrdo
datesleep 5 # wartet 5 sec
done
while test $1 # prueft, ob 1.Parameter dado
echo $1shift # schiebt die Parameter
done
VAR=ja while test "$VAR" = ja # " wegen mögl. * ...do
read VARdone
until test -f file # prueft, ob file nicht dado
sleep 10done

Testmöglichkeit:
sh -x skript 2> protokoll
Folie 187Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 18
• Geben Sie mit einer for-Schleife einige Files mit Überschrift aus• Erstellen Sie ein Menu, in dem Sie einige UNIX-Kommandos auswählen
können (case, while): MenueDatum (1)Verzeichnis (2)
...Bitte wählen:
• Schreiben Sie ein Skript, das den Typ und die Rechte einer Datei als Text ausgibt (if, test):
pruefe filefile ist ein Verzeichnis und ist lesbar und ist schreibbar

Folie 188Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Editoren
Inhalt
• EinführungEinführung
• vivi
Kapitel 4.5
Kapitel 4.5

Unter UNIX gibt es eine Vielzahl von Editoren:
Stream-orientiert (sed, nur für Batch-Verarbeitung)
Zeilen-orientiert (ed, ex)
Bildschirm-orientiert (vi(m), joe, (x)emacs, jed, pico)
Grafisch orientiert (kedit, kate, textedit, nedit)
Diese sogenannten ASCII-Editoren sind zur Erstellung von Konfigurationsdateien, Programmen, Mail, usw. gedacht. Sie unterstützen keine Formatierungen wie fett, kursiv oder unterstrichen.
Folie 189Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Editoren - Einführung
• unter UNIX gibt es eine Vielzahl von Editoren:– Stream-orientiert – Zeilen-orientiert – Bildschirm-orientiert – Grafisch orientiert
• zur Erstellung von Konfigurationsdateien, Programmen, Mail,... gedacht
• unterstützen keine Formatierungen wie fett, kursiv oder unterstrichen
sogenannte ASCII-Editoren

Im folgenden wird von den vielen möglichen Editoren der vi (sprich: wi-ei) besprochen, weil er:
Der Standard-Editor unter UNIX ist (d.h. garantiert auf jedem UNIX-System verfügbar ist).
Sehr schnell ist und schnell gestartet werden kann.
Wenig Ressourcen (Speicher, Netzbandbreite) benötigt.
In gewissen Ausnahmefällen nur noch verfügbar sein kann (z.B. in einem Rettungssystem)
Viele vi-Kommandos auch an anderen Stellen im UNIX-System auftauchen (sed, awk, more, ...)
Folie 190Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Einführung
• Im folgenden wird der Editor vi (sprich: wi-ei) besprochen, weil: • der Standard-Editor unter UNIX
auf jedem UNIX-System verfügbar • sehr schnell und schnell gestartet • wenig Ressourcen benötigt werden• in gewissen Ausnahmefällen alleinig verfügbar sein kann,
z.B. im Rettungssystem• viele vi-Kommandos auch an anderen Stellen im UNIX-System auftauchen

Folie 191Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Einführung
Trotz allem:Trotz allem:
Es besteht Es besteht kein Zwangkein Zwang, den , den vivi zu benutzen! zu benutzen!
Arbeiten Sie mit dem Editor, der Arbeiten Sie mit dem Editor, der IhnenIhnen am besten am besten
liegt!liegt!

Folie 192Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Editoren - vi
Inhalt (1)• EinführungEinführung• ModiModi• Aufruf + VerlassenAufruf + Verlassen• BewegenBewegen• EditierenEditieren• Suchen (+ Ersetzen)Suchen (+ Ersetzen)• OptionenOptionen• KonfigurationsdateiKonfigurationsdatei

Der vi ist etwas gewöhnungsbedürftig, da er eine ungewöhnliche Bedienungs-Logik besitzt:
Kennt keine Maus, keine Cursor- und Funktions-Tasten.
Ist modus-orientiert, da alle Funktionen über die normalen (Buchstaben)Tasten ausgelöst werden.
Kennt sehr viele Bewegungs-Kommandos.
Es ist erst die Operation einzugeben, dann erfolgt die Auswahl des zu bearbeitenden Textes (grafisch orientierte System machen es genau umgekehrt: Sie markieren zuerst den Text und bearbeiten ihn dann).
Da (fast) jeder Buchstabe (klein, groß, mit Strg) im vi ein Kommando auslöst, ist es vorteilhaft, das 10-Finger-System zu beherrschen.
Die Bedeutung jedes Kommando-Buchstabens kann man sich über das zugehörige (gut gewählte) englische Wort leicht merken, z.B.:
c=change d=delete
a=append i=insert
g=go p=put
Hinter dem vi steckt sein zeilenorientierter Vorläufer ex. Er kann noch immer temporär für ein Kommando oder auch permanent aktiviert werden.
Unter LINUX wird eine Erweiterung des vi, der vim (vi improved) eingesetzt. Er stellt eine wesentliche Verbesserung und Erweiterung des vi dar.
Es gibt noch viele weitere „Clones“ des vi, z.B. vile, elvis, nvi, usw. (alle ebenfalls unter LINUX verfügbar).
Folie 193Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Einführung
• Der vi besitzt ungewöhnliche Bedienungs-Logik :
– kennt keine Maus, Cursor- und Funktions-Tasten
– ist modus-orientiert alle Funktionen werden über normale (Buchstaben)Tasten ausgelöst
– kennt sehr viele Bewegungs-Kommandos
– erst Eingabe der Operation, dann erfolgt Auswahl des zu bearbeitenden Textes

Die unterste Bildschirmzeile ist im vi eine Statuszeile, in der Warnungen und Fehler-meldungen angezeigt werden (bleiben oft länger stehen).
Beim Wechel in den Ex- oder Such-Modus springt der Cursor ebenfalls in die Statuszeile.
Text nach dem Dateiende wird durch das Zeichen ~ in der ersten Spalte dargestellt.
Da jeder Buchstabe ein Kommando ist, wirkt sich CAPS-LOCK sehr unangenehm aus (z.B. bei j / J).
Folie 194Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Einführung
• unterste Bildschirmzeile ist eine Statuszeile Anzeige von Warnungen und Fehlermeldungen
• Cursor springt beim Wechel in den Ex- oder Such-Modus in Statuszeile
• Text nach dem Dateiende wird durch ~ in der ersten Spalte dargestellt

Da jeder Buchstabe gleichzeitig auch als Kommando dient, ist der vi modus-orientiert.
Während der Bearbeitung eines Textes wechselt man daher ständig zwischen folgenden Modi hin und her:
Kommando-Modus Zur Eingabe von Kommandos
Edit-Modus Zur Eingabe von Text
Ex-Modus Für zeilenorientierte Bearbeitung
Such-Modus Zur Textsuche
(Open-Modus Permanenter Ex-Modus)
Folie 195Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Modi
• vi modus-orientiert, weil jeder Buchstabe gleichzeitig Kommando ist
• bei der Textbearbeitung ständiger Wechsel zwischen folgenden Modi: Kommando-Modus zur Eingabe von Kommandos
Edit-Modus zur Eingabe von Text
Ex-Modus für zeilenorientierte Bearbeitung
Such-Modus zur Textsuche
Open-Modus permanenter Ex-Modus

Zentraler Modus ist der Kommando-Modus, er ist beim Start des vi aktiv.
Durch folgende Eingaben wechselt man von dort aus in die anderen Modi:
a A c C i I o O r R s S ® Edit-Modus.
: ® Ex-Modus.
/ ? ® Such-Modus.
Q ® Open-Modus
(der Open-Modus wird nie benötigt, kann aber über Q versehentlich leicht eingeschalten werden).
Durch folgende Eingaben kehrt man aus den anderen Modi wieder in den Kommando-Modus zurück:
ESC ® Beendet den Edit-Modus wieder.
RETURN ® Führt Befehl im Ex-/Such-Modus aus.
ESC ® Bricht den Ex-/Such-Modus ab.
vi RETURN ® Beendet den Open-Modus.
Der Open-Modus wird nie benötigt (außer bei fehlendem Plattenplatz für die temporäre Kopie der editierten Datei).
Folie 196Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Modi
Edit-Modus
Kommando-Modus
Ex-Modus
vi ... :x :wq :q :q! ZZ
a A c C i Io O (r) R s S
ESC
CRESC
:
Such-Modus
/?
CRESC
ESCEndeStart

Aufruf des vi
vi Starten des vi mit einer leeren Datei
vi DATEI Starten des vi mit einer bereits existierenden Datei
vi Datei1 Datei2 und mit meheren Dateien (umschalten mit :n)
Der Inhalt der Datei wird während des Editierens in einem Puffer im Verzeichnis /tmp gespeichert.
Erst beim Verlassen des vi oder beim expliziten Zwischenspeichern wird die Originaldatei überschrieben.
Folie 197Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Aufruf
Aufruf des vi
vi Starten des vi mit einer leeren Datei
vi DATEI Starten des vi mit einer bereits existierenden Datei
• Dateiinhalt wird während des Editierens in einem Puffer im Verzeichnis /tmp gespeichert
• beim Verlassen des vi oder beim expliziten Zwischenspeichern wird Originaldatei überschrieben

Folie 198Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Verlassen
Verlassen des vi
:q beendet den vi, wenn der Puffer keine Änderungen enthält (quit)
:q! wie oben, aber alle Änderungen im Puffer werden verworfen (quit)
:w schreibt den Puffer in aktuelle Datei, verläßt aber den vi nicht (write)
:wq Schreiben + vi verlassen (write + quit)
:x wie :wq (exit)
ZZ wie :wq

Bewegen des Cursors
h j k l Cursor nach links, unten, oben, rechts (unter den Fingern der rechten Hand!).
Hinweis:
Oft sind die Cursortasten bereits mit vi-Befehlen belegt und funktionieren wie erwartet.
Werden sie allerdings im Editier-Modus benutzt, so finden „unsichtbare“ Moduswechsel statt, die der Benutzer gar nicht mitbekommt.
Daher eine Bitte:Bedecken Sie die Cursortasten während der ersten Stunde vi-Übung mit
einem Blatt Papier und benutzen Sie nur die vi- Kommandos zum Bewegen des Cursors!
Folie 199Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Bewegen
Bewegen des Cursors
hh jj llkk
Cursor nach oben(auch - )
Cursor nach links(auch Backspace )
Cursor nach rechts(auch SPACE )
Cursor nach unten(auch RETURN oder + )

w W b B e E Wortweise vor (word), zurück (backword) oder ans Wortende (endword).
^ 0 $ Zum 1. Zeichen, Zeilenanfang oder -ende.
Strg-F Strg-B Eine Seite nach unten (forward) oder nach oben (backward).
1G G NNG Zu Dateianfang, zum Dateiende, oder zur Zeile mit der Nummer NN springen (go).
Folie 200Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Bewegen des Cursors
rechtsrechts
Unten
oben
linkslinksSatzSatz SatzSatzZeileZeile ZeileZeileWortWort WortWortZeichenZeichen ZeichenZeichen
DokumentanfangDokumentanfang
DokumentendeDokumentende
(halbe) Seite(halbe) Seite
(halbe) Seite(halbe) Seite
Absatz/AbschnittAbsatz/Abschnitt
Absatz/AbschnittAbsatz/Abschnitt
ZeileZeile
ZeileZeile
( ^ 0 b B h Backsp
G
Ctrl-D/F
) ]]
j +
lG
Ctrl-U/B
( [[
k -
)$w We E
l Blank

Folie 201Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 19
• Öffnen Sie die Datei gedicht mit dem vi.
• Probieren Sie alle Bewegungs-Kommandos aus, decken Sie die Cursortasten dazu bitte ab!
• Was ist der Unterschied zwischen den Kommandos– w und W?
– b und B?
– e und E?
• Verlassen Sie den vi ohne Abspeichern.

Text einfügen
a A Fügt Text hinter der Cursorposition (a) bzw. am Ende der aktuellen Zeile (A) an (append).
i I Fügt Text vor der Cursorposition (i) bzw. am Anfang der aktuellen Zeile (I) an (insert).
o O Öffnet eine neue (leere) Zeile unterhalb (o) bzw. oberhalb (O) der aktuellen Zeile, in der dann Text eingefügt werden kann (open).
Folie 202Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Text einfügen
aktuelle Zeileaktuelle Zeile xx Cursorposition
OO
oo II ii aa AA

Sinnvolle Arbeitstechnik
ESC vor jedem Editier-Kommando funktioniert zwar, allerdings wird dadurch ESC sehr häufig umsonst gedrückt.
Besser ist es, nach jedem Editier-Kommando dieses sofort mit ESC zu beenden (d.h. eine Art „Klammerung“ der Texteingabe durchzuführen).
Der gerade aktive Modus ist in der Statuszeile ablesbar (wenn die Option showmode gesetzt ist).
Nach einer gewissen Einarbeitungszeit hat man den gerade aktiven Modus im Kopf, ohne darüber nachzudenken.
Die Kommandos zum Löschen (d=delete), Ändern (c=change) und Herauskopieren (y=yank) müssen mit einem Bewegungs-Kommando kombiniert werden.
D.h. es steht eine große Auswahl an Möglichkeiten zur Textbearbeitung zur Verfügung, ohne vorher den Text (mit Cursorbewegungen) markieren zu müssen.
Ein Kommando kann durch Eingabe einer Zahl davor entsprechend oft wiederholt werden.
Das letzte Kommando wird durch . wiederholt.
Folie 203Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Sinnvolle Arbeitstechnik
– nach jedem Editier-Kommando dieses sofort mit ESC beenden
– der gerade aktive Modus ist in der Statuszeile ablesbar
– die Kommandos zum Löschen, Ändern und Merken müssen mit Bewegungs- Kommando kombiniert werden
– durch Eingabe einer Zahl vor ein Kommando kann es entsprechend oft wiederholt werden
– das letzte Kommando wird durch . wiederholt

Folie 204Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Text löschen (und merken)x Zeichen unter Cursor löschen (crossout)
dw Zeichen ab Cursor bis zum nächsten Wortanfang löschen (delete word)
d$ D Zeichen ab Cursor bis zum Zeilenende löschen (delete)
dd aktuelle Zeile löschen (delete line)
dG d1G Zeilen ab aktueller Zeile bis Dateiende/anfang löschen (delete go)
dBEWEGUNG gemäß Bewegungs-Kommando löschen (delete)

Folie 205Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Text merken und wieder einfügen (Copy&Paste)
yb Zeichen ab Cursor bis zum vorherigen Wortanfang
herauskopieren (yank backword)
y0 Zeichen ab Cursor bis Zeilenanfang herauskopieren (yank)
3yy die 3 nächsten Zeilen herauskopieren (yank line)
p P kopierten Text nach/vor aktuellem Zeichen oder aktueller Zeile einfügen (put), je nachdem ob nur einzelne Zeichen oder ganze Zeilen kopiert
yBEWEGUNG gemäß Bewegungs-Kommando herauskopieren (yank)

Folie 206Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Text ersetzen
r R aktuelles Zeichen (r) oder ab aktuellem Zeichen (R) durch eingetippte Zeichen ersetzen (replace)
cw aktuelles Wort ab Cursor bis Wortende ersetzen (change word)
c$ ab Cursor bis zum Zeilenende ersetzen (change)
cc gesamte Zeile ersetzen (change line)
cG c1G bis zum Dateiende/anfang ersetzen (change go)
cBEWEGUNG gemäß Bewegungs-Kommando ändern (change)

Änderung zurücknehmen
u Letzte Änderung zurücknehmen, egal wie groß sie war (undo). Geht beim vi nur 1x, nochmal u nimmt undo wieder zurück.Beim vim sind beliebig viele Änderungen zurücknehmbar!
Strg-R Letzte undo-Operation im vim zurücknehmen (redo, hat keine Funktion im vi).
U Alle Änderungen in der aktuellen Zeile zurücknehmen, bevor sie verlassen wurde (undo).
Folie 207Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Änderung zurücknehmen
u letzte Änderung zurücknehmen, egal wie sie war (undo). geht nur 1x, nochmal u nimmt undo wieder zurück
U alle Änderungen in der aktuellen Zeile zurück - nehmen, bevor sie verlassen wurde (undo)

Folie 208Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 20
• Öffnen Sie die Datei gedicht mit dem vi.
• Ändern Sie den Text der Datei, indem Sie sich konkrete Änderungsaufgaben stellen.
– Probieren Sie dabei alle Einfügen-, Änderungs-, Löschen- , Merken-, Kopieren- und Ersetzen-Kommandos aus.
– Nehmen Sie Änderungen auch wieder zurück.
• Verlassen Sie den vi, ohne vorher abzuspeichern.
• Wiederholen Sie die Übung und speichern Sie den Text während dem Editieren und beim Verlassen ab.

Folie 209Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Suchen
Suchen
/TEXT vorwärts nach Zeichenkette TEXT suchen
?TEXT rückwärts nach Zeichenkette TEXT suchen.
n In aktueller Richtung weitersuchen (next)
N In entgegengesetzter Richtung weitersuchen (next)
•TEXT kann ein sogenannter Regulärer Ausdruck sein
• Suche kann auch als Bewegungs-Kommando mit den Editier- Kommandos c d y verwendet werden

Suchen und Ersetzen
Die gesamte Datei nach TEXT durchsuchen und durch die Zeichenkette ERSATZ ersetzen (substitute, global):
:1,$s/TEXT/ERSATZ/g
Vor dem s (substitute) ist eine Zeilennummer NR oder ein Zeilennummernbereich BEGINN,ENDE angebbar, auf die sich die Ersetzung beziehen soll, Abkürzungen dafür sind:. = Aktuelle Zeile
$ = Letzte Zeile der Datei
% = Alle Zeilen der Datei (entspricht 1,$)
Folie 210Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Suchen + Ersetzen
Suchen und Ersetzen – die gesamte Datei nach TEXT durchsuchen und durch die Zeichenkette
ERSATZ ersetzen (substitute, global)::1,$s/TEXT/ERSATZ/g
– vor dem s (substitute) ist eine Zeilennummer NR oder ein Zeilennummernbereich BEGINN,ENDE angebbar, auf die sich die Ersetzung beziehen soll
– Abkürzungen dafür : . = aktuelle Zeile
$ = letzte Zeile der Datei
% = alle Zeilen der Datei (entspricht 1,$)

Die Schrägstriche / begrenzen den Suchtext TEXT und den Ersatztext ERSATZ.
Kommt der Schrägstrich / in TEXT oder ERSATZ vor, so ist er mit einem Backslash \ davor zu schützen.
Alternativ kann zur Begrenzung ein beliebiges anderes Zeichen (z.B. # oder @) verwendet werden (das in TEXT nicht vorkommt).
Wird g (global) am Ende weggelassen, so wird die Änderung nur 1-mal pro Zeile (beim ersten Vorkommen) durchgeführt.
Wird statt g am Ende eine Zahl n (max. 512) angegeben, so wird das n-te Vorkommen des Suchtextes ersetzt.
Folie 211Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Suchen + Ersetzen
– die Schrägstriche / begrenzen den Suchtext TEXT und den Ersatztext ERSATZ
– kommt der Schrägstrich / in TEXT oder ERSATZ vor, ist er mit Backslash \ davor zu schützen
– wird g (global) am Ende weggelassen, wird die Änderung nur 1-mal pro Zeile durchgeführt
– wird statt g am Ende eine Zahl n (max. 512) angegeben, wird das n-te Vorkommen des Suchtextes ersetzt

Wird der Zeilenbereich weggelassen, so wird nur die aktuelle Zeile bearbeitet.
TEXT kann ein sogenannter Regulärer Ausdruck sein, in ERSATZ können Teile von TEXT wiederverwendet werden (extrem leistungsfähig!).
Die gesamte Datei nach der Zeichenkette TEXT durchsuchen, jeden gefundenen passen-den Text (mit ^^^ darunter) markieren und durch ERSATZ ersetzen, wenn der Benutzer dies mit y (yes) bestätigt (confirm):
:1,$s/TEXT/ERSATZ/gc
Folie 212Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Suchen + Ersetzen
– wird der Zeilenbereich weggelassen, wird nur die aktuelle Zeile bearbeitet
– TEXT kann sogenannter Regulärer Ausdruck sein, in ERSATZ können Teile von TEXT wiederverwendet werden
– gesamte Datei nach Zeichenkette TEXT durchsuchen, jeden gefundenen passenden Text (mit ^^^ darunter) markieren
und durch ERSATZ ersetzen, wenn der dies mit y bestätigt (confirm): :1,$s/TEXT/ERSATZ/gc

Folie 213Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 21
• Suchen Sie im vi in der Datei gedicht vorwärts und rückwärts nach bestimmten Textmustern (z.B. made).
• Ersetzen Sie dabei manche dieser Textstellen mit Hilfe der vi-Kommandos zum Ändern und Ersetzen (können mit dem Kommando . wiederholt werden).
• Ersetzen Sie Textstellen mit Hilfe des ex-Kommandos zum Suchen und Ersetzen (mit und ohne Bestätigung).

Neben Optionen zum Ein- und Ausschalten (Flags) gibt es auch numerische und Text-Optionen, z.B.:
:set report=10:set dir=/tmp
Die Belegung der geänderten Optionen läßt sich abfragen mit:set
Die Belegung aller Optionen läßt sich abfragen mit:set all
Folie 214Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Optionen
• der vi wird durch eine Vielzahl von Optionen konfiguriert
• das Setzen von Optionen durch: :set OPTION
• das Zurücksetzen von Optionen durch::set noOPTION
• viele Optionen können abgekürzt werden z.B. showmode durch sm
• neben Optionen zum Ein- und Ausschalten (Flags) gibt es auch numerische und Text-Optionen

Weitere wichtige Optionen sind:
autoindent Automatisch Einrücken (Strg-D/T)
showmatch Öffnende Klammer bei Eingabe der schließenden anzeigen
tabstop=NN Tabulatorbreite NN
shiftwidth=NN Tabulatorbreite NN beim nachträglichen Ein/Ausrücken
native System-Zeichensatz verwenden (vim)
eightbits 8-Bit Zeichen erlauben (vim)
syntax Syntaxcoloring durchführen (vim)
(in ~/.vimrc Color auf true setzen!)
Folie 215Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Optionen
Die wichtigsten Optionen sind
showmode Vi-Modus in Statuszeile anzeigen
ignorecase Groß/Kleinschreibung in Suche ignorieren
number Zeilen numeriert anzeigen
wrapscan Suche über Dateiende/anfang fortsetzen
list Tabulatoren und Zeilenenden anzeigen
wrapmargin=NN Automatischer Umbruch NN Zeichen vor dem Zeilenende (0=kein Umbruch)
report=NN Änderungen ab NN Zeilen in Statuszeile anzeigen

Die Konfigurationsdatei ~/.exrc (bzw. beim vim die Datei ~/.vimrc) wird bei jedem vi-Aufruf gelesen und legt seine Grundeinstellungen fest.
In ihr sind alle ex-Kommandos angebbar (ohne führenden Doppelpunkt):
set wrapscan
set report=1
set tabstop=4
set showmode
...
Folie 216Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Konfigurationsdatei
• die Konfigurationsdatei ~/.exrc wird bei jedem vi-Aufruf gelesen und legt Grundeinstellungen fest
• in ihr sind alle ex-Kommandos angebbar
set wrapscanset report=1set tabstop=4set showmode...

Folie 217Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 22
• Ändern Sie Optionen im vi direkt und probieren Sie das geänderte Verhalten aus.
• Ändern Sie die Optionen in der Konfigurationsdatei ~/.exrc (bzw. ~/.vimrc) nach ihren Wünschen ab (mit dem vi) und probieren Sie das geänderte Verhalten aus.

Folie 218Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
UNIX-Editoren - vi
Inhalt (2)• AbkürzungenAbkürzungen• Spezielle KommandosSpezielle Kommandos• Visual-Mode (VIM)Visual-Mode (VIM)• Spezielle Bewegungen und SucheSpezielle Bewegungen und Suche• MarkenMarken• PufferPuffer• MakrosMakros• AbkürzungenAbkürzungen

Folie 219Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Abkürzungen
. letztes Edit-Kommando wiederholen
~ Groß/Kleinschreibung akt. Zeichen vertauschen
xp 2 Zeichen vertauschen (crossout + put)
ddp 2 Zeilen vertauschen (delete line + put)
dwwp 2 Worte vertauschen (delete word + word + put)
X Backspace (crossout)

Folie 220Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Editieren
Spezielle Kommandos
J zwei Zeilen aneinanderhängen (join)
% zur korrespondierenden Klammer springen für {[()]}, auch bei Verschachtelung
>> << aktuelle Zeile ein/ausrücken
>BEWEGUNG gemäß Bewegungs-Kommando einrücken
<BEWEGUNG gemäß Bewegungs-Kommando ausrücken
:!KOM UNIX-Kommando ausführen
Beispiel:
:!ls -l
:!cc % # % ist aktuelle Datei

Folie 221Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vim - Visual Mode
Markieren im Visual Mode (Besonderheit des VIM):v Textblock zeichenweise markieren
V Textblock zeilenweise markieren
Strg-V Textblock spaltenorientiert markieren
• Nach dem Markieren kann eines der Kommandos– c d y > < ~
auf den markierten Text angewendet werden

Folie 222Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Bewegen
Spezielle Bewegungen und SucheH M L Cursor auf den Anfang der ersten (home),
mittleren (middle) oder letzten Zeile (last)des Bildschirms setzen
tC TC Zeichen C vorwärts/rückwärts suchenCursor vor/hinter das Zeichen setzen, to
fC FC Zeichen C vorwärts/rückwärts suchenCursor auf das Zeichen setzen, find
NN| Cursor auf Spalte NN setzen

Folie 223Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 23
• Probieren Sie im vi die gerade gelernten Kommandos aus:
– Abkürzungen– Zeilen aneinanderhängen– Zwischen korrespondierenden Klammern springen– Zeilen ein/ausrücken– Visual-Mode (nur im vim!)– Spezielle Bewegungen und Suche

Folie 224Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Marken
Marken setzen und anspringen
mC Marke C (26 verschiedene Marken a-z möglich)auf aktuelle Zeile/Zeichen setzen (mark)
’C zum Zeilenanfang mit Marke C springen
‘C zum Zeichen mit Marke C springen
’’ zum Zeilenanfang vor letztem Bewegungs-Kommando springen (hin- und her)
‘‘ zum Zeichen vor letztem Bewegungs-Kommando springen (hin- und her)

Wenn Puffer in unterschiedlichen Dateien verwendet werden sollen, müssen sie einen Namen ("C) haben (:n :n# :n file).
Folie 225Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Puffer
(Benannte) Puffer füllen und einfügen
"CyBEWEG ausgewählten Text in Puffer C (26 verschiedene
Puffer a-z möglich) kopieren (yank)
"CdBEWEG ausgewählten Text in Puffer C ausschneiden (delete)
"Cp Text in Puffer C nach aktueller Zeile/Cursoreinfügen (put)
"CP Text in Puffer C vor aktueller Zeile/Cursoreinfügen (put)

Der vi kennt Makros, sie erlauben eigendefinierte Kommandos im Kommando-Modus.
Makros werden mit dem Kommando
:map KEY KMDOdefiniert (mapping) bzw.
mit dem Kommando
:unmap KEY
gelöscht (un-mapping).
Damit werden z.B. meist die Cursortasten auf die entsprechenden vi-Kommandos abgebildet.
Man kann die Funktionstasten entweder mit #1 … #9 angeben oder wenn man STRG-V davor gibt, auch durch Drücken der Taste selber. STRG-V kann auch zum Eingeben von RETURN- und ESC-Taste verwendet werden.
Folie 226Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Makros
• Der vi kennt Makros, die eigendefinierte Kommandos im Kommando-Modus erlauben
• Makros werden mit dem Kommando :map KEY KMDOdefiniert bzw. mit dem Kommando :unmap KEYgelöscht
Abbildung der meisten Cursortasten auf die entsprechenden vi-Kommandos

Der vi kennt Abkürzungen, die bestimmte Worte (während der Texteingabe) in einen beliebigen Text umwandeln (nach Eingabe eines Leerzeichens).
Abkürzungen werden mit dem Kommando
:ab KÜRZEL TEXT
definiert (abbreviation)
bzw. mit dem Kommando
:unab KÜRZELgelöscht (un-abbreviation).
Beispiel:
:ab mfg Mit freundlichen Grüßen
Folie 227Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
vi - Abkürzungen
• Der vi kennt Abkürzungen, die bestimmte Worte in einen beliebigen Text umwandeln
• Abkürzungen werden mit dem Kommando :ab KÜRZEL TEXTdefiniert bzw.
mit dem Kommando :unab KÜRZELgelöscht
• Beispiel:– :ab mfg Mit freundlichen Grüßen

Folie 228Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Übung 24
• Probieren Sie Marken setzen und anspringen aus.
• Probieren Sie benannte Puffer aus.
• Probieren Sie Makros aus.
• Probieren Sie Abkürzungen aus.

UNIX - Ein praktischer Einstieg, Todino, Strang & Peek, O`Reilly, 1999, ISBN 3-89721-125-4
Kurze Einführung (100 Seiten) für absolute Einsteiger, enthält das absolut Notwendige, ist relativ preisgünstig.
Keine Angst vor UNIX, Christine Wolfinger, VDI Verlag, 1996, ISBN 3-540-62369-8
Gründliche Einführung für absolute Einsteiger (beginnt mit allgemeiner Computertechnik, viele Bilder), ausgereift, Frau Wolfinger hält viele UNIX-Kurse, mit getrennter Kurzanleitung.
Jetzt lerne ich UNIX, Brockmann, Markt&Technik, 1999, ISBN 3-8272-5520-1
Gute Einführung in UNIX allgemein, für Einsteiger, zum Selbststudium geeignet, der Autor hält selbst UNIX-Kurse.
UNIX-System V.4, Jürgen Gulbins, Springer, 1995, ISBN 3-450-588864-7
Der deutsche Klassiker, gründlich, vollständig, eher für Leute mit mehr Computer/Informatik-Background.
LINUX - UNIX Grundlagen, Helmut Herold, Addison-Wesley, 2000, ISBN 3-8273-1435-6
Ausgereiftes und ausführliches UNIX + LINUX-Standardwerk, Teil einer fünfbändigen Reihe (Kurzreferenz, Profitools, Shells, Systemprogrammierung)
UNIX in a Nutshell, Gilly, O`Reilly, 1998, ISBN 3-89721-114-9
Sehr gute Kurzreferenz aller UNIX-Befehle, zum Einstieg allerdings nicht geeignet.
Folie 229Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Literatur-Hinweise
• UNIX - Ein praktischer Einstieg Todino, Strang & Peek, O`Reilly, 1999, ISBN 3-89721-125-4 (» 10.-)
• Keine Angst vor UNIX Christine Wolfinger, VDI Verlag, 1996, ISBN 3-540-62369-8 (» 30.-)
• Jetzt lerne ich UNIX Brockmann, Markt&Technik, 1999, ISBN 3-8272-5520-1 (» 25.-)
• UNIX-System V.4 Jürgen Gulbins, Springer, 1995, ISBN 3-450-588864-7 (» 40.-)
• LINUX - UNIX Grundlagen Helmut Herold, Addison-Wesley, 2000, ISBN 3-8273-1435-6 (» 50.-)

Folie 230Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Weitere Hilfen
– Die SuSE-Support-Datenbank:
• Rettungsring-Icon anklicken (im KDE)
• Kommando hilfe aufrufen
– Das Internet:
• Newsgroups
• Sites (www.linux.de)
• Frequently Asked Questions (FAQs)
• Suchmaschinen (www.metager.de)
• HowTos: www.tldp.org

Folie 231Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Fragen
...noch Fragen???...noch Fragen???

Folie 232Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
Weitere Kurse, Feedback, ...
• Weitere Kurse
– UNIX Aufbaukurs– UNIX Shellprogrammierung– Linux Installationskurs– Linux Systemadministrator– Linux Netzadministrator– Linux Samba
• Ausfüllen des Bewertungsbogen
– Was hat Ihnen gefallen / nicht gefallen?

Folie 233Stockmayer GmbH, Solzerstr. 4, 36179 Bebra-ImshausenTel.: 06622/919610, eMail: [email protected]
http://www.stockmayer.de Linux/UNIX-Grundlagen
ENDE

InhaltsverzeichnisInhalt 7Einführung 8Historie 9Linux 12Linux-Struktur 13graphische Oberfläche 15Linux Philosophie 17Linux Eigenschaften 18Grundlagen 28An- und Abmelden 30Anzeigen von Dateien 34Drucken 35Hilfe 36Kommando-Syntax 42Benutzer und Gruppen 44Dateisystem 55Auskunftsfunktionen 68Dateisystem-Aufbau 73weitere Auskunftsfunktionen 79Inode 80Link 81Gerätedatei 85verändernde Kommandos 89Zugriffsrechte 94Prozesse 107Multitasking 108Prozess-Verwaltung 114Prozesse beenden 117Signale 118Shell 123Shell-Typen 126Shell-Funktionalität 128
Umgebung 131Variable 132Pfadsuche 137Shell-Skript 141History 144Namensvervollständigung 146Alias 147Ein-/Ausgabe 151Umlenken 153Pipe 160Metazeichen 164Quotierung 171Kontrollstrukturen der Shell 180Übergabeparameter 181for-Schleife 182case-Verzweigung 183test 184if-Verzweigung 185while-Schleife 186Editor vi 188vi: Einführung 193vi: Modi 195vi: Verlassen 198vi: Bewegen 199vi: Einfügen 202vi: Löschen 204vi: Suchen 209vi: Optionen 214vi: Spezialkommandos 218Literatur 229

Besprochene KommandosKom-mando
# Kom-
mando
# Kom-
mando
# Kom-
mando
#
alias 148 exit 39 lpr 35 sort 158
apropos 36 export 133 ls 39,68 su 49
bash 126 file 74 man 36 tcsh 126
case 183 find 124,156 mkdir 89 tee 162
cat 70 for 182 more 34,70 test 184
cd 39 grep 39 mount 75 top 120
cd 68 groups 52 mv 90 touch 89
chmod 99 history 144 newgrp 51 tty 143
clear 39 id 51 passwd 48 type 139
cp 90 if 185 pr 35 umask 102
csh 126 info 36 ps 114 until 186
date 39 kill 117 pstree 120 vi 192
# Kom-
mando
# Kom-
mando
# Kom-
mando
#
alias 148 exit 39 lpr 35 sort 158
apropos 36 export 133 ls 39,68 su 49
bash 126 file 74 man 36 tcsh 126
case 183 find 124,156 mkdir 89 tee 162
cat 70 for 182 more 34,70 test 184
cd 39 grep 39 mount 75 top 120
cd 68 groups 52 mv 90 touch 89
chmod 99 history 144 newgrp 51 tty 143
clear 39 id 51 passwd 48 type 139
cp 90 if 185 pr 35 umask 102
csh 126 info 36 ps 114 until 186
date 39 kill 117 pstree 120 vi 192
df 79 ksh 126 pwd 68 whatis 36
du 79 less 34,70 rmrmdir
91 89
while 186
echo 39 ln 91 set 133 who 48
exit 39 lp 35 sh 126 whoami 48