<blockquote><p>Dalam Linux, strim bermaksud strim data, iaitu rentetan data yang dibaca dalam susunan tertentu, jadi arah aliran data ialah susunan bacaan strim data. Proses sistem Linux mengimport hasil keluaran selepas membaca data ke dalam fail lain dipanggil aliran data diubah hala. Selepas arahan dimasukkan dan dijalankan di bawah Linux, dua keputusan akan dipaparkan pada skrin: hasil operasi yang berjaya ialah output standard, dan hasil operasi yang gagal ialah output ralat standard, jika tidak diproses, ia akan dipaparkan pada skrin dan diubah hala melalui aliran data Anda boleh menyimpannya ke fail lain. </p></blockquote>
<p><img src="https://img.php.cn/upload/article/202303/17/2023031709544952034.jpg" alt="Apakah maksud aliran dalam linux?" ></p>
<p>Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3. </p>
<p><strong>Dalam Linux, strim bermaksud aliran data. </strong></p>
<h2><strong>Apakah maksud aliran (aliran data) </strong></h2>
<p>Strim (aliran data) ialah rentetan data yang dibaca dalam susunan tertentu, jadi arah aliran data Ia adalah susunan bacaan aliran data. </p>
<p>Strim data pada asalnya merupakan konsep yang digunakan dalam bidang komunikasi dan mewakili urutan isyarat yang dikodkan secara digital yang digunakan dalam penghantaran maklumat. Konsep ini pertama kali dicadangkan oleh Henzinger pada tahun 1998 dalam Dokumen 87. Beliau mentakrifkan aliran data sebagai "urutan data yang hanya boleh dibaca sekali dalam susunan yang telah ditetapkan." </p>
<p>Aliran data ubah hala sistem Linux adalah untuk mengimport hasil output selepas membaca data ke dalam fail lain. </p>
<h2><strong>Pengalihan aliran data Linux</strong></h2>
<p>Pengalihan aliran data hanyalah untuk mencari sumber data input atau data output perintah tertentu ke fail lain. Segala-galanya di bawah Linux adalah fail. Fail di sini boleh menjadi fail peranti, fail biasa, dsb. </p>
<p><a id="1_stdin_stdout_stderr_5"></a><span style="font-size: 18px;"><strong>1. Merujuk kepada beberapa maklumat yang disediakan untuk arahan dijalankan. </strong></span>: output standard. Merujuk kepada maklumat yang betul yang dikembalikan melalui pelaksanaan perintah. </p>
<blockquote>: Output ralat standard. Merujuk kepada mesej ralat yang dikembalikan selepas pelaksanaan arahan gagal. <p><code>stdin</code><br>Hubungan antara ketiga-tiga dan perintah ini biasanya seperti berikut: <code>stdout</code></p>
<div class="mermaid sequence-diagram"><svg id="mermaid-svg-43Q0mtxvjga7WpCa" width="100%" xmlns="http://www.w3.org/2000/svg" height="158" style="max-width: 436.46875px;" viewbox="0 0 436.46875 158"><style>#mermaid-svg-43Q0mtxvjga7WpCa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg- 43Q0mtxvjga7WpCa .error-icon{fill:#552222;}#mermaid-svg-43Q0mtxvjga7WpCa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-x3knormal-svg-43 lebar :2px;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-solid{stroke-dasharray:0;}v 43Q0mtxvjga7WpCa .corak-tepi-putus-putus{stroke-dasharray:3;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-43Q0mtxv3; :#333333;}#mermaid-svg-43Q0mtxvjga7WpCa .marker.cross{stroke:#333333;}#mermaid-svg-43Q0mtxvjga7WpCa svg{font-family:"trebuchet ms;",verdana-serifal :16px;}#mermaid-svg-43Q0mtxvjga7WpCa .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster-label text{fill text #333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster-label span{color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .label text,#mermaid-svg-43Q0mtxvjga{7Wp:Ca 3# sp3; }#mermaid-svg-43Q0mtxvjga7WpCa .node rect,#mermaid-svg-43Q0mtxvjga7WpCa .node circle,#mermaid-svg-43Q0mtxvjga7WpCa .node elips,#mermaid4-jga0s mermaid-svg-43Q0mtxvjga7WpCa .laluan nod {fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-43Q0mtxvjga7WpCa .node .label{text-align:center;}#mermaid-svg-43Q0mtxvjga7WpCa .node.pointerable ;}#mermaid-svg-43Q0mtxvjga7WpCa .arrowheadPath{fill:#333333;}#mermaid-svg-43Q0mtxvjga7WpCa .edgePath .path{stroke:#333333;#mermaid-svg-43Q0mtxvjga7WpCa .edgePath .path{stroke:#333333;mer. pCa .carta alir- pautan{stroke:#333333;fill:none;}#mermaid-svg-43Q0mtxvjga7WpCa .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-43Q0mtxvjga7WpCa .edgeground:WpCa .edgeground: -color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-43Q0mtCall .cluster text :#333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster span{color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa div.mermaidTooltip{position:absolute;text-align:center;2px-width:20px; ;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px; pointer-events:none;z-index:100;}#mermaid-svg-43Q0mtxvjga7WpCa :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g><g class="output"><g class="clusters"></g><g class="edgePaths"><g class="edgePath LS-A LE-B" style="opacity: 1;" id="L-A-B"><path class="path" d="M54.40625,79L61.493489583333336,79C68.58072916666667,79,82.75520833333333,79,96.9296875,79C111.10416666666667,79,125.27864583333333,79,132.36588541666666,79L139.453125,79" marker-end="url(#arrowhead34)" style="fill:none"></path><defs><marker id="arrowhead34" viewbox="0 0 10 10" refx="9" refy="5" markerunits="strokeWidth" markerwidth="8" markerheight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-B LE-C" style="opacity: 1;" id="L-B-C"><path class="path" d="M229.451171875,56L237.5322265625,51.833333333333336C245.61328125,47.666666666666664,261.775390625,39.333333333333336,277.8069661458333,35.166666666666664C293.8385416666667,31,309.7395833333333,31,317.6901041666667,31L325.640625,31" marker-end="url(#arrowhead35)" style="fill:none"></path><defs><marker id="arrowhead35" viewbox="0 0 10 10" refx="9" refy="5" markerunits="strokeWidth" markerwidth="8" markerheight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-B LE-D" style="opacity: 1;" id="L-B-D"><path class="path" d="M229.451171875,102L237.5322265625,106.16666666666667C245.61328125,110.33333333333333,261.775390625,118.66666666666667,277.8069661458333,122.83333333333333C293.8385416666667,127,309.7395833333333,127,317.6901041666667,127L325.640625,127" marker-end="url(#arrowhead36)" style="fill:none"></path><defs><marker id="arrowhead36" viewbox="0 0 10 10" refx="9" refy="5" markerunits="strokeWidth" markerwidth="8" markerheight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" style="opacity: 1;" transform="translate(96.9296875,79)"><g transform="translate(-17.5234375,-13)" class="label"><rect rx="0" ry="0" width="35.046875" height="26"></rect><foreignobject width="35.046875" height="26"><div style="display: inline-block; white-space: nowrap;">
<span id="L-L-A-B" class="edgeLabel L-LS-A' L-LE-B">stdin</span>
</div></foreignobject></g></g><g class="edgeLabel" style="opacity: 1;" transform="translate(277.9375,31)"><g transform="translate(-21.453125,-13)" class="label"><rect rx="0" ry="0" width="42.90625" height="26"></rect><foreignobject width="42.90625" height="26"><div style="display: inline-block; white-space: nowrap;">
<span id="L-L-B-C" class="edgeLabel L-LS-B' L-LE-C">stderr</span>
</div></foreignobject></g></g><g class="edgeLabel" style="opacity: 1;" transform="translate(277.9375,127)"><g transform="translate(-22.703125,-13)" class="label"><rect rx="0" ry="0" width="45.40625" height="26"></rect><foreignobject width="45.40625" height="26"><div style="display: inline-block; white-space: nowrap;">
<span id="L-L-B-D" class="edgeLabel L-LS-B' L-LE-D">tegas</span>
</div></foreignobject></g></g></g><g class="nodes"><g class="node default" style="opacity: 1;" id="flowchart-A-18" transform="translate(31.203125,79)"><rect rx="5" ry="5" x="-23.203125" y="-23" width="46.40625" height="46" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-13.203125,-13)"><foreignobject width="26.40625" height="26"><div style="display: inline-block; white-space: nowrap;">Fail</div></foreignobject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-B-19" transform="translate(184.84375,79)"><rect rx="5" ry="5" x="-45.390625" y="-23" width="90.78125" height="46" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-35.390625,-13)"><foreignobject width="70.78125" height="26"><div style="display: inline-block; white-space: nowrap;">Perintah</div></foreignobject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-C-21" transform="translate(377.0546875,31)"><rect rx="5" ry="5" x="-51.4140625" y="-23" width="102.828125" height="46" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-41.4140625,-13)"><foreignobject width="82.828125" height="26"><div style="display: inline-block; white-space: nowrap;">Skrin/Fail</div></foreignobject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-D-23" transform="translate(377.0546875,127)"><rect rx="5" ry="5" x="-51.4140625" y="-23" width="102.828125" height="46" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-41.4140625,-13)"><foreignobject width="82.828125" height="26"><div style="display: inline-block; white-space: nowrap;">Skrin/Fail</div></foreignobject></g></g></g></g></g></g></svg></div>
<p>Dalam persekitaran Linux, selepas kita memasukkan arahan dan menjalankannya, dua keputusan akan dipaparkan pada skrin : Hasil operasi yang berjaya ialah output standard, dan hasil operasi yang gagal ialah output ralat standard. </p>
<ul style="list-style-type: disc;">
<li><p>Output standard (STDOUT): Output standard merujuk kepada maklumat yang betul yang dikembalikan melalui pelaksanaan arahan. </p></li>
<li><p>Keluaran ralat standard (STDERR): Output ralat standard merujuk kepada maklumat ralat yang dikembalikan melalui pelaksanaan arahan. </p></li>
</ul>
<p>Jika STDOUT dan STDERR tidak diproses, ia akan dipaparkan pada skrin ia boleh disimpan dalam fail lain melalui pengalihan aliran data dan disimpan dalam fail. </p>
<ul style="list-style-type: disc;">
<li><p> Stout input standard: kod ialah 0, gunakan <code><</code> atau <code><<</code></p></li><li><p> output standard stout: kod Untuk 1, gunakan <code>></code> atau <code>>></code></p></li>
<li><p> untuk stderr: Untuk kod 2, gunakan <code>2></code> atau <code>2>></code></p></li>
</ul>
<p><a id="2__21"> </a><span style="font-size: 18px;"><strong>2. Penggunaan pengalihan aliran data </strong></span></p>
<ul><li>
<code>stdout</code>: pengalihan keluaran standard. Apa yang diubah hala di sini ialah output yang betul. </li></ul>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">find / -name '.bashrc' > ~/out_right</pre><div class="contentsignin">Salin selepas log masuk</div></div>
<p>Arahan ini mengarahkan output yang betul ke fail <code>~/out_right</code>. Jika <code>~/out_right</code> tidak wujud, ia akan dibuat secara automatik. Kerana mesej ralat tidak diproses, output ralat adalah output ke terminal skrin secara lalai Pada masa ini, terminal hanya akan memaparkan output ralat. </p>
<ul><li>
<code>stderr</code>: Ubah hala keluaran ralat standard. Apa yang diubah hala di sini ialah output ralat. </li></ul>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">find / -name '.bashrc' 2> ~/out_error</pre><div class="contentsignin">Salin selepas log masuk</div></div>
<p>Arahan ini mengarahkan output ralat ke fail <code>~/out_error</code>. Jika <code>~/out_error</code> tidak wujud, ia akan dibuat secara automatik. Kerana maklumat yang betul tidak diproses, output yang betul adalah output ke terminal skrin secara lalai Pada masa ini, terminal hanya akan memaparkan output yang betul (jika fail yang ditentukan tidak dijumpai, tidak akan ada output pada skrin). . </p>
<ul><li>
<code>stdin</code>: Input standard biasanya digunakan untuk menggantikan input papan kekunci. </li></ul>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">cat > catfile < ~/.bashrc</pre><div class="contentsignin">Salin selepas log masuk</div></div><p><code>cat</code>Tanpa sebarang parameter selepas arahan, kucing akan membaca data dari papan kekunci. Menggunakan input standard, arahkan sumber input ke fail <code>~/.bashrc</code>. Kemudian sasarkan output standard ke fail <code>> melalui <code>catfile</code>. <code>cat</code> ialah arahan untuk melihat fail Di sini, fail <code>~/.bashrc</code> dibaca terus dan kemudian dikeluarkan kepada <code>catfile</code>. <p><a id="3_2_47"></a><span style="font-size: 18px;"><strong>3 </strong><kod><code><strong>>>,2>>,<<</strong></code>>>,2>>,<<</span></code> </p><ul><li><code>>></strong></code><strong>(</strong>Kumpul<code>cmd > file1</code>): tambah output standard. <code>cmd</code>, perintah <code>stdout</code> akan mengeluarkan <code>file1</code> kepada <code>fiel1</code> Jika <code>file1</code> wujud sebelum ini dan mempunyai data, maka <code>stdout</code> akan dikosongkan terlebih dahulu dan kemudian ditulis kepada <code>cmd >> file1</code>. Apabila menggunakan arahan <code>file1</code>, fail tidak akan dikosongkan terlebih dahulu, tetapi data input akan ditambah terus ke penghujung fail. <li>
<code>2>></code><strong> (</strong>kumulatif<code>>></code>): Tambahkan output ralat standard. Serupa dengan </li>. <li>
<code><<</code><strong> (</strong> menentukan kata kunci akhir <code>结束的输入字符</code>): diikuti dengan </li>. Kata kunci mestilah pada barisnya sendiri, jika tidak, kata kunci itu akan menjadi tidak sah. </ul>0e0780e77a750d22d24fdf868e59a35b<p><code>find / -name .bashrc > list 2>&1</code>Terdapat lebih daripada satu cara untuk melaksanakannya, jadi kami memilih kaedah penulisan yang lebih difahami <code>2>&1</code>. <code>> list</code> dalam kod ini boleh difahami sebagai mengubah hala keluaran ralat standard (kod 2) kepada keluaran standard (kod 1). Kemudian <code>list</code> mengubah hala output standard ke fail <code>list</code>. Oleh kerana output ralat standard diarahkan sebagai output standard, semua output akhirnya diarahkan ke fail </li></kod></span></p>. <p><a href="http://www.php.cn/course/list/33.html" target="_blank">Cadangan berkaitan: "</a>Tutorial Video Linux</p>"</pre>
</blockquote>
Atas ialah kandungan terperinci Apakah maksud aliran dalam linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!