주요 신청 절차 보고서를 이 형식으로 나열하고 싶습니다.
ps -e -o pid,comm,pmem,pcpu,uname
기본 GUI 애플리케이션을 필터링하는 것이 wmctrl -pl
프로세스 ID를 얻을 수 있는 유일한 방법입니다. xlsclients
그것이 작동 한다면 좋을 것입니다. 내가 원하는 실명 목록이 들어있습니다.
원하는 보고서를 얻기 위해 이를 단일 명령으로 결합하려면 어떻게 해야 합니까? (ps -p = xlsclients -p)
답변1
일반적으로 Unix에서는 명령을 함께 연결하며, 많은 명령은 다른 명령에서 생성된 출력과 함께 사용할 수 있도록 특별히 작성되는 경우가 많습니다.
다행스럽게도 출력을 가져와 구문 분석하여 xlsclients
명령 이름만 표시되도록 할 수 있습니다. 그런 다음 이 정보를 ps
명령에 전달하여 원하는 출력을 얻을 수 있습니다.
$ xlsclients
dufresne conky -c /home/slm/.conky/b.conf
dufresne cinnamon-session
dufresne cinnamon-settings-daemon
dufresne csd-locate-pointer
dufresne clipit
$ xlsclients | cut -d" " -f3 | paste - -s -d ','
conky,cinnamon-session,cinnamon-settings-daemon....
그런 다음 이 프로세스 이름 목록을 -C
스위치 에 제공할 수 있습니다 ps
.
$ ps -o pid,comm,pmem,pcpu,uname \
-C $(xlsclients | cut -d" " -f3 | paste - -s -d ',')
노트:-e
이제 목록을 제공하므로 이 스위치를 제거했습니다 ps
.
예
$ ps -o pid,comm,pmem,pcpu,uname \
-C "$(xlsclients | cut -d" " -f3 | paste - -s -d ',')" | head
PID COMMAND %MEM %CPU USER
1998 cinnamon-launch 0.2 0.0 slm
2031 cinnamon 6.5 0.7 slm
16736 cinnamon-launch 0.3 0.0 slm
16738 cinnamon 6.1 2.7 slm
16994 cinnamon-sessio 0.2 0.0 slm
17231 cinnamon-settin 0.4 0.0 slm
17293 csd-locate-poin 0.2 0.0 slm
17331 nm-applet 0.3 0.0 slm
17339 clipit 0.2 0.1 slm
답변2
$ ps -o pid,comm,pmem,pcpu,uname \ -C "$(xlsclients | cut -d" " -f3 | Paste -s -d ',')" |헤더 PID 명령 %MEM %CPU 사용자 1998 Cinnamon 시작 0.2 0.0 slm 2031 cinnamon 6.5 0.7 slm 16736 cinnamon 시작 0.3 0.0 slm 16738 cinnamon 6.1 2.7 slm 16994 cinnamon 세션 0.2 0 .0 slm 17231 cinnamon 설정 0.4 0.0 slm 17 293 csd-locate -point 0.2 0.0 slm 17331 nm 애플릿 0.3 0.0 slm 17339 클립 0.2 0.1 slm