diff --git a/docs/books/admin_guide/01-presentation.de.md b/docs/books/admin_guide/01-presentation.de.md
index a93bf7706a..d9aed6c955 100644
--- a/docs/books/admin_guide/01-presentation.de.md
+++ b/docs/books/admin_guide/01-presentation.de.md
@@ -2,6 +2,8 @@
title: Einführung in GNU/Linux
---
+
+
# Einführung in GNU/Linux
In diesem Kapitel werden GNU/Linux Distributionen behandelt.
@@ -10,18 +12,19 @@ In diesem Kapitel werden GNU/Linux Distributionen behandelt.
**Ziele**: In diesem Kapitel lernen Sie Folgendes:
-:heavy_check_mark: Funktionen und mögliche Architekturen eines Betriebssystems beschreiben
-:heavy_check_mark: Die Entwicklung von UNIX und GNU/Linux
-:heavy_check_mark: Wie sie die richtige Linux-Distribution für Ihre Bedürfnisse auswählen
-:heavy_check_mark: Die Philosophie der freien und Open-Source-Software
+:heavy_check_mark: Funktionen und mögliche Architekturen eines Betriebssystems beschreiben
+:heavy_check_mark: Die Entwicklung von UNIX und GNU/Linux
+:heavy_check_mark: Wie Sie die richtige Linux-Distribution für Ihre Bedürfnisse auswählen
+:heavy_check_mark: Die Philosophie der freien und Open-Source Software
:heavy_check_mark: Die Anwendung der SHELL.
:checkered_flag: **Allgemeines**, **Linux**, **Distributionen**
-**Vorwissen**: :star:
+**Vorwissen**: :star:
+
**Schwierigkeitsgrad**: :star:
-**Lesezeit**: 10 Minuten
+**Lesezeit**: 11 Minuten
****
@@ -29,23 +32,29 @@ In diesem Kapitel werden GNU/Linux Distributionen behandelt.
Linux, UNIX, BSD, VxWorks, Windows und MacOS sind Beispiele für **Betriebssysteme**.
-!!! abstract "Zusammenfassung"
+!!! Abstrakt
Ein Betriebssystem ist eine Sammlung von Programmen, die die **verfügbaren Komponenten eines Computers verwalten**.
-Unter dieser Ressourcenverwaltung muss das Betriebssystem folgendes tun:
+Als Teil dieser Ressourcenverwaltung muss das Betriebssystem Folgendes tun:
+
+* **Physikalischen** und **virtuellen** Speicher.
+
+ * Der **physikalische Speicher** besteht aus den RAM-Balken und dem Prozessor-Cache-Speicher, die zur Ausführung von Programmen verwendet werden.
-* Physikalischen und virtuellen Speicher verwalten.
- * Der **physikalische Speicher** besteht aus den RAM-Balken und dem Prozessor-Cache-Speicher, der zur Ausführung von Programmen verwendet wird.
* Der **virtuelle Speicher** ist ein Ort auf der Festplatte (die **Swap** Partition), der das Entladen des physikalischen Speichers und die Speicherung des aktuellen Status des Systems während des elektrischen Herunterfahrens des Computers ermöglicht.
-* **Zugriff auf Peripheriegeräte** abfangen. Auf Hardware direkt zuzugreifen (außer Grafikkarten für sehr spezifische Bedürfnisse) ist der Software selten erlaubt.
-* Bereitstellen von Anwendungen mit einem geeigneten **Task-Management**. Das Betriebssystem ist für die Planung von Prozessen verantwortlich, um den Prozessor zu besetzen.
+
+* **Zugriff auf Peripheriegeräte** abfangen. Der Software ist selten erlaubt, auf Hardware direkt zuzugreifen (außer Grafikkarten für sehr spezifische Bedürfnisse).
+
+* Bereitstellen von Anwendungen mit einem geeigneten **Task-Management**. Das Betriebssystem ist für die Planung von Prozessen verantwortlich, um den Prozessor zu belegen.
+
* **Schützt Dateien** vor unbefugtem Zugriff.
+
* **Sammeln von Informationen** über laufende Programme.

-## Allgemeines über UNIX - GNU/Linux
+## Allgemeines über UNIX und GNU/Linux
### Geschichte
@@ -55,7 +64,7 @@ Unter dieser Ressourcenverwaltung muss das Betriebssystem folgendes tun:
* **1969 – 1971**: Nach dem Rückzug von Bell (1969) und dann von General Electric aus dem Projekt wurden zwei Entwickler, Ken Thompson und Dennis Ritchie (zu denen später Brian Kernighan hinzukam), die MULTICS für zu komplex hielten, mit der Entwicklung von UNIX (UNiplexed Information and Computing Service) betraut. Ursprünglich im Assembler entwickelt, entwickelten die Designer von UNIX die B-Sprache und dann die C-Sprache (1971) und schrieben UNIX. Seit 1970 ist das Referenzdatum (epoch) der UNIX/Linux-Systeme noch am 01. Januar 1970 festgelegt.
-Die Programmiersprache C ist heute noch eine der beliebtesten Programmiersprachen! Eine Low-Level-Sprache, nahe der Hardware, ermöglicht es die Anpassung des Betriebssystems an jede Maschinenarchitektur mit einem C-Compiler.
+Die Programmiersprache C ist noch heute eine der beliebtesten Programmiersprachen. Eine Low-Level-Sprache, nahe der Hardware, sie ermöglicht die Anpassung des Betriebssystems an jede Maschinenarchitektur.
UNIX ist ein offenes und sich entwickelndes Betriebssystem, das eine wichtige Rolle in der Geschichte der Informatik gespielt hat. Es war die Basis für viele andere Systeme: Linux, BSD, MacOS, etc.
@@ -91,7 +100,7 @@ UNIX ist noch heute relevant (HP-UX, AIX, Solaris, etc.)
!!! info "Information"
- Dispute über den Namen: Obwohl die Leute daran gewöhnt sind, das Linux-Betriebssystem so zu nennen, ist Linux streng genommen ein Kernel. Wir dürfen die Entwicklung und den Beitrag des GNU-Projekts zu Open Source nicht vergessen! Wir ziehen es vor, das Betriebssystem GNU/Linux zu nennen.
+ Kontroverse über den Namen: Obwohl die Leute daran gewöhnt sind, das Linux-Betriebssystem so zu nennen, ist Linux streng genommen ein Kernel. Wir dürfen die Entwicklung und den Beitrag des GNU-Projekts zu Open Source nicht vergessen! Wir ziehen es vor, das Betriebssystem GNU/Linux zu nennen.
### Marktanteile
@@ -99,26 +108,31 @@ UNIX ist noch heute relevant (HP-UX, AIX, Solaris, etc.)
TODO: graphics with market share for servers and pc.
-->
-Trotz seiner Verbreitung ist Linux in der breiten Öffentlichkeit noch relativ unbekannt. Linux versteckt sich in **Smartphones**, **Fernsehgeräten** und **Internetboxen** usw. Fast **70% der Websites** auf der Welt werden auf einem Linux oder UNIX Server gehostet!
+Trotz seiner großen Verbreitung ist Linux in der breiten Öffentlichkeit noch relativ unbekannt. Linux versteckt sich in **Smartphones**, **Fernsehgeräten**, **Internetboxen**, usw. Fast **70% der Websites** auf der Welt werden auf einem Linux oder UNIX Server gehostet!
-Linux ist in etwa **3 % der Personalcomputer**, aber in mehr als **82 % der Smartphones** verbaut. Das Betriebssystem **Android** z. B. verwendet einen Linux-Kernel.
+Linux ist in etwa **3 % der Personal Computer**, aber in mehr als **82 % der Smartphones** verbaut. Das Betriebssystem **Android** verwendet beispielsweise einen Linux-Kernel.
Linux rüstet seit 2018 100 % der 500 besten Supercomputer aus. Ein Supercomputer ist ein Computer, der darauf ausgelegt ist, mit den zum Zeitpunkt seiner Konstruktion bekannten Techniken die höchstmögliche Leistung zu erzielen, insbesondere im Hinblick auf die Rechengeschwindigkeit.
-### Architektur
+### Architektur-Design
* Der **Kernel** ist die erste Softwarekomponente.
+
* Es ist das Herz des GNU/Linux-Systems.
* Es verwaltet die Hardware-Ressourcen des Systems.
* Die anderen Softwarekomponenten müssen den Kernel durchlaufen, um auf die Hardware zuzugreifen.
+
* Die **Shell** ist ein Dienstprogramm, das Benutzerbefehle interpretiert und deren Ausführung sicherstellt.
- * Die Wichtigsten sind: Bourne Shell, C Shell, Korn Shell und Bourne-Again Shell (Bash).
+
+ * Die Wichtigsten sind: Bourne Shell, C Shell, Korn Shell und Bourne-Again Shell (bash).
+
* **Anwendungen** sind Benutzerprogramme, einschließlich, aber nicht beschränkt auf:
+
* Internet-Browser
* Textverarbeitung
- * Tabellenkalkulationen
+ * Tabellenkalkulation
#### Multi-Task
@@ -150,7 +164,7 @@ Linux ist in einer Hochsprache geschrieben, die beim Kompilieren an verschiedene
#### Offen
-Linux basiert auf anerkannten Standards wie [POSIX](http://en.wikipedia.org/wiki/POSIX), [TCP/IP](https://en.wikipedia.org/wiki/Internet_protocol_suite), [NFS](https://en.wikipedia.org/wiki/Network_File_System), und [Samba](https://en.wikipedia.org/wiki/Samba_(software)), die es ihm erlauben, Daten und Dienste mit anderen Applikationssystemen zu teilen.
+Linux basiert auf anerkannten Standards wie [POSIX](http://en.wikipedia.org/wiki/POSIX), [TCP/IP](https://en.wikipedia.org/wiki/Internet_protocol_suite), [NFS](https://en.wikipedia.org/wiki/Network_File_System) und [Samba](https://en.wikipedia.org/wiki/Samba_(software)), die es ihm erlauben, Daten und Dienste mit anderen Applikationssystemen zu teilen.
### Die UNIX/Linux Philosophie
@@ -158,30 +172,30 @@ Linux basiert auf anerkannten Standards wie [POSIX](http://en.wikipedia.org/wiki
* Portabilität.
* Tue nur eine Sache auf einmal und mache sie gut.
* KISS: Keep It Simple Stupid.
-* "UNIX ist im Grunde ein einfaches Betriebssystem, aber man muss ein Genie sein, um die Einfachheit zu verstehen. " (__Dennis Ritchie__)
-* "Unix ist benutzerfreundlich. It just isn't promiscuous about which users it's friendly with." (__Steven King__)
+* "UNIX ist im Grunde ein einfaches Betriebssystem, aber man muss ein Genie sein, um die Einfachheit zu verstehen." (**Dennis Ritchie**)
+* "Unix is user-friendly. It just isn't promiscuous about which users it's friendly with." (**Steven King**)
## GNU/Linux-Distributionen
Eine Linux-Distribution ist ein **konsistenter Softwaresatz**, der rund um den Linux-Kernel zusammengestellt ist und zusammen mit den für die Selbstverwaltung erforderlichen Komponenten (Installation, Entfernung, Konfiguration) installiert werden kann. Es gibt **assoziative** oder **Community**-Distributionen (Debian, Rocky) und ** kommerzielle **Distributionen (Red Hat, Ubuntu).
-Jede Distribution bietet eine oder mehrere **Desktop-Umgebungen** und stellt eine Reihe vorinstallierter Software und eine Bibliothek zusätzlicher Software bereit. Konfigurationsoptionen (zum Beispiel Kernel- oder Dienste-Optionen) sind spezifisch für jede Distribution.
+Jede Distribution bietet eine oder mehrere **Desktop-Umgebungen** und stellt eine Reihe vorinstallierter Software und eine Bibliothek mit zusätzlicher Software bereit. Konfigurationsoptionen (zum Beispiel Kernel- oder Dienste-Optionen) sind spezifisch für jede Distribution.
-Dieses Prinzip ermöglicht es, Distributionen auf **Einsteiger** (Ubuntu, Linux Mint...) oder vollständig anpassbar für **fortgeschrittene Benutzer** auszurichten. stark> (Gentoo, Arch); Distributionen können auch mit **Servern** (Debian, Red Hat) oder **Workstations** (Fedora) besser geeignet sein.
+Dieses Prinzip ermöglicht es, Distributionen auf **Einsteiger** (Ubuntu, Linux Mint...) oder vollständig anpassbar für **fortgeschrittene Benutzer** auszurichten (Gentoo, Arch). Distributionen können auch mit **Servern** (Debian, Red Hat) oder **Workstations** (Fedora) besser geeignet sein.
### Desktop-Umgebungen
-Es gibt viele grafische Umgebungen wie **GNOME**, **KDE**, **LXDE **, **XFCE** usw. Für alles, was Sie brauchen, und die Ergonomie ist alles auf den alten Systemen von Microsoft oder Apple.
+Es gibt viele grafische Umgebungen wie **GNOME**, **KDE**, **LXDE **, **XFCE** usw. Für jeden ist etwas dabei, und ihre **Ergonomie** kann sich mit den Systemen von Microsoft oder Apple messen.
-Warum also gibt es so wenig Begeisterung für Linux, wenn dieses System praktisch **frei** ist? Könnte es daran liegen, dass so viele Editoren (Adobe) und Hersteller (Nvidia) nicht mitspielen und keine Version ihrer Software oder __Treiber__ für GNU/Linux bereitstellen? Vielleicht ist es die Angst vor Veränderungen, oder die Schwierigkeit zu finden, wo man einen Linux-Computer kaufen kann, oder zu wenige Spiele, die unter Linux verteilt werden. Diese letzte Entschuldigung sollte zumindest nicht für lange Zeit wahr sein, mit dem Aufkommen der Spiele-Engine Steam für Linux.
+Warum also gibt es so wenig Begeisterung für Linux, wenn dieses System **frei** ist? Könnte es daran liegen, dass so viele Editoren (Adobe) und Hersteller (Nvidia) nicht immer mitspielen und selten eine Version ihrer Software oder __Treiber__ für GNU/Linux bereitstellen? Vielleicht ist es die Angst vor Veränderungen, oder die Schwierigkeit zu finden, wo man einen Linux-Computer kaufen kann, oder zu wenige Spiele, die unter Linux verteilt werden. Zumindest diese letzte Ausrede sollte mit dem Aufkommen der Spiele-Engine Steam für Linux nicht mehr lange zutreffen.

-Die **GNOME 3** Desktopumgebung verwendet nicht mehr das Konzept des Desktops, sondern das Konzept der GNOME Shell (nicht mit der Kommandozeilen-Shell zu verwechseln). Es dient als Arbeitsfläche, als Dashboard, als Benachrichtigung-Bereich und als Fensterauswahl. Die GNOME-Desktopumgebung basiert auf der **GTK+** Komponentenbibliothek.
+Die **GNOME 3**-Desktopumgebung verwendet nicht mehr das Konzept des Desktops, sondern das der GNOME-Shell (nicht zu verwechseln mit der Befehlszeilen-Shell). Es dient als Arbeitsfläche, als Dashboard, als Benachrichtigungsbereich und als Fensterauswahl. Die GNOME-Desktopumgebung basiert auf der **GTK+** Komponentenbibliothek.

-Die **KDE**-Desktopumgebung basiert auf der **Qt** Komponentenbibliothek. Es wird traditionell für Benutzer empfohlen, die mit einer Windowsumgebung vertraut sind.
+Die **KDE**-Desktopumgebung basiert auf der **Qt**-Komponentenbibliothek. Es wird traditionell für Benutzer empfohlen, die mit einer Windows-Umgebung vertraut sind.

@@ -189,17 +203,17 @@ Die **KDE**-Desktopumgebung basiert auf der **Qt** Komponentenbibliothek. Es wir
Ein Benutzer eines Microsoft- oder Mac-Betriebssystems muss eine Lizenz erwerben, um das Betriebssystem zu nutzen. Diese Lizenz ist mit Kosten verbunden, obwohl sie in der Regel transparent ist (der Preis der Lizenz ist im Preis des Computers inbegriffen).
-In der Welt **GNU/Linux** bietet die Bewegung der Freien Software größtenteils freie Distributionen.
+In der Welt **GNU/Linux** bietet die Bewegung der Freien Software freie Distributionen.
**Frei** ist gemeint im Sinne von Freiheit nicht von Freibier!
-**Open Source**: die Quellen sind verfügbar, es ist möglich, sie einzusehen, aber nur unter bestimmte Bedingungen änderbar.
+**Open Source**: die Quellen sind verfügbar, es ist möglich, sie einzusehen und verändern, aber nur unter bestimmte Bedingungen.
Eine freie Software ist notwendigerweise Open-Source, aber das Gegenteil trifft nicht zu, da Open-Source-Software sich von der Freiheit unterscheidet, die die GPL-Lizenz bietet.
#### GNU GPL (GNU General Public License)
-Die **GPL** garantiert dem Autor einer Software ihr geistiges Eigentum, erlaubt aber Modifikationen, Weitergabe oder Weiterverkauf von Software durch Dritte, vorausgesetzt, der Quelltext ist in der Software enthalten. Die GPL ist die Lizenz, die aus dem **GNU** (GNU ist Nicht UNIX) Projekt hervorgegangen ist, das maßgeblich an der Erstellung von Linux beteiligt war.
+Die **GPL** garantiert dem Autor einer Software ihr geistiges Eigentum, erlaubt aber Modifikationen, Weitergabe oder Weiterverkauf von Software durch Dritte, vorausgesetzt, der Quelltext ist in der Software enthalten. Die GPL ist die Lizenz, die aus dem **GNU**-Projekt (GNU ist Nicht UNIX) hervorgegangen ist, das maßgeblich an der Entwicklung von GNU/Linux beteiligt war.
Das bedeutet:
@@ -208,7 +222,7 @@ Das bedeutet:
* Die Freiheit, Kopien weiterzugeben.
* Die Freiheit, das Programm zu verbessern und diese Verbesserungen zum Nutzen der gesamten Community zu veröffentlichen.
-Auf der anderen Seite können auch Produkte, die unter der GPL lizenziert sind, Kosten verursachen. Das ist nicht für das Produkt selbst aber das **garantiert, dass ein Entwicklerteam weiter daran arbeiten wird, um es zu entwickeln und Fehler zu beheben, oder sogar Unterstützung für Benutzer leisten**.
+Auf der anderen Seite können auch Produkte, die unter der GPL lizenziert sind, Kosten verursachen. Dabei geht es nicht um das Produkt selbst, sondern um die **Garantie, dass ein Entwicklerteam weiter daran arbeitet. Es geht auch darum es weiterzuentwickeln und Fehler zu beheben oder sogar Benutzerunterstützung zu leisten**.
## Anwendungsbereiche
@@ -219,15 +233,15 @@ Eine Linux-Distribution zeichnet sich aus für:
* **Zentralrechner**: Banken, Versicherungen, Industrie usw.
* **Eingebettete Systeme**: Router, Internet-Boxen, SmartTVs, usw.
-Linux ist eine geeignete Wahl für das Hosting von Datenbanken, Websites, als Mail-Server, DNS oder Firewall. Kurz gesagt, Linux kann fast alles tun, was die Menge der spezifischen Distributionen erklärt.
+Linux ist eine geeignete Wahl für das Hosting von Datenbanken, Websites, als Mail-Server, DNS oder Firewall. Kurz gesagt, Linux kann fast alles tun, was die Vielfalt der spezifischen Distributionen erklärt.
## Shell
### Allgemeines
-Die **Shell**, bekannt als _Kommandoschnittstelle_, ermöglicht Benutzern Befehle an das Betriebssystem zu senden. Sie ist heute weniger sichtbar seit der Implementierung von grafischen Schnittstellen aber bleibt ein privilegiertes Mittel auf Linux-Systemen, die nicht alle über grafische Schnittstellen verfügen und deren Dienste nicht immer über eine Schnittstelle für Einstellungen verfügen.
+Die **Shell**, bekannt als _Kommandoschnittstelle_, ermöglicht Benutzern Befehle an das Betriebssystem zu schicken. Sie ist heute weniger sichtbar seit der Implementierung von grafischen Schnittstellen aber bleibt ein privilegiertes Mittel auf Linux-Systemen, die nicht alle über grafische Schnittstellen verfügen und deren Dienste nicht immer über eine Schnittstelle für Einstellungen verfügen.
-Sie bietet eine echte Programmiersprache mit den klassischen Strukturen: Schleifen, Abzweigungen und allgemeine Bestandteile (Variablen, Übergabe von Parametern und Unterprogrammen). Sie erlaubt die Erstellung von Skripten zur Automatisierung bestimmter Aktionen (Backups, Erstellung von Benutzern, Systemüberwachung, usw.).
+Sie bietet eine echte Programmiersprache mit den klassischen Strukturen (Schleifen, Abzweigungen) und allgemeine Bestandteile (Variablen, Übergabe von Parametern und Unterprogramme). Sie erlaubt die Erstellung von Skripten zur Automatisierung bestimmter Aktionen (Backups, Erstellung von Benutzerkonten, Systemüberwachung, usw.).
Es gibt verschiedene Arten von Shells, die auf einer Plattform oder nach den Vorlieben des Benutzers konfiguriert werden können. Einige Beispiele sind:
@@ -251,62 +265,62 @@ Es gibt verschiedene Arten von Shells, die auf einer Plattform oder nach den Vor
:heavy_check_mark: Ein Betriebssystem ist eine Zusammenstellung von Programmen zur Verwaltung der verfügbaren Ressourcen eines Computers:
-- [ ] Wahr
-- [ ] Falsch
+* [ ] Wahr
+* [ ] Falsch
:heavy_check_mark: Das Betriebssystem ist notwendig z.B. um:
-- [ ] Physischen und virtuellen Speicher verwalten.
-- [ ] Direkten Zugriff auf Geräte zulassen
-- [ ] die Aufgabenverwaltung dem Computer überlassen
-- [ ] Informationen über benutzte Programme oder gerade in Verwendung
+* [ ] Physischen und virtuellen Speicher verwalten.
+* [ ] Direkten Zugriff auf Geräte zulassen
+* [ ] die Aufgabenverwaltung dem Computer überlassen
+* [ ] Informationen über benutzte Programme oder gerade in Verwendung
-:heavy_check_mark: Unter diesen Persönlichkeiten, die an der Entwicklung von UNIX teilgenommen haben:
+:heavy_check_mark: Welche dieser Persönlichkeiten waren an der Entwicklung von UNIX beteiligt:
-- [ ] Linus Torvalds
-- [ ] Ken Thompson
-- [ ] Lionel Richie
-- [ ] Brian Kernighan
-- [ ] Andrew Stuart Tanenbaum
+* [ ] Linus Torvalds
+* [ ] Ken Thompson
+* [ ] Lionel Richie
+* [ ] Brian Kernighan
+* [ ] Andrew Stuart Tanenbaum
:heavy_check_mark: Die ursprüngliche Nationalität von Linus Torvalds, Schöpfer des Linux-Kernels, ist:
-- [ ] Swedisch
-- [ ] Finnisch
-- [ ] Norwegisch
-- [ ] Flämisch
-- [ ] Französisch
+* [ ] Swedisch
+* [ ] Finnisch
+* [ ] Norwegisch
+* [ ] Flämisch
+* [ ] Französisch
:heavy_check_mark: Welche der folgenden Distributionen ist die älteste:
-- [ ] Debian
-- [ ] Slackware
-- [ ] Red Hat
-- [ ] Arch
+* [ ] Debian
+* [ ] Slackware
+* [ ] Red Hat
+* [ ] Arch
:heavy_check_mark: ist der Linux-Kernel:
-- [ ] Multitasking
-- [ ] Multi-User
-- [ ] Multi-Prozessor
-- [ ] Multi-Core
-- [ ] Plattformübergreifend
-- [ ] Offen
+* [ ] Multitasking
+* [ ] Multi-User
+* [ ] Multi-Prozessor
+* [ ] Multi-Core
+* [ ] Plattformübergreifend
+* [ ] Offen
:heavy_check_mark: Ist Freie Software notwendigerweise Open-Source?
-- [ ] Wahr
-- [ ] Falsch
+* [ ] Wahr
+* [ ] Falsch
:heavy_check_mark: Ist Open-Source-Software notwendigerweise frei?
-- [ ] Wahr
-- [ ] Falsch
+* [ ] Wahr
+* [ ] Falsch
-:heavy_check_mark: Was von den Folgenden ist keine Shell ist:
+:heavy_check_mark: Was von den Folgenden ist keine Shell:
-- [ ] Jason
-- [ ] Jason-Bourne Shell (jbsh)
-- [ ] Bourne-Again Shell (bash)
-- [ ] C Shell (csh)
-- [ ] Korn Shell (ksh)
+* [ ] Jason
+* [ ] Jason-Bourne Shell (jbsh)
+* [ ] Bourne-Again Shell (bash)
+* [ ] C Shell (csh)
+* [ ] Korn Shell (ksh)
diff --git a/docs/books/admin_guide/04-advanced-commands.de.md b/docs/books/admin_guide/04-advanced-commands.de.md
index 794db7ecc1..64fc607bd8 100644
--- a/docs/books/admin_guide/04-advanced-commands.de.md
+++ b/docs/books/admin_guide/04-advanced-commands.de.md
@@ -10,8 +10,7 @@ Erweiterte Befehle bieten eine bessere Anpassung und Steuerung in speziellen Sit
**Ziele**: In diesem Kapitel werden zukünftige Linux-Administratoren Folgendes lernen:
-:heavy_check_mark: Einige nützliche Befehle, die im vorherigen Kapitel nicht enthalten sind;
-:heavy_check_mark: Einige erweiterte Befehle.
+:heavy_check_mark: einige nützliche Befehle, die im vorherigen Kapitel nicht behandelt wurden. :heavy_check_mark: einige erweiterte Befehle.
:checkered_flag: **Benutzerbefehle**, **Linux**
@@ -26,9 +25,9 @@ Erweiterte Befehle bieten eine bessere Anpassung und Steuerung in speziellen Sit
Der `uniq` Befehl ist ein sehr mächtiger Befehl, der mit dem `sort` Befehl benutzt wird, insbesondere für die Analyse von Logdateien. Sie können Einträge sortieren und anzeigen, indem Sie Duplikate entfernen.
-Um zu veranschaulichen, wie der `uniq` Befehl funktioniert, verwenden wir eine `firstnames.txt` Datei mit einer Liste von Vornamen:
+Um zu veranschaulichen, wie der `uniq` Befehl funktioniert, verwenden wir eine Datei `firstnames.txt` mit einer Liste von Vornamen:
-```
+```text
antoine
xavier
steven
@@ -45,7 +44,7 @@ steven
Ohne Argument wird der `uniq` Befehl die gleichen Zeilen nicht anzeigen, die einander in der `firstnames.txt` Datei folgen:
-```
+```bash
$ sort firstnames.txt | uniq
antoine
patrick
@@ -55,14 +54,14 @@ xavier
Um nur die Zeilen anzuzeigen, die nur einmal erscheinen, verwenden Sie die `-u` Option:
-```
+```bash
$ sort firstnames.txt | uniq -u
patrick
```
Um dagegen nur die Zeilen anzuzeigen, die mindestens zweimal in der Datei erscheinen, müssen Sie die `-d` Option verwenden:
-```
+```bash
$ sort firstnames.txt | uniq -d
antoine
steven
@@ -71,7 +70,7 @@ xavier
Um nur Zeilen zu löschen, die nur einmal erscheinen, verwenden Sie die `-D` Option:
-```
+```bash
$ sort firstnames.txt | uniq -D
antoine
antoine
@@ -84,7 +83,7 @@ xavier
Um schließlich die Anzahl der Vorkommnisse jeder Zeile zu zählen, verwenden Sie die `-c` Option:
-```
+```bash
$ sort firstnames.txt | uniq -c
3 antoine
1 patrick
@@ -92,7 +91,7 @@ $ sort firstnames.txt | uniq -c
2 xavier
```
-```
+```bash
$ sort firstnames.txt | uniq -cd
3 antoine
2 steven
@@ -107,7 +106,7 @@ Der `xargs` Befehl liest Argumente von der Standardeingabe ein und führt den Be
Ein erstes und einfachstes Beispiel wäre Folgendes:
-```
+```bash
$ xargs
use
of
@@ -116,9 +115,9 @@ xargs
use of xargs
```
-Der `xargs` Befehl wartet auf eine Eingabe von **stdin**. Es werden drei Zeilen eingegeben. Das Ende der Benutzereingabe `xargs` wird durch die Tastaturfolge STRG+D festgelegt. `xargs` führt dann den Standardbefehl `echo` aus, gefolgt von den drei Argumenten, die der Benutzereingabe entsprechen, nämlich:
+Der `xargs` Befehl wartet auf eine Eingabe von **stdin**. Es werden drei Zeilen eingegeben. Das Ende der Benutzereingabe `xargs` wird durch die Tastaturfolge ++ctrl+d++ festgelegt. `xargs` führt dann den Standardbefehl `echo` aus, gefolgt von den drei Argumenten, die der Benutzereingabe entsprechen, nämlich:
-```
+```bash
$ echo "use" "of" "xargs"
use of xargs
```
@@ -127,7 +126,7 @@ Es ist möglich, einen Befehl anzugeben, der von `xargs` ausgeführt werden soll
Im folgenden Beispiel führt `xargs` den Befehl `ls -ld` auf dem Satz von Ordnern aus, die in der Standardeingabe angegeben sind:
-```
+```bash
$ xargs ls -ld
/home
/tmp
@@ -142,7 +141,7 @@ In der Praxis führt das Kommando `xargs` den `ls -ld /home /tmp /root` Befehl a
Was passiert, wenn der auszuführende Befehl nicht mehrere Argumente akzeptiert, wie z. B. beim Befehl `find`?
-```
+```bash
$ xargs find /var/log -name
*.old
*.log
@@ -151,14 +150,14 @@ find: paths must precede expression: *.log
Das Kommando `xargs` versucht, den `find` Befehl mit mehreren Argumenten hinter der `-name` Option auszuführen, die `find` dazu veranlasst einen Fehler zu generieren:
-```
+```bash
$ find /var/log -name "*.old" "*.log"
find: paths must precede expression: *.log
```
In diesem Fall der `xargs` Befehl muss gezwungen werden, den `find` Befehl mehrmals auszuführen (einmal pro Zeile als Standardeingabe). Die `-L` Option gefolgt von einem **Integer** erlaubt es Ihnen, die maximale Anzahl an Einträgen, die mit dem Befehl gleichzeitig bearbeitet werden sollen, anzugeben:
-```
+```bash
$ xargs -L 1 find /var/log -name
*.old
/var/log/dmesg.old
@@ -177,7 +176,7 @@ $ xargs -L 1 find /var/log -name
Wenn wir beide Argumente in der gleichen Zeile angeben wollten, müssen wir die `-n 1` Option verwenden:
-```
+```bash
$ xargs -n 1 find /var/log -name
*.old *.log
/var/log/dmesg.old
@@ -195,7 +194,7 @@ $ xargs -n 1 find /var/log -name
Case Studie eines Backups mit einem `tar` basierend auf einer Suche:
-```
+```bash
$ find /var/log/ -name "*.log" -mtime -1 | xargs tar cvfP /root/log.tar
$ tar tvfP /root/log.tar
-rw-r--r-- root/root 1720 2017-04-05 15:43 /var/log/boot.log
@@ -206,13 +205,13 @@ Die Besonderheit des `xargs` Befehls ist, dass es das Eingabeargument am Ende de
Wenn wir nun das Beispiel des `cp` Kommandos nehmen und eine Liste von Dateien in ein Verzeichnis kopieren wollen, diese Liste der Dateien wird am Ende des Befehls hinzugefügt, aber was das `cp` Kommando am Ende des Befehls erwartet, ist das Ziel. Um dies zu tun, verwenden wir die Option `-I` um die Eingabeargumente irgendwo anders als am Ende der Zeile zu platzieren.
-```
-$ find /var/log -type f -name "*.log" | xargs -I % cp % /root/backup
+```bash
+find /var/log -type f -name "*.log" | xargs -I % cp % /root/backup
```
-Mit der Option `-I` können Sie ein Zeichen (in unserem Beispiel das `%` Zeichen) angeben, bei dem die Eingabedateien zu `xargs` platziert werden.
+Mit der Option `-I` können Sie ein Zeichen (in unserem Beispiel das `%` Zeichen) angeben, als Platzhalter für die Eingabedateien von `xargs`.
-## `yum-utils` Paket
+## Das Paket `yum-utils`
Das `yum-utils` Paket ist eine Sammlung von Werkzeugen verschiedener Autoren für `yum`, die es einfacher und leistungsfähiger machen.
@@ -222,69 +221,70 @@ Das `yum-utils` Paket ist eine Sammlung von Werkzeugen verschiedener Autoren fü
Hier sind einige Beispiele:
-* `repoquery` Befehl:
+### `repoquery` Befehl
Der Befehl `repoquery` wird verwendet, um die Pakete im Repository abzufragen.
Anwendungsbeispiele:
- * Zeigt die Abhängigkeiten eines Pakets an (es kann ein installiertes oder nicht installiertes Softwarepaket sein), entspricht `dnf deplist `
- ```
- repoquery --requires
- ```
-
- * Zeigt die Dateien, die von einem installierten Paket bereitgestellt werden (funktioniert nicht für nicht installierte Pakete), Äquivalent zu `rpm -ql `
-
- ```
- $ repoquery -l yum-utils
- /etc/bash_completion.d
- /etc/bash_completion.d/yum-utils.bash
- /usr/bin/debuginfo-install
- /usr/bin/find-repos-of-install
- /usr/bin/needs-restarting
- /usr/bin/package-cleanup
- /usr/bin/repo-graph
- /usr/bin/repo-rss
- /usr/bin/repoclosure
- /usr/bin/repodiff
- /usr/bin/repomanage
- /usr/bin/repoquery
- /usr/bin/reposync
- /usr/bin/repotrack
- /usr/bin/show-changed-rco
- /usr/bin/show-installed
- /usr/bin/verifytree
- /usr/bin/yum-builddep
- /usr/bin/yum-config-manager
- /usr/bin/yum-debug-dump
- /usr/bin/yum-debug-restore
- /usr/bin/yum-groups-manager
- /usr/bin/yumdownloader
- …
- ```
-
-* `yumdownloader` Befehl:
+* Zeigt die Abhängigkeiten eines Pakets an (es kann ein installiertes oder nicht installiertes Softwarepaket sein), entspricht `dnf deplist `
+
+```bash
+repoquery --requires
+```
+
+* Zeigt die Dateien, die von einem installierten Paket bereitgestellt werden (funktioniert nicht für nicht installierte Pakete), äquivalent zu `rpm -ql `
+
+```bash
+$ repoquery -l yum-utils
+/etc/bash_completion.d
+/etc/bash_completion.d/yum-utils.bash
+/usr/bin/debuginfo-install
+/usr/bin/find-repos-of-install
+/usr/bin/needs-restarting
+/usr/bin/package-cleanup
+/usr/bin/repo-graph
+/usr/bin/repo-rss
+/usr/bin/repoclosure
+/usr/bin/repodiff
+/usr/bin/repomanage
+/usr/bin/repoquery
+/usr/bin/reposync
+/usr/bin/repotrack
+/usr/bin/show-changed-rco
+/usr/bin/show-installed
+/usr/bin/verifytree
+/usr/bin/yum-builddep
+/usr/bin/yum-config-manager
+/usr/bin/yum-debug-dump
+/usr/bin/yum-debug-restore
+/usr/bin/yum-groups-manager
+/usr/bin/yumdownloader
+…
+```
+
+### `yumdownloader` Befehl
Der `yumdownloader` Befehl lädt RPM-Pakete aus den Repositories herunter. Äquivalent zu `dnf download --downloadonly --downloaddir ./ package-name`
-!!! note "Hinweis"
+!!! CANNOT BE TRANSLATED!!! note "Hinweis"
Dieser Befehl ist sehr nützlich, um schnell ein lokales Repository für einige rpms zu erstellen!
Beispiel: `yumdownloader` lädt das _samba_ rpm Paket und all seine Abhängigkeiten:
-```
+```bash
$ yumdownloader --destdir /var/tmp --resolve samba
oder
$ dnf download --downloadonly --downloaddir /var/tmp --resolve samba
```
-| Optionen | Kommentare |
+| Option | Beschreibung |
| ----------- | ---------------------------------------------------------------------- |
| `--destdir` | Die heruntergeladenen Pakete werden im angegebenen Ordner gespeichert. |
-| `--resolve` | Läd auch die Paket-Abhängigkeiten herunter. |
+| `--resolve` | Lädt auch die Paket-Abhängigkeiten herunter. |
-## `psmisc` Pakete
+## Das Paket `psmisc`
Das `psmisc` Paket enthält Hilfsprogramme zur Verwaltung von Systemprozesse:
@@ -294,7 +294,7 @@ Das `psmisc` Paket enthält Hilfsprogramme zur Verwaltung von Systemprozesse:
Beispiele:
-```
+```bash
$ pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─agetty
@@ -314,13 +314,13 @@ systemd─┬─NetworkManager───2*[{NetworkManager}]
└─tuned───4*[{tuned}]
```
-```
+```bash
# killall httpd
```
Unterbricht die Prozesse (`-k` Option), die auf die Datei `/etc/httpd/conf/httpd.conf` zugreifen:
-```
+```bash
# fuser -k /etc/httpd/conf/httpd.conf
```
@@ -332,19 +332,19 @@ Mit der Option `-n` können Sie die Anzahl der Sekunden zwischen jeder Ausführu
!!! note "Anmerkung"
- Um den `watch` Befehl zu verlassen, müssen Sie Folgendes eingeben: STRG+C, um den Prozess zu beenden.
+ To exit the `watch` command, you must type the keys: CTRL+C to kill the process.
Beispiele:
* Zeigt das Ende der `/etc/passwd` Datei alle 5 Sekunden an:
-```
-$ watch -n 5 tail -n 3 /etc/passwd
+```bash
+watch -n 5 tail -n 3 /etc/passwd
```
Ergebnis:
-```
+```bash
Every 5.0s: tail -n 3 /etc/passwd rockstar.rockylinux.lan: Thu Jul 1 15:43:59 2021
sssd:x:996:993:User for sssd:/:/sbin/nologin
@@ -354,12 +354,88 @@ sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
* Überwachung der Anzahl der Dateien in einem Ordner:
-```
-$ watch -n 1 'ls -l | wc -l'
+```bash
+watch -n 1 'ls -l | wc -l'
```
* Uhr anzeigen:
+```bash
+watch -t -n 1 date
+```
+
+## `install` Befehl
+
+Im Gegensatz zu dem, was der Name vermuten lässt, wird der Befehl `install` nicht zur Installation von Paketen verwendet.
+
+Der Befehl kombiniert das Kopieren von Dateien (`cp`) und das Erstellen von Ordnern (`mkdir`) sowie die Zugriffsverwaltung (`chmod`, `chown`) und andere nützliche Funktionen (wie Backups).
+
+```bash
+install source dest
+install -t directory source [...]
+install -d directory
+```
+
+Optionen:
+
+| Option | Beschreibung |
+| ----------------------------- | -------------------------------------------------------------------- |
+| `-b` oder `--backup[=suffix]` | ein Backup der Ziel-Datei erstellen. |
+| `-d` | Argumente als Directory-Namen behandeln. |
+| `-D` | create all leading components before copying SOURCE to DEST. |
+| `-g` und `-o` | Eigentümer-Eigenschaft setzen. |
+| `-m` | Berechtigungen setzen. |
+| `-p` | Datum und Uhrzeit der ursprünglichen Dateien behalten. |
+| `-t` | kopiert alle Quellargumente in den Ordner. |
+
+!!! note "Anmerkung"
+
+ Es gibt auch Optionen um den SELinux-Kontext zu verwalten (siehe man install).
+
+Beispiele:
+
+Mit der Option `-d` ein Verzeichnis anlegen:
+
+```bash
+install -d ~/samples
+```
+
+Quelldatei in einen Ordner kopieren:
+
+```bash
+install src/sample.txt ~/samples/
```
-$ watch -t -n 1 date
+
+Diese beiden Anweisungen können auch mit einem einzigen Kommando bewerkstelligt werden:
+
+```bash
+$ install -v -D -t ~/samples/ src/sample.txt
+install: creating directory '~/samples'
+'src/sample.txt' -> '~/samples/sample.txt'
+```
+
+Dieser Befehl spart bereits Zeit. Jetzt fügen wir Benutzer- und Gruppenmitgliedschaft sowie Zugriffsrechte hinzu:
+
+```bash
+sudo install -v -o rocky -g users -m 644 -D -t ~/samples/ src/sample.txt
+```
+
+ !!! note "Anmerkung"
+
+ In diesem Fall ist `sudo` notwendig, um die Eigenschaften zu ändern.
+
+Sie können mit der Option `-b` auch ein Backup vorhandener Dateien erstellen:
+
+```bash
+$ install -v -b -D -t ~/samples/ src/sample.txt
+'src/sample.txt' -> '~/samples/sample.txt' (archive: '~/samples/sample.txt~')
+```
+
+Wie Sie sehen, erstellt der Befehl `install` eine Sicherung, indem er eine Tilde `~` an den ursprünglichen Dateinamen anfügt.
+
+Das Suffix kann mit der Option `-S` festgelegt werden:
+
+```bash
+$ install -v -b -S ".bak" -D -t ~/samples/ src/sample.txt
+'src/sample.txt' -> '~/samples/sample.txt' (archive: '~/samples/sample.txt.bak')
```
diff --git a/docs/books/admin_guide/04-advanced-commands.fr.md b/docs/books/admin_guide/04-advanced-commands.fr.md
index 75596747e7..c67782a227 100644
--- a/docs/books/admin_guide/04-advanced-commands.fr.md
+++ b/docs/books/admin_guide/04-advanced-commands.fr.md
@@ -2,8 +2,6 @@
title: Commandes avancées Linux
---
-
-
# Commandes avancées pour utilisateurs Linux
Les commandes avancées offrent une plus grande personnalisation et des contrôles dans des situations plus spécifiques une fois que vous êtes familiarisés avec les commandes de base.
@@ -117,7 +115,7 @@ xargs
use of xargs
```
-La commande `xargs` attend une saisie depuis l’entrée standard **stdin**. Trois lignes sont saisies. La fin de la saisie utilisateur est spécifiée à `xargs` par la séquence de touches CTRL + D. `xargs` exécute alors la commande par défaut `echo` suivi des trois arguments correspondants à la saisie utilisateur, soit :
+La commande `xargs` attend une saisie depuis l’entrée standard **stdin**. Trois lignes sont saisies. La fin de la saisie utilisateur est spécifiée à `xargs` par la séquence de touches ++ctrl+d++. `xargs` exécute alors la commande par défaut `echo` suivi des trois arguments correspondants à la saisie utilisateur, soit :
```bash
$ echo "use" "of" "xargs"
@@ -221,63 +219,63 @@ Le paquet `yum-utils` est une collection d’utilitaires de différents auteurs
Bien que `yum` ait été remplacé par `dnf` dans Rocky Linux 8, le nom du paquet est resté `yum-utils` mais il peut tout aussi bien être installé avec le paquet `dnf-utils`. Ce sont des utilitaires YUM classiques implémentés comme des CLI au-dessus de DNF pour maintenir une compatibilité ascendante avec `yum-3`.
-Voici quelques exemples d’utilitaires :
+Voici quelques exemples parmi ces utilitaires .
-* la commande `repoquery` :
+### la commande `repoquery`
La commande `repoquery` est utilisée pour rechercher les paquets dans le dépôt.
Exemples d’utilisation :
- * Affiche les dépendances d'un paquet (il peut s'agir d'un paquet logiciel qui a été installé ou non), équivalent à `dnf deplist `
-
- ```bash
- repoquery --requires
- ```
-
- * Affiche les fichiers fournis par un paquet installé (ne fonctionne pas pour les paquets qui ne sont pas installés), équivalent à `rpm -ql `
-
- ```bash
- $ repoquery -l yum-utils
- /etc/bash_completion.d
- /etc/bash_completion.d/yum-utils.bash
- /usr/bin/debuginfo-install
- /usr/bin/find-repos-of-install
- /usr/bin/needs-restarting
- /usr/bin/package-cleanup
- /usr/bin/repo-graph
- /usr/bin/repo-rss
- /usr/bin/repoclosure
- /usr/bin/repodiff
- /usr/bin/repomanage
- /usr/bin/repoquery
- /usr/bin/reposync
- /usr/bin/repotrack
- /usr/bin/show-changed-rco
- /usr/bin/show-installed
- /usr/bin/verifytree
- /usr/bin/yum-builddep
- /usr/bin/yum-config-manager
- /usr/bin/yum-debug-dump
- /usr/bin/yum-debug-restore
- /usr/bin/yum-groups-manager
- /usr/bin/yumdownloader
- …
- ```
-
-* La commande `yumdownloader` :
+* Affiche les dépendances d'un paquet (il peut s'agir d'un paquet logiciel qui a été installé ou non), équivalent à `dnf deplist `
+
+```bash
+repoquery --requires
+```
+
+* Affiche les fichiers fournis par un paquet installé (ne fonctionne pas pour les paquets qui ne sont pas installés), équivalent à `rpm -ql `
+
+```bash
+$ repoquery -l yum-utils
+/etc/bash_completion.d
+/etc/bash_completion.d/yum-utils.bash
+/usr/bin/debuginfo-install
+/usr/bin/find-repos-of-install
+/usr/bin/needs-restarting
+/usr/bin/package-cleanup
+/usr/bin/repo-graph
+/usr/bin/repo-rss
+/usr/bin/repoclosure
+/usr/bin/repodiff
+/usr/bin/repomanage
+/usr/bin/repoquery
+/usr/bin/reposync
+/usr/bin/repotrack
+/usr/bin/show-changed-rco
+/usr/bin/show-installed
+/usr/bin/verifytree
+/usr/bin/yum-builddep
+/usr/bin/yum-config-manager
+/usr/bin/yum-debug-dump
+/usr/bin/yum-debug-restore
+/usr/bin/yum-groups-manager
+/usr/bin/yumdownloader
+…
+```
+
+### La commande `yumdownloader`
La commande `yumdownloader` télécharge les paquets RPM depuis les dépôts. Équivalent à `dnf download --downloadonly --downloaddir ./ package-name`
!!! Note
- Cette commande est très pratique pour construire un dépôt local de quelques rpm !
+ Cette commande est très pratique pour construire un dépôt local de quelques rpms !
Exemple : `yumdownloader` va télécharger le paquet rpm de _samba_ ainsi que toutes ses dépendances :
```bash
$ yumdownloader --destdir /var/tmp --resolve samba
-or
+ou bien
$ dnf download --downloadonly --downloaddir /var/tmp --resolve samba
```
@@ -334,7 +332,7 @@ L’option `-n` permet de spécifier le nombre de secondes entre chaque exécuti
!!! Note
- Pour quitter la commande `watch`, vous devez appuyer sur les touches : CTRL+C pour tuer le processus.
+ Pour quitter la commande `watch`, vous devez taper les clés : CTRL+C pour tuer le processus.
Exemples :
@@ -347,7 +345,7 @@ watch -n 5 tail -n 3 /etc/passwd
Résultat :
```bash
-Every 5,0s: tail -n 3 /etc/passwd rockstar.rockylinux.lan: Thu Jul 1 15:43:59 2021
+Every 5.0s: tail -n 3 /etc/passwd rockstar.rockylinux.lan: Thu Jul 1 15:43:59 2021
sssd:x:996:993:User for sssd:/:/sbin/nologin
chrony:x:995:992::/var/lib/chrony:/sbin/nologin
@@ -390,7 +388,7 @@ Options :
| `-p` | préserve la date et l'heure des fichiers sources. |
| `-t` | copie tous les arguments sources dans le dossier. |
-!!! note "Remarque"
+Cannot be displayed note "Remarque"
Il existe aussi des options pour gérer le contexte de SELinux (cf. man install).
@@ -402,13 +400,13 @@ Créer un dossier à l'aide de l'option `-d` :
install -d ~/samples
```
-Copier un fichier source dans un dossier :
+Copier un fichier source vers un dossier :
```bash
install src/sample.txt ~/samples/
```
-Ces deux actions sont contenues dans une seule commande :
+Ces deux actions peuvent être réduites à une seule commande :
```bash
$ install -v -D -t ~/samples/ src/sample.txt
@@ -422,7 +420,7 @@ Cette commande permet déjà de gagner du temps, maintenant ajoutons l'appartena
sudo install -v -o rocky -g users -m 644 -D -t ~/samples/ src/sample.txt
```
- !!! note "Remarque"
+ Cannot be displayed!!! note "Remarque"
Dans ce cas `sudo` est nécessaire pour modifier les propriétés.
diff --git a/docs/books/learning_ansible/04-ansible-galaxy.de.md b/docs/books/learning_ansible/04-ansible-galaxy.de.md
new file mode 100644
index 0000000000..12a9f6c907
--- /dev/null
+++ b/docs/books/learning_ansible/04-ansible-galaxy.de.md
@@ -0,0 +1,536 @@
+---
+title: Ansible Galaxy
+---
+
+# Ansible Galaxy: Kollektionen und Rollen
+
+In diesem Kapitel erfahren Sie, wie Sie Ansible Rollen und Kollektionen verwenden, installieren und verwalten.
+
+****
+
+**Ziele**: In diesem Kapitel lernen Sie Folgendes:
+
+:heavy_check_mark: Installation und Verwaltung von Kollektionen.
+:heavy_check_mark: Installieren und Verwalten von Rollen.
+
+:checkered_flag: **ansible**, **ansible-galaxy**, **Rollen**, **Kollektionen**
+
+**Vorkenntnisse**: :star: :star:
+**Komplexität**: :star: :star: :star:
+
+**Lesezeit**: 41 Minuten
+
+****
+
+[Ansible Galaxy](https://galaxy.ansible.com) bietet Ansible Rollen und Kollektionen aus der Ansible Community.
+
+Die bereitgestellten Elemente können in Playbooks referenziert und sofort verwendet werden
+
+## Das Kommando `ansible-galaxy`
+
+Der `ansible-galaxy` Befehl verwaltet Rollen und Kollektionen unter Verwendung von [galaxy.ansible.com](http://galaxy.ansible.com).
+
+* Rollen verwalten:
+
+```
+ansible-galaxy role [import|init|install|login|remove|...]
+```
+
+| Sub-Kommandos | Funktion |
+| ------------- | --------------------------------------------------------------------- |
+| `install` | installiert eine Rolle. |
+| `remove` | eine oder mehrere Rollen entfernen. |
+| `list` | zeigt den Namen und die Version der installierten Rollen an. |
+| `info` | Informationen über eine Rolle anzeigen. |
+| `init` | das Skelett einer neuen Rolle generieren. |
+| `import` | eine Rolle von der Galaxy-Webseite importieren. Benötigt einen Login. |
+
+* Um Kollektionen zu verwalten:
+
+```
+ansible-galaxy collection [import|init|install|login|remove|...]
+```
+
+| Sub-Kommandos | Funktion |
+| ------------- | ------------------------------------------------------------------ |
+| `init` | das Skelett einer neuen Kollektion generieren. |
+| `install` | eine Kollektion installieren. |
+| `list` | zeigt den Namen und die Version der installierten Kollektionen an. |
+
+## Ansible Rollen
+
+Eine ansible Rolle ist eine Einheit, die die Wiederverwendbarkeit von Playbooks fördert.
+
+!!! note "Anmerkung"
+
+ Weitere Informationen finden Sie [hier](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html)
+
+### Installation nützlicher Rollen
+
+Um das Interesse an der Verwendung von Rollen hervorzuheben, empfehlen wir, die `alemorvan/patchmanagement` Rolle zu verwenden. Diese Rolle ermöglicht, während des Update-Prozesses, viele Aufgaben (zum Beispiel Vor- oder Nachaktualisierung) mit wenigen Zeilen Code auszuführen.
+
+Der Code im Github Repo der Rolle kann [hier](https://github.com/alemorvan/patchmanagement) überprüft werden.
+
+* Die Rolle installieren. Dies benötigt nur einen Befehl:
+
+```
+ansible-galaxy role install alemorvan.patchmanagement
+```
+
+* Playbook erstellen, um die Rolle einzubinden:
+
+```
+- name: Start a Patch Management
+ hosts: ansible_clients
+ vars:
+ pm_before_update_tasks_file: custom_tasks/pm_before_update_tasks_file.yml
+ pm_after_update_tasks_file: custom_tasks/pm_after_update_tasks_file.yml
+
+ tasks:
+ - name: "Include patchmanagement"
+ include_role:
+ name: "alemorvan.patchmanagement"
+```
+
+Mit dieser Rolle können Sie Ihre eigenen Aufgaben für all Ihr Inventar oder nur für Ihren Zielknoten hinzufügen.
+
+Erstellen der Aufgaben, die vor und nach dem Aktualisierungsprozess ausgeführt werden:
+
+* Den `custom_tasks` Ordner anlegen:
+
+```
+mkdir custom_tasks
+```
+
+* `custom_tasks/pm_before_update_tasks_file.yml` erstellen (Name und Inhalt dieser Datei können beliebig geändert werden)
+
+```
+---
+- name: sample task before the update process
+ debug:
+ msg: "This is a sample tasks, feel free to add your own test task"
+```
+
+* `custom_tasks/pm_after_update_tasks_file.yml` erstellen (Name und Inhalt dieser Datei können beliebig geändert werden)
+
+```
+---
+- name: sample task after the update process
+ debug:
+ msg: "This is a sample tasks, feel free to add your own test task"
+```
+
+Und starten Sie Ihre erste Patch-Verwaltung:
+
+```
+ansible-playbook patchmanagement.yml
+
+PLAY [Start a Patch Management] *************************************************************************
+
+TASK [Gathering Facts] **********************************************************************************
+ok: [192.168.1.11]
+
+TASK [Include patchmanagement] **************************************************************************
+
+TASK [alemorvan.patchmanagement : MAIN | Linux Patch Management Job] ************************************
+ok: [192.168.1.11] => {
+ "msg": "Start 192 patch management"
+}
+
+...
+
+TASK [alemorvan.patchmanagement : sample task before the update process] ********************************
+ok: [192.168.1.11] => {
+ "msg": "This is a sample tasks, feel free to add your own test task"
+}
+
+...
+
+TASK [alemorvan.patchmanagement : MAIN | We can now patch] **********************************************
+included: /home/ansible/.ansible/roles/alemorvan.patchmanagement/tasks/patch.yml for 192.168.1.11
+
+TASK [alemorvan.patchmanagement : PATCH | Tasks depends on distribution] ********************************
+ok: [192.168.1.11] => {
+ "ansible_distribution": "Rocky"
+}
+
+TASK [alemorvan.patchmanagement : PATCH | Include tasks for CentOS & RedHat tasks] **********************
+included: /home/ansible/.ansible/roles/alemorvan.patchmanagement/tasks/linux_tasks/redhat_centos.yml for 192.168.1.11
+
+TASK [alemorvan.patchmanagement : RHEL CENTOS | yum clean all] ******************************************
+changed: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : RHEL CENTOS | Ensure yum-utils is installed] **************************
+ok: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : RHEL CENTOS | Remove old kernels] *************************************
+skipping: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : RHEL CENTOS | Update rpm package with yum] ****************************
+ok: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : PATCH | Inlude tasks for Debian & Ubuntu tasks] ***********************
+skipping: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : MAIN | We can now reboot] *********************************************
+included: /home/ansible/.ansible/roles/alemorvan.patchmanagement/tasks/reboot.yml for 192.168.1.11
+
+TASK [alemorvan.patchmanagement : REBOOT | Reboot triggered] ********************************************
+ok: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : REBOOT | Ensure we are not in rescue mode] ****************************
+ok: [192.168.1.11]
+
+...
+
+TASK [alemorvan.patchmanagement : FACTS | Insert fact file] *********************************************
+ok: [192.168.1.11]
+
+TASK [alemorvan.patchmanagement : FACTS | Save date of last PM] *****************************************
+ok: [192.168.1.11]
+
+...
+
+TASK [alemorvan.patchmanagement : sample task after the update process] *********************************
+ok: [192.168.1.11] => {
+ "msg": "This is a sample tasks, feel free to add your own test task"
+}
+
+PLAY RECAP **********************************************************************************************
+192.168.1.11 : ok=31 changed=1 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0
+```
+
+Ziemlich einfach für einen so komplizierter Prozess, oder?
+
+Dies ist nur ein Beispiel dafür, was mit Hilfe von Rollen, die von der Community zur Verfügung gestellt werden, getan werden kann. Werfen Sie einen Blick auf [galaxy.ansible.com](https://galaxy.ansible.com/) um die Rollen zu entdecken, die für Sie nützlich sein könnten!
+
+Sie können auch Ihre eigenen Rollen für Ihre Bedürfnisse erstellen und im Internet veröffentlichen, wenn Sie es möchten. Darauf werden wir im nächsten Kapitel kurz eingehen.
+
+### Einführung in die Entwicklung von Ansible-Rollen
+
+Ein Rollenskelett, das als Ausgangspunkt für benutzerdefinierte Rollen dient, kann durch den `ansible-galaxy` Befehl erzeugt werden:
+
+```
+$ ansible-galaxy role init rocky8
+- Role rocky8 was created successfully
+```
+
+Der Befehl generiert die folgende Baumstruktur um die `rocky8` Rolle zu enthalten:
+
+```
+tree rocky8/
+rocky8/
+├── defaults
+│ └── main.yml
+├── files
+├── handlers
+│ └── main.yml
+├── meta
+│ └── main.yml
+├── README.md
+├── tasks
+│ └── main.yml
+├── templates
+├── tests
+│ ├── inventory
+│ └── test.yml
+└── vars
+ └── main.yml
+
+8 directories, 8 files
+```
+
+Durch Rollen werden Includes von Dateien vermieden. Dateipfade oder `include` Direktiven müssen in Playbooks nicht angegeben werden. Sie müssen nur eine Aufgabe angeben und Ansible kümmert sich um die Includes.
+
+Die Struktur einer Rolle ist ziemlich offensichtlich.
+
+Variablen werden einfach in `vars/main.yml` gespeichert, wenn die Variablen nicht überschrieben werden sollen, oder in `default/main.yml`, wenn Sie die Möglichkeit offen halten möchten, den Inhalt der Variablen außerhalb Ihrer Rolle zu überschreiben.
+
+Die für Ihren Code benötigten Handler, Dateien und Vorlagen werden in `handlers/main.yml`, `files` und `templates` gespeichert.
+
+Alles was übrig bleibt, ist den Code für die Aufgaben der Rolle in `tasks/main.yml` zu definieren.
+
+Sobald das alles gut funktioniert, können Sie diese Rolle in Ihren Playbooks nutzen. Sie können Ihre Rolle verwenden, ohne sich um den technischen Aspekt seiner Aufgaben zu kümmern, während Sie dessen Betrieb mit Variablen anpassen.
+
+### Praktische Aufgabe: Erstellen Sie eine erste einfache Rolle
+
+Lassen Sie uns dies mit einer "go anywhere"-Rolle implementieren, die einen Default-Benutzer erstellt und Softwarepakete installiert. Diese Rolle kann systematisch auf alle Ihre Server angewendet werden.
+
+#### Variablen
+
+Wir werden einen `rockstar` Benutzer auf allen unseren Servern erstellen. Da wir nicht wollen, dass dieser Benutzer überschrieben wird, definieren wir ihn in der Datei `vars/main.yml`:
+
+```
+---
+rocky8_default_group:
+ name: rockstar
+ gid: 1100
+rocky8_default_user:
+ name: rockstar
+ uid: 1100
+ group: rockstar
+```
+
+Wir können diese Variablen jetzt in unsere `tasks/main.yml` ohne Include verwenden.
+
+```
+---
+- name: Create default group
+ group:
+ name: "{{ rocky8_default_group.name }}"
+ gid: "{{ rocky8_default_group.gid }}"
+
+- name: Create default user
+ user:
+ name: "{{ rocky8_default_user.name }}"
+ uid: "{{ rocky8_default_user.uid }}"
+ group: "{{ rocky8_default_user.group }}"
+```
+
+Um die neue Rolle zu testen, erstellen wir ein `test-role.yml` Playbook im selben Verzeichnis wie die Rolle:
+
+```
+---
+- name: Test my role
+ hosts: localhost
+
+ roles:
+
+ - role: rocky8
+ become: true
+ become_user: root
+```
+
+und starten:
+
+```
+ansible-playbook test-role.yml
+
+PLAY [Test my role] ************************************************************************************
+
+TASK [Gathering Facts] *********************************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Create default group] *******************************************************************
+changed: [localhost]
+
+TASK [rocky8 : Create default user] ********************************************************************
+changed: [localhost]
+
+PLAY RECAP *********************************************************************************************
+localhost : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
+```
+
+Herzlichen Glückwunsch! Mit nur wenigen Zeilen können Sie jetzt tolle Dinge implementieren.
+
+Lass uns die Verwendung von Default-Variablen untersuchen.
+
+Eine Liste der Pakete erstellen, die standardmäßig auf Ihren Servern installiert werden sollen, und eine leere Liste der zu deinstallierenden Pakete. Die Datei `defaults/main.yml` ändern und diese zwei Listen hinzufügen:
+
+```
+rocky8_default_packages:
+ - tree
+ - vim
+rocky8_remove_packages: []
+```
+
+und sie in `tasks/main.yml` verwenden:
+
+```
+- name: Install default packages (can be overridden)
+ package:
+ name: "{{ rocky8_default_packages }}"
+ state: present
+
+- name: "Uninstall default packages (can be overridden) {{ rocky8_remove_packages }}"
+ package:
+ name: "{{ rocky8_remove_packages }}"
+ state: absent
+```
+
+Testen Sie Ihre Rolle mit Hilfe des zuletzt erstellten Playbook:
+
+```
+ansible-playbook test-role.yml
+
+PLAY [Test my role] ************************************************************************************
+
+TASK [Gathering Facts] *********************************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Create default group] *******************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Create default user] ********************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Install default packages (can be overridden)] ********************************************
+ok: [localhost]
+
+TASK [rocky8 : Uninstall default packages (can be overridden) []] ***************************************
+ok: [localhost]
+
+PLAY RECAP *********************************************************************************************
+localhost : ok=5 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
+```
+
+Sie können jetzt `rocky8_remove_packages` im Playbook überschreiben und zum Beispiel `cockpit` deinstallieren:
+
+```
+---
+- name: Test my role
+ hosts: localhost
+ vars:
+ rocky8_remove_packages:
+ - cockpit
+
+ roles:
+
+ - role: rocky8
+ become: true
+ become_user: root
+```
+
+```
+ansible-playbook test-role.yml
+
+PLAY [Test my role] ************************************************************************************
+
+TASK [Gathering Facts] *********************************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Create default group] *******************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Create default user] ********************************************************************
+ok: [localhost]
+
+TASK [rocky8 : Install default packages (can be overridden)] ********************************************
+ok: [localhost]
+
+TASK [rocky8 : Uninstall default packages (can be overridden) ['cockpit']] ******************************
+changed: [localhost]
+
+PLAY RECAP *********************************************************************************************
+localhost : ok=5 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
+```
+
+Offensichtlich gibt es keine Grenzen, wie viel Sie die Rolle verbessern können. Stellen Sie sich vor, dass Sie für einen Ihrer Server ein Paket benötigen, das in der Liste der zu deinstallierenden Pakete steht. Sie könnten dann beispielsweise eine neue Liste erstellen, die überschrieben werden kann, und sie dann aus der Liste der Pakete entfernen, um diejenigen in der Liste der spezifischen zu installierenden Pakete mithilfe des Jinja-Filters `difference()` zu deinstallieren.
+
+```
+- name: "Uninstall default packages (can be overridden) {{ rocky8_remove_packages }}"
+ package:
+ name: "{{ rocky8_remove_packages | difference(rocky8_specifics_packages) }}"
+ state: absent
+```
+
+## Ansible Kollektionen
+
+Die Kollektion ist ein Verteilungsformat für Ansible Inhalte, das Playbooks, Rollen, Module und Plugins enthalten kann.
+
+!!! note "Anmerkung"
+
+ Weitere Informationen finden Sie [hier](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html)
+
+Zum Installieren oder Aktualisieren einer Sammlung:
+
+```
+ansible-galaxy collection install namespace.collection [--upgrade]
+```
+
+Sie können dann die neu installierte Kollektion mit ihrem Namensraum und Namen vor dem Namen des Moduls oder der Rolle verwenden:
+
+```
+- import_role:
+ name: namespace.collection.rolename
+
+- namespace.collection.modulename:
+ option1: value
+```
+
+Einen Kollektionsindex ist [hier verfügbar](https://docs.ansible.com/ansible/latest/collections/index.html).
+
+Lass uns die Kollektion `-community.general` installieren:
+
+```
+ansible-galaxy collection install community.general
+Starting galaxy collection install process
+Process install dependency map
+Starting collection install process
+Downloading https://galaxy.ansible.com/download/community-general-3.3.2.tar.gz to /home/ansible/.ansible/tmp/ansible-local-51384hsuhf3t5/tmpr_c9qrt1/community-general-3.3.2-f4q9u4dg
+Installing 'community.general:3.3.2' to '/home/ansible/.ansible/collections/ansible_collections/community/general'
+community.general:3.3.2 was installed successfully
+```
+
+Wir können nun das neu verfügbare Modul `yum_versionlock` verwenden:
+
+```
+- name: Start a Patch Management
+ hosts: ansible_clients
+ become: true
+ become_user: root
+ tasks:
+
+ - name: Ensure yum-versionlock is installed
+ package:
+ name: python3-dnf-plugin-versionlock
+ state: present
+
+ - name: Prevent kernel from being updated
+ community.general.yum_versionlock:
+ state: present
+ name: kernel
+ register: locks
+
+ - name: Display locks
+ debug:
+ var: locks.meta.packages
+```
+
+```
+ansible-playbook versionlock.yml
+
+PLAY [Start a Patch Management] *************************************************************************
+
+TASK [Gathering Facts] **********************************************************************************
+ok: [192.168.1.11]
+
+TASK [Ensure yum-versionlock is installed] **************************************************************
+changed: [192.168.1.11]
+
+TASK [Prevent kernel from being updated] ****************************************************************
+changed: [192.168.1.11]
+
+TASK [Display locks] ************************************************************************************
+ok: [192.168.1.11] => {
+ "locks.meta.packages": [
+ "kernel"
+ ]
+}
+
+PLAY RECAP **********************************************************************************************
+192.168.1.11 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
+
+```
+
+### Eine eigene Kollektion erstellen
+
+Wie bei Rollen, können Sie eine eigene Kollektion mit Hilfe des `ansible-galaxy` Befehls erstellen:
+
+```
+ansible-galaxy collection init rocky8.rockstarcollection
+- Collection rocky8.rockstarcollection was created successfully
+```
+
+```
+tree rocky8/rockstarcollection/
+rocky8/rockstarcollection/
+├── docs
+├── galaxy.yml
+├── plugins
+│ └── README.md
+├── README.md
+└── roles
+```
+
+Sie können dann die eigenen Plugins oder Rollen in dieser neuen Kollektion speichern.
diff --git a/docs/books/learning_bash/05-tests.it.md b/docs/books/learning_bash/05-tests.it.md
index f1fac56fb1..f0179d5326 100644
--- a/docs/books/learning_bash/05-tests.it.md
+++ b/docs/books/learning_bash/05-tests.it.md
@@ -126,7 +126,7 @@ Opzioni del comando test sui file:
| `-L` | Controlla se il file esiste e se è di tipo link simbolico |
| `-b` | Verifica se il file esiste e se è di tipo speciale in modalità blocco |
| `-c` | Controlla se il file esiste e se è di tipo speciale modalità carattere |
-| `-p` | Controlla se il file esiste ed è di tipo tube |
+| `-p` | Controlla se il file esiste ed è di tipo named pipe (FIFO) |
| `-S` | Verifica se il file esiste ed è di tipo socket |
| `-t` | Verifica se il file esiste ed è di tipo terminale |
| `-r` | Verifica se il file esiste ed è leggibile |
diff --git a/docs/guides/contribute/localdocs/index.de.md b/docs/guides/contribute/localdocs/index.de.md
new file mode 100644
index 0000000000..5a0bf8f97b
--- /dev/null
+++ b/docs/guides/contribute/localdocs/index.de.md
@@ -0,0 +1,25 @@
+---
+Title: Docs As Code
+author: Steven Spencer
+contributors: null
+tags:
+ - local docs
+ - docs as code
+ - linters
+---
+
+# Einleitung
+
+Die Verwendung einer lokalen Kopie der Rocky Linux-Dokumentation ist hilfreich für diejenigen, die häufig Beiträge leisten und genau sehen möchten, wie ein Dokument nach dem Zusammenführen in der Weboberfläche aussieht. Die hier enthaltenen Methoden spiegeln die bisherigen Präferenzen der Mitwirkenden wider.
+
+Die Verwendung einer lokalen Kopie der Dokumentation ist ein Schritt im Entwicklungsprozess für diejenigen, die sich der Philosophie von „Dokumenten als Code“ anschließen, einem Workflow für die Dokumentation, der der Codeentwicklung ähnelt.
+
+## Markdown-Linter
+
+Neben Umgebungen zum Speichern und Erstellen der Dokumentation könnte für einige Autoren auch ein Linter für Markdown eine Überlegung wert sein. Markdown-Linters sind in vielen Aspekten der Verfassung von Dokumenten hilfreich, einschließlich der Überprüfung von Grammatik, Rechtschreibung, Formatierung und mehr. Manchmal handelt es sich dabei um separate Tools oder Plugins für Ihren Editor. Ein solches Tool ist [markdownlint](https://github.com/DavidAnson/markdownlint), ein Node.js-Tool. „markdownlint“ ist als Plugin für viele gängige Editoren verfügbar, darunter Visual Studio Code und NVChad. Aus diesem Grund befindet sich im Stammverzeichnis des Dokumentationsverzeichnisses eine Datei „.markdownlint.yml“, die die für das Projekt verfügbaren und aktivierten Regeln anwendet. `markdownlint` ist ein reiner Formatierungs-Linter. Es prüft auf fehlerhafte Leerzeichen, Inline-HTML-Elemente, doppelte Leerzeilen, falsche Tabulatoren und mehr. Für Grammatik, Rechtschreibung, inklusiven Sprachgebrauch und mehr installieren Sie bitte andere Tools.
+
+!!! info „Haftungsausschluss“
+
+```
+Bei keinem der Punkte in dieser Kategorie („Lokale Dokumentation“) ist es erforderlich, Dokumente zu verfassen und zur Genehmigung einzureichen. Sie existieren für diejenigen, die der Philosophie von [docs as code](https://www.writethedocs.org/guide/docs-as-code/) folgen möchten, die mindestens eine lokale Kopie der Dokumentation enthalten.
+```