في كثير من الأحيان نحتاج إلى قتل عملية من خلال محطة. إذا عرفنا الاسم الكامل للعملية (على سبيل المثال كيت) ليس لدينا مشاكل بسيطة:
killall kate
إنه يحل المشكلة بالنسبة لنا ... لكن ماذا يحدث إذا لم نعرف الاسم الدقيق للعملية؟
في تلك المناسبات ، يتعين علينا سرد جميع العمليات مع سكرتير خاص كما هو موضح في الصورة التالية:
ثم ابحث عن PID للعملية ، والذي في هذه الحالة نبحث عن PID لـ كيت:
kill 3808
وفويلا ، هناك نقتل العملية.
حسنًا ... في سطر واحد يمكننا البحث عن العملية (دون الحاجة إلى معرفة الاسم الكامل) ، ومعرفة PID الخاص بها ، وكذلك قتلها:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill
كما ترى:
- نسرد العمليات (سكرتير خاص)
- لا نعرف الاسم الكامل أو الدقيق لـ كيت (مهلا ، يمكن أن يكون kate-editor أو شيء من هذا القبيل) لذلك نقوم بالتصفية حسب كات (جريب كات)
- لكننا سنحصل على عمليتين مرتبطتين بـ kat إذا استخدمنا هذا الفلتر فقط ، واحدة هي عملية kate ، والأخرى هي العملية التي نقوم بتنشيطها للتصفية ، أترك لك لقطة شاشة حتى تتمكن من إنهاء الفهم: (لاحظ أن هناك سطرين ، أي عمليتان)
- لتجنب ما تم شرحه من قبل ، قمنا بعمل مرشح آخر (grep -v grep). ما سنفعله بالعكس ... إذا قمنا بالتصفية باستخدام grep ، فسيظهر فقط التطابقات مع المرشح ، وكذلك جريب -v نوصيك بعدم إظهار المباريات ، ولكن لإظهار ما لا يتطابق. أعرض لك لقطة شاشة توضح كيف ستكون النتيجة حتى الآن: (لاحظ أن عملية كيت فقط تظهر الآن)
- حسنًا ، لقد قمنا بالفعل بعزل العملية التي نريد قتلها ، والآن علينا فقط استخراج PID الخاص بها وهو الرقم الثاني ، أي ، 4062. و PID في العمود الثاني (يحتوي العمود الأول على مستخدم برقم UID 1) ، لذلك باستخدام awk يمكننا القول أنه يظهر فقط من هذا السطر ما يجده في العمود الثاني (awk "{print $ 2}"). وهو ما سيظهر لنا فقط رقم العملية ، أي فقط PID سيظهر في الجهاز.
- لكننا لا نريد إظهار PID ، ما نريده هو قتل العملية باستخدام PID هذا ... لذلك سنفعل ذلك ، ونمرر ما لدينا حتى الآن إلى الأمر قتل و مستعد (xargs قتل)
- ماذا يعني ذلك xargs؟ ... بسيط ، في هذه الحالة لا يمكننا تمرير PID للقتل بالأنابيب فقط ( | ) ، هذا ببساطة لا يكفي ، لذا فإن xargs (يسمح بتمرير القيم أو البيانات ثم تنفيذها أو قتلها) هو ما سيسمح لنا بإنهاء المهمة.
وهنا تنتهي 😀
نعم ... أعلم أن هذا يبدو معقدًا بعض الشيء ، ولهذا السبب بالتحديد حاولت شرحه بأفضل ما أستطيع.
أعلم أن القليل من الناس قد يحتاجون إلى هذا الأمر، لكن الهدف من هذه المقالة هو نفس هدف DesdeLinux، علمهم شيئًا جديدًا كل يوم، وأحاول دائمًا أن أجعلهم يفقدون خوفهم من Linux... وأنا شخصيًا أود أيضًا أن يتعلموا استخدام الوحدة الطرفية دون خوف 😉
على أي حال ... أتمنى أن تكون قد وجدت أنها مثيرة للاهتمام ، وأواصل تعلم كيفية استخدامها AWK وهو حقًا رائع.
تحياتي
هذا صحيح ، لقد كان awk مفيدًا جدًا بالنسبة لي وأعتقد أن أي شخص يحتاج إلى معالجة الملفات النصية المهيكلة يوصى بشدة بمعرفة كيفية استخدامه.
لدي سؤال فقط (لا علاقة له بالإدخال: D) ، كيف (وبأي برنامج) قمت بعمل هذا التأثير الضبابي الذي يسمح لك بتمييز جزء من لقطة الشاشة؟
تحية.
بروباندو إذا كان هذا من التنسيق يعمل وإذا لم يكن كذلك يقول لي أحدهم كيف أفعل ذلك
شكرا جزيلا.
حسنًا ، نعم ... لقد أعدت اكتشاف Linux الآن بعد أن عرفت كيفية العمل مع awk HAHAHAHA.
حول التأثير وكذا ، لا شيء ... إنه مجرد Gimp 😀
أقوم بتحديد الجزء الذي أريد تمييزه ، ثم قصه باستخدام [Ctrl] + [X] وألصقه كطبقة جديدة ، ثم حدد الطبقة السفلية (وهي الطبقة التي أريد تعتيمها) وانتقل إلى المرشحات- »Gaussian (أو أي شيء تكتبه الكالينجيون) وفويلا.
الآن ، لإعطائها التأثير الداكن ، أقوم ببساطة بإنشاء طبقة جديدة (خلفية بيضاء) ووضعها بين هاتين الطبقتين اللتين لديهما بالفعل ، أعطيها اللون الأسود وفي شريط الشفافية (الزاوية اليمنى العليا) أنقلها إلى حيث أحقق التأثير المطلوب .
تحياتي وشكرا على التعليق 🙂
كبير!!
إذا كانت العملية من برنامج مرئي ، فلا شيء أكثر راحة من الكتابة اكس كيل على وحدة التحكم ، انقر فوق البرنامج لقتل ، وفويلا.
انقر فوق البرنامج للقتل
هيه نعم ... هذا على افتراض أن لديك واجهة مستخدم رسومية هيه.
هذا صحيح ، ولهذا قلت "إذا كانت العملية من برنامج مرئي".
من الأسهل النقر فوق الزر الذي يحمل علامة "X". لا يزال لدى جنوم شل هذا الزر ، أليس كذلك؟ :-د.
إذا تم تجميد البرنامج (وهذا هو السبب الرئيسي لحاجتك إلى إنهاء العملية) فمن المنطقي أن هذا الزر لن يستجيب مهما ضغطت عليه.
أعتقد أن GNOME Shell ستزيله قريبًا حتى تتمكن من رؤية الإعجاب الملموس لإغلاق النوافذ عن طريق سحبها إلى أسفل الشاشة كما في Windows 8. وغني عن القول ، إنه تمرين رائع على الشاشات العريضة.
أنا أفهم الآن. في هذه الحالة ، أفضل Control + Alt + Esc (في كيدي).
لا أطيق الانتظار لرؤية معاينات GNOME Shell الجديدة ، فهي متعة حقيقية.
هذا يفعل نفس الشيء ولكن أقل مكتوبًا.
في هذه الحالة ، أخذت ورقة الأوراق كمثال وهذا هو سبب ظهور الورقة في grep
ps -e | grep leaf | awk '{print $1}' | xargs kill
تحياتي
تفو! ابني ، حاول تشغيل "pgrep kat" ، وهي "pgrep" لشيء ما.
وتنفيذ "رجل pgrep". و "man pidof" ، والتي يمكن أن تساعدك أحيانًا "pidof".
ولتنفيذ «ps aux | grep [k] at "، والتي لن تعود نتيجة" العملية التي نقوم بتنشيطها للتصفية "التي تعلق عليها ، وبالتالي توفر لك العمل.
تحيات!
أوه ، و "pkill" ، الذي يفعل ما تبحث عنه. على سبيل المثال: "pkill kat".
أوه ، مثير للاهتمام ... لم أكن أعرف pgrep 🙂
شكرا على النصيحة 😀
شكرا لك ولمقالاتك.
بالمناسبة ، في https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ علّق على تقنية استخدام أوامر مثل «ps aux | grep [n] program_name "، يشرحونه أفضل مني هناك.
تحيات!
شكرا على الرابط 😀
هذا هو الشيء العظيم في وجوده. DesdeLinux…لا يهم إذا كنت مستخدمًا أو محررًا أو مسؤولًا، فنحن جميعًا نتعلم دائمًا أشياء جديدة 🙂
تحياتي وشكرا مرة أخرى صديقي.
شكرًا جزيلاً لكم جميعًا على وقتكم وتفانيكم ، فهذا يجعل الأمر يستحق زيارة هذا الموقع وقراءته عدة مرات في اليوم.
شكرا لك مرة أخرى.
KZKG ^ Gaara هو نفسه دائمًا تقريبًا ، عندما يتعلق الأمر بهذه الأنواع من النصائح ، هناك شخص آخر يفعل الشيء نفسه بأمر بسيط. لكنني أهنئه ، فهو دائمًا يساهم بشكل مستمر.
هيه نعم ... أعرف كيف أفعل X osa وأتيت إلى هنا وأشارك الطريقة ، لكنهم بعد ذلك يتشاركون طريقة أبسط لتحقيق نفس الشيء ههههه ، لكن مع هذا فزنا جميعًا ، أليس كذلك؟ 😀
هذا صحيح 0 /
هاهاها ، أنت دائما تسلك الطريق الأكثر تعقيدا. 😀
HAHAHA نعم ، لطالما فكرت: «إذا كنت أعرف كيفية القيام بذلك بالطريقة الصعبة ، فسوف أتعلم القيام بذلك بالطريقة البسيطة دون مشاكل.»و… العكس لا يعمل بنفس هههههه.
ستكون المشكلة إذا كانت لدينا عمليتان تحملان اسمًا مشابهًا.
على سبيل المثال ، عملية كيت ، وعملية أخرى ... mmm ... دعنا نقول kater xD
بمثل هذا الأمر نقتل كلاهما ، أليس كذلك؟
حسنًا ، هذا سيحدث 🙂
TT الفقيرة كيت. أستخدم xkill في KDE ، حيث يتم تشغيله بسرعة باستخدام "ctrl + alt + esc" أو أيضًا باستخدام "ctrl + Esc" وفتح "أنشطة النظام" وقم بذلك بشكل بياني. الآن يجب تعلم هذا الإجراء من خلال الجهاز الطرفي ، على الرغم من أن لدي خادم منزلي مع Debian مستقر ولا يتعطل على الإطلاق.
عظيم! الآن بعد أن أخذت دورة أنظمة التشغيل وأحتاج إلى أداء المهام مع الجهاز ، كان البرنامج التعليمي الخاص بك مفيدًا جدًا! شكرا
شرح جيد جدًا ، رائعة المدونة التي قابلتها للتو ، وأشيرها إلى المفضلة. شكرا.
حسنًا ، هذا جيد ، على الرغم من وجود أوقات لا يمكن قتلهم فيها….
بكيل-9
pkill -9 "اسم العملية"
في التعليق السابق أضع «» لكنه لم يخرج xD
ليلة سعيدة ، لدي وقت لقراءة خلاصتك واليوم قررت تجربة هذا الأمر ps ax | الكروم grep | grep -v grep | awk '{print $ 1}' | xargs kill و أحصل على خطأ القتل التالي: لا يمكن العثور على العملية "؟" مع قليل من الخبرة التي أملكها في باش قررت إجراء بعض التعديلات وفي النهاية بقيت مع ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill نظرًا لاستخدام ps -A لإظهار جميع العمليات في شكل موجز وأن الشذوذ الثاني هو أنه ألقى TTY «؟» وقد نجح الأمر بالنسبة لي ، شكرًا جزيلاً لك. أحببت مدونتك ، تحياتي
شكرًا كومبا ، لا يمكنك تخيل مقدار المشكلات التي قمت بحلها من أجلي باستخدام هذا الأمر.
تحياتي!
شكرا !!!!
منشور ممتاز. فقط ما كنت أبحث عنه ولم أعرف كيف أفعله ، وكان الشرح جيدًا جدًا.
تحية.