গ্রেপ ব্যবহার না করে কীভাবে নাম দিয়ে কোনও প্রক্রিয়া অনুসন্ধান করব?


62

একটি প্রক্রিয়া আপনি ব্যবহার করতে পারেন জন্য অনুসন্ধান করতে জন্য psসঙ্গে grep

উদাহরণস্বরূপ ফায়ারফক্স অনুসন্ধান করুন

ps aux | grep firefox

কীভাবে ব্যবহার না করে একই উত্তর পাবেন grep?


1
আমি কৌতূহল করছি আপনি কেন এটি করতে চান, এই ps/grepসমাধানটি এত ভাল কাজ করে?
নিউরনেট

ওপি কেবল একটি সংক্ষিপ্ত কমান্ড চায় যা আমি অনুমান করব। যদি এর মতো কোনও জিনিস থাকে ps -n <process name>তবে তার প্রয়োজনের উত্তর দেবে। ps -n firefoxচেয়ে একটু খাটো ps | grep firefox। ব্যবহারকারী আইডির জন্য psইতিমধ্যে ফিল্টার করতে pidবা প্রক্রিয়া করতে পারে , সুতরাং প্রক্রিয়া নামের উপর ফিল্টার করা যুক্তিসঙ্গত প্রশ্ন।
জোচেম শুলেনক্লোপার

উত্তর:


71

pgrepকমান্ড, এবং তার সহোদর pkill, এই উদ্দেশ্যে অবিকল বিদ্যমান:

  • pgrep firefox কমান্ডের সাথে মেলে এমন সমস্ত প্রক্রিয়া তালিকাবদ্ধ করবে firefox
  • pgrep -f firefox যার সমস্ত কমান্ড লাইনের সাথে মেলে সমস্ত প্রক্রিয়া তালিকাবদ্ধ করবে firefox
  • pgrep -x firefox যার কমান্ডগুলি হুবহু মিলে যায় এমন সমস্ত প্রক্রিয়া তালিকাবদ্ধ করবে firefox
  • ... ইত্যাদি।

এবং স্বাভাবিকভাবেই pgrepনিজেকে ম্যাচ থেকে বাদ দেবে, সুতরাং এর সাথে সম্পর্কিত কোনও grepরীতিনীতিগুলির ps | grepপ্রয়োজন নেই।


এর জন্য সরঞ্জামগুলির অন্যান্য সেট হ'ল pidofঅ্যান্ড killallকমান্ড। এই হিসাবে হিসাবে নমনীয় নয় pgrepএবং pkill

  • pidof firefox যার কমান্ড প্রক্রিয়া তালিকাবদ্ধ করবে firefox

24
ps -fC process-name

উদাহরণ:

ps -fC firefox

থেকে man ps

  -C cmdlist      Select by command name.
                       This selects the processes whose executable name is
                       given in cmdlist.


 -f              Do full-format listing. This option can be combined
                       with many other UNIX-style options to add additional
                       columns. It also causes the command arguments to be
                       printed. When used with -L, the NLWP (number of
                       threads) and LWP (thread ID) columns will be added. See
                       the c option, the format keyword args, and the format
                       keyword comm.

এটি সেরা উত্তর তবে দুর্ভাগ্যক্রমে ওএসএক্সে কাজ করে না। বিএসডি ps -Cপতাকা পুরোপুরি আলাদাভাবে আচরণ করে - "সিপিইউ শতাংশ গণনা করার
পদ্ধতিটি

2

topআপনি যখন বড় হাতের আঘাত করেন তখন আপনাকে স্ট্রিং অনুসন্ধান করতে দেয় L; প্রক্রিয়াটি হাইলাইট করা হবে এবং প্রক্রিয়াগুলির তালিকার মাধ্যমে স্ক্রোল করতে উপরে এবং নীচে তীর কীগুলি ব্যবহার করুন। একইভাবে, htopকমান্ড একটি নির্দিষ্ট প্রক্রিয়া হাইলাইট করার অনুমতি দেয় যখন আপনি আঘাত করবেন /। এবং \নামের একটি নির্দিষ্ট স্ট্রিং সহ সমস্ত প্রক্রিয়া ফিল্টার করবে।

যারা awk মত যারা জন্য, এখানে একটি awk oneliner আছে: ps -eF | awk '/process-name/ {print $11}' । সঙ্গে ps -eFপ্রক্রিয়া নাম 11 তম কলামে সর্বদা। বিকল্প হিসাবে আপনি যদি ps -eF | awk '{print $11}' | sortপ্রসেস নামের একটি বাছাই করা তালিকা পান, বর্ণানুক্রমিকভাবে বাছাই করা। lessকেবলমাত্র ফাইলের দীর্ঘ তালিকা সহজেই দেখতে এটি কমান্ডে পাইপ করুন ।


2

একটি দুর্দান্ত কৌশল

$ps -ejH

নাম সহ সমস্ত প্রক্রিয়া পাবেন

exmple:
1747   568   568 ?        00:00:00   colord
1833  1832  1832 ?        00:00:00   gnome-keyring-d
2263   568   568 ?        00:00:00   udisksd
2311  2311  2311 ?        00:00:00   cupsd
2315  2315  2311 ?        00:00:00     dbus

পুনঃনির্দেশ বা তাই কোনও ফাইলের আউটপুট অনুলিপি করুন এবং তারপরে খুলুন nano, Ctrl+ টিপুন W এবং আপনি যে নামটি চান তার জন্য অনুসন্ধান করতে পারেন।


1

আপনি ব্যবহার করতে পারেন htopএবং তারপরে কোনও ম্যাচের ব্যবহারকারী-সংজ্ঞায়িত স্ট্রিংয়ের সাথে ফলাফলগুলি ফিল্টার করতে F4 টিপুন। আপনার কাছে এফ 3 টি দিয়ে কাস্টম অনুসন্ধান বৈশিষ্ট্যও পাওয়া যায়।


1

দুটি প্রক্রিয়া যদি সমস্যা হয় তবে আপনি কেবল গ্রেপ ব্যবহার করতে পারেন :

grep firefox /proc/*/cmdline

0

আমি কেবল এই পিএন ওরফে লেনার্ট পোয়েটারিং ব্লগে পড়েছি। সিস্টেমড কন্ট্রোল গ্রুপ প্যারেন্টিং অনুসারে আউটপুটটি হয়:

alias psc='ps xawf -eo pid,user,cgroup,args'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.