전통적으로 유닉스나 리눅스는 여러 파일을 합치거나 파일 내용을 터미널을 출력할 경우 cat 명령어를 사용해 왔습니다.


bat 은 cat 대신 사용할 수 있는 명령어로 문법 강조(syntax highlight), git 통합, 자동 페이징(등 다양한 기능을 갖고 있습니다.

설치

Rust tool chain 을 설치하고 직접 소스에서 빌드해서 설치하는 방법을 권장합니다.


Package Manager 사용

Ubuntu

$ sudo apt install bat
BASH


OSX

$ brew install bat
BASH


Windows

choco install bat
BASH


수동 설치

Binary 로 설치

CentOS 나 Rocky Linux 같이 패키지 매니저를 지원하지 않거나 최신 버전을 사용하고 싶은 경우 https://github.com/sharkdp/bat/releases 에 연결해서 컴파일된 바이너리를 다운 받아서 사용하면 됩니다.


Source 컴파일 설치

버전이 낮거나 패키지 매니저를 지원하지 않을 경우 소스를 체크아웃받아서 빌드해서 설치하면 됩니다.

bat 은 Rust 로 개발되어서 컴파일 & 설치가 간단합니다.

$ cargo install --locked bat
BASH



사용

기본 사용

내용을 볼 파일을 지정하고 bat 을 실행하면 됩니다.

$ bat README.md
BASH


여러 파일을 표시하려면 glob 를 사용하면 됩니다. 

$ bat *.md
BASH

여러 파일 연결

여러 파일을 하나의 파일로 병합하거나 덮어쓰려면 cat 명령어처럼 병합할 파일을 기술하고 > 파이프 뒤에 최종 파일명을 적어주면 됩니다.

$ bat header.md content.md footer.md > document.md
BASH


pipe 로 연결

bat 은 pipe 를 지원하므로 다른 프로그램에서 입력을 bat 에서 처리후 출력할 수 있습니다.

다음은 rust 설치용 shell script 를 다운로드받아서 bat 으로 표시합니다.

$ curl -s https://sh.rustup.rs | bat
BASH



syntax highlighting

지원하는 문법 목록을 보려면  --list-languages 사용합니다.

$ bat --list-languages

ActionScript                      as
Apache Conf                       envvars, htaccess, HTACCESS, htgroups, HTGROUPS, 
                                  htpasswd, HTPASSWD, .htaccess, .HTACCESS, .htgroups, 
                                  .HTGROUPS, .htpasswd, .HTPASSWD, 
                                  /etc/apache2/**/*.conf, /etc/apache2/sites-*/**/*, 
                                  httpd.conf
AppleScript                       applescript, script editor
ARM Assembly                      s, S
AsciiDoc (Asciidoctor)            adoc, ad, asciidoc
ASP                               asa
...
BASH



Ref