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

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

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

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

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

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

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

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

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

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

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

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

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

اقرأ أيضا:  كيفية حماية كمبيوتر Linux الخاص بك من محركات أقراص USB الإحتيالية

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

du > disk-usage.txt

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

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

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

ls 
wc disk-usage.txt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

اقرأ أيضا:  طريقة عرض إحصائيات مشروع Git بشكل جميل في Terminal

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

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

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

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

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

wc < /etc/passwd

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

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

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

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

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

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

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

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

ls -R ~ | less

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

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

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

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

اقرأ أيضا:  خطوات تحديث Arch Linux بسهولة

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

cat /etc/passwd | wc -l

 

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

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

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

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

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

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

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

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

إليك مجموعة من أربعة أوامر متصلة بثلاثة أنابيب. يسرد الأمر 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

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

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

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

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

قد يعجبك ايضا