أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

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

52972123178_c7bc15383d_o-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

النقاط الرئيسية

  • يمكن لأوامر Linux الاستفادة من التدفقات القياسية للإدخال والإخراج ورسائل الخطأ.
  • ترسل إعادة التوجيه تدفق إخراج إلى ملف بدلاً من نافذة المحطة الطرفية.
  • تتيح لك الأنابيب ربط الأوامر معًا، بحيث يصبح إخراج أحدها مدخلاً لآخر.

في Linux، تتيح لك الأنابيب وإعادة التوجيه استخدام الإخراج من الأوامر بطرق فعّالة. يمكنك التقاطه في ملفات، أو استخدامه كمدخل مع أوامر أخرى. إليك ما تحتاج إلى معرفته.

طالع أيضا
1 من 80

ما هي التدفقات؟

يحتوي Linux، مثل أنظمة التشغيل الأخرى الشبيهة بـ Unix، على مفهوم التدفقات. تحتوي كل عملية على تدفق إدخال يسمى stdin، وتدفق إخراج يسمى stdout، وتدفق للأخطاء يسمى stderr. تحتوي تدفقات Linux، مثل التدفقات في العالم الحقيقي، على نقطتي نهاية. لديهما مصدر أو إدخال، ووجهة أو إخراج.

قد يأتي تدفق الإدخال من لوحة المفاتيح إلى الأمر، مما يتيح لك إرسال نص مثل المعلومات أو الأوامر إلى العملية. يأتي تدفق الإخراج من الأمر، عادةً إلى نافذة المحطة الطرفية. يكتب تيار stderr أيضًا إلى نافذة المحطة الطرفية.

يمكنك إعادة توجيه التيارات ويمكنك توجيهها. تعني إعادة التوجيه إرسال الناتج إلى مكان آخر غير نافذة المحطة الطرفية. تعني التوجيه أخذ ناتج أمر واحد واستخدامه كمدخل لأمر آخر.

اقرأ أيضا:  طرق فعالة لاستخدام FFmpeg على Linux لتحرير وتحويل الفيديوهات

يتيح لك هذا ربط الأوامر معًا لإنشاء حلول متطورة من سلسلة من الأوامر البسيطة التي تعمل بالتعاون.

إعادة توجيه التيارات

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

على جهاز الكمبيوتر الاختباري هذا، يقوم أمر du بإخراج 1380 سطرًا من النص. سنرسل ذلك إلى ملف.

du > disk-usage.txt

1-6 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يخبر القوس الموجود في الزاوية اليمنى shell بإعادة توجيه إخراج stdout من الأمر du إلى ملف يسمى disk-usage.txt. لا يتم إرسال أي إخراج إلى نافذة المحطة الطرفية.

يمكننا استخدام ls للتحقق من إنشاء الملف، وwc لحساب الأسطر والكلمات والحروف في الملف. وكما هو متوقع، يبلغ wc أن الملف يحتوي على 1380 سطرًا.

ls 
wc disk-usage.txt

2-7 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يؤدي هذا النوع من إعادة التوجيه إلى إنشاء الملف أو الكتابة فوقه في كل مرة تستخدمه. إذا كنت تريد إضافة النص المعاد توجيهه إلى نهاية ملف موجود، فاستخدم أقواس الزاوية اليمنى المزدوجة “>>”، مثل هذا.

ls /home/dave-mckay/ -R >> disk-usage.txt 
wc disk-usage.txt 

3-5 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

باستخدام الخيار -N (أرقام الأسطر) مع less، يمكننا التأكد من أن المعلومات الجديدة تمت إضافتها بعد السطر 1380.

4-4 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

إذا كتبنا أمرًا يُنشئ خطأً، فسنرى أنه نظرًا لأننا نعيد توجيه stdout فقط، فإن أي رسائل خطأ stderr لا تزال تُرسل إلى نافذة المحطة الطرفية.

wc disk-usage.txt missing-file.txt > results.txt 
wc: missing-file.txt: No such file or directory
cat results.txt

5-3 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يتم إرسال نتائج disk-usage.txt إلى ملف results.txt، ولكن يتم إرسال رسالة الخطأ الخاصة بملف missing-file.txt غير الموجود إلى نافذة المحطة الطرفية.

يمكننا إضافة مؤشرات رقمية إلى قوس الزاوية اليمنى لتوضيح الدفق الذي نعيد توجيهه. الدفق 1 هو stdout والدفق 2 هو stderr. يمكننا إعادة توجيه stdout إلى ملف واحد وstderr إلى ملف آخر بسهولة تامة.

اقرأ أيضا:  كيف تنتقل من موجه الأوامر في Windows إلى Terminal في Linux بسهولة

wc disk-usage.txt missing-file.txt 1> results.txt 2> error.txt
cat results.txt
cat error.txt

7-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

إذا كنت تريد إعادة توجيه كلا التدفقين إلى ملف واحد، فنحن نعيد توجيه stdout إلى ملف، ونخبر shell بإعادة توجيه stderr إلى نفس الوجهة التي سيذهب إليها stdout.

wc disk-usage.txt missing-file.txt 1> results.txt 2>&1
cat results.txt

7-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يتم التقاط أي رسائل خطأ وإرسالها إلى نفس الملف مثل stdout.

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

rm disk-usage.txt missing-file.txt 1> /dev/null 2>&1

8-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

لا تتم كتابة رسائل stdout أو stderr في نافذة المحطة الطرفية، حتى لو لم يكن أحد الملفات التي نحذفها موجودًا.

الحيلة الأخيرة التي يمكنك القيام بها باستخدام إعادة التوجيه هي قراءة ملف في مجرى stdin الخاص بالأمر.

wc < /etc/passwd

10-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يمكنك دمج هذا مع إعادة توجيه الإخراج.

wc < /etc/passwd > results.txt
cat results.txt

15-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

وضع التدفقات عبر Pipes

يعيد Pipes توجيه الإخراج القياسي لأمر ما بشكل فعال ويرسله إلى stdin لأمر آخر. يعد التوجيه أحد أقوى جوانب سطر الأوامر، ويمكنه تحويل استخدامك لأوامر وأدوات Linux الأساسية.

لتوجيه إخراج أمر ما إلى أمر آخر، نستخدم رمز الأنبوب “|”. على سبيل المثال، إذا أردنا سرد جميع الملفات والدلائل الفرعية في الدليل الرئيسي بشكل متكرر، فسترى ضبابية سريعة مع مرور الإخراج من ls في نافذة المحطة الطرفية.

من خلال توجيه الأمر ls إلى less، نحصل على النتائج المعروضة في عارض ملفات مناسب.

ls -R ~ | less

9-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

إن هذه الطريقة أكثر كفاءة من العملية اليدوية المكونة من خطوتين والتي تتمثل في إرسال الناتج إلى ملف وفتح الملف في وقت أقل.

توجيه الناتج عبر أمر آخر

يصبح التوجيه مفيدًا حقًا عندما يقوم الأمر الثاني بمعالجة إضافية لإخراج الأمر الأول.

اقرأ أيضا:  واجهات نصية تفاعلية تعيد تشكيل تجربة استخدام Terminal

لنحسب عدد حسابات المستخدمين والمستخدمين الوهميين على جهاز الكمبيوتر الخاص بك. سنستخدم الأمر cat لتفريغ محتويات ملف /etc/passwd، ثم ننقله عبر الأمر wc. سيحسب الخيار -l (lines) عدد الأسطر في هذا الملف. ولأن هناك سطرًا واحدًا لكل حساب، فإنه يحسب الحسابات نيابة عنا.

cat /etc/passwd | wc -l

 

10-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يبدو هذا كثيرًا. دعنا نرى أسماء هذه الحسابات. هذه المرة سننقل cat إلى awk. يُطلب من أمر awk استخدام النقطتين “:” كفاصل للحقل، وطباعة الحقل الأول.

cat /etc/passwd | awk -F: '{print $1}'

11-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

يمكننا الاستمرار في إضافة الأوامر. لفرز القائمة، أضف أمر sort بحيث ينتقل الناتج من awk إلى أمر sort.

cat /etc/passwd | awk -F: '{print $1}' | sort

12-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

توجيه الإخراج عبر سلسلة من الأوامر

إليك مجموعة من أربعة أوامر متصلة بثلاثة أنابيب. يسرد الأمر ps العملية الجارية. يسرد الخيار -e (كل شيء) جميع العمليات، ويحدد الخيار -o (إخراج) المعلومات التي سيتم الإبلاغ عنها. تعني رمز الاتصال أننا نريد رؤية اسم العملية فقط.

ثم يتم توجيه قائمة أسماء العمليات إلى grep، الذي يقوم بتصفية العمليات التي تحتوي على chrome في اسمها. يتم إدخال هذه القائمة المفلترة في sort، لفرز القائمة. ثم يتم توجيه القائمة المرتبة إلى uniq. يحسب الخيار -c (العدد) أسماء العمليات الفريدة. ثم، من أجل المتعة فقط، نفعل نفس الشيء بالنسبة إلى Firefox.

ps -e -o comm | grep chrome | sort | uniq -c
ps -e -o comm | grep firefox | sort | uniq -c

13-1 أفضل الطرق لتوجيه البيانات في سطر أوامر Linux

تركيبات لا نهاية لها

لا يوجد حد لعدد الأوامر التي يمكنك توصيلها معًا، فقط كن على علم بأن كل أمر يتم فتحه في غلاف فرعي جديد خاص به. لا ينبغي أن يكون هذا مشكلة حتى على أجهزة الكمبيوتر الحديثة ذات المواصفات المتواضعة، ولكن إذا لاحظت تباطؤًا، ففكر في تبسيط أوامرك. أو كن صبورًا.

إتقان توجيه البيانات في سطر أوامر Linux يمنحك القدرة على التحكم الكامل في العمليات المختلفة وتوفير الوقت والجهد. باستخدام الأوامر والنصائح التي تعلمتها، يمكنك تنفيذ المهام اليومية بكفاءة وتحقيق إنتاجية أعلى. استمر في تجربة الأوامر المختلفة واستكشاف المزيد من الأدوات لتحسين تجربتك مع Linux.

قد يعجبك ايضا