الحلقة الدراسية التاسعة: أوامر لينوكس



ثانيا: أوامر إعادة التوجيه


تهتم أوامر إعادة التوجيه في لينوكس بتحويل محتوى ملف ما أو نتيجة تطبيق أمر الى ملف آخر أو إدخال لأمر جديد. فمثلا يقوم الأمر cat و هو اختصار لـ concatenation عند استخدامه مع الرمز < بإعادة توجيه محتوى ملف واحد أو أكثر من ملف الى ملف جديد و لننظر الى المثال التالي ليتضح المراد:

عند استخدام الأمر التالي:

cat file1 file2 file3

فسيتم عرض محتوى الملفات الثلاث بالترتيب على الشاشة، بينما إذا استخدمنا الأمر بالشكل التالي:

cat file1 file2 file3 > file4

فسيتم تحويل محتوى الملفات الثلاث الى الملف الجديد file4 و للتأكد من ذلك من الممكن استخدام الأمر التالي الذي يعرض محتوى الملف file4 :

cat file4

في المثال التالي سنقوم بإعادة توجيه ناتج أمر ما الى ملف:

ls –F > listfile

حيث سيتم إضافة ناتج الأمر ls –F و هو قائمة مصنفة لمحتويات المجلد الحالي الى الملف listfile

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

cat > newfile

حيث سيقوم الأمر السابق بتوجيه ضرباتك على لوحة المفاتيح الى ملف جديد اسمه newfile و تستطيع بعد تنفيذك للأمر السابق أن تكتب ما شئت و سيتم تحوياه تلقائيا الى الملف newfile و عند رغبتك في التوقف عن الكتابة في الملف تستطيع الضغط على Ctrl+D، و هكذا سيحفظ كل ما كتبته في الملف newfile

و لتتأكد من نجاحك استخدم الأمر cat newfile لعرض محتوى الملف الجديد newfile.

و يجب التنويه أنه إذا استخدمنا الرمز < مع اسم ملف موجود مسبقا فسيتم إلغاء جميع محتوياته و الكتابة فوقها، أما إذا رغبنا بإضافة أي محتويات على ملف موجود مسبقا مع المحافظة على محتواه بحيث يتم إضافة أي كتابة جديدة الى نهاية الملف، فنستطيع استخدام الرمز<< بدلا من < واحدة، فمثلا عند استخدام الأمر التالي :

cat file1 file2 file3 >> oldfile

سيتم إضافة محتويات الملفات file1 و file2 و file3 الى نهاية الملف الموجود مسبقا oldfile

كما نستطيع استخدام إعادة توجيه معكوس و ذلك بتحويل محتوى ملف ما ليكون إدخال لأمر ما و ذلك باستخدام الرمز > كما في المثال التالي:

mail walid < letter

حيث يقوم الأمر السابق بتوجيه محتوى الملف letter الى الأمر mail و الذي يقوم بإرسال الملف الى المستخدم walid.
و نستطيع كذلك توجيه ناتج أمر ما كإدخال لأمر آخر باستخدام الرمز | كما في المثال التالي:

cat tele1 tele2 tele3 | sort

حيث يقوم الأمر السابق بتوجيه ناتج الأمرcat و الذي يقوم بعرض محتوى الملفات tele1 ,tele2, tele3 و التي تحتوي على أسماء أشخاص و أرقام هواتفهم، ثم يتم توجيه هذا المحتوى الى الأمر sort و الذي يقوم بترتيب الأسماء أبجديا و عرضها على الشاشة و بذلك سنحصل على قائمة مرتبة للأسماء الأولى للأشخاص المذكورين في الملفات الثلاث مع أرقام هواتفهم، فلو افترضنا أن محتوى الملف tele1 هو كما يلي:

Mohammed Salim 165317
Saed Ahmad 123243
Khalid Ali 335216

و محتوى الملف tele2 كما يلي:

Raed Jamal 116723
Ali Omar 224389
Kamal Othman 223312

أما الملف tele3 فمحتواه كما يلي:

Badr Jasim 119876
Ilyas Idrissi 367890
Mamoun Ibrahim 187620

بعد تنفيذ الأمر المذكور أعلاه سنحصل على النتيجة التالية على الشاشة:

Ali Omar 224389
Badr Jasim 119876
Ilyas Idrissi 367890
Kamal Othman 223312
Khalid Ali 335216
Mamoun Ibrahim 187620
Mohammed Salim 165317
Raed Jamal 116723
Saed Ahmad 123243

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

& sort file1

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

إذا وضعت أكثر من ملف في الخلفية و رغبت في أي وقت بالتعرف على الأوامر و العمليات التي تعمل في الخلفية فتستطيع استخدام الأمر ps و الذي يأتي مع عدد من الخيارات مثل e و الذي يختار جميع العمليات، و f و الذي يعرض قائمة كاملة للعمليات التي تعمل في الخلفية و يكتب الأمر كما يلي:

ps –ef

و إذا استخدمت الأمر بالشكل التالي:

ps –ef | grep khalid

فسيتم عرض كافة العمليات التي يشغلها المستخدم khalid.

من خلال تنفيذ الأمر تستطيع التعرف على كل عملية و المقدار الذي تستهلكه من قوة المعالج، و عند الرغبة بقتل أو إيقاف عملية ما تستطيع استخدام الأمر kill مع رقم العملية id الذي يظهر في القائمة كمثال:

kill 1457

الأمر السابق سيوقف العملية ذات الرقم 1457.

بهذا تنتهي حلقة اليوم، و ابقوا معنا للتعرف على المزيد من أوامر لينوكس.

 

 

 


Copyright © www.kettaneh.net