{"id":2035,"date":"2020-02-06T18:14:28","date_gmt":"2020-02-06T18:14:28","guid":{"rendered":"https:\/\/profi-tutorials.de\/linux\/?p=2035"},"modified":"2020-03-13T11:29:33","modified_gmt":"2020-03-13T11:29:33","slug":"eingabe-ausgabe-umleitungen","status":"publish","type":"post","link":"https:\/\/profi-tutorials.de\/linux\/grundlagen\/eingabe-ausgabe-umleitungen\/","title":{"rendered":"Eingabe- \/ Ausgabe-Umleitungen (I\/O-Redirections)"},"content":{"rendered":"<p>Sogenannte I\/O-Redirections (Eingabe- \/ Ausgabe-Umleitungen) sind ein sehr m&auml;chtiges Werkzeug f&uuml;r Linux- und UNIX-Betriebssysteme. Die Ausgaben von Befehlen wie <strong>ls<\/strong> oder <strong>cat<\/strong> werden normalerweise direkt im <a class=\"glossaryLink cmtt_Informatik\" aria-describedby=\"tt\" data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;TTY [Teletype]&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;TTY steht f&uuml;r Teletype, welches das englische Wort f&uuml;r Fernschreiber ist, und steht in einem UNIX-System f&uuml;r ein Terminal.&lt;\/div&gt;&lt;div class=cmtt_synonyms_wrapper&gt;&lt;div class=cmtt_synonyms_title&gt;Synonyms: &lt;\/div&gt;&lt;div class=cmtt_synonyms&gt;Terminal&lt;\/div&gt;&lt;\/div&gt;\" href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/tty\/\" target=\"_blank\" data-mobile-support=\"0\" data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex=\"0\" role=\"link\">Terminal<\/a> ausgegeben. Die in diesem Beitrag vorgestellten Notationen erm&ouml;glichen eine Umleitung solcher Ausgaben in Dateien oder auch in andere Befehle.<\/p>\n<h2 id=\"tab-con-4\">Standard-Output<\/h2>\n<p>Die Ausgaben eines Befehls werden grunds&auml;tzlich in den sogenannten Standard-Output (stdout) geleitet. Dieser leitet die Ergebnisse dann normalerweise direkt in die Ausgabe des Terminals um.<\/p>\n<h3 id=\"tab-con-2\">Umleitungen mit &gt;<\/h3>\n<p>Mit <strong>&gt;<\/strong> k&ouml;nnen die Ausgaben eines Befehls in Dateien umgeleitet werden. Die Ausgaben &uuml;berschreiben dabei jeglichen Inhalt der angegebenen Datei. Bei mehrfacher Ausf&uuml;hrung bleiben vergangene Ausgaben nicht erhalten.<\/p>\n<p>Falls die angegebene Datei noch nicht existiert, wird sie neu angelegt.<\/p>\n<p>Es folgt ein kurzes Beispiel mit dem Befehl <strong>ls<\/strong>.<\/p>\n<h5>Beispiel: &gt;<\/h5>\n<h6>Eingabe:<\/h6>\n<p>ls \/home\/hellberg\/daten\/ &gt; verzeichnisse.txt<\/p>\n<h6>Ausgabe (cat verzeichnisse.txt):<\/h6>\n<p>edvberatung-hannoverhaus-verwaltung-hannoverit-consulting-hannoveronline-kurseprofi-tutorials<\/p>\n<p>verzeichnisse.txt<\/p>\n<h6>Bemerkung:<\/h6>\n<p>Die neu erstellte Datei &ldquo;verzeichnisse.txt&rdquo; wird ebenfalls in die Ausgabe des <strong>ls<\/strong>-Befehls aufgenommen.<\/p>\n<h3 id=\"tab-con-3\">Umleitungen mit &gt;&gt;<\/h3>\n<p>Soll der Inhalt einer Datei nicht &uuml;berschrieben, sondern stattdessen die neue Ausgabe an das Ende der Datei angeh&auml;ngt werden, so wird <strong>&gt;&gt;<\/strong> verwendet. Es folgt ein kurzes Beispiel.<\/p>\n<h5>Beispiel: &gt;&gt;<\/h5>\n<h6>Eingabe:<\/h6>\n<p>date &gt;&gt; zeit.txt<\/p>\n<h6>Ausgabe (cat zeit.txt):<\/h6>\n<p>Do 6. Feb 12:03:55 CET 2020<\/p>\n<h6>Bemerkung:<\/h6>\n<p>Die von dem Befehl erstellte Datei zeit.txt enth&auml;lt nun die Ausgabe des <strong>date<\/strong> Befehls. Bisher gibt es keine Abweichungen zur Funktionsweise im vorigen Beispiel.<\/p>\n<h6>Wiederholung der Eingabe:<\/h6>\n<p>date &gt;&gt; zeit.txt<\/p>\n<h6>Ausgabe (cat zeit.txt):<\/h6>\n<p>Do 6. Feb 12:03:55 CET 2020Do 6. Feb 12:04:07 CET 2020<\/p>\n<h6>Bemerkung:<\/h6>\n<p>Die Datei &ldquo;zeit.txt&rdquo; wurde nicht &uuml;berschrieben. Stattdessen wurde die Ausgabe der zweiten Ausf&uuml;hrung des <strong>date<\/strong> Befehls an das Ende der Datei &ndash; in eine neue Zeile &ndash; geschrieben.<\/p>\n<h2 id=\"tab-con-8\">Standard-Input<\/h2>\n<p>Viele Befehle nehmen Eingaben aus dem sogenannten Standard-Input (stdin) an. Diese Eingaben werden normalerweise &uuml;ber die Tastatur durchgef&uuml;hrt. Auch hier kann eine Umleitung erfolgen, um beispielsweise den Inhalt einer Datei als Eingabe zu verwenden. Mit dem Operator <strong>&lt;<\/strong> kann eine solche Umleitung erfolgen.<\/p>\n<h5>Beispiel: &lt;<\/h5>\n<p>Ziel dieses Beispiels ist es, eine unsortierte Textdatei mit Benutzernamen in den <strong>sort<\/strong> Befehl zu leiten, um diese zu sortieren.<\/p>\n<h6>Inhalt der Textdatei (cat benutzer.txt):<\/h6>\n<p>hedvadminahellbergbibo<\/p>\n<h6>Eingabe:<\/h6>\n<p>sort &lt; benutzer.txt<\/p>\n<h6>Ausgabe:<\/h6>\n<p>adminabibohedvhellberg<\/p>\n<h6>Bemerkung:<\/h6>\n<p>Der Inhalt der Datei &ldquo;benutzer.txt&rdquo; wurde an den <strong>sort <\/strong>Befehl weitergeleitet. Dieser hat die Eintr&auml;ge dann sortiert und im Terminal ausgegeben.<\/p>\n<h2 id=\"tab-con-5\">Die Kombination von Input und Output<\/h2>\n<p>Auch eine Kombination beider Operatoren ist m&ouml;glich. So k&ouml;nnen zum Beispiel die Inhalte einer Datei in einen Befehl und dessen Ausgabe in eine Datei geleitet werden.<\/p>\n<h5>Beispiel: &lt; in Kombination mit &gt;<\/h5>\n<p>Auch hier wird wieder die unsortierte Liste &ldquo;benutzer.txt&rdquo; an den sort Befehl &uuml;bergeben. Anschlie&szlig;end erfolgt eine Umleitung in die Datei &ldquo;benutzer_sortiert.txt&rdquo;<\/p>\n<h6>Inhalt der Textdatei (cat benutzer.txt):<\/h6>\n<p>hedvadminahellbergbibo<\/p>\n<h6>Eingabe:<\/h6>\n<p>sort &lt; benutzer.txt &gt; benutzer_sortiert.txt<\/p>\n<h6>Ausgabe (cat benutzer_sortiert.txt):<\/h6>\n<p>adminabibohedvhellberg<\/p>\n<h2 id=\"tab-con-1\">Pipelines (&ldquo;Rohrleitungen&rdquo;)<\/h2>\n<p>Mit sogenannten Pipelines bzw. &ldquo;Rohrleitungen&rdquo; ist es m&ouml;glich, mehrere Befehle miteinander zu verbinden. Der Standard-Output (stdout) des einen Befehls wird dabei in den Standard-Input (stdin) eines weiteren Befehls geleitet. Beliebig viele Befehle k&ouml;nnen auf diese Weise miteinander &ldquo;verkettet&rdquo; werden.<\/p>\n<p>Zum Verst&auml;ndnis folgt nun ein kurzes Beispiel mit den beiden Befehlen <strong>sort<\/strong> und <strong>head<\/strong>.<\/p>\n<h5>Beispiel: Pipelines<\/h5>\n<p>Wir wollen wieder die &ldquo;benutzer.txt&rdquo; sortieren, anschlie&szlig;end jedoch nur den ersten Benutzer der sortierten Liste im Terminal ausgeben. Dazu wird die Ausgabe des Befehls <strong>sort <\/strong>mit einer&nbsp;<strong>Pipe<\/strong>&nbsp;in den Input des&nbsp;<strong>head<\/strong> Befehls &uuml;bergeben.<\/p>\n<h6>Inhalt der Textdatei (cat benutzer.txt):<\/h6>\n<p>hedvadminahellbergbibo<\/p>\n<h6>Eingabe:<\/h6>\n<p>sort benutzer.txt | head -n 1<\/p>\n<h6>Ausgabe:<\/h6>\n<p>admina<\/p>\n<h2 id=\"tab-con-6\">Das Video zu diesem Beitrag<\/h2>\n<p style=\"text-align: center;\">Abonniere JETZT unseren Newsletter!<\/p>\n<p style=\"text-align: center;\">Verpasse nie wieder <strong>neue<\/strong> Beitr&auml;ge und <strong>exklusive Insider-Only-Inhalte!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sogenannte I\/O-Redirections (Eingabe- \/ Ausgabe-Umleitungen) sind ein sehr m\u00e4chtiges Werkzeug f\u00fcr Linux- und UNIX-Betriebssysteme. Die Ausgaben von Befehlen wie ls oder cat werden normalerweise direkt im Terminal ausgegeben. Die in diesem Beitrag vorgestellten Notationen erm\u00f6glichen eine Umleitung solcher Ausgaben in Dateien oder auch in andere Befehle. Standard-Output Die Ausgaben eines Befehls werden grunds\u00e4tzlich in den [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1503,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":" %%post_title%% %%sep%% %%sitetitle%%","_seopress_titles_desc":"Sogenannte I\/O-Redirections (Eingabe- \/ Ausgabe-Umleitungen) sind ein sehr m\u00e4chtiges Standard-Werkzeug f\u00fcr Linux- und UNIX-Betriebssysteme.","_seopress_robots_index":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-2035","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grundlagen"],"_links":{"self":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/2035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/comments?post=2035"}],"version-history":[{"count":70,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/2035\/revisions"}],"predecessor-version":[{"id":3639,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/2035\/revisions\/3639"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media\/1503"}],"wp:attachment":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media?parent=2035"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/categories?post=2035"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/tags?post=2035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}