1
터미널과 관련되지 않은 프로세스의 ID를 모두 찾고 싶습니다.우분투의 터미널과 관련없는 프로세스에 대한 pgrep
ps aux | less
명령을 실행하면 TTY 필드에 ?
문자가있는 많은 프로세스가 나타납니다.
나는 그 프로세스 ID를 얻고 싶습니다. pgrep
으로 해결할 수 있습니까?
나는 here 이상의 문서를 보았지만 잘 모르겠습니다.
터미널과 관련되지 않은 프로세스의 ID를 모두 찾고 싶습니다.우분투의 터미널과 관련없는 프로세스에 대한 pgrep
ps aux | less
명령을 실행하면 TTY 필드에 ?
문자가있는 많은 프로세스가 나타납니다.
나는 그 프로세스 ID를 얻고 싶습니다. pgrep
으로 해결할 수 있습니까?
나는 here 이상의 문서를 보았지만 잘 모르겠습니다.
find
pgrep --inverse -t \
"$(find /dev/ -type c -regex '.*tty[0-9]+' -printf '%f ')"
find
명령은 command substitution을 통해 호출 사용. 명령 대체가 큰 따옴표로 묶여 있으므로 출력은 단일 단어로 preg
으로 전달됩니다.
옵션 : 오직 문자 특수 파일을 선택
-type c
(stat -c '%F' /dev/tty*
확인할 수 있습니다) -regex '.*tty[0-9]+'
+
) 자리 (
[0-9]
)이어서 다 (
.*
)이고;
-printf '%f '
파일 이름 다음에 공백을 인쇄합니다 (find
은 기본적으로 후행 줄 바꿈을 인쇄합니다). -t
옵션은 쉼표 또는 공백으로 구분 된 TTY 이름 목록 ("/dev/"
접두어 제외)을 허용하므로 파일 이름 (%f
) 다음에 쉼표 또는 공백을 넣을 수 있습니다. 파일명 확장 cd /dev
ttys=(tty[0-9][0-9]?[0-9]?)
cd - >/dev/null
pgrep -a --inverse -t "${ttys[*]}"
tty[0-9][0-9]?[0-9]?
사용
?
앞 패턴을 선택한다) 한 개, 두 개 또는 세 개의 숫자 뒤에 tty
로 확장된다.ttys=(words)
은 IFS
- 분리 된 단어 (IFS
을 "입력 필드 구분 기호"라고도 함)에서 배열을 작성합니다.
"${ttys[*]}"
은 IFS
(기본값은 공백)의 첫 번째 문자로 구분 된 배열 항목으로 구성된 단일 단어로 확장됩니다.