SSH 서버를 실행 중이며 삭제할 사용자가 있습니다. 이 사용자는 현재 내가 먼저 종료해야하는 몇 가지 프로세스를 실행 중이므로 삭제할 수 없습니다.
이것은 현재 사용중인 사용자의 모든 프로세스 ID를 찾기 위해 현재 사용중인 파이프 라인입니다.
ps -u user | awk '{print $1;}'
출력은 다음과 같습니다.
PID
2121
2122
2124
2125
2369
2370
kill -9
이 멍청한 사용자를 다음과 같이 삭제할 수 있도록 모든 프로세스를 죽이기 위해 이것을 파이프하고 싶습니다.
ps -u user | awk '{print $1;}' | sudo xargs kill -9
그러나 이것은 PID
헤더 때문에 작동하지 않습니다 .
kill: failed to parse argument: 'PID'
첫 번째 입력 줄을 제거하려면 간단한 Unix 명령이 있어야한다고 생각합니다.
나는 tail
이것을 사용할 수 있다는 것을 알고 있지만 정확히 몇 줄을 표시하고 싶은지 파악하기 위해 입력에 포함 된 줄 수를 세고 싶지 않습니다.
내가 좋아하는 뭔가를 찾고 있어요 head
또는 tail
하지만 반전 (대신에 표시하는 유일한 스트림의 첫 번째 / 마지막 부분은 표시 모든하지만 스트림의 시작 / 끝).
명령 | grep [[:digit:]]
뒤에 간단히 추가하여이 문제를 해결할 수 awk
있었지만 다른 시나리오에서 매우 유용하다고 생각되는 파일의 첫 번째 줄을 삭제하는 방법을 찾고 있습니다.
참고 : 시스템에 이미있는 경우 pgrep
/ pkill
당신은 다시 발명 여기에 바퀴를. 시스템에 이러한 유틸리티가 없으면의 출력을 형식화 ps
하여 방해받지 않는 PID 목록을 직접 가져올 수 있습니다.ps -u user -opid=
이미을 사용중인 경우 awk
첫 번째 줄 (레코드)을 제거하기 위해 추가 프로세스를 통해 파이프 할 필요가 없습니다. 레코드 번호에 조건을 추가하기 만하면됩니다.NR
ps -u user | awk 'NR>1{print $1;}'
head
및 을 언급 했으므로이 tail
경우에 원하는 공식은 다음과 같습니다.tail -n +2
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다