lsof واخواتها (اوامر للينكس)


في هذا الموضوع ساتحدث عن بعض الاوامر اللتي اعتقد انها مهمة في للمساعدة في تشخيص وصيانة نظام اللينكس وجهاز الحاسب الذي يعمل عليه. يمكن تنفيذ هذه الاوامر كمستخدم عادي، لكن قد لاتكون النتائج كاملة ويجب تنفيذها كمستخدم رئيس (root) للحصول على جميع المعلومات.

اول هذه الاوامر هو lsof وهو اختصار (List Open Files) يعني عرض الملفات المفتوحة، والملفات في نظام اللينكس ليس محصورة بالملفات العادية كما تعرف في نظام الوندوز ولكنها تشمل المجلدات و المكتبات و ارتباطات الشبكة و انواع اخرى من الملفات الخاصه. وعند تنفيد الامر فسيقوم بعرض قائمة بجميع الملفات المفتوحه حاليا و اسم المستخدم الذي قام بفتح الملف ورقم العملية التي تم من خلالها فتح الملف (Process ID) و نوع الملف وحجمة (اذا كان ذو حجم معروف) و مسار الملف. القائمة في الغالب ستكون كبيره جدا ولذا تحتاج في الغالب لعمل تخصيص للتحكم في المخرجات.

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

lsof -i

اوامر مشابهه

 ss -ap
 netstat -tuap

اما في حال اردت معرفة (او اغلاق) ملف مفتوح (مثلا قمت بفتح ملف في كرت ذاكرة خارجي Flash Drive ولكن عند محاولت ازالة الكرت اخبرك النظام بان احد الملفات لازال مفتوحا) فالتوصل للملف المفتوح ومعرفة البرنامج المتصل بذلك الملف عمليه سهلة جدا باستخدام lsof وهي كالتالي: اولا نفرض ان مسار كرت الذاكرة هو /media/disk/ فتقوم بتنفيذ الامر التالي:

lsof | grep /media/disk/

فالامر الاول lsof سيعرض جميع الملفات المفتوحة لكن بدل من تعرض النتائج على الشاشه بل سوف ترسل للامر التالي grep و المسؤل عن عمليه الارسال تلك هي علامة الانبوب | (pipe) حيث ان نظام اللينكس عندما يجد ذلك الخط العمودي بين امرين فانه يمرر مخرجات الامر الاول كمدخلات للامر الثاني. اما الامر grep فان امر ترشيح (Filter) حيث ان يقوم بالبحت في المدخلات عن اي سطر يحتوي على الكلمة المذكورة بعد (في مثالنا هذا فانه يبحث عن /media/disk/) ثم يعرض السطر الكامل الذي يوجد به مثل ذلك النص. فالناتج النهائي من تنفيذ هذا الامر هو قائمة باسم الملف او الملفات التي لاتزال مفتوحة من كرت الذاكرة والبرنامج الذي قام بفتح ذلك الملف ثم ما عليك سوى اغلاق ذلك البرنامج وستتمكن من ازالت الكرت بشكل امن. ولاغلاق البرامج يمكن استخدام الامر kill مع رقم العملية (Process ID) كالتالي:

kill <PID>  (اغلاق البرنامج بطيقة امنة)
kill -9 <PID>  (اغلاق اجباري للبرنامج)

اوامر اخرى من عائلة lsof هي:

lsusb يعرض قائمة باجهزة USB المتصلة حاليا بالجهاز
lspci يعرض قائمة كروت PCI المركبة بداخل الجهاز
lsmod يعرض قائمة بمعرفات الاجهزة التي تم تشغيلها
lspcmcia قائمة كروت PCMCIA المركبة بالجهاز
lshal قائمة الاجهزة المركبة في الجهاز (USB و PCI و غيرة)
lscpu معلومات عن المعالج المستخدم


 السابق
Front Mic problem in Fedora 14 Front Mic problem in Fedora 14
Fedora 14 Dell D620 mic issue fixed by using `amixer` to set "Front Mic" as capture source via a login script.
2011-03-18
التالي 
مبادي نظام اللينكس مبادي نظام اللينكس
يقدم هذا الدليل أوامر لينكس أساسية (مثل man, ls, cp, mv, rm) لمساعدة المستخدمين على إدارة الملفات، العمليات، وعرض معلومات النظام والمساحة عبر سطر الأوامر.
2011-03-11