psgrep 별칭은 프로세스 ID와 명령을 표시합니다.

psgrep 별칭은 프로세스 ID와 명령을 표시합니다.

모든 옵션을 지정하지 않고 명령 이름과 인수만 표시하도록 이 함수를 다시 작성하고 싶습니다.awk

function psgrep() 
    # show process id and command with arguments
    ps aux | grep "${1:-.}" | grep -v grep | awk '{print $2, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20}'
}

답변1

특정 실행 파일(기술적으로는 이름으로)을 검색하려면 psHP/UX(출처)와 같은 일부 구현 또는 다음 구현을 사용하세요 procps-ng.

ps -o pid,args -C "$1"

프로세스 매개변수 목록을 기반으로 보다 일반적인 검색을 원하는 경우(사용법에서 알 수 있듯이) ps u확장된 정규식 일치를 위해 다음과 같이 출력을 사후 처리할 수 있습니다.ps -A -o pid,argsawk

ps -A -o pid,args | RE="$1" awk 'NR==1 || $0 ~ ENVIRON["RE"]'

(정규식은 pid와 인수 목록 모두와 일치합니다.)

여기의 정규식은 다음이 아닌 환경 변수를 awk통해 전달됩니다 .RE-v

  • awk이는 프로세스의 자체 매개변수 목록 에 나타나는 정규식을 방지하여 결과적으로 해당 매개변수가 선택될 수 있습니다.
  • -v그렇지 않으면 발생할 수 있는 백슬래시 손상(정규 표현식에서 일반적임)을 해결합니다 .

답변2

pgrep2007년부터 사용된 실제 도구를 잊지 마세요 .

https://github.com/jvz/psgrep

답변3

대부분의 시스템에는 pgrep이름(보고자 ps) 또는 인수 목록( ps -f보고자 또는 BSD 버전 ps u)을 기반으로 프로세스를 검색할 수 있는 명령(원래 90년대 후반 Solaris에서 유래)이 있습니다.

pgrep -lf extended-regular-expression

인수 목록(인수와 공백의 연결)이 확장 정규식과 일치하는 프로세스가 보고됩니다.

Solaris의 원본 구현, BSD 구현 및 Toy Box(Android) 구현을 포함한 대부분의 구현에서 -lpid가 반환되고 정규 표현식이 다시 일치하는 항목이 여기에 -farg 목록과 함께 있지만 procps-ng에서 구현됩니다. 대부분의 GNU/Linux 배포판에 있지만 pgrep -af extended-regular-expression변경해야 합니다.

관련 정보