?
사용자

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
댓글
ps aux 명령어 활용: top/htop 없이 실시간 프로세스 정보 얻기