Solaris ps aux 명령별 출력. grep과 일치하는 항목을 찾으려면 "ww" 플래그가 필요한 이유는 무엇입니까?

Solaris ps aux 명령별 출력. grep과 일치하는 항목을 찾으려면 "ww" 플래그가 필요한 이유는 무엇입니까?

저는 Oracle Solaris 11.2 SPARC를 사용하기 시작했습니다.

Linux에서는 다음과 같이 쓸 수 있습니다.

ps aux | grep *some_data*

...하지만 Solaris에서는 결과가 표시되지 않습니다.

대신 나는 말해야 해

ps auxww | grep *some_data* 

man ps에 대한 자세한 정보를 찾아보았습니다 .ww

옵션 문자가 반복되는 경우(예: -ww) 이 옵션은 임의로 넓은 출력을 사용합니다.

ww왜 뭔가를 얻기 위해 을 사용해야 합니까 grep?

답변1

Linux에서든 Solaris에서든 비표준 BSD 옵션을 사용하고 있습니다.

-o이식 가능한 방법은 here 처럼 옵션을 사용하여 표시할 필드를 지정하는 것입니다 ps -o pid,args. 최신 11.3 업데이트 이상을 사용하지 않는 한 인수 목록은 루트이거나 프로세스를 소유하지 않는 한 80자로 제한됩니다.

또는 pgrep -fwhich를 사용하여 전체 명령줄을 검색할 수 있습니다.

답변2

Linux에서 이 ps명령은 출력이 터미널로 이동하는지 여부를 감지합니다. 터미널인 경우 출력은 터미널 너비에 맞게 잘립니다. 터미널에 없으면 잘리지 않습니다. 실제로 ww플래그를 자동으로 추가하는 것처럼 동작합니다.

ps aux다음을 입력하여 차이점을 확인할 수 있습니다.ps aux | cat

귀하의 예에서는 출력을 로 파이프하므로 grep를 입력한 것처럼 작동합니다 ps auxww | grep.

이식성을 위해 ww80자를 초과하는 모든 데이터를 보려면 항상 이러한 플래그를 사용해야 합니다.

참고: BSD 형식의 ps명령을 사용하고 있으므로 Solaris에서는 올바른 명령을 호출하고 있는지 확인하십시오!

관련 정보