إعادة توجيه الإدخال والإخراج (>، >>، <)
أتقن إعادة توجيه مخرجات الأوامر إلى الملفات واستخدام الملفات كمدخلات للأوامر، مما يعزز مرونة البرامج النصية.
إعادة توجيه الإدخال والإخراج (>، >>، <) درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما هي إعادة توجيه I/O؟
تنتج الأوامر في Linux مخرجات غالبًا أو تتطلب إدخالًا. تتيح لكم إعادة توجيه الإدخال/الإخراج (I/O) تغيير مصدر إدخال الأمر أو وجهة مخرجاته.
بدلًا من عرض المخرجات على شاشتكم فقط (الطرفية)، يمكنكم حفظها في ملف، أو حتى تمرير محتوى ملف مباشرةً إلى أمر آخر.
فهم التدفقات القياسية
يتفاعل كل أمر من أوامر Linux مع ثلاثة تدفقات بيانات «قياسية»:
- الإدخال القياسي (STDIN): المصدر الذي يتوقع الأمر تلقي الإدخال منه (عادةً لوحة المفاتيح).
- الإخراج القياسي (STDOUT): الوجهة التي يرسل الأمر إليها مخرجاته العادية (عادةً الشاشة).
- الخطأ القياسي (STDERR): الوجهة التي يرسل الأمر إليها رسائل الخطأ (عادةً الشاشة أيضًا).
تتيح لنا إعادة التوجيه تغيير هذه المصادر أو الوجهات الافتراضية.
التقاط المخرجات باستخدام '>'
يُستخدم العامل > لإعادة توجيه الإخراج القياسي (STDOUT) من أمر إلى ملف. وبدلًا من طباعتها على الشاشة، ستُكتب مخرجات الأمر في الملف المحدد.
مهم: إذا كان الملف موجودًا مسبقًا، فسيستبدل > محتواه بالكامل بالمخرجات الجديدة. احرصوا على عدم حذف بيانات مهمة عن طريق الخطأ!
مثال: حفظ مخرجات الأمر
لنحفظ مخرجات الأمر ls -l في ملف باسم my_files.txt. ثم سنعرض محتوى الملف باستخدام cat.
ls -l > my_files.txt
cat my_files.txtإضافة محتوى إلى ملف باستخدام '>>'
قد لا ترغبون أحيانًا في استبدال محتوى ملف، بل في إضافة محتوى جديد إلى نهايته. وهنا يأتي دور العامل >>!
يعيد >> توجيه الإخراج القياسي (STDOUT) إلى ملف، ولكن إذا كان الملف موجودًا مسبقًا، فسيُلحق المخرجات الجديدة بنهايته، مع الحفاظ على المحتوى الموجود.
مثال: الإلحاق بسجل
أنشئوا أولًا ملفًا بسيطًا. ثم استخدموا >> لإضافة سطر آخر إليه. لاحظوا كيف يبقى المحتوى الأصلي محفوظًا.
echo "First line of log." > app_log.txt
echo "Second line added." >> app_log.txt
cat app_log.txtمعالجة الأخطاء باستخدام '2>'
ماذا عن رسائل الخطأ؟ إنها تُرسل إلى الخطأ القياسي (STDERR). لإعادة توجيه STDERR إلى ملف، نستخدم معرّف الملف 2 متبوعًا بالعامل >: 2>.
يُعد هذا مفيدًا جدًا لتسجيل الأخطاء دون إرباك مخرجاتكم الأساسية، أو لتصحيح أخطاء البرامج النصية.
مثال: تسجيل رسائل الخطأ
لنحاول عرض محتويات مجلد غير موجود. ستظهر رسالة الخطأ عادةً على الشاشة. لكننا سنعيد توجيهها إلى errors.log بدلًا من ذلك.
ls /this/path/does/not/exist 2> errors.log
echo "Command finished. Check errors.log."
cat errors.logتوفير الإدخال باستخدام '<'
يُستخدم العامل < لإعادة توجيه الإدخال القياسي (STDIN). فبدلًا من انتظار الأمر أن تكتبوا الإدخال من لوحة المفاتيح، سيقرأ إدخاله مباشرةً من الملف المحدد.
يُعد هذا مفيدًا لأتمتة المهام التي يتوقع فيها الأمر قدرًا كبيرًا من الإدخال، أو عندما تريدون معالجة محتوى ملف مباشرةً.
مثال: الفرز من ملف
سننشئ ملفًا يحتوي على أسماء غير مرتبة، ثم نستخدم الأمر sort لقراءة إدخاله من ذلك الملف باستخدام <.
echo -e "Charlie\nAlice\nBob" > names.txt
sort < names.txtاختبار سريع: إعادة التوجيه
لقد تعلمتم إعادة توجيه الإخراج القياسي، وإلحاق المخرجات، ومعالجة الأخطاء، وتوفير الإدخال من الملفات. لِنختبر مدى فهمكم.
مراجعة: قوة إعادة توجيه I/O
أحسنتم! لقد أتقنتم أساسيات إعادة توجيه I/O في Linux.
>يعيد توجيه STDOUT ويستبدل محتوى الملفات.>>يعيد توجيه STDOUT ويلحق المخرجات بالملفات.2>يعيد توجيه STDERR ويلتقط رسائل الخطأ.<يعيد توجيه STDIN، مما يتيح للأوامر القراءة من الملفات.
تتميز هذه العوامل بقوة كبيرة في كتابة البرامج النصية والتسجيل وأتمتة المهام. واصلوا التدرّب!
الأسئلة الشائعة
هل درس «إعادة توجيه الإدخال والإخراج (>، >>، <)» مجاني؟
نعم — نص درس «إعادة توجيه الإدخال والإخراج (>، >>، <)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «إعادة توجيه الإدخال والإخراج (>، >>، <)»؟
أتقن إعادة توجيه مخرجات الأوامر إلى الملفات واستخدام الملفات كمدخلات للأوامر، مما يعزز مرونة البرامج النصية. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «إعادة توجيه الإدخال والإخراج (>، >>، <)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إدارة العمليات (ps، top، kill)
- إعادة توجيه الإدخال والإخراج (>، >>، <)
- تمرير الأوامر عبر الأنابيب (|)
- المهام الخلفية والتحكم في المهام