UNIX Grundlagen und wichtige Befehle
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 35,52 KB
1. Schritte beim Starten von UNIX
- Der Benutzer schaltet den Computer ein, auf dem die UNIX-Version installiert ist.
- Das System fordert den Login oder Benutzernamen ab.
- Das System fordert das Passwort ab.
- Der Shell-Prompt erscheint, auch Eingabeaufforderung genannt.
- Die Datei .profile wird ausgeführt.
2. Was ist eine Shell und wie funktioniert sie?
Eine Shell ist die Schnittstelle zwischen dem Benutzer und dem UNIX-Kernel. Sie interpretiert die vom Benutzer eingegebenen Befehle und führt sie aus.
Beispiele für Shells:
- Bourne Shell (sh)
- Korn Shell (ksh)
- C Shell (csh)
- Bash (Bourne-Again Shell)
Was ist ein Shell-Skript?
Ein Shell-Skript ist eine Textdatei, deren Inhalt aus Befehlen, ausführbaren Programmen und Kontrollstrukturen besteht. Es ist eine ausführbare Datei.
Wenn das Shell-Skript ein Programm ist (Dateiname), können Sie es wie folgt ausführen:
- Durch Aufruf der Shell, z. B.: sh Programm oder bash Programm
- Mit dem Befehl . (Punkt), z. B.: . Programm
- Indem Sie es zuerst mit chmod +x Programm ausführbar machen und dann mit ./Programm ausführen.
3. Erläutern Sie die Verwendung der folgenden Metazeichen: ?, *, >, <, >>, <<, !, [...], &, |, ;, #.
- ?: Ersetzt ein einzelnes Zeichen.
- *: Ersetzt null oder mehr Zeichen.
- >: Umleitung der Standardausgabe.
- <: Umleitung der Standardeingabe.
- >>: Umleitung der Standardausgabe zum Anhängen an eine Datei.
- <<: Umleitung der Standardeingabe (Here Document).
- !: Negation. Wenn A wahr ist, ist !A falsch.
- [...]: Zeichenbereich oder Alternativen. Z. B.
[abc]
passt auf 'a', 'b' oder 'c'. - &: Ausführung im Hintergrund.
- |: Umleitung der Ausgabe eines Prozesses zur Eingabe eines anderen (Pipe).
- ;: Befehlstrennzeichen. Ermöglicht die Eingabe mehrerer Befehle in einer Zeile.
- #: Kommentar. Der Rest der Zeile nach dem # wird als Kommentar interpretiert.
4. Was ist ein Prozess, der im Hintergrund läuft? Warum können Sie ein Befehlstrennzeichen verwenden? Erläutern Sie die Bedeutung von Beispielen, die [...] anzeigen.
Ein Prozess, der im Hintergrund läuft, ist ein Prozess, der weiterhin ausgeführt wird, während wir im Vordergrund mit anderen Programmen arbeiten.
UNIX erlaubt die Eingabe mehrerer Befehle in derselben Befehlszeile, vorausgesetzt, sie sind durch ein Semikolon (;) getrennt.
Zum Beispiel: ls -l b[aäiïoöuü]rra zeigt die lange Liste von Dateien im aktuellen Unterverzeichnis, deren Name mit "b" beginnt, das zweite Zeichen ein "a", "ä", "i", "ï", "o", "ö", "u" oder "ü" ist und mit "rra" endet.
5. Erläutern Sie die drei Verwendungszwecke des Befehls cat. Wie können Dateien verkettet werden?
Drei Verwendungszwecke von cat:
- Anzeigen des Inhalts einer Datei:
cat texto.txt zeigt den Inhalt von texto.txt an. - In eine Datei schreiben (überschreiben):
cat > new.txt leitet die Standardeingabe in new.txt um. Wenn new.txt existiert, wird es überschrieben; wenn nicht, wird es erstellt. - Inhalt an eine Datei anhängen:
cat >> new.txt hängt den Inhalt der Standardeingabe an das Ende von new.txt an, ohne den ursprünglichen Inhalt zu löschen.
Dateien können mit cat verkettet werden, z. B. nach der Ausführung von:
cat datei1 datei2 datei3 > news
würde der Inhalt der Dateien datei1, datei2 und datei3 nacheinander in die Datei news geschrieben.
6. Wichtige Befehle: cp, rm, mv, grep, find, wc, sort, diff, tar.
- cp: Kopieren von Dateien und Verzeichnissen.
- rm: Löschen von Dateien und Verzeichnissen.
- mv: Verschieben oder Umbenennen von Dateien und Verzeichnissen.
- grep: Suchen nach Zeichenketten in einem Datenstrom (z. B. einer Textdatei).
- find: Suchen nach Dateien und Verzeichnissen.
- find -type: Suchen nach Dateien nach Typ.
- find -ctime: Suchen nach Dateien nach Änderungsdatum.
- find -newer: Suchen nach Dateien, die neuer sind als eine gegebene Datei.
- find -name: Suchen nach Dateien nach Namen.
- wc: Zählen von Zeichen, Wörtern und Zeilen in einer Datei.
- sort: Sortieren eines Datenstroms.
- diff: Anzeigen der Unterschiede zwischen zwei Textdateien.
- tar: Archivieren von Dateien in einem einzigen Paket.
7. VI-Modi. Wie starte ich vi? Welcher Modus ist der Standard? Wie beende ich vi? Was passiert bei :q?
VI hat zwei Hauptmodi: den Kommandomodus und den Einfügemodus.
Sie starten vi, indem Sie einfach vi eingeben, oder um eine Datei zu bearbeiten, z. B. texto.txt, geben Sie vi texto.txt ein.
Der Standardmodus beim Starten von vi ist der Kommandomodus.
Sie beenden vi mit Befehlen wie :q, :q!, :wq, :x oder ZZ.
Wenn Sie :q eingeben, beendet das Programm vi, vorausgesetzt, Sie haben die Datei, die Sie bearbeiten, nicht geändert. Wenn Sie Änderungen vorgenommen haben, wird vi nicht beendet, es sei denn, Sie speichern die Änderungen vorher oder verwenden :q!.
8. Standard-Datenströme: Was sind ihre jeweiligen Nummern? Wie können wir Fehlermeldungen in eine Datei umleiten, damit sie nicht direkt auf dem Bildschirm angezeigt werden?
Die Standard-Datenströme sind:
- Standardeingabe (stdin)
- Standardausgabe (stdout)
- Standardfehler (stderr)
Ihre jeweiligen Dateideskriptoren sind:
- Standardeingabe: 0
- Standardausgabe: 1
- Standardfehler: 2
Um Fehlermeldungen in eine Datei umzuleiten, verwenden Sie die Umleitung für den Standardfehler (2>). Zum Beispiel:
cp texto.txt /tmp 2> errores.log
Dieser Befehl kopiert die Datei texto.txt in das Verzeichnis /tmp. Wenn dabei Fehlermeldungen auftreten, werden diese nicht auf dem Bildschirm angezeigt, sondern in die Datei errores.log geschrieben.
9. Erläutern Sie die Befehle: df, du, head, passwd, sed, tail, ls, find, lp.
- df: Zeigt die Speicherplatznutzung der Dateisysteme auf dem System an.
- du: Zeigt an, wie viel Speicherplatz von einer angegebenen Datei oder einem Verzeichnis verwendet wird.
- head: Gibt die ersten 10 Zeilen einer Textdatei aus.
- passwd: Ändert das Passwort eines Benutzers.
- sed: Ein Zeileneditor, der die Änderung von Zeilen in einem Datenstrom ermöglicht.
- tail: Zeigt die letzten 10 Zeilen einer Textdatei an.
- ls: Listet den Inhalt eines Verzeichnisses auf.
- find: Sucht nach Dateien und Verzeichnissen.
- lp: Druckt Dateien.
10. Unterschiede zwischen UNIX und DOS.
- UNIX ist ein Mehrbenutzer- und Multitasking-System, während DOS ein Einzelbenutzer- und Single-Task-System ist.
- UNIX legt großen Wert auf Sicherheit und beschränkt den Systemzugriff über Login/Passwort, während DOS in Bezug auf Sicherheit völlig unbedarft ist.
- UNIX ist für die Kommunikation konzipiert und in dieser Hinsicht sehr leistungsfähig, im Gegensatz zu DOS.
- UNIX unterscheidet Groß- und Kleinschreibung, während DOS dies nicht tut.
11. Regeln für die Eingabe von Befehlen in der UNIX-Befehlszeile.
- UNIX unterscheidet Groß- und Kleinschreibung.
- Zwischen dem Befehlsnamen und den Optionen muss mindestens ein Leerzeichen stehen. Optionen werden in der Regel mit einem Bindestrich "-" eingeleitet.
- Argumente werden von den Optionen durch ein Leerzeichen getrennt.
- Sie können mehrere Befehle in derselben Zeile eingeben, getrennt durch ein Semikolon ";".
12. Bedeutung der folgenden Verzeichnisse: /, /bin, /dev, /etc, /lib, /tmp, /home.
- /: Das Wurzelverzeichnis (Root).
- /bin: Enthält ausführbare Dateien, die für den Systemstart benötigt werden.
- /dev: Enthält Gerätedateien.
- /etc: Enthält Konfigurationsdateien.
- /lib: Enthält Bibliotheken, die zum Ausführen von Programmen benötigt werden.
- /tmp: Enthält temporäre Dateien.
- /home: Enthält die Home-Verzeichnisse der Benutzer des Systems.
13. Bedeutung der folgenden Befehle: pwd, cd, mkdir, rmdir, ls.
- pwd: Zeigt den absoluten Pfad des aktuellen Verzeichnisses an.
- cd: Ändert das aktuelle Verzeichnis.
- cd (ohne Argumente): Wechselt in das Home-Verzeichnis des Benutzers.
- cd -: Wechselt zurück in das vorherige Verzeichnis.
- mkdir: Erstellt ein Verzeichnis.
- rmdir: Löscht ein leeres Verzeichnis.
- ls: Listet den Inhalt eines Verzeichnisses auf.
- ls -a: Zeigt alle Dateien an, einschließlich versteckter Dateien (die mit einem Punkt beginnen).
- ls -l: Zeigt eine lange Liste mit detaillierten Informationen zu den Dateien an.
14. Wichtige VI-Befehle.
- Eine Zeile löschen:
- dd
- 7 Zeilen gleichzeitig löschen:
- 7dd
- Die letzte Aktion rückgängig machen:
- u
- Eine leere Zeile unter der aktuellen einfügen:
- o
- Ein Zeichen löschen:
- x
- Text ab der Cursorposition einfügen:
- i
- Text vor der Cursorposition einfügen:
- a
- Nach "a" vorwärts suchen:
- /a
- Die Suche nach derselben Zeichenkette vorwärts fortsetzen:
- n
- Nach der Zeichenkette rückwärts suchen:
- ?Zeichenkette
- Die Rückwärtssuche fortsetzen:
- N
- Vom aktuellen Cursor bis zum Ende des Wortes löschen:
- dw
- Vom aktuellen Cursor bis zum Anfang des Wortes löschen:
- db
- Vom aktuellen Cursor bis zum Ende der Zeile löschen:
- d$
- Alles vom Cursor bis zur angegebenen Zeichenkette löschen:
- d/Zeichenkette
- Einfügemodus verlassen:
- Esc
- Den Text speichern:
- :w
- Speichern und beenden:
- :wq oder :x oder ZZ
- Beenden ohne zu speichern:
- :q!
15. Erklären Sie den Befehl history, die Datei .bash_history und die Verwendung von !.
Der Befehl history zeigt die Liste der in der aktuellen Shell ausgeführten Befehle an.
Die Datei .bash_history enthält die Liste der in früheren Shell-Sitzungen ausgeführten Befehle. Der Inhalt dieser Textdatei wird mit dem Befehl history angezeigt.
Der Befehl history zeigt jede Zeile mit einer Nummer versehen an. Wenn Sie "!" gefolgt von einer Nummer eingeben (z. B.: !234), wird der Befehl aus der History ausgeführt, der diese Nummer hat.
16. Shell-Utilities: alias, break, read, set, shift, unalias.
- alias: Ermöglicht es, einen langen oder oft wiederholten Befehl durch einen kürzeren Namen zu ersetzen.
- break: Bricht eine Schleife ab.
- read: Liest eine Zeile von der Standardeingabe (Tastatur) und speichert sie in Variablen.
- set: Zeigt oder setzt Shell-Variablen und Optionen.
- shift: Verschiebt die Positionsparameter in einem Skript.
- unalias: Löscht einen Alias.
17. Inhalt der Passwort-Datei. Wo wird das verschlüsselte Passwort gespeichert, wenn es in der Passwort-Datei durch ein 'x' ersetzt ist? Zwei Arten von Profil-Dateien. Wann und in welcher Reihenfolge werden sie ausgeführt? Wo sind sie gespeichert?
Der Inhalt einer Zeile in der Datei /etc/passwd hat typischerweise folgendes Format:
Benutzername:Passwort(x):Benutzer-ID:Gruppen-ID:Benutzername(vollständig):Home-Verzeichnis:Shell
Wenn das Passwort in /etc/passwd durch ein 'x' ersetzt ist, wird das verschlüsselte Passwort in der Datei /etc/shadow gespeichert.
Es gibt zwei Arten von Profil-Dateien:
- Globale Profil-Dateien: Gelten für alle Benutzer.
- Persönliche Profil-Dateien: Gelten nur für den jeweiligen Benutzer.
Zuerst wird die globale Profil-Datei ausgeführt, dann die persönliche.
Die globale Profil-Datei (z. B. /etc/profile) wird in /etc gespeichert. Die persönliche Profil-Datei (z. B. ~/.profile, ~/.bash_profile, ~/.bashrc) wird im Home-Verzeichnis des Benutzers gespeichert.
18. Erklären Sie den Inhalt der Variablen: PS1, PS2, PATH, HOME, PWD, HISTFILE, HISTSIZE. Was muss vor einer Variable stehen, damit sie in einem Befehl verwendet werden kann?
- PS1: Primärer Prompt (die Eingabeaufforderung, die normalerweise angezeigt wird).
- PS2: Sekundärer Prompt (wird angezeigt, wenn ein Befehl unvollständig ist und weitere Eingaben erwartet werden).
- PATH: Liste von Verzeichnissen, in denen die Shell nach ausführbaren Befehlen sucht.
- HOME: Pfad zum Home-Verzeichnis des aktuellen Benutzers.
- PWD: Pfad zum aktuellen Arbeitsverzeichnis.
- HISTFILE: Pfad zur Datei, in der die Befehlshistory gespeichert wird.
- HISTSIZE: Maximale Anzahl von Befehlen, die in der History-Datei gespeichert werden.
Um den Wert einer Variable in einem Befehl zu verwenden, muss ein Dollarzeichen ($) vor dem Variablennamen stehen.
Um den Variablennamen auf dem Bildschirm anzuzeigen, verwenden Sie echo gefolgt vom Namen (z. B. echo PATH). Um den Wert der Variable anzuzeigen, verwenden Sie echo gefolgt vom Dollarzeichen und dem Namen (z. B. echo $PATH).
19. UNIX System-Komponenten.
Das UNIX-System ist in Schichten aufgebaut:
- Hardware: Die physischen Komponenten des Systems.
- Kernel: Der innerste Teil, der direkt mit der Hardware interagiert. Er verwaltet Systemressourcen, Prozesse, Speicher und Geräte.
- Shell: Die Schnittstelle zwischen Benutzer und Kernel. Sie interpretiert Befehle.
- Benutzerbereich: Enthält Benutzerprogramme und Anwendungen, mit denen der Benutzer direkt interagiert.
20. Funktionen der Shell. Verschiedene existierende Shells.
Die Shell kann unter zwei Gesichtspunkten betrachtet werden:
- Als Kommandointerpreter: Sie ist verantwortlich für die Analyse, Interpretation und Ausführung aller vom Benutzer eingegebenen Befehle.
- Als Programmiersprache: Sie ermöglicht das Schreiben von Shell-Skripten mit Kontrollstrukturen, Variablen und Anweisungen.
Verschiedene existierende Shells:
- Bourne Shell (sh)
- Korn Shell (ksh)
- C Shell (csh)
- Bash (Bourne-Again Shell)
- Zsh (Z Shell)
21. Erklären Sie die Bedeutung der Befehle: date, who, whoami, tty, echo, banner, id, cal.
- date: Zeigt das aktuelle Datum und die Uhrzeit an.
- who: Zeigt eine Liste der aktuell am System angemeldeten Benutzer an.
- whoami: Zeigt den Benutzernamen des aktuellen Benutzers an.
- tty: Zeigt den Namen des Terminals an, von dem aus gearbeitet wird.
- echo: Gibt eine Zeichenkette oder Variablenwerte auf dem Bildschirm aus.
- banner: Zeigt eine Nachricht in großer Schrift auf dem Bildschirm an (oft veraltet).
- id: Zeigt die Benutzer- und Gruppen-IDs des aktuellen Benutzers an.
- cal: Zeigt einen Kalender an.
22. Erklären Sie, was eine Inode-Datei ist.
Eine Inode (Index Node) ist eine Datenstruktur im Dateisystem, die Metainformationen über eine Datei oder ein Verzeichnis speichert. Dazu gehören:
- Dateityp
- Zugriffsrechte
- Besitzer-ID
- Gruppen-ID
- Dateigröße
- Zeitstempel (Erstellung, letzte Änderung, letzter Zugriff)
- Anzahl der Hardlinks
- Zeiger auf die Datenblöcke der Datei auf der Festplatte.
Jede Datei und jedes Verzeichnis im Dateisystem hat eine eindeutige Inode-Nummer. Verzeichnisse enthalten eine Liste von Einträgen, die aus Dateinamen und den zugehörigen Inode-Nummern bestehen. Eine Datei kann mehrere Namen (Hardlinks) haben, die alle auf dieselbe Inode verweisen.
23. Erklären Sie die Arten von Dateien, die in UNIX existieren.
In UNIX gibt es verschiedene Dateitypen:
- Reguläre Dateien: Enthalten Daten (Text, Programme, Bilder usw.).
- Verzeichnisse: Enthalten Listen von Dateinamen und den zugehörigen Inode-Nummern. Ein Verzeichnis wird in UNIX wie eine spezielle Art von Datei behandelt.
- Spezielle Dateien: Repräsentieren Geräte (z. B. Festplatten, Terminals) oder andere Systemressourcen. Dazu gehören Block-Geräte (für blockorientierten Zugriff) und Zeichen-Geräte (für zeichenorientierten Zugriff).
- Links: Verweise auf andere Dateien oder Verzeichnisse (Hardlinks und Symbolische Links).
- Pipes (FIFOs): Benannte Pipes für die Interprozesskommunikation.
- Sockets: Dateien für die Netzwerkkommunikation.
24. Erläutern Sie die Felder der einzelnen Zeilen auf dem Bildschirm, wenn Sie den Befehl ls -l ausführen.
Die Ausgabe von ls -l zeigt pro Datei oder Verzeichnis eine Zeile mit folgenden Feldern (von links nach rechts):
- Dateityp und Berechtigungen: Ein Zeichen für den Dateityp (-, d, l, b, c, p, s) gefolgt von 9 Zeichen für die Berechtigungen (rwx) für Besitzer, Gruppe und Andere.
- Anzahl der Links: Die Anzahl der Hardlinks, die auf die Datei verweisen.
- Besitzer: Der Benutzername des Dateibesitzers.
- Gruppe: Der Name der Gruppe, der die Datei gehört.
- Größe: Die Größe der Datei in Bytes (oder in einem lesbareren Format mit der Option -h).
- Datum und Uhrzeit: Datum und Uhrzeit der letzten Änderung.
- Dateiname: Der Name der Datei oder des Verzeichnisses.
25. Zugriffsrechte.
Die Verwaltung von Berechtigungen in UNIX erfolgt für drei Arten von Benutzern und drei Arten von Zugriffsrechten:
Benutzertypen:
- Besitzer (u): Der Benutzer, dem die Datei gehört.
- Gruppe (g): Benutzer, die zur selben Gruppe gehören wie der Besitzer.
- Andere (o): Alle anderen Benutzer auf dem System.
Zugriffsrechte:
- Lesen (r): Erlaubt das Anzeigen des Inhalts einer Datei oder das Auflisten des Inhalts eines Verzeichnisses.
- Schreiben (w): Erlaubt das Ändern oder Löschen einer Datei oder das Erstellen, Löschen oder Umbenennen von Dateien in einem Verzeichnis.
- Ausführen (x): Erlaubt das Ausführen einer Datei (wenn es ein Programm ist) oder das Betreten eines Verzeichnisses (um auf dessen Inhalt zuzugreifen).
26. Befehle umask und chmod.
- umask: Legt die Standard-Zugriffsrechte fest, die neuen Dateien und Verzeichnissen bei ihrer Erstellung zugewiesen werden. Es handelt sich um eine Maske, die von den maximalen Rechten abgezogen wird.
- chmod: Ändert die Zugriffsrechte für eine bestehende Datei oder ein Verzeichnis. Dies kann symbolisch (z. B.
u+rwx
) oder numerisch (oktal, z. B.755
) erfolgen.
27. Umleitungen, Pipes und Filter.
Ihr Hauptziel ist die Verknüpfung von Prozessen, sodass die Standardeingabe oder Standardausgabe eines Befehls auf ein Gerät oder eine Datei umgeleitet werden kann.
Es gibt Operatoren zur Umleitung der Standard-Ein- oder Ausgabe eines Befehls:
- <: Leitet die Standardeingabe von einer Datei um.
- >: Leitet die Standardausgabe in eine Datei um (überschreibt die Datei).
- >>: Leitet die Standardausgabe in eine Datei um (hängt an die Datei an).
- <<: Leitet die Standardeingabe von einem "Here Document" um.
Die Pipes oder Leitungen (verbunden durch |) ermöglichen es, die Standardausgabe eines Befehls als Standardeingabe für einen anderen Befehl zu verwenden.
Filter sind Programme, die Daten von der Standardeingabe lesen, verarbeiten und das Ergebnis auf die Standardausgabe schreiben. Sie werden oft in Kombination mit Pipes verwendet (z. B. grep, sort, wc).
28. Wie erstellt man eine Benutzervariable und weist ihr einen Wert zu? Wie zeigt man den Variablennamen und den Wert auf dem Bildschirm an?
Um eine Variable zu erstellen und ihr einen Wert zuzuweisen, verwenden Sie eine einfache Zuweisung:
variablenname=wert
Um den Wert der Variable abzurufen, stellen Sie das Dollarzeichen ($) vor den Variablennamen.
Um den Wert der Variable auf dem Bildschirm anzuzeigen, führen Sie aus:
echo $variablenname
Um den Namen der Variable auf dem Bildschirm anzuzeigen, führen Sie aus:
echo variablenname (Dies gibt den literal String "variablenname" aus)
29. Was ist die Shell? Wie wichtig ist sie für das UNIX-Betriebssystem?
Sobald wir uns angemeldet haben, initialisiert das System die Shell. Die Shell ist dann dafür zuständig, die Befehle aus der Datei .profile (oder ähnlichen Konfigurationsdateien) auszuführen.
Schließlich zeigt die Shell den System-Prompt an (oft das Dollarzeichen $). Von diesem Moment an, wenn der Benutzer einen Befehl oder den Namen eines Programms eingibt, prüft die Shell die Syntax, sucht das Programm und führt es aus. Sie wartet, bis das Programm beendet ist.
Die Shell ist auch eine interpretierte Programmiersprache, d. h. eine Hochsprache, die Kontrollstrukturen, Variablen, Anweisungen usw. bietet.
Die Shell ist der Teil des UNIX-Betriebssystems, der für den Benutzer sichtbar ist, d. h. sie fungiert als Vermittler zwischen dem Betriebssystemkern (Kernel) und dem Benutzer.
30. Was ist die Datei .profile und wofür wird sie verwendet?
Eine .profile-Datei (oder ähnliche Dateien wie .bash_profile, .bashrc) ist eine Konfigurationsdatei, die verschiedene Anpassungen enthält, die bei jedem Start einer Shell-Sitzung vorgenommen werden.
Es gibt globale Profil-Dateien (z. B. /etc/profile), die für alle Benutzer gelten, und persönliche Profil-Dateien im Home-Verzeichnis des Benutzers. Der Benutzer kann seine persönliche Datei an seine Bedürfnisse anpassen. Da es sich um eine ASCII-Textdatei handelt, kann sie leicht mit einem beliebigen Texteditor bearbeitet werden.
31. Schichten, aus denen das UNIX-Betriebssystem aufgebaut ist, und ihre Beziehung.
Das UNIX-Betriebssystem ist in folgenden Schichten strukturiert:
- Hardware: Die physischen Komponenten des Systems.
- Kernel: Der innerste Teil, der direkt mit der Hardware interagiert. Er verwaltet Systemressourcen.
- Shell: Die Schnittstelle zwischen Benutzer und Kernel. Sie interpretiert Befehle und fungiert als Vermittler.
- Benutzerbereich: Die äußerste Schicht, in der Anwendungsprogramme laufen und mit der der Benutzer direkt interagiert.
Die Beziehung ist hierarchisch: Der Benutzer interagiert mit Programmen im Benutzerbereich, diese nutzen die Shell, um Befehle an den Kernel zu senden, der wiederum mit der Hardware kommuniziert.
32. Was ist der Kernel?
Der Kernel ist der zentrale und innerste Teil des UNIX-Betriebssystems. Er befindet sich ständig im Arbeitsspeicher und ist für die grundlegenden Systemfunktionen zuständig, wie:
- Verwaltung und Planung von Systemressourcen (CPU, Speicher).
- Prozessverwaltung und -planung.
- Geräteverwaltung und Interrupt-Handling.
- Dateisystemverwaltung.
- Netzwerkkommunikation.
Der Kernel stellt Dienste für die Shell und die Anwendungsprogramme im Benutzerbereich bereit.
33. Bestimmen Sie, ob die folgenden Berechtigungen für Dateien oder Verzeichnisse gelten und erklären Sie die Bedeutung der einzelnen:
- -rwx---r--: Gilt für eine Datei. Der Besitzer hat Lese-, Schreib- und Ausführungsrechte (rwx). Die Gruppe hat keine Rechte (---). Andere haben nur Leserechte (r--).
- dr-xr-x---: Gilt für ein Verzeichnis. Der Besitzer hat Lese- und Ausführungsrechte (r-x). Die Gruppe hat Lese- und Ausführungsrechte (r-x). Andere haben keine Rechte (---).
- -rwxr-xr--: Gilt für eine Datei. Der Besitzer hat Lese-, Schreib- und Ausführungsrechte (rwx). Die Gruppe hat Lese- und Ausführungsrechte (r-x). Andere haben nur Leserechte (r--).
- drwxrwxrwx: Gilt für ein Verzeichnis. Der Besitzer, die Gruppe und Andere haben jeweils Lese-, Schreib- und Ausführungsrechte (rwx).
34. Welches Ergebnis wird durch die Ausführung der folgenden Befehle produziert?
- $ ls: Listet den Inhalt des aktuellen Verzeichnisses auf (Dateien und Verzeichnisse, außer versteckten).
- $ ls -l: Listet den Inhalt des aktuellen Verzeichnisses im langen Format auf (mit Details wie Berechtigungen, Besitzer, Größe, Datum).
- $ ls -l /lib > libraries: Listet den Inhalt des Verzeichnisses /lib im langen Format auf und leitet die Ausgabe in die Datei libraries um (überschreibt die Datei, falls sie existiert).
- $ ls -a: Listet den Inhalt des aktuellen Verzeichnisses auf, einschließlich versteckter Dateien (die mit einem Punkt beginnen).
- $ ls /bin: Listet den Inhalt des Verzeichnisses /bin auf.
- $ ls -al /etc: Listet den Inhalt des Verzeichnisses /etc im langen Format auf, einschließlich versteckter Dateien.
- $ rm -i /usr/ntl/Alu*: Löscht interaktiv (fragt vor jedem Löschen) alle Dateien im Verzeichnis /usr/ntl, deren Name mit "Alu" beginnt.
- $ rm -r /usr/wollen/*.*: Löscht rekursiv (auch Unterverzeichnisse) alle Dateien im Verzeichnis /usr/wollen, deren Name einen Punkt enthält.
- $ rm datei1 datei2 fich3: Löscht die Dateien datei1, datei2 und fich3 im aktuellen Verzeichnis.
- $ mv datei1 datei2 fich3: Verschiebt oder benennt Dateien um. Wenn fich3 ein Verzeichnis ist, werden datei1 und datei2 dorthin verschoben. Wenn fich3 keine Datei und kein Verzeichnis ist, wird datei1 nach datei2 und datei2 nach fich3 umbenannt (dieses Verhalten ist ungewöhnlich und hängt von der Implementierung ab; oft ist nur das Verschieben/Umbenennen von 1 oder 2 Argumenten üblich).
- $ mv datei1 datei2 verzeichnis fich3: Verschiebt die Dateien datei1, datei2 und fich3 in das Verzeichnis verzeichnis.
- $ mkdir string1: Erstellt ein neues Verzeichnis mit dem Namen string1 im aktuellen Verzeichnis.
- $ cd string1: Wechselt in das Verzeichnis string1.
- $ mkdir string1: Versucht, ein Verzeichnis mit dem Namen string1 im aktuellen Verzeichnis zu erstellen. Da das aktuelle Verzeichnis jetzt string1 ist, wird versucht, string1/string1 zu erstellen.
- $ ls: Listet den Inhalt des aktuellen Verzeichnisses auf (jetzt string1).
- $ ls ..: Listet den Inhalt des übergeordneten Verzeichnisses auf.
- $ cd ..: Wechselt in das übergeordnete Verzeichnis.
- $ grep Total /usr/ntl/Rechnungen: Sucht in der Datei /usr/ntl/Rechnungen nach Zeilen, die das Wort "Total" enthalten, und gibt diese Zeilen aus.
- $ grep Juan /usr/wollen/agenda: Sucht in der Datei /usr/wollen/agenda nach Zeilen, die das Wort "Juan" enthalten, und gibt diese Zeilen aus.
- $ grep 'John' /usr/wollen/agenda: Sucht in der Datei /usr/wollen/agenda nach Zeilen, die das Wort "John" enthalten, und gibt diese Zeilen aus. Die Anführungszeichen stellen sicher, dass "John" als exakte Zeichenkette gesucht wird.
35. Welches Ergebnis wird durch die Ausführung der folgenden chmod-Befehle produziert?
- $ chmod g+r Brief: Fügt der Gruppe Leserechte (r) für die Datei Brief hinzu.
- $ chmod o+rwx Schreiben: Fügt Anderen Lese-, Schreib- und Ausführungsrechte (rwx) für die Datei Schreiben hinzu.
- $ chmod g+w Schreiben: Fügt der Gruppe Schreibrechte (w) für die Datei Schreiben hinzu.
- $ chmod g+w Papier: Fügt der Gruppe Schreibrechte (w) für die Datei Papier hinzu.
- $ chmod +x Notizen: Fügt allen (Besitzer, Gruppe, Andere) Ausführungsrechte (x) für die Datei Notizen hinzu.
36. Schreiben Sie die Befehle, um:
- den Inhalt der Datei Schreiben anzuzeigen.
- die Ausgabe des Befehls cat Karte in die Datei buchstabe2 umzuleiten.
- die Ausgabe des Befehls cat Karte in die Datei buchstabe2 umzuleiten und die Fehlerausgabe in die Datei error2 umzuleiten.
Die Befehle sind:
- cat Schreiben
- cat Karte > buchstabe2
- cat Karte > buchstabe2 2> error2
37. Erklären Sie den Nutzen der Befehle: ln, write, ftp, telnet, ps, kill.
- ln: Erstellt Links zwischen Dateien (Hardlinks und Symbolische Links).
- write: Sendet eine Nachricht an einen anderen Benutzer, der am selben System angemeldet ist.
- ftp: Ermöglicht den Dateiaustausch über ein Netzwerk mittels des File Transfer Protocols.
- Zwei Arten von Verbindungen: Anonym (ohne spezifischen Benutzeraccount) und Authentifiziert (mit Benutzername und Passwort).
- Datei vom Remote-Computer herunterladen: get dateiname
- Mehrere Dateien mit Wildcards vom Remote-Computer herunterladen: mget muster
- Datei auf den Remote-Computer hochladen: put dateiname
- Mehrere Dateien mit Wildcards auf den Remote-Computer hochladen: mput muster
- telnet: Ermöglicht das Öffnen einer Remote-Sitzung auf einem anderen Computer (unsicher, da Daten unverschlüsselt übertragen werden).
- ps: Listet die aktuell laufenden Prozesse auf.
- kill: Sendet ein Signal an einen Prozess, um ihn zu beenden (standardmäßig SIGTERM).
38. Geben Sie die drei Befehle an, die verwendet werden, um den Inhalt einer Datei anzuzeigen, und erklären Sie die Unterschiede zwischen ihnen.
Die drei Befehle sind cat, more und less.
- cat datei: Gibt den gesamten Inhalt der Datei auf dem Bildschirm aus, ohne Unterbrechung. Wenn die Datei länger als der Bildschirm ist, scrollt der Inhalt schnell vorbei, und nur das Ende ist sichtbar.
- more datei: Zeigt den Inhalt der Datei seitenweise an. Es zeigt eine Bildschirmseite nach der anderen und wartet auf eine Benutzereingabe (z. B. Leertaste für nächste Seite, Enter für nächste Zeile), um fortzufahren. Man kann vorwärts scrollen, aber normalerweise nicht zurück.
- less datei: Ähnlich wie more, zeigt den Inhalt seitenweise an, ermöglicht aber auch das Scrollen rückwärts und vorwärts im Text. Es ist flexibler als more.
39. Erklären Sie, was ein Link ist, welche Arten von Links es unter Linux gibt und den Befehl zum Erstellen von Links.
Ein Link ist ein Verweis auf eine Datei oder ein Verzeichnis.
Unter Linux gibt es zwei Arten von Links:
- Hardlinks: Ein Hardlink ist ein zusätzlicher Name für eine bestehende Datei. Mehrere Hardlinks können auf dieselbe Inode verweisen. Hardlinks können nur auf Dateien innerhalb desselben Dateisystems erstellt werden und nicht auf Verzeichnisse.
- Symbolische Links (Symlinks) oder Softlinks: Ein Symbolischer Link ist eine spezielle Datei, die den Pfad zu einer anderen Datei oder einem anderen Verzeichnis enthält. Es ist ein indirekter Verweis. Symlinks können auf Dateien oder Verzeichnisse in anderen Dateisystemen verweisen.
Der Befehl zum Erstellen von Links ist ln:
- ln quelle linkname: Erstellt einen Hardlink namens linkname, der auf quelle verweist.
- ln -s quelle linkname: Erstellt einen Symbolischen Link namens linkname, der auf quelle verweist.