두 개의 필드를 함께 인쇄하고 싶습니다. 모든 열린 포트와 이를 사용하는 응용 프로그램입니다. 다음은 내 명령이지만 포트 번호만 인쇄하고 프로그램 필드는 여전히 누락되어 있습니다.
netstat -lnt -u -p | awk '{print $4}' | sed 's/.*://' | sort -n | uniq
"PID/프로그램 이름"이 "java"를 반환하는 것과 같은 프로그램 이름을 인쇄하도록 수정하려면 어떻게 해야 합니까?
" "의 예는 netstat -lnt -u -p
다음과 같습니다.
tcp, 0, 0, 10.194.194.21:36195, 0.0.0.0:*, 듣기, 2969/java
포트 번호와 프로그램 이름만 보고 싶습니다.
36195 java
답변1
6번째 필드와 4번째 필드를 인쇄해야 합니다.
그러면 예상한 결과가 반환됩니다. (명령 결과를 모르기 때문에 좀 더 효율적인 방법이 있을 것 같습니다.)
netstat -lnt -u -p | awk '{print $4,$6}' | sed 's/.*://' | sort -n | uniq
고유한 포트와 프로그램 이름을 얻는 방법은 다음과 같습니다( sed
추가 sort
명령이 필요하지 않으며 다음을 수행할 수 있습니다).고유한및 해당 -u
옵션):
netstat -lnt -u -p | awk -F"[,:/]" '{print $5,$NF}'| sort -un
36195 java
답변2
단축된 솔루션:
netstat -lpunt | awk -F' +|:+|/' '$5{print $5,$10}' | sort -n
-F' +|:+|/'
- 필드 구분 기호(공백, 콜론 또는 슬래시)$5
- 포트 번호$10
- 프로그램 이름