RHCSA-Serie: Wie man Datei- und Verzeichnisverwaltung durchführt – Teil 2

In diesem Artikel, RHCSA Teil 2: Datei- und Verzeichnisverwaltung, werden wir einige wesentliche Fähigkeiten überprüfen, die für die täglichen Aufgaben eines Systemadministrators erforderlich sind.

RHCSA: Perform File and Directory Management – Part 2

Erstellen, Löschen, Kopieren und Verschieben von Dateien und Verzeichnissen

Die Verwaltung von Dateien und Verzeichnissen ist eine entscheidende Kompetenz, die jeder Systemadministrator besitzen sollte. Dazu gehört die Fähigkeit, Textdateien (den Kern jeder Programmkonfiguration) und Verzeichnisse (wo Sie Dateien und andere Verzeichnisse organisieren) zu erstellen / löschen und den Typ vorhandener Dateien herauszufinden.

Der Touch-Befehl kann nicht nur zum Erstellen leerer Dateien verwendet werden, sondern auch zum Aktualisieren der Zugriffs- und Änderungszeiten vorhandener Dateien.

touch command example

Sie können Datei [Dateiname] verwenden, um den Dateityp zu bestimmen (dies ist nützlich, bevor Sie Ihren bevorzugten Texteditor starten, um sie zu bearbeiten).

file command example

und rm [Dateiname] zum Löschen.

rm command example

Was Verzeichnisse betrifft, können Sie Verzeichnisse innerhalb vorhandener Pfade mit mkdir [Verzeichnis] erstellen oder einen vollständigen Pfad mit mkdir -p [/voller/pfad/zum/verzeichnis] erstellen.

mkdir command example

Wenn es darum geht, Verzeichnisse zu entfernen, müssen Sie sicherstellen, dass sie leer sind, bevor Sie den Befehl rmdir [Verzeichnis] eingeben, oder den leistungsstärkeren (vorsichtig behandeln!) rm -rf [Verzeichnis] verwenden. Diese letzte Option entfernt das [Verzeichnis] und alle seine Inhalte rekursiv – also verwenden Sie sie auf eigene Gefahr.

Eingabe- und Ausgaberichtung sowie Pipelining

Die Befehlszeilenumgebung bietet zwei sehr nützliche Funktionen, die es ermöglichen, die Eingabe und Ausgabe von Befehlen von und zu Dateien umzuleiten, sowie die Ausgabe eines Befehls an einen anderen zu senden, die jeweils als Umleitung und Pipeline bezeichnet werden.

Um diese beiden wichtigen Konzepte zu verstehen, müssen wir zunächst die drei wichtigsten Arten von I/O (Input und Output) -Streams (oder Sequenzen) von Zeichen verstehen, die im *nix-Sinn des Wortes tatsächlich spezielle Dateien sind.

  1. Standard-Eingabe (auch stdin genannt) ist standardmäßig mit der Tastatur verbunden. Mit anderen Worten, die Tastatur ist das Standard-Eingabegerät, um Befehle an die Befehlszeile einzugeben.
  2. Standard-Ausgabe (auch stdout genannt) ist standardmäßig mit dem Bildschirm verbunden, dem Gerät, das die Ausgabe von Befehlen „empfängt“ und sie auf dem Bildschirm anzeigt.
  3. Standardfehler (auch stderr genannt) ist standardmäßig der Ort, an den die Statusmeldungen eines Befehls gesendet werden, was ebenfalls der Bildschirm ist.

Im folgenden Beispiel wird die Ausgabe von ls /var an stdout (den Bildschirm) gesendet, sowie das Ergebnis von ls /tecmint. Aber in letzterem Fall wird stderr angezeigt.

Input and Output Example

Um diese speziellen Dateien leichter zu identifizieren, wird jedem von ihnen ein Dateideskriptor zugewiesen, eine abstrakte Darstellung, die verwendet wird, um auf sie zuzugreifen. Das Wesentliche zu verstehen ist, dass diese Dateien, genauso wie andere, umgeleitet werden können. Was das bedeutet, ist, dass Sie die Ausgabe einer Datei oder eines Skripts erfassen und als Eingabe an eine andere Datei, Befehl oder ein Skript senden können. Dies ermöglicht es Ihnen beispielsweise, die Ausgabe von Befehlen zur späteren Verarbeitung oder Analyse auf der Festplatte zu speichern.

Um stdin (fd 0), stdout (fd 1) oder stderr (fd 2) umzuleiten, stehen die folgenden Operatoren zur Verfügung.

Redirection Operator Effect
> Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten.
>> Appends standard output to a file.
2> Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten.
2>> Appends standard error to the existing file.
&> Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten.
< Uses the specified file as standard input.
<> The specified file is used for both standard input and standard output.

Im Gegensatz zur Umleitung wird das Pipelining durch das Hinzufügen eines senkrechten Strichs (|) nach einem Befehl und vor einem anderen durchgeführt.

Denken Sie daran:

  1. Umleitung wird verwendet, um die Ausgabe eines Befehls an eine Datei zu senden oder eine Datei als Eingabe an einen Befehl zu senden.
  2. Pipelining wird verwendet, um die Ausgabe eines Befehls als Eingabe an einen anderen Befehl zu senden.

Beispiele für Umleitung und Pipelining

Beispiel 1: Umleitung der Ausgabe eines Befehls in eine Datei

Es wird Zeiten geben, in denen Sie über eine Liste von Dateien iterieren müssen. Dazu können Sie diese Liste zuerst in eine Datei speichern und dann diese Datei zeilenweise lesen. Obwohl es wahr ist, dass Sie direkt über die Ausgabe von ls iterieren können, dient dieses Beispiel dazu, die Umleitung zu veranschaulichen.

# ls -1 /var/mail > mail.txt
Redirect output of command tot a file
Beispiel 2: Umleitung sowohl von stdout als auch stderr nach /dev/null

Für den Fall, dass wir sowohl stdout als auch stderr davon abhalten möchten, auf dem Bildschirm angezeigt zu werden, können wir beide Dateideskriptoren auf /dev/null umleiten. Beachten Sie, wie sich die Ausgabe ändert, wenn die Umleitung für denselben Befehl implementiert wird.

# ls /var /tecmint
# ls /var/ /tecmint &> /dev/null
Redirecting stdout and stderr ouput to /dev/null
Beispiel 3: Verwenden einer Datei als Eingabe für einen Befehl

Während die klassische Syntax des cat-Befehls wie folgt aussieht.

# cat [file(s)]

Sie können auch eine Datei als Eingabe senden, indem Sie den richtigen Umleitungsoperator verwenden.

# cat < mail.txt
cat command example
Beispiel 4: Senden der Ausgabe eines Befehls als Eingabe an einen anderen

Wenn Sie ein großes Verzeichnis oder eine Prozessliste haben und nach einer bestimmten Datei oder einem bestimmten Prozess auf einen Blick suchen möchten, möchten Sie die Auflistung an grep weiterleiten.

Beachten Sie, dass wir in folgendem Beispiel zwei Pipelines verwenden. Die erste sucht nach dem erforderlichen Schlüsselwort, während die zweite den tatsächlichen grep-Befehl aus den Ergebnissen entfernt. Dieses Beispiel listet alle Prozesse auf, die mit dem Benutzer apache verbunden sind.

# ps -ef | grep apache | grep -v grep
Send output of command as input to another

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/