반응형

     정보

    • 업무명     : ccat 명령어 소개 : cat 명령어 + 구문 강조

    • 작성자     : 이상호

    • 작성일     : 2020-03-25

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

    • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.

    • cat 명령어 결과를 less 명령어로 구문 강조하려면 pygments과 source-highlight를 사용 가능하나 설정하기 어렵습니다.

    • 반면에  ccat 명령어를 사용하면 손쉽게 구문 강조를 할 수 있습니다.

    • 따라서 이 포스팅에서는 ccat 명령어를 소개해 드리고자 합니다.

     

    [특징]

    • cat 명령어 결과를 강조하기 이용하여 효율적인 명령어가 필요하며 이 명령어는 이러한 목적을 달성하기 위해 고안된 소프트웨어

     

    [기능]

    • 소개

    • 설치

    • 사용법

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 없음

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • Linux (CentOS v7.3)

    • VMware Workstation Pro v15.5

     

     세부 내용

    [소개]

    • ccat 명령어는 언어 목록은 자바 스크립트 (Java Script), 자바 (Java), 루비 (Ruby), 파이썬 (Python), 고 (GO), 씨 (C)를 지원한다.

    • 또한 ccat 개발자에 따르면 리눅스 기본 명령어 catccat의 처리 시간은 거의 차이 없다고 한다 (테스트 결과 참조).

    [root linux@/SYSTEM/LINUX/ccat]# wc -l Execution.log
    663359 Execution.log
    
    [root linux@/SYSTEM/LINUX/ccat]# time cat Execution.log > /dev/null
    
    real	0m0.023s
    user	0m0.000s
    sys	0m0.023s
    
    [root linux@/SYSTEM/LINUX/ccat]# time ccat Execution.log > /dev/null
    
    real	0m0.028s
    user	0m0.006s
    sys	0m0.022s

     

    [설치]

    • 설치 파일 다운로드

    -------------- On 64-Bit -------------- 
    wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz 
    
    -------------- On 32-Bit -------------- 
    # wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-386-1.1.0.tar.gz 

     

    [root linux@/SYSTEM/LINUX/ccat]# wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz 
    
    --2020-03-25 10:16:38--  https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz
    Resolving github.com (github.com)... 15.164.81.167
    Connecting to github.com (github.com)|15.164.81.167|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/35140287/65ef6940-97af-11e5-8790-56ee48875c9e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200325%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200325T101550Z&X-Amz-Expires=300&X-Amz-Signature=3c840175c9789a7c1db8b6f43193fd39b8c0f3840f5698986a9d8e72f91bddbb&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dlinux-amd64-1.1.0.tar.gz&response-content-type=application%2Foctet-stream [following]
    --2020-03-25 10:16:38--  https://github-production-release-asset-2e65be.s3.amazonaws.com/35140287/65ef6940-97af-11e5-8790-56ee48875c9e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200325%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200325T101550Z&X-Amz-Expires=300&X-Amz-Signature=3c840175c9789a7c1db8b6f43193fd39b8c0f3840f5698986a9d8e72f91bddbb&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dlinux-amd64-1.1.0.tar.gz&response-content-type=application%2Foctet-stream
    Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.217.43.156
    Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.217.43.156|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1241295 (1.2M) [application/octet-stream]
    Saving to: ‘linux-amd64-1.1.0.tar.gz’
    
    100%[=====================================================================================================================>] 1,241,295    387KB/s   in 3.1s   
    
    2020-03-25 10:16:42 (387 KB/s) - ‘linux-amd64-1.1.0.tar.gz’ saved [1241295/1241295]

     

    • 압축 풀기 및 ccat 실행 바이너리 이동

    ls
    
    tar xfz linux-amd64-1.1.0.tar.gz 
    
    ls linux-amd64-1.1.0
    
    cp linux-amd64-1.1.0/ccat /usr/local/bin/
    
    ls -al /usr/local/bin/

     

     

    [사용법]

    • 도움말

    [root linux@/SYSTEM/LINUX/ccat]# ccat --help
    
    FILE 또는 표준 입력을 표준 출력으로 채색합니다.
    
    용법:
      ccat [OPTION] ... [FILE] ...
    
    플래그 :
          --bg = "light": 터미널의 배경에 따라 "light"또는 "dark"로 설정
      -C, --color = "auto": 출력을 채색합니다. 값은 "never", "always"또는 "auto"일 수 있습니다.
      -G, --color-code = : 색상 코드 설정
      -h, --help = false : ccat에 대한 도움말
          --html = false : 출력 HTML
          --palette = false : 색상 표 표시
      -v, --version = false : 버전 표시
    
    기본적으로 색상을 사용하는 것은 --color = auto입니다. --color = auto를 사용하면
    ccat은 표준 출력이 터미널에 연결된 경우에만 색상 코드를 방출합니다.
    색상 코드는 -G KEY = VALUE로 변경할 수 있습니다. 색상 코드 목록
    --palette로 찾을 수 있습니다.
    

     

    • 기본값으로 출력

    head Execution.log | ccat

     

     

    • --palatte 옵션을 통해 색상 확인

    ccat --palette

     

     

    • --bg=dark 옵션을 통해 배경색 다크 모드 (dark)로 변경

    head Execution.log | ccat --bg=dark

     

     

    • -G String="_darkblue_" -G Plaintext="darkred" 옵션을 통해 색상 지정

    head Execution.log | ccat -G String="_darkblue_" -G Plaintext="darkred"

     

     

    • --html 옵션을 통해 HTML 형식으로 출력

    head Execution.log | ccat --html

     

    [root linux@/SYSTEM/LINUX/ccat]# head Execution.log | ccat --html
    
    <style>
    .black { color: black; }
    .blink { color: blink; }
    .blue { color: blue; }
    .bold { color: bold; }
    .brown { color: brown; }
    .darkblue { color: darkblue; }
    .darkgray { color: darkgray; }
    .darkgreen { color: darkgreen; }
    .darkred { color: darkred; }
    .darkteal { color: darkteal; }
    .darkyellow { color: darkyellow; }
    .faint { color: faint; }
    .fuchsia { color: fuchsia; }
    .fuscia { color: fuscia; }
    .green { color: green; }
    .lightgray { color: lightgray; }
    .overline { color: overline; }
    .purple { color: purple; }
    .red { color: red; }
    .reset { color: reset; }
    .standout { color: standout; }
    .teal { color: teal; }
    .turquoise { color: turquoise; }
    .underline { color: underline; }
    .white { color: white; }
    .yellow { color: yellow; }
    </style>
    <pre>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">44</span> <span class="darkred">:</span> <span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span>  <span class="darkred">[</span><span class="teal">START</span><span class="darkred">]</span>  <span class="teal">Realtime_Schedule_Web_Image_Crawling</span><span class="darkred">.</span><span class="darkblue">csh</span>  <span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span><span class="darkred">=</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">44</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110002.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110002.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">44</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110004.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110004.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">45</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110006.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110006.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">45</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110008.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110008.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">46</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110010.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110010.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">47</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110012.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110012.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">47</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110014.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110014.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">47</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110016.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110016.srv.png S</span>
    <span class="darkblue">2020</span><span class="darkred">/</span><span class="darkblue">01</span><span class="darkred">/</span><span class="darkblue">11</span> <span class="darkblue">00</span><span class="darkred">:</span><span class="darkblue">02</span><span class="darkred">:</span><span class="darkblue">47</span> <span class="darkblue">https</span><span class="darkred">:</span>//nmsc.kma.go.kr/IMG/GK2A/AMI/PRIMARY/L1B/COMPLETE/FD/201912/11/00/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110018.srv.png /root/TEST/TMP/gk2a_ami_le1b_rgb-daynight_fd020ge_201912110018.srv.png S</span>
    
    </pre>

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • CentOS 6

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기