gotop이란 무엇인가?
gotop은 Go 언어로 제작된 터미널 기반 시스템 리소스 모니터링 도구입니다. gtop과 vtop에서 영감을 받아 개발되었으며, CPU 사용률, 메모리 점유율, 디스크 I/O, 네트워크 트래픽, 프로세스 목록 등을 실시간으로 그래픽 형식으로 표시합니다. 다양한 레이아웃과 색상 테마를 지원하며, 키보드 및 마우스로 상호작용할 수 있어 서버 관리자나 개발자에게 유용한 도구입니다.
지원 운영체제 및 설치 방법
gotop은 크로스플랫폼을 지원하므로 주요 운영체제에서 모두 사용 가능합니다. 아래는 각 환경별 설치 절차입니다.
1. 패키지 매니저를 통한 설치 (권장)
가장 간편한 방법은 시스템에 맞는 패키지 관리자를 활용하는 것입니다.
- macOS (Homebrew 사용)
brew install gotop - Windows (Scoop 사용)
scoop install gotop - Arch Linux (AUR)
또는 최신 개발 버전:yay -S gotop-binyay -S gotop-git - Gentoo
sudo layman -a guru sudo emerge gotop - Nix/NixOS
nix-shell -p gotop --run gotop
2. 사전 컴파일된 바이너리 다운로드
패키지 매니저를 사용하지 않거나 커스텀 환경에서 실행해야 할 경우, 공식 릴리스 페이지에서 바이너리를 직접 내려받을 수 있습니다.
- 릴리스 페이지에서 OS와 아키텍처에 맞는 파일 선택
- 예: Linux x86_64 사용자는
gotop-linux-amd64다운로드 - 실행 권한 부여 후 시스템 경로에 이동
chmod +x gotop-linux-amd64
sudo mv gotop-linux-amd64 /usr/local/bin/gotop
3. 소스 코드에서 직접 빌드
최신 기능을 테스트하거나 커스터마이징이 필요한 경우 소스에서 빌드할 수 있습니다.
빌드 전 요구사항
- Go 1.16 이상 설치 필요
- 버전 확인 명령:
go version
기본 빌드 절차
git clone https://github.com/xxxserxxx/gotop.git
cd gotop
go build -o gotop ./cmd/gotop
sudo mv gotop /usr/local/bin/
버전 정보 포함 빌드
빌드 시 태그와 시간 정보를 포함시키면 추후 디버깅에 유리합니다.
VERS="$(git describe --tags --abbrev=0 | sed 's/^v//' ).$(git rev-list --count HEAD)"
DAT="$(date -u '+%Y%m%d.%H%M%S')"
go build -ldflags "-X main.Version=${VERS} -X main.BuildDate=${DAT}" -o gotop ./cmd/gotop
루트 권한 없이 설치
관리자 권한이 없는 경우 다음 스크립트를 사용하면 로컬 디렉터리에 자동 설치됩니다.
./scripts/install_without_root.sh
OS별 특이사항
Debian/Ubuntu (.deb 설치)
wget https://github.com/xxxserxxx/gotop/releases/download/v4.2.0/gotop_4.2.0_linux_amd64.deb
sudo dpkg -i gotop_4.2.0_linux_amd64.deb
Fedora/RHEL/CentOS (.rpm 설치)
wget https://github.com/xxxserxxx/gotop/releases/download/v4.2.0/gotop_4.2.0_linux_amd64.rpm
sudo rpm -ivh gotop_4.2.0_linux_amd64.rpm
macOS 추가 안내
- 기존 설치된 버전이 있다면 먼저 제거:
brew uninstall gotop
- 중복 설치 방지를 위해 PATH 확인
Windows 수동 설치
- GitHub 릴리스에서
gotop.exe다운로드 - 원하는 위치에 저장 후, 시스템
PATH에 등록 - CMD 또는 PowerShell에서 바로 실행 가능
폰트 설정 및 유니코드 지원
gotop은 점자(브라일) 및 블록 문자를 사용하여 그래프를 표현하므로, 해당 유니코드 범위를 지원하는 폰트가 필요합니다.
전용 폰트 적용 (Linux 콘솔)
curl -O -L https://raw.githubusercontent.com/xxxserxxx/gotop/master/fonts/Lat15-VGA16-braille.psf
sudo setfont Lat15-VGA16-braille.psf
터미널 에뮬레이터 설정
GNOME Terminal, Konsole, iTerm2 등의 터미널 앱에서는 설정에서 다음 조건을 충족하는 폰트를 지정하세요:
- 유니코드 범위 U+2800~U+28FF (Braille patterns) 지원
- 권장 폰트: DejaVu Sans Mono, Fira Code, Noto Sans Mono
설치 검증 및 기본 실행
설치 후 정상 동작 여부를 확인하세요.
gotop --version
gotop --help
gotop
실행 시 CPU, 메모리, 네트워크, 디스크 상태 및 프로세스 목록이 실시간으로 표시됩니다.
고급 옵션 및 레이아웃 설정
주요 실행 인수
# 색상 테마 적용
gotop -c solarized
# 업데이트 주기 설정 (초 단위)
gotop -r 1.5s
# NVIDIA GPU 모니터링 활성화 (nvidia-smi 필요)
gotop --nvidia
사전 정의된 레이아웃
- 기본 (default): 모든 주요 지표 표시
- minimal: 최소한의 리소스 정보 제공
- kitchensink: 가능한 모든 데이터 포함 (디스크 I/O, 센서, 배터리 등)
- procs: 프로세스 목록 중심 레이아웃
- battery: 노트북용 배터리 상태 강조
설정 파일 관리
gotop은 다음 순서로 설정 파일을 탐색합니다:
- 현재 디렉터리:
gotop.conf - 사용자 설정:
~/.config/gotop/gotop.conf - 시스템 설정:
/etc/gotop/gotop.conf
현재 설정을 파일로 저장하려면:
gotop --write-config
문제 해결
흔히 발생하는 문제
- Go 버전 오류: Go 1.16 미만은 빌드 실패. 스크립트 설치 방식 고려
- 설치 권한 거부:
/usr/local/bin에 쓰기 불가 시~/bin에 설치하거나sudo사용 - 글꼴 깨짐 현상: 브라일 문자가 사각형으로 보이면 폰트 재설정 필요
- 온도 정보 미표시:
lm_sensors(Linux) 또는 하드웨어 드라이버 미설치 가능성 있음 - NVIDIA GPU 감지 실패:
nvidia-smi명령어가 PATH에 있는지 확인
업데이트 및 삭제
업데이트 방법
- 패키지 매니저
# Homebrew brew upgrade gotop # Scoop scoop update gotop # AUR yay -Syu gotop-bin - 소스 기반
cd gotop git pull go build -o gotop ./cmd/gotop
제거 방법
- 패키지 설치 시
brew uninstall gotop scoop uninstall gotop yay -R gotop-bin - 직접 설치 시: 바이너리 파일과 설정 파일을 수동으로 삭제
사용 팁
?키: 모든 단축키 보기q: 종료- 마우스 클릭: 프로세스 선택
- 마우스 휠: 프로세스 목록 스크롤
커스터마이징은 colorschemes/ 디렉터리의 테마 파일과 layouts/의 레이아웃 정의를 수정하여 가능합니다.