전통적으로 유닉스나 리눅스는 여러 파일을 합치거나 파일 내용을 터미널을 출력할 경우 cat 명령어를 사용해 왔습니다.
bat 은 cat 대신 사용할 수 있는 명령어로 문법 강조(syntax highlight), git 통합, 자동 페이징(등 다양한 기능을 갖고 있습니다.
설치
Package Manager 사용
Ubuntu
$ sudo apt install bat
BASH
OSX
Windows
수동 설치
Binary 로 설치
CentOS 나 Rocky Linux 같이 패키지 매니저를 지원하지 않거나 최신 버전을 사용하고 싶은 경우 https://github.com/sharkdp/bat/releases 에 연결해서 컴파일된 바이너리를 다운 받아서 사용하면 됩니다.
Source 컴파일 설치
버전이 낮거나 패키지 매니저를 지원하지 않을 경우 소스를 체크아웃받아서 빌드해서 설치하면 됩니다.
bat 은 Rust 로 개발되어서 컴파일 & 설치가 간단합니다.
$ cargo install --locked bat
BASH
사용
기본 사용
내용을 볼 파일을 지정하고 bat 을 실행하면 됩니다.

여러 파일을 표시하려면 glob 를 사용하면 됩니다.
여러 파일 연결
여러 파일을 하나의 파일로 병합하거나 덮어쓰려면 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