Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الخطأ القياسي

جزء من قسم الأساسيات في رحلة Terminal على Coddy — الدرس 41 من 82.

تدفق البيانات الثالث والأخير هو الخطأ القياسي (standard error)، ويُختصر بـ stderr. هذا التدفق مخصص لرسائل الخطأ والتحذيرات، مما يبقيها منفصلة عن المخرجات العادية.

عندما يفشل أمر ما، تنتقل رسالة الخطأ إلى الخطأ القياسي (standard error)، وليس المخرج القياسي (standard output):

ls nonexistent_folder

رسالة الخطأ التي تراها تأتي عبر stderr. هذا الفصل مهم لأنه يمكنك إعادة توجيه الأخطاء بشكل مستقل عن المخرجات العادية.

لإعادة توجيه الخطأ القياسي (standard error)، استخدم 2> بدلاً من >:

ls nonexistent_folder 2> errors.txt

يشير الرقم 2 إلى رقم واصف الملف لـ stderr (حيث أن stdout هو 1، وstderr هو 2). يقوم هذا الأمر بالتقاط رسالة الخطأ في errors.txt مع الحفاظ على نظافة جهازك الطرفي.

يمكنك إعادة توجيه كلا التدفقين إلى ملفات مختلفة:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

يتم إرسال المخرجات الناجحة إلى output.txt، بينما يتم إرسال أي أخطاء إلى errors.txt. لإرسال كلا التدفقين إلى نفس الملف، استخدم 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

يقوم هذا بإعادة توجيه stderr إلى حيث يتجه stdout، مما يجمع كل شيء في ملف واحد.

challenge icon

التحدي

سهل

استخدم عامل التشغيل 2> لإعادة توجيه رسالة خطأ إلى ملف. قم بتشغيل هذين الأمرين بالترتيب:

  1. حاول عرض محتويات مجلد يسمى missing_folder باستخدام ls، وقم بإعادة توجيه رسالة الخطأ إلى ملف يسمى errors.txt
  2. استخدم cat لعرض محتويات errors.txt

تلميح: التنسيق هو ls foldername 2> filename. تذهب رسالة الخطأ إلى الملف بدلاً من الظهور على الشاشة. استخدم cat للتحقق من أنه تم التقاطها.

ورقة مرجعية

يُستخدم تدفق الخطأ القياسي (stderr) لرسائل الخطأ والتحذيرات، مما يبقيها منفصلة عن المخرجات العادية.

لإعادة توجيه الخطأ القياسي، استخدم 2>:

ls nonexistent_folder 2> errors.txt

يشير الرقم 2 إلى رقم واصف الملف (file descriptor) الخاص بـ stderr (حيث أن stdout هو 1، وstderr هو 2).

يمكنك إعادة توجيه كل من stdout وstderr إلى ملفات مختلفة:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

لإرسال كلا التدفقين إلى نفس الملف، استخدم 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

جرّب بنفسك

الطرفية
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات