تنتج كل عملية في Linux ثلاثة تدفقات بيانات ، stdin ، و stdout ، و stderr:
- ستدين : يأخذ المدخلات من المستخدم عبر لوحة المفاتيح
- stdout : يعرض الإخراج على الشاشة
- ستدير : يظهر معلومات الخطأ على الشاشة
يحتوي كل دفق بيانات على معرف رقمي:
معرف رقمي | اسم |
0 | ستدين |
1 | stdout |
2 | ستدير |
دعونا نشرح إعادة التوجيه قليلاً بالتفصيل:
كيفية إعادة توجيه الإخراج القياسي والخطأ القياسي في Bash:
لإعادة توجيه الإخراج القياسي للأمر ، سنستخدم 1 مع عامل إعادة توجيه أكبر من علامة>:
$ls 1>stdout.txtسيقوم الأمر أعلاه بإنشاء ملف ووضع الإخراج القياسي للأمر ls في ملف stdout.txt.
لقراءة ملف stdout.txt ، استخدم:
$قطstdout.txt
يمكننا أيضًا إعادة توجيه الخطأ القياسي إلى ملف باستخدام الأمر:
$قطmyfile.txt2>stderr.txt
لعرض ملف stderr.txt ، استخدم:
$قطstderr.txt
تأكد من أن استخدام 2 سيكون أكبر من علامة>. نظرًا لعدم وجود ملف myfile.txt في الدليل ، سيعطي الأمر cat خطأ سيتم إلحاقه في ملف stderr.txt.
يمكن إعادة توجيه هذه المخرجات القياسية بأمر واحد أيضًا ، استخدم:
$ls 1>stdout.txt2>stderr.txt
سيتم كتابة إخراج الأمر ls في ملف stdout.txt ملف ، ولكن stderr.txt ستبقى فارغة لأنه لن يكون هناك خطأ.
الآن دعنا نفعل لـ stderr.txt:
$قطmyfile.txt1>stdout.txt2>stderr.txt
استخدم الأمر المذكور أدناه لقراءة stderr.txt.
$قطstderr.txt
وبالطبع ، سيكون ملف stdout.txt فارغًا.
استنتاج :
يعطي أمر Linux عند التنفيذ إخراجًا قياسيًا يمكن أن يكون ناتجًا ناجحًا أو ناتجًا خطأ. بشكل عام ، لا يمكن إعادة توجيه هذه المخرجات باستخدام عوامل إعادة التوجيه ؛ نحتاج إلى استخدام معرفات رقمية محددة بعلامة>. في هذا الدليل ، تعلمنا كيفية استخدام هذه المفاتيح الرقمية لإعادة توجيه الإخراج القياسي إلى ملف يحتوي على أمثلة.