?
사용자
ps aux 명령어 활용: top/htop 없이 실시간 프로세스 정보 얻기
top 또는 htop 없이 현재 실행 중인 프로세스 목록을 자세히 확인하고 특정 기준으로 정렬해야 할 때 유용합니다. 시스템 리소스 사용량을 빠르게 파악하는 데 도움이 됩니다.
#ps#shell#process#cli#linux
recipe.sh
# ps aux 명령어 레시피: top/htop 대안 이 레시피는 Cursor 환경에서 `top`이나 `htop`과 같은 실시간 프로세스 모니터링 도구 없이, `ps aux` 명령어를 활용하여 시스템의 프로세스 정보를 확인하고 원하는 기준으로 정렬하는 방법을 안내합니다. 개발 및 시스템 관리 작업 중 리소스 사용량을 파악하거나 특정 프로세스를 찾을 때 유용합니다. ## 배경 `top`과 `htop`은 시스템의 프로세스 상태를 실시간으로 보여주는 강력한 도구입니다. 하지만 때로는 간단히 특정 시점의 프로세스 스냅샷을 보거나, `grep`이나 `sort`와 같은 다른 표준 유닉스 도구와 결합하여 특정 조건으로 프로세스를 필터링하고 싶을 때가 있습니다. 이때 `ps aux` 명령어가 매우 유용합니다. `ps aux` 명령어는 다음과 같은 정보를 제공합니다: * **USER**: 프로세스를 실행한 사용자 * **PID**: 프로세스 ID * **%CPU**: CPU 사용률 * **%MEM**: 메모리 사용률 * **VSZ**: 가상 메모리 크기 (KB) * **RSS**: 실제 메모리 사용량 (KB) * **TTY**: 프로세스가 실행된 터미널 (non-login 쉘은 ?) * **STAT**: 프로세스 상태 (R: 실행중, S: 휴면, Z: 좀비 등) * **START**: 프로세스 시작 시간 * **TIME**: 총 CPU 사용 시간 * **COMMAND**: 실행된 명령어 ## 활용법 ### 1. 기본 ps aux 실행 가장 기본적인 명령어입니다. 현재 시스템에서 실행 중인 모든 프로세스에 대한 자세한 정보를 출력합니다. ```bash ps aux ``` ### 2. 특정 프로세스 필터링 (grep 활용) `grep`을 사용하여 특정 명령어 또는 사용자 이름으로 프로세스를 필터링할 수 있습니다. **예시:** `node` 프로세스 찾기 ```bash ps aux | grep node ``` **주의:** 위 명령어는 `grep node` 자체도 결과에 포함될 수 있습니다. 이를 제외하려면 `grep -v grep`을 사용하거나, `pgrep` 명령어를 사용하는 것이 더 효율적입니다. ```bash ps aux | grep node | grep -v grep ``` ### 3. CPU 사용량 기준 정렬 `sort` 명령어를 사용하여 CPU 사용량(`%CPU`)이 높은 순서대로 프로세스를 정렬할 수 있습니다. `%CPU` 열은 일반적으로 3번째 열이므로 `-k3` 옵션을 사용합니다. 역순(높은 순)으로 정렬하기 위해 `-r` 옵션을 추가합니다. ```bash ps aux --sort=-%cpu ``` 또는 `sort`와 파이프를 이용: ```bash ps aux | sort -rnk3 ``` * `-r`: 역순 정렬 * `-n`: 숫자로 인식하여 정렬 * `-k3`: 3번째 필드(컬럼)를 기준으로 정렬 ### 4. 메모리 사용량 기준 정렬 `%MEM` 열(일반적으로 4번째 열)을 기준으로 메모리 사용량이 높은 순서대로 정렬할 수 있습니다. ```bash ps aux --sort=-%mem ``` 또는 `sort`와 파이프를 이용: ```bash ps aux | sort -rnk4 ``` ### 5. 특정 사용자 프로세스 확인 및 정렬 특정 사용자의 프로세스만 확인하고 싶을 때 `grep`을 함께 사용하거나, `ps` 명령어 자체의 옵션을 활용할 수 있습니다. **예시:** `www-data` 사용자의 프로세스 중 CPU 사용량이 높은 순으로 정렬 ```bash ps aux | grep www-data | grep -v grep | sort -rnk3 ``` 또는 `ps -u` 옵션 활용 (이 경우 `aux` 형식과 약간 다를 수 있으므로 주의): ```bash ps -u www-data # www-data 사용자의 프로세스 목록 ``` ### 6. PID 기준 정렬 PID 순서대로 정렬할 때 사용합니다. 이는 특정 PID를 찾거나 관리할 때 유용할 수 있습니다. ```bash ps aux | sort -nk2 ``` * `-k2`: 2번째 필드(PID)를 기준으로 정렬 ### 7. 커널 스레드 및 시스템 프로세스 제외 때로는 사용자 레벨의 프로세스만 보고 싶을 때가 있습니다. `ps aux` 결과에서 USER가 `root`인 경우 중에서도 커널 관련 프로세스 등을 제외하고 싶다면, `grep` 등을 추가로 사용하여 필터링할 수 있습니다. 하지만 이는 복잡해질 수 있으므로, 특정 상황에 맞춰 커스텀 필터링이 필요합니다. **예시:** USER가 `root`가 아닌 프로세스만 보기 (일반 사용자 프로세스) ```bash ps aux | grep -v root ``` ## 요약 `ps aux` 명령어는 `top`/`htop`처럼 실시간 인터페이스를 제공하지는 않지만, 표준 유닉스 도구(`grep`, `sort`)와 결합하여 원하는 정보를 추출하고 가공하는 데 매우 강력합니다. 특히 특정 시점의 스냅샷이 필요하거나, 복잡한 스크립트 내에서 프로세스 정보를 활용해야 할 때 이 레시피가 유용할 것입니다. 이러한 `ps aux` 기반의 명령어들은 시스템의 현재 상태를 이해하고 문제를 진단하는 데 필수적인 기본 도구입니다.
7
스크랩
23
좋아요
0
댓글