Rocky Linux에서 cat 대신 bat 사용하기

   Unix / Linux / OSX 등의 Unix 계열의 OS에서 파일의 내용을 표기할 때 사용하는 방법 중 가장 심플한 명령어가 아마도 cat 일 것이다.   하지만 단색 Text로 보여지니 가독성도 떨어지고 효율성도 좋지 않다.   vi도 syntax highlight를 지원하는데 cat은 그럴 마음이 없는 듯 하다.   말 장난 같지만... "고양이 대신 박쥐" 바로 bat을 cat 대신 사용하면 보다 효율적으로 쓸 수 있다.

 

  https://github.com/sharkdp/bat

 

GitHub - sharkdp/bat: A cat(1) clone with wings.

A cat(1) clone with wings. Contribute to sharkdp/bat development by creating an account on GitHub.

github.com

 

 

   해당 GitHub에 가보면 bat을 활용해서 다른 툴과 결합해서 조금더 효율적인 사용을 하는 방법도 안내하고 있다.   나의 경우엔 cat을 대체하는 용도와 tail 로 log를 볼때 Color를 입혀서 가독성을 좋게 하는 용도 정도로 활용을 하고 있다.

[ Packaging Status ]

   저렇게 많은 패키지를 지원하면서 내가 쓰고 있는 Rocky Linux는 현재 지원하지 않고 있다.   Fedora 에서 처럼 dnf 를 써서 설치 하면 편할 텐데 아쉽게도 되지 않는다.   Source를 내려 받아서 Compile 하면 되겠지만 누군가 설치해주는 방법으로 설치하고 싶기에 cargo를 이용해서 설치하는 방법을 택했다.

 

   Cargo는 Rust Programming Language를 사용하는 Project에서 매우 중요한 도구이다.   Package 관리, Build, Test, Deploy 등의 작업을 간편하게 할 수 있기 때문이다.   일단 Cargo를 사용하기 위해서는 Rust가 필요하니 만약 설치가 안되어 있다면ㄴ 'rustup'이라는 설치관리 도구를 통해서 설치한다.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

 

 

   나의 경우엔 설치가 되어 있었기 때문에 위의 과정은 Skip 했다.   그러면 이제 설치가 정상적으로 되어 있는지 확인해 보자.

rustc --version

[ rustc 가 정상적으로 설치 된것을 확인할 수 있다 ]

 

 

   그러면 이제 cargo를 설치한다.   cargo는 dnf를 통해서 설치 할 수 있다.

dnf install cargo

[ Cargo를 설치한다 ]

 

 

   설치 완료 메세지를 보면 설치된 경로가 표기 된다.   조금더 편의를 봐준다면 path도 함께 자동으로 되면 좋겠지만 그런 서비스는 없는듯 하다.   어쨌든 내가 쓰고자 하는 것은 bat 기능이니 해당 경로의 실행파일로 alias를 설정해 주면 된다.

[ .zshrc 에 alias를 추가 했다 ]

 

 

   cat 대신에 bat를 alias 하지 않은 것은 각자의 용도가 다를 수 있기 때문에 대체하지는 않았다.   bat을 이용해서 .vimrc 를 열어보았다.

 

 

   행번호와 Syntax Highlight 가 되는 것만으로도 충분히 cat을 대체해서 쓸 이유는 충분하다.   더불어 앞서 이야기 한 대로 다른 명령어들과 조합해서 사용하면 더욱 그 진가를 발휘한다.

[ tail 과 조합해서 사용한 사례 ]

 

 

   tail을 쓸 때마다 저렇게 쓰는게 타이핑 치기 힘드니 function으로 만들어서 사용하는 것도 한가지 방법이다.

function colorTail {
	tail -f "$@" | bat --paging=never -l log
}

 

 

   .zshrc 에 추가해서 사용할 수 있다.

[ function으로 설정 후 사용한 사례 ]

 

 

   만약 cat를 대체해서 alias를 설정하고 bat를 사용한다면 기억해야 할 옵션이 바로 -p 옵션이다.   plain을 뜻하는 p 이다.   bat가 보여지는 컬러풀한 모습이 아닌 cat이 보여주는 형태로 파일의 내용을 출력한다.   텍스트를 복사하기 위해서 줄번호가 없어야 하는경우에 사용할 수 도 있다.   나머지 상세한 설정이라든가 활용은 bat GitHub를 참고 하는게 좋다.