저는 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 -f
which를 사용하여 전체 명령줄을 검색할 수 있습니다.
답변2
Linux에서 이 ps
명령은 출력이 터미널로 이동하는지 여부를 감지합니다. 터미널인 경우 출력은 터미널 너비에 맞게 잘립니다. 터미널에 없으면 잘리지 않습니다. 실제로 ww
플래그를 자동으로 추가하는 것처럼 동작합니다.
ps aux
다음을 입력하여 차이점을 확인할 수 있습니다.ps aux | cat
귀하의 예에서는 출력을 로 파이프하므로 grep
를 입력한 것처럼 작동합니다 ps auxww | grep
.
이식성을 위해 ww
80자를 초과하는 모든 데이터를 보려면 항상 이러한 플래그를 사용해야 합니다.
참고: BSD 형식의 ps
명령을 사용하고 있으므로 Solaris에서는 올바른 명령을 호출하고 있는지 확인하십시오!