Inhaltsverzeichnis:


Viele Dinge unter Linux werden in Ihrem Dateisystem angezeigt, sind jedoch keine Dateien. Hierbei handelt es sich um spezielle Dateien, die Hardwaregeräte, Systeminformationen und andere Dinge darstellen - einschließlich eines Zufallszahlengenerators.
Diese speziellen Dateien können sich in Pseudo- oder virtuellen Dateisystemen befinden, wie zum Beispiel / dev, das spezielle Dateien enthält, die Geräte repräsentieren, und / proc, die spezielle Dateien enthält, die System- und Prozessinformationen darstellen.
/ proc
Angenommen, Sie möchten Informationen zu Ihrer CPU finden. Das Verzeichnis / proc enthält eine spezielle Datei - / proc / cpuinfo -, die diese Informationen enthält.

Sie benötigen keinen speziellen Befehl, der Sie über Ihre CPU-Informationen informiert. Sie können den Inhalt dieser Datei einfach mit einem Standardbefehl lesen, der mit Nur-Text-Dateien arbeitet. Beispielsweise können Sie den Befehl verwenden cat / proc / cpuinfo um den Inhalt dieser Datei an das Terminal zu drucken - die CPU-Informationen an das Terminal zu drucken. Sie können sogar / proc / cpuinfo in einem Texteditor öffnen, um dessen Inhalt anzuzeigen.
Denken Sie daran, dass / proc / cpuinfo keine Textdatei ist, die diese Informationen enthält - der Linux-Kernel und das proc-Dateisystem stellen uns diese Informationen als Datei zur Verfügung. Dies ermöglicht uns die Verwendung bekannter Werkzeuge zum Anzeigen und Bearbeiten der Informationen.

- / proc / uptime - Zeigt die Verfügbarkeit Ihres Linux-Kernels an, dh wie lange Ihr System eingeschaltet war, ohne herunterzufahren.
- / proc / version - Zeigt die Version Ihres Linux-Kernels an.
/ dev
Im Verzeichnis / dev finden Sie Dateien, die Geräte repräsentieren, sowie Dateien, die andere Besonderheiten darstellen. Beispielsweise ist / dev / cdrom Ihr CD-ROM-Laufwerk. / dev / sda steht für Ihre erste Festplatte, während / dev / sda1 die erste Partition auf Ihrer ersten Festplatte darstellt.
Möchten Sie Ihre CD-ROM einhängen? Führen Sie den Mount-Befehl aus und geben Sie / dev / cdrom als das Gerät an, das Sie einhängen möchten. Möchten Sie Ihre erste Festplatte partitionieren? Führen Sie ein Festplattenpartitionierungsprogramm aus, und geben Sie / dev / sda als zu bearbeitende Festplatte an. Möchten Sie die erste Partition auf Ihrer ersten Festplatte formatieren? Führen Sie einen Formatierungsbefehl aus und geben Sie an, / dev / sda1 zu formatieren.

/ dev / null, / dev / random und / dev / zero
Das Dateisystem / dev enthält nicht nur Dateien, die physische Geräte darstellen. Hier sind drei der bemerkenswertesten Spezialgeräte, die es enthält:
- / dev / null - Verwirft alle Daten, die in ihn geschrieben werden - als Mülleimer oder schwarzes Loch. Wenn Sie jemals einen Kommentar sehen, der Sie dazu auffordert, Beschwerden an / dev / null zu senden - das ist eine schräge Art zu sagen: "Werfen Sie sie in den Papierkorb."
- / dev / random - Erzeugt Zufälligkeiten unter Verwendung von Umgebungsgeräuschen. Es ist ein Zufallszahlengenerator, auf den Sie zugreifen können.
- / dev / zero - Erzeugt Nullen - einen konstanten Strom von Nullen.
Wenn Sie sich diese drei als Dateien vorstellen, werden Sie für sie keine Verwendung finden. Betrachten Sie sie stattdessen als Werkzeuge.
Beispielsweise erzeugen Linux-Befehle standardmäßig Fehlermeldungen und andere Ausgaben, die sie an die Standardausgabe, normalerweise das Terminal, ausgeben. Wenn Sie einen Befehl ausführen möchten und sich nicht für seine Ausgabe interessieren, können Sie diese Ausgabe nach / dev / null umleiten. Durch das Umleiten der Befehlsausgabe nach / dev / null wird diese sofort verworfen. Anstatt, dass jeder Befehl seinen eigenen "stillen Modus" implementiert, können Sie diese Methode mit jedem Befehl verwenden.
command > /dev/null

Um den Inhalt einer Festplatte zu löschen, indem Sie 0 schreiben, benötigen Sie kein spezielles Dienstprogramm, das für das Nullstellen eines Laufwerks bestimmt ist. Sie können die Standarddienstprogramme und / dev / zero verwenden. Zum Beispiel die dd Befehl liest von einem Ort und schreibt an einen anderen Ort. Der folgende Befehl würde Nullen aus / dev / zero lesen und sie direkt auf die erste Festplattenpartition Ihres Systems schreiben, wodurch der Inhalt vollständig gelöscht wird.
(Warnung: Dieser Befehl löscht alle Daten Ihrer ersten Partition, wenn Sie sie ausführen. Führen Sie diesen Befehl nur aus, wenn Sie Daten zerstören möchten.)
dd if=/dev/zero of=/dev/sda1
Hier verwenden wir dd mit speziellen Dateien (/ dev / zero und / dev / sda1), aber wir könnten dd auch zum Lesen und Schreiben von tatsächlichen Dateien verwenden. Derselbe Befehl kann sowohl zum direkten Manipulieren von Geräten als auch zum Arbeiten mit Dateien verwendet werden.
Klärung
In der Praxis ist es genauer zu sagen, dass "alles ein Strom von Bytes ist" als "alles ist eine Datei". / Dev / random ist keine Datei, aber es ist sicherlich ein Strom von Bytes.Und obwohl diese Dinge technisch keine Dateien sind, sind sie im Dateisystem zugänglich - das Dateisystem ist ein universeller "Namensraum", in dem alles zugänglich ist. Möchten Sie auf einen Zufallszahlengenerator zugreifen oder direkt von einem Gerät lesen? Sie finden beides im Dateisystem. keine andere Form der Adressierung erforderlich.
Natürlich handelt es sich bei einigen Dingen nicht um Dateien - Prozesse, die auf Ihrem System ausgeführt werden, sind nicht Teil des Dateisystems. „Alles ist eine Datei“ist ungenau, aber viele Dinge verhalten sich wie Dateien.