فرمان Pgrep در لینوکس
این آموزش اصول فرمان pgrep در لینوکس را پوشش می دهد.
pgrep یک ابزار خط فرمان است که به شما امکان می دهد شناسه فرایند یک برنامه در حال اجرا را بر اساس معیارهای داده شده پیدا کنید. این می تواند یک نام کامل یا جزئی از فرآیند ، کاربری باشد که روند کار را انجام می دهد یا سایر ویژگی ها را نشان می دهد.
دستور pgrep بخشی از بسته های procps (یا procps-ng ) است که تقریباً در تمام توزیع های لینوکس از پیش نصب شده است.
نحوه استفاده از دستور pgrep
نحو دستور pgrep به شرح زیر است:
pgrep [ OPTIONS ] <PATTERN>
تطبیق <PATTERN> با استفاده از عبارات منظم گسترده مشخص شده است.
در صورت عدم استفاده از گزینه pgrep میتوان PID های همه برنامه های در حال اجرا را که با نام مشخص شده مطابقت دارد ، نشان می دهد. به عنوان مثال ، برای پیدا کردن PID سرور SSH ، شما اجرا می کنید:
1 | pgrep ssh |
اگر فرآیندهای در حال اجرا با نام های “ssh” مطابقت داشته باشد ، PID های آنها روی صفحه نمایش داده می شود. در صورت عدم یافتن ، خروجی خالی است.
با این دستور هنگامی که حداقل یک فرآیند در حال اجرا با نام درخواست شده مطابقت داشته باشد ، 0 برمی گردد. در غیر این صورت کد خروجی 1 است. این می تواند در استفاده از اسکریپت های شل مفید باشد.
pgrep شناسه هر فرآیند را در یک خط جدید چاپ می کند. گزینه -d به شما امکان می دهد تا تعیین کننده متفاوت را مشخص کنید. به عنوان مثال ، اگر می خواهید از فضایی به عنوان تعیین کننده استفاده کنید ، وارد کنید:
1 | pgrep ssh -d' ' |
گزینه -l به pgrep دستور می دهد تا نام فرایند را به همراه شناسه آن نشان دهد:
1 | pgrep ssh -l |
pgrep برای انجام عملیات جستجو از عبارات منظم استفاده می کند و تمام فرآیندهای موجود در “ssh” را در نام آنها ذکر می کند:
خروجی:
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
اگر می خواهید فقط با فرایندی که نام ها دقیقاً به عنوان الگوی جستجو مطابقت دارند ، مطابقت داشته باشید:
1 | pgrep '^ssh$' -l |
خروجی:
6850 ssh
به طور پیش فرض ، pgrep فقط با نام فرایند مطابقت دارد. زمانی که از گزینه -f استفاده می شود از دستورات در برابر لیست کامل آرگومان ها استفاده می کند.
1 | pgrep -f ssh |
از گزینه -u برای گفتن به pgrep برای نمایش فرایندها توسط یک کاربر خاص استفاده کنید:
1 | pgrep -u root |
برای مشخص کردن چندین کاربر ، نام آنها را با کاما از هم جدا کنید:
1 | pgrep -u root,mark |
همچنین می توانید گزینه ها و الگوهای جستجو را با هم ترکیب کنید. به عنوان مثال برای چاپ تمام مراحل و نامهای آنها که تحت یوزر ” mark” قرار دارند و حاوی “gnome” در نامهای آنهاست:
1 | pgrep -l -u mark gnome |
برای نمایش حداقل کمترین مراحل اخیر (قدیمی ترین) یا جدیدترین (جدیدترین) مراحل شروع ، از گزینه -n (برای جدیدترین) یا گزینه -o (برای قدیمی ترین) استفاده کنید.
به عنوان مثال ، برای یافتن جدیدترین فرآیند شروع شده توسط کاربر ” mark ” ، وارد کنید:
1 | pgrep -lnu mark |
همانطور که از مثال بالا می بینید ، همچنین می توانید گزینه ها را بدون فاصله بین آنها و با یک دش ترکیب کنید.
یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.
وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید و همچنین با ارائه گارانتی 100% برگشت وجه ریسک خرید شما را به %0 کاهش میدهد.
برای معکوس کردن تطبیق ، یعنی برای نمایش فقط فرآیندهای مطابق با معیارهای مشخص شده ، از گزینه -v استفاده کنید. دستور زیر تمام فرایندهایی را که توسط کاربر”mark” اجرا نمی شوند چاپ می کند:
1 | pgrep -v -u mark |
گزینه -c به pgrep می گوید که فقط تعداد فرآیندهای تطبیق را چاپ کند. به عنوان مثال برای یافتن فرایندهایی که به عنوان “mark” اجرا می شوند ، وارد کنید:
1 | pgrep -c -u mark |
نتیجه گیری
دستور pgrep برای یافتن PID های یک برنامه در حال اجرا بر اساس معیارهای مختلف استفاده می شود.
برای کسب اطلاعات بیشتر در مورد دستور pgrep ، به صفحه pgrep man مراجعه کرده یا در ترمینال خود نوع man pgrep را تایپ کنید.
یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.