Apakah ada cara untuk pgrep
memberi saya semua info tentang setiap proses yang ps
dilakukan? Saya tahu saya dapat menyalurkan ps
melalui grep
tapi itu banyak mengetik dan itu juga memberi saya grep
proses itu sendiri yang tidak saya inginkan.
26
function ppgrep() { pgrep "$@" | xargs ps fp 2> /dev/null; }
Jika tidak, jika tidak ada proses yang cocok dengan pencarian Anda, itu akan membuang seluruhps
megilla penggunaan.ps
perlu tanda hubung untuk bendera:function ppgrep() { pgrep "$@" | xargs ps -fp 2> /dev/null; }
-r
yang hanya akan menjalankan perintah jika telah menerima daftar.ps fp $(pgrep -d, "$@")
Kombinasikan
pgrep
denganps
menggunakanxargs
!Misalnya coba
untuk mendapatkan daftar proses lengkap
user
.Sangat menyenangkan bahwa Anda menjaga baris pertama dengan nama kolom.
grep
selalu mencoret nama kolom.sumber
Berikut ini hanya memberi Anda PID + baris perintah penuh. Untuk "semua info yang
ps
ada", lihat jawaban lain ...Sebagian besar linux menggunakan procps-ng . Sejak 3.3.4 (dirilis pada 2012),
pgrep -a
(--list-full
) menunjukkan baris perintah penuh.Catatan: Secara default pgrep hanya cocok dengan pola yang Anda berikan terhadap nama yang dapat dieksekusi. Jika Anda ingin mencocokkan dengan baris perintah penuh (seperti yang dilakukan ps), tambahkan opsi
-f
(--full
).Dalam versi yang lebih lama (termasuk proyek proksi asli ),
-l
opsi menampilkan info tetapi perilakunya bervariasi:pgrep -fl
cocok dengan pola terhadap baris perintah penuh dan menunjukkan baris perintah penuh.pgrep -l
sendiri hanya cocok dengan nama yang dapat dieksekusi dan hanya menunjukkan nama yang dapat dieksekusi.Jika Anda tidak menginginkan kecocokan penuh, Anda tidak dapat melihat baris perintah lengkap :-( [ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526355#15 ]
Tidak yakin kode apa * BSD gunakan tetapi halaman manual mereka mendokumentasikan
-fl
perilaku lama .Sayangnya Anda bahkan tidak dapat menggunakan
-fl
portable - dalam procps-ng baru-baru ini,-f
(--list-name
) selalu hanya mencetak nama yang dapat dieksekusi.sumber
Linux
Untuk versi GNU dari
pgrep
yang-i
(kasus-ketidakpekaan) tidak didukung, dan panjang + keluaran fuzzy dicapai dengan-af
.Halaman manual :
MacOS
Pada OSX (dan berdasarkan inferensi, pada BSD)
-l
( output panjang ) dalam kombinasi dengan-f
( cocok dengan daftar argumen lengkap ) akan menampilkan perintah lengkap (-i
menambahkan case-insensitivity):The man page :
sumber
Gunakan opsi -v untuk grep - ia mengembalikan semuanya TETAPI pola yang diminta.
sumber
pgrep -u user | xargs ps -f -p
Saya rasa tidak ada, informasi paling banyak yang bisa Anda dapatkan adalah nama dan id proses dengan menggunakan opsi -l untuk pgrep.
ps mendukung semua jenis opsi pemformatan, jadi saya hanya akan membuat alias untuk apa Anda ingin menyimpan pengetikan. Cara sederhana untuk mengecualikan proses grep dari output kami untuk menyertakan pipa tambahan
grep -v grep
untuk mengecualikan proses grep.sumber
Untuk menghilangkan
grep
proses tersebut, Anda dapat menggunakan tanda kurung sebagai bagian dari pola Anda:Anda dapat melakukan ini dengan
ps
danpgrep
:sumber
Saya kira ini akan membantu Anda:
ps auxww
sumber