/
cat 명령을 대체하는 유용한 유틸리티 linux bat 사용법

cat 명령을 대체하는 유용한 유틸리티 linux bat 사용법

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


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

설치

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


Package Manager 사용

Ubuntu

$ sudo apt install bat


OSX

$ brew install bat


Windows

choco install bat


수동 설치

Binary 로 설치

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


Source 컴파일 설치

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

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

$ cargo install --locked bat



사용

기본 사용

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

$ bat README.md


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

$ bat *.md

여러 파일 연결

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

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


pipe 로 연결

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

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

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



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
...



Ref

Related content