السلام عليكم ورحمه الله وبركاته
تهتم أوامر إعادة التوجيه في لينوكس بتحويل محتوى ملف ما أو نتيجة تطبيق أمر الى ملف آخر أو إدخال لأمر جديد. فمثلا يقوم الأمر 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.
ليست هناك تعليقات:
إرسال تعليق