Redirection وPipes في Linux: ربط الأوامر باحتراف
بعد تعلم الأوامر الأساسية، تأتي المهارة التي ترفع مستواك فعلا: التحكم في مخرجات الأوامر عبر Redirection وPipes.
بهذه المهارة ستبني أوامر مركبة تختصر وقتك وتجعلك تعمل مثل محترفي Linux.
ما معنى Redirection وPipes في Linux؟
- Redirection: توجيه المخرجات أو الأخطاء إلى ملف بدل الشاشة
- Pipes: تمرير ناتج أمر إلى أمر آخر مباشرة
Standard Streams: stdout وstderr وstdin
stdin (0): الإدخالstdout (1): المخرجات العاديةstderr (2): مخرجات الأخطاء
فهم هذه القنوات يجعل أوامرك أدق وأسهل في التصحيح.
الكتابة إلى ملف: > و>>
echo "hello" > output.txt
echo "new line" >> output.txt
>: يستبدل المحتوى القديم>>: يضيف في نهاية الملف
> بحذر لأنه قد يمسح محتوى ملف مهم.
توجيه الأخطاء: 2> و2>>
ls /not-exist 2> errors.log
find /root -name "*.conf" 2>> errors.log
بهذه الطريقة تفصل رسائل الخطأ عن المخرجات العادية.
دمج المخرجات والأخطاء في ملف واحد
command > all.log 2>&1
هذا النمط مفيد عند جمع Log كامل لتنفيذ أمر واحد.
Pipe |: ربط الأوامر في Linux
ls -la | less
ps aux | grep nginx
cat access.log | grep "500"
كل أمر يستقبل ناتج الأمر السابق كمدخل، وهذه فكرة قوية جدا في عالم Linux.
الأمر tee: عرض وحفظ الناتج في نفس الوقت
ls -la | tee files.txt
dmesg | tee -a kernel.log
| الأمر | النتيجة |
|---|---|
tee file |
عرض + كتابة مع استبدال |
tee -a file |
عرض + إضافة بدون حذف المحتوى |
أمثلة عملية تجمع Redirection وPipes
grep -R "ERROR" /var/log 2>/dev/null | tee errors.txt
cat users.txt | sort | uniq > unique-users.txt
df -h | grep -v "tmpfs" > disks-report.txt
هذه الأنماط تستخدم يوميا في التشخيص وإعداد التقارير.
تمرين عملي: Redirection وPipes خطوة بخطوة
cd /tmp
echo "alpha" > lab.txt
echo "beta" >> lab.txt
cat lab.txt | tee copy.txt
ls /not-found 2> err.txt
cat err.txt
cat lab.txt | grep "beta" > result.txt
cat result.txt
إذا خرجت مع ملفات copy.txt وerr.txt وresult.txt صحيحة، فأنت أتقنت الأساس.
FAQ: أسئلة شائعة حول Redirection وPipes في Linux
ما الفرق بين > و>> في Linux؟
> يكتب فوق الملف ويستبدل المحتوى، بينما >> يضيف المحتوى في نهاية الملف بدون حذف السابق.
ما فائدة Pipe | في Linux؟
الـ Pipe يمرر مخرجات أمر إلى أمر آخر مباشرة، مما يسمح ببناء سلاسل أوامر قوية ومرنة.
متى أستخدم tee في Linux؟
استخدم tee عندما تريد عرض الناتج على الشاشة وحفظه في ملف بنفس الوقت.
الخطوة التالية
في الدرس القادم سنتعلم أدوات معالجة النصوص في Linux مثل cut وsort وuniq.
التالي: أدوات النصوص