319 lines
14 KiB
Markdown
319 lines
14 KiB
Markdown
# 필수 터미널 도구
|
|
|
|
터미널에서 사용하는 유용한 CLI 도구 모음
|
|
|
|
## 지원 도구
|
|
|
|
- [tmux](https://github.com/tmux/tmux) - 터미널 멀티플렉서
|
|
- [bottom](https://github.com/ClementTsang/bottom) - 호스트 모니터링
|
|
- [dua](https://github.com/byron/dua-cli) - 디스크 사용량 분석기
|
|
- [lazygit](https://github.com/jesseduffield/lazygit) - Git 터미널 UI
|
|
- [Docker](https://www.docker.com/) - 컨테이너 플랫폼 (Linux 자동 설치, Mac/Windows는 안내)
|
|
- [ctop](https://github.com/bcicen/ctop) - 컨테이너 모니터링
|
|
- [uv](https://docs.astral.sh/uv/) - Python 패키지 관리자
|
|
- [pi](https://pi.dev/) - CLI AI 코딩 어시스턴트 + 추천 패키지 일괄 설치
|
|
|
|
## 설치
|
|
|
|
### MacOS / Linux
|
|
|
|
**tmux:**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-tmux.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
**bottom:**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-bottom.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
**dua:**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-dua.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
**lazygit:**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-lazygit.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
**Docker (Linux만 실행 — Mac/Windows 사용자는 아래 안내를 참고하세요):**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-docker.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
**ctop:**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-ctop.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
**uv:**
|
|
|
|
```bash
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
```
|
|
|
|
> 설치 후 `${HOME}/.local/bin`이 PATH에 없으면 추가하세요:
|
|
>
|
|
> ```bash
|
|
> echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
|
|
> source ~/.bashrc
|
|
> ```
|
|
|
|
**pi (Pi Coding Agent + 추천 패키지):**
|
|
|
|
```bash
|
|
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-pi.sh?ref_type=heads" | bash
|
|
```
|
|
|
|
### Windows (PowerShell):
|
|
|
|
**tmux:**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-tmux.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-tmux.ps1' -OutFile $t; & $t"
|
|
```
|
|
|
|
**bottom:**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-bottom.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-bottom.ps1' -OutFile $t; & $t"
|
|
```
|
|
|
|
**dua:**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-dua.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-dua.ps1' -OutFile $t; & $t"
|
|
```
|
|
|
|
**lazygit:**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-lazygit.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-lazygit.ps1' -OutFile $t; & $t"
|
|
```
|
|
|
|
**Docker:** [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/)를 설치하세요. 또는 WSL2에서 리눅스용 `install-docker.sh`를 실행하세요.
|
|
|
|
**ctop:**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-ctop.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-ctop.ps1' -OutFile $t; & $t"
|
|
```
|
|
|
|
**uv:**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
```
|
|
|
|
> 설치 후 `$env:USERPROFILE\.local\bin`이 PATH에 없으면 추가하세요:
|
|
>
|
|
> ```powershell
|
|
> [System.Environment]::SetEnvironmentVariable('Path', $env:USERPROFILE + '\.local\bin;' + [System.Environment]::GetEnvironmentVariable('Path', 'User'), 'User')
|
|
> ```
|
|
|
|
**pi (Pi Coding Agent + 추천 패키지):**
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-pi.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-pi.ps1' -OutFile $t; & $t"
|
|
```
|
|
|
|
## 도구별 사용법
|
|
|
|
### tmux
|
|
|
|
터미널 멀티플렉서입니다. 하나의 터미널에서 여러 세션과 창을 관리할 수 있습니다.
|
|
|
|
- **세션 관리** — 백그라운드 세션 유지, detach/attach
|
|
- **창 분할** — 수평/수직 분할로 여러 패널 동시 작업
|
|
- **vim 스타일 이동** — h/j/k/l로 패널 간 이동
|
|
- **마우스 지원** — 마우스로 패널 선택 및 스크롤
|
|
|
|
```bash
|
|
tmux # 새 세션 시작
|
|
tmux new -s <name> # 이름 지정 세션 시작
|
|
tmux attach -t <name> # 세션 접속
|
|
tmux ls # 세션 목록
|
|
```
|
|
|
|
| 단축키 | 동작 |
|
|
| ---------------- | ------------------------ |
|
|
| `Ctrl-a` | Prefix key (기본 Ctrl-b) |
|
|
| `Prefix \|` | 수평 분할 |
|
|
| `Prefix -` | 수직 분할 |
|
|
| `Prefix h/j/k/l` | 패널 이동 (vim 스타일) |
|
|
| `Prefix r` | .tmux.conf 다시 로드 |
|
|
| `Prefix Space` | 레이아웃 전환 |
|
|
| `Prefix o` | 패널 회전 |
|
|
| `Prefix ,` | 창 이름 변경 |
|
|
| `Prefix &` | 창 닫기 |
|
|
|
|
> `install-tmux` 스크립트는 `.tmux.conf`를 홈 디렉토리에 자동 배포합니다. 기존 파일이 있으면 백업 후 덮어씁니다.
|
|
|
|
### bottom
|
|
|
|
호스트 모니터링 터미널 UI 도구입니다.
|
|
|
|
- **CPU, 메모리, 디스크, 네트워크** 실시간 모니터링
|
|
- **프로세스 관리** (CPU/메모리 사용률별 정렬, 검색, 종료)
|
|
- **온도 센서 모니터링**
|
|
- **GPU 모니터링** (NVIDIA/AMD 지원)
|
|
|
|
```bash
|
|
btm
|
|
```
|
|
|
|
| 단축키 | 동작 |
|
|
| ----------- | -------------------- |
|
|
| `q` / `Esc` | 종료 |
|
|
| `F1` ~ `F5` | 탭 전환 |
|
|
| `↑` `↓` | 프로세스 선택 |
|
|
| `k` | 선택한 프로세스 종료 |
|
|
| `/` | 검색 |
|
|
|
|
### dua
|
|
|
|
디스크 사용량 분석 도구입니다. 병렬 처리로 빠르게 디스크 사용량을 분석합니다.
|
|
|
|
- **빠른 병렬 스캔** — SSD를 최대로 활용하여 디스크 사용량 즉시 표시
|
|
- **인터랙티브 모드** — 탐색하며 불필요한 파일/디렉토리 삭제
|
|
- **다양한 출력 형식** — 바이트, MB, GB, MiB, GiB 등
|
|
|
|
```bash
|
|
dua # 현재 디렉토리 사용량
|
|
dua /path/to/dir # 특정 디렉토리 사용량
|
|
dua i # 인터랙티브 모드
|
|
```
|
|
|
|
| 단축키 | 동작 |
|
|
| ----------------- | -------------- |
|
|
| `↑` `↓` / `j` `k` | 탐색 |
|
|
| `?` | 도움말 |
|
|
| `d` | 선택 항목 삭제 |
|
|
| `q` / `Esc` | 종료 |
|
|
|
|
### lazygit
|
|
|
|
Git을 위한 터미널 UI 도구입니다.
|
|
|
|
- **편리한 단축키**로 모든 git 작업 수행
|
|
- **커밋, 브랜치, stash, rebase** 시각적 관리
|
|
- **diff 뷰**로 변경사항 확인
|
|
- **merge conflict** 해결 도구
|
|
|
|
```bash
|
|
lazygit
|
|
```
|
|
|
|
| 단축키 | 동작 |
|
|
| --------------- | ------------------ |
|
|
| `q` | 종료 |
|
|
| `↓` `↑` `→` `←` | 화면 간 이동 |
|
|
| `Space` | 파일 Stage/Unstage |
|
|
| `c` | 커밋 작성 |
|
|
| `P` `p` | Push / Pull |
|
|
| `?` | 도움말 |
|
|
|
|
### Docker
|
|
|
|
컨테이너 플랫폼입니다. `install-docker.sh`는 Linux에 Docker Engine을 자동 설치합니다.
|
|
|
|
- **컨테이너 실행/관리** — 애플리케이션을 격리된 환경에서 실행
|
|
- **Docker Compose** — 멀티 컨테이너 애플리케이션 오케스트레이션
|
|
- **BuildKit** — 빠른 이미지 빌드
|
|
|
|
```bash
|
|
docker run hello-world # 설치 확인
|
|
docker ps # 실행 중인 컨테이너 목록
|
|
docker compose up -d # Compose 서비스 시작
|
|
docker build -t <name> . # 이미지 빌드
|
|
```
|
|
|
|
> **macOS 사용자**: [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop/) 또는 [OrbStack](https://orbstack.dev/)을 설치하세요.
|
|
>
|
|
> **Windows 사용자**: [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/) 또는 WSL2에서 리눅스용 스크립트를 실행하세요.
|
|
>
|
|
> `install-docker.sh`는 Linux 전용입니다. 설치 후 현재 사용자를 `docker` 그룹에 추가하며, 재로그인 후 `docker` 명령어를 sudo 없이 사용할 수 있습니다.
|
|
|
|
### ctop
|
|
|
|
Docker/Podman 컨테이너 모니터링 터미널 UI 도구입니다.
|
|
|
|
- **실시간 컨테이너 메트릭** (CPU, 메모리, 네트워크, I/O)
|
|
- **컨테이너별 상태** 표시 및 필터링
|
|
- **컨테이너 로그** 바로 보기
|
|
- **정지/시작/재시작** 등 컨테이너 관리
|
|
|
|
```bash
|
|
ctop
|
|
```
|
|
|
|
| 단축키 | 동작 |
|
|
| ----------- | ------------------ |
|
|
| `q` / `Esc` | 종료 |
|
|
| `↑` `↓` | 컨테이너 선택 |
|
|
| `l` | 컨테이너 로그 보기 |
|
|
| `a` | 모든 컨테이너 표시 |
|
|
| `f` | 필터 |
|
|
| `S` | 정지 |
|
|
| `R` | 재시작 |
|
|
|
|
> **macOS Apple Silicon 참고**: ctop은 native arm64 빌드를 제공하지 않습니다. Rosetta 2를 통해 amd64 바이너리로 실행됩니다.
|
|
|
|
### Pi Coding Agent
|
|
|
|
CLI 기반 AI 코딩 어시스턴트입니다. `install-pi` 스크립트는 Pi 본체와 함께 다음 추천 패키지를 일괄 설치합니다.
|
|
|
|
| 패키지 | 설명 |
|
|
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
|
|
| [pi-subagents](https://pi.dev/packages/pi-subagents) | 하위 에이전트에 작업 위임 — 코드 리뷰, 스카우팅, 구현, 병렬 감사, 오케스트레이션, 백그라운드 작업 |
|
|
| [context-mode](https://pi.dev/packages/context-mode) | 컨텍스트 윈도우 보호 — 샌드박스 도구, 세션 연속성, BM25 지식 베이스, think-in-code 패러다임 |
|
|
| [pi-mcp-adapter](https://pi.dev/packages/pi-mcp-adapter) | MCP 서버를 Pi에서 사용 — 수백 개 툴 정의 대신 하나의 프록시 툴로 |
|
|
| [pi-web-access](https://pi.dev/packages/pi-web-access) | 웹 검색, 콘텐츠 추출, 영상 이해 — 설정 없는 Exa 검색, Perplexity, Gemini, YouTube |
|
|
| [@plannotator/pi-extension](https://pi.dev/packages/@plannotator/pi-extension) | 파일 기반 플랜 모드 — 브라우저 UI로 에이전트 플랜 검토, 주석, 승인 |
|
|
| [@juicesharp/rpiv-ask-user-question](https://pi.dev/packages/@juicesharp/rpiv-ask-user-question) | 구조화된 질문 도구 — 에이전트가 추측 대신 사용자에게 질문 |
|
|
| [pi-lens](https://pi.dev/packages/pi-lens) | 실시간 코드 피드백 — LSP 진단, 린터, 포맷터, 타입 체킹, 구조 분석, 읽기 전 수정 가드 |
|
|
| [@juicesharp/rpiv-todo](https://pi.dev/packages/@juicesharp/rpiv-todo) | 세션 간 유지되는 투두 리스트 — /reload 및 compaction 후에도 작업 보존, 의존성追踪 |
|
|
| [pi-simplify](https://pi.dev/packages/pi-simplify) | 변경된 코드의 명확성, 일관성, 유지보수성 개선 제안 |
|
|
| [@juicesharp/rpiv-advisor](https://pi.dev/packages/@juicesharp/rpiv-advisor) | 더 강력한 리뷰어 모델의 제2의 의견 제공 |
|
|
| [@juicesharp/rpiv-pi](https://pi.dev/packages/@juicesharp/rpiv-pi) | 스킬 기반 개발 워크플로우 — 탐색, 조사, 설계, 계획, 구현, 검증 파이프라인 |
|
|
| [@samfp/pi-memory](https://pi.dev/packages/@samfp/pi-memory) | 영구 메모리 — 세션 간 교정, 선호도, 프로젝트 패턴 학습 |
|
|
| [pi-btw](https://pi.dev/packages/pi-btw) | 메인 에이전트 실행을 중단하지 않는 병렬 사이드 대화 (/btw) |
|
|
| [pi-docparser](https://pi.dev/packages/pi-docparser) | 문서 파싱 도구 — PDF, 오피스 문서, 스프레드시트, 이미지, OCR |
|
|
| [pi-ollama-cloud](https://pi.dev/packages/pi-ollama-cloud?name=ollama) | Ollama Cloud 제공자 플러그인 — 동적 모델 발견, 웹 검색/패치 도구, 로컬 서버 불필요 |
|
|
|
|
> **Ollama Cloud 사용 시**: `~/.pi/agent/auth.json`에 API 키를 설정하세요. 자세한 내용은 [pi-ollama-cloud 문서](https://pi.dev/packages/pi-ollama-cloud?name=ollama)를 참조하세요.
|
|
|
|
> ~/.pi/agent/auth.json에 "api.key" : "YOUR_API_KEY" 형태로 추가한다.
|
|
|
|
```json
|
|
{
|
|
"anthropic": {
|
|
...
|
|
},
|
|
"ollama-cloud": {
|
|
"type": "api_key",
|
|
"key": "..."
|
|
}
|
|
}
|
|
```
|
|
|
|
**pi** 사용법
|
|
|
|
```bash
|
|
pi # 대화형 세션 시작
|
|
pi -p "질문" # 단일 질문 (print 모드)
|
|
pi --help # 도움말
|
|
pi list # 설치된 패키지 목록
|
|
```
|
|
|
|
---
|
|
|
|
_GitLab: https://gitlab.com/publicproj/install-sh_
|