Files
install-sh/README.md
T
2026-05-14 08:32:00 +09:00

374 lines
16 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는 안내)
- [lazydocker](https://github.com/jesseduffield/lazydocker) / [ctop](https://github.com/bcicen/ctop) - 컨테이너 TUI (둘 중 하나 선택)
- [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 / lazydocker** (컨테이너 모니터링 — 둘 중 하나 선택):
> **ctop**은 실시간 컨테이너 메트릭 모니터링에 특화되어 있고,
> **lazydocker**은 직관적인 TUI로 컨테이너 관리(시작/중지/로그/재시작)에 특화되어 있습니다.
> Docker를 처음 사용한다면 lazydocker을 추천합니다.
**ctop:**
```bash
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-ctop.sh?ref_type=heads" | bash
```
**lazydocker:**
```bash
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-lazydocker.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 / lazydocker** (컨테이너 모니터링 — 둘 중 하나 선택):
> **ctop**은 실시간 컨테이너 메트릭 모니터링에 특화되어 있고,
> **lazydocker**은 직관적인 TUI로 컨테이너 관리(시작/중지/로그/재시작)에 특화되어 있습니다.
> Docker를 처음 사용한다면 lazydocker을 추천합니다.
**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"
```
**lazydocker:**
```powershell
powershell -ExecutionPolicy Bypass -c "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; $t=\"$env:TEMP\install-lazydocker.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-lazydocker.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 / lazydocker
> **ctop**과 **lazydocker**은 모두 컨테이너 모니터링 TUI 도구입니다. 둘 중 하나를 선택하세요.
>
> | | ctop | lazydocker |
> | ---- | ------------------ | -------------------------------------- |
> | 특징 | 실시간 메트릭 중심 | 직관적 관리 TUI |
> | 추천 | 모니터링 위주 | 컨테이너 관리 위주, Docker 초보자 추천 |
**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 바이너리로 실행됩니다.
**lazydocker** — 직관적인 Docker/Podman 관리 터미널 UI
- **컨테이너/이미지/볼륨** 목록 및 상태
- **컨테이너 로그** 실시간 보기
- **컨테이너 시작/정지/재시작/삭제**
- **컨테이너 셸 진입** (exec)
- **Docker Compose** 서비스 관리
- **커스텀 명령어** 키 바인딩
```bash
lazydocker
```
| 단축키 | 동작 |
| ------- | ----------------------- |
| `q` | 종료 |
| `↑` `↓` | 리스트 이동 |
| `Enter` | 컨테이너 로그 보기 |
| `s` | 컨테이너 정지 |
| `r` | 컨테이너 재시작 |
| `e` | 컨테이너 셸 진입 (exec) |
| `x` | 컨테이너 제거 |
| `[` `]` | 패널 간 이동 |
### 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_