Zum Inhalt springen

„/dev/null“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
AmigaOS und OpenVMS
Vollprogramm: Quellen rein, Beispielsammlung raus
Zeile 1: Zeile 1:
'''/dev/null''' ({{EnS|''null''}}: dt. „nichts“) ist eine [[virtuelle Gerätedatei]], das ''Nulldevice'', auf [[Unix]] und [[Unixoides System|unixoiden]] [[Betriebssystem]]en, die jegliche Daten verwirft, die dorthin geschrieben werden.
'''/dev/null''' (auch als ''Nulldevice'' bezeichnet) ist ein [[virtuelle Gerätedatei|Device]] auf [[Unix|UNIX]] und [[Unixoides System|UNIX-ähnlichen]] [[Betriebssystem]]en.


Jegliche dorthin geschriebenen Daten werden verworfen, beim Lesezugriff darauf wird ein einzelnes EOF-(''End of File'')-Zeichen ausgegeben. Dieses Verhalten wie auch die Existenz selbst ist durch den [[POSIX]]-Standard vorgeschrieben und standardisiert.<ref name=posix>[http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap10.html The Open Group Base Specifications Issue 7 - Directory Structure and Devices] (engl.)</ref>
Unter [[CP/M]] und seinen Abkömmlingen [[PC-kompatibles DOS|DOS]], [[OS/2]] und [[Microsoft Windows]] wird das Nulldevice als <code>NUL:</code> angesprochen. Unter [[Disk Operating System|DOS]] und den folgenden Betriebssystemen existiert es in jedem Verzeichnis unter dem Dateinamen <code>NUL</code>. <code>NIL:</code> unter [[AmigaOS]] und als <code>NL:</code> unter [[OpenVMS]]. In der [[Job Control Language|JCL]] auf OS/390-Systemen wird ein Nulldevice durch ein DD DUMMY Statement definiert. Die Datei <code>/dev/null</code> ist durch die [[Portable Operating System Interface|POSIX]]-Norm standardisiert.


== Verwendung ==
== Verwendung ==
Das Device dient dazu, als Adressat von Ausgaben zu fungieren, an denen man nicht interessiert ist.
Eine häufige Verwendung ist z.&nbsp;B., in einer [[Unix-Shell|Shell]]-Sitzung die Meldungen eines Programms von der [[stdout|Standardausgabe]] statt auf den Bildschirm nach <code>/dev/null</code> umzuleiten, wenn man an ihnen nicht interessiert ist; sie werden dann nicht angezeigt. Das Gerät <code>/dev/null</code> kann auch als Ziel bei Dateisystemoperationen dienen. Ein solcher Zweck tritt gelegentlich auf, wenn Shell-Skripte oder Programme unbedingt eine Dateiangabe erfordern, diese im vorliegenden Fall aber keinen Sinn ergibt oder unerwünscht ist.


Lesezugriffe liefern sofort ein Dateiende ([[End of File]], „EOF“). Dabei verhält sich das Gerät wie eine gewöhnliche Datei, das öffnende Programm muss also keine besonderen Vorkehrungen treffen.
Lesezugriffe liefern sofort ein [[End of File]]-Zeichen, weshalb es auch zur Erzeugung "leerer Eingaben" verwendet werden kann. Dabei verhält es sich wie eine gewöhnliche Datei, der öffnende Prozeß muss also keine besonderen Vorkehrungen treffen.


In der [[Netzkultur]] ist <code>/dev/null</code> ein umgangssprachlich verwendeter Begriff für eine Art gedankliches [[Schwarzes Loch]], meist um Desinteresse an der Aussage des Gegenübers zu bekunden.
In der [[Netzkultur]] ist <code>/dev/null</code> ein umgangssprachlich verwendeter Begriff für ein - oft gedankliches - [[Schwarzes Loch]], meist um Desinteresse oder Verachtung an einem Gegenstand zu bekunden.


== Beispiele ==
== Einzelnachweise ==
<references/>
Wenn man nur die normale Ausgabe eines Programms sehen will, nicht aber die Fehlermeldungen und sonstigen Informationen, die das Programm in die [[Standard-Datenströme#Standardfehlerausgabe (stderr)|Standardfehlerausgabe]] schreibt, kann man diese umleiten:
: <syntaxhighlight lang="bash">$ programm 2>/dev/null</syntaxhighlight>
Möchte man für Shell-Skripte nur den Rückgabewert eines Programms verwenden und somit sämtliche Ausgaben nach <code>/dev/null</code> umleiten, kann die folgende Syntax verwendet werden:
: <syntaxhighlight lang="bash">$ programm >/dev/null 2>&1</syntaxhighlight>
Mittels Shell-[[Pipe (Informatik)|Pipes]] kann man selektiv uninteressante (Fehler-)Meldungen von Teilen der Pipeline ausblenden:
: <syntaxhighlight lang="bash">$ programm1 2>/dev/null | programm2 | ...</syntaxhighlight>
Ähnlich ist die Verwendung mittels [[Symbolische Verknüpfung|symbolischer Verknüpfung]]. Danach wird alles, was in die verlinkte Datei (<tt>~/.bash_history</tt>) geschrieben wird, nicht gespeichert (beispielsweise zum [[Datenschutz]]):
: <syntaxhighlight lang="bash">$ ln -sf /dev/null ~/.bash_history</syntaxhighlight>
Auch üblich ist die Verwendung für die Standardeingabe. Ein Beispiel dafür ist das Ausführen eines Kommandos im Hintergrund während einer [[Secure Shell|SSH]]-Sitzung. Dabei wird die Standardeingabe an <code>/dev/null</code> übergeben, womit das Programm im Hintergrund weiterläuft, auch wenn man sich aus der SSH-Sitzung ausloggt:
: <syntaxhighlight lang="bash">$ ssh example.com "programm </dev/null >/dev/null 2>&1 &"</syntaxhighlight>
Man kann auch einen Datenträger überprüfen, indem z.&nbsp;B. <code>/dev/cdrom0</code> nach <code>/dev/null</code> kopiert wird. Wenn hierbei ein Fehler auftritt, ist der entsprechende Datenträger beschädigt oder nicht vorhanden:
: <syntaxhighlight lang="bash">$ dd if=/dev/cdrom of=/dev/null</syntaxhighlight>

== Weblinks ==
* [http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap10.html The Open Group Base Specifications Issue 7 - Directory Structure and Devices]
* [http://www.thomashertweck.de/redir.html Anwendungsbeispiele]


{{SORTIERUNG:Null}}
{{SORTIERUNG:Null}}

Version vom 11. Juli 2018, 00:00 Uhr

/dev/null (auch als Nulldevice bezeichnet) ist ein Device auf UNIX und UNIX-ähnlichen Betriebssystemen.

Jegliche dorthin geschriebenen Daten werden verworfen, beim Lesezugriff darauf wird ein einzelnes EOF-(End of File)-Zeichen ausgegeben. Dieses Verhalten wie auch die Existenz selbst ist durch den POSIX-Standard vorgeschrieben und standardisiert.[1]

Verwendung

Das Device dient dazu, als Adressat von Ausgaben zu fungieren, an denen man nicht interessiert ist.

Lesezugriffe liefern sofort ein End of File-Zeichen, weshalb es auch zur Erzeugung "leerer Eingaben" verwendet werden kann. Dabei verhält es sich wie eine gewöhnliche Datei, der öffnende Prozeß muss also keine besonderen Vorkehrungen treffen.

In der Netzkultur ist /dev/null ein umgangssprachlich verwendeter Begriff für ein - oft gedankliches - Schwarzes Loch, meist um Desinteresse oder Verachtung an einem Gegenstand zu bekunden.

Einzelnachweise

  1. The Open Group Base Specifications Issue 7 - Directory Structure and Devices (engl.)