bat — 문법 강조 cat
Linux / 모던 CLI 도구 / bat.html
💬 "bat 명령어"
bat는 cat을 대체하는 문법 강조 파일 뷰어입니다. Rust로 만들어졌고, 색상, 줄 번호, git 변경 표시를 기본으로 지원합니다.
cat과 거의 동일한 명령 구조라 기존 스크립트에 그대로 끼워 넣을 수 있습니다.
- 개념: 파일 내용을 문법 강조와 함께 출력합니다.
- cat 대체: cat과 같은 위치에서 파일을 보여주되 더 많은 정보를 제공합니다.
- --number: 줄 번호를 함께 표시합니다.
- --diff: git 변경 파일이면 diff 모드로 보여줍니다.
설치 및 다운로드
bat는 패키지 매니저로 설치합니다. Debian/Ubuntu에서는 패키지 이름이 batcat입니다.
| 환경 | 명령 |
|---|---|
| Ubuntu / Debian | sudo apt install batcat |
| Fedora / RHEL | sudo dnf install bat |
| Arch | sudo pacman -S bat |
| macOS (brew) | brew install bat |
| Rust cargo | cargo install bat |
| 바이너리 다운로드 | github.com/sharkdp/bat/releases |
설치 확인은 bat --version 또는 batcat --version으로 합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-n / --number | 줄 번호를 표시합니다 |
--style=numbers,changes | 줄 번호와 git 변경 표시를 켭니다 |
--diff | git 변경 파일을 diff 모드로 출력합니다 |
-A / --show-all | 탭·줄바꿈 등 보이지 않는 문자를 표시합니다 |
--theme=Dracula | 테마를 변경합니다 |
필수 명령어 조합 3가지
bat -A config.conf— 보이지 않는 문자까지 포함해 설정 파일 확인bat --diff src/main.py— git 변경 사항을 문법 강조와 함께 확인bat --line-range 1:50 error.log— 로그 파일의 특정 구간만 확인
💬 "실제 서버에서 설정 파일을 확인하는 예시를 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 설치 확인
먼저 설치 여부를 확인하고, 없으면 설치합니다.
bat --version || batcat --version || sudo apt install -y batcat
2단계 · 설정 파일 확인
nginx 설정 파일을 문법 강조와 함께 봅니다.
bat -n /etc/nginx/nginx.conf
3단계 · 특정 구간만
로그 파일에서 오류 구간만 잘라 봅니다.
bat --line-range 100:150 /var/log/nginx/error.log
실제 실행 화면
설치 후 nginx 설정 파일을 bat으로 확인한 결과입니다. 문법에 따라 색이 나뉘고 줄 번호가 표시됩니다.

실제 운영 중인 서버
실무에서는 이렇게 씁니다
1. 설정 파일 검토
상황 — nginx나 앱 설정 파일의 오타를 찾습니다.
bat -A /etc/nginx/sites-available/default
결과 — 탭 대신 화살표, 줄바꿈 대신 $ 기호가 보여 숨은 문자를 확인할 수 있습니다.
포인트 — -A 옵션은 빈 줄과 공백 차이를 눈으로 구분하게 해줍니다.
2. 스크립트 리뷰
상황 — 배포 스크립트의 로직을 문법 강조와 함께 검토합니다.
bat --style=numbers deploy.sh
결과 — 줄 번호가 붙어 어디를 고쳤는지 말하기 쉽습니다.
포인트 — --style=numbers는 코드 리뷰 시 유용합니다.
실제 실행 화면
git 변경 파일을 diff 모드로 확인한 결과입니다. 추가·삭제 라인이 색으로 구분됩니다.

실제 운영 중인 서버
주의할 점
- Debian/Ubuntu에서는 명령어 이름이 batcat일 수 있습니다.
- bat은 대용량 파일을 읽을 때 메모리를 많이 씁니다. 수 GB 로그에는 head와 함께 씁니다.
- 터미널이 256색을 지원하지 않으면 색이 어색하게 나옵니다.
- less 대신 bat가 기본 뷰어로 설정되어 있으면 스크립트가 깨질 수 있습니다..