Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

jm-shell – 셸 활동까지 기록하는 매우 유익한 맞춤형 Bash 셸

jm-shell이란?

jm-shell은 무료 오픈소스로 제공되는 가볍고 정보성 높은 맞춤형 Bash 셸입니다. 일반적인 셸 환경에서는 확인하기 어려운 다양한 정보를 실시간으로 보여주며, 시스템 부하 평균치(load average), 노트북 배터리 상태 등 유용한 시스템 정보도 함께 표시해 줍니다.

특히 jm-shell의 가장 큰 특징은 명령어 기록 관리 방식입니다. 기본 Bash는 중복을 제거한 고유 명령어만 히스토리 파일에 저장하는 반면, jm-shell은 실행된 모든 셸 활동을 로그 파일에 그대로 기록합니다. 덕분에 이전에 실행했던 명령어를 훨씬 정확하고 완벽하게 추적할 수 있습니다.

또한 현재 작업 디렉터리가 Git, Subversion, Mercurial 같은 버전 관리 시스템의 저장소라면, 활성 브랜치(active branch) 등 저장소 관련 정보를 프롬프트에서 바로 확인할 수 있습니다.

jm-shell 주요 기능

  • 명령어 구간을 구분해 주는 상태 라인(구분선) 제공
  • 현재 디렉터리 내 항목 개수 표시
  • 파일시스템상의 현재 위치 표시
  • 셸 활동 전체 기록을 담는 로그 파일 유지
  • 시스템 부하 평균치 표시 – 임계값(2)을 초과하면 빨간색으로 경고
  • 마지막 명령어의 종료 시각 표시
  • 마지막 명령어에서 오류가 발생한 경우 오류 코드 출력
  • 마지막 명령어 실행 시간이 4초를 넘으면 총 소요 시간 표시
  • admin@wsxdn.com:path 형태의 프롬프트 제공
  • 여러 가지 프롬프트 스타일 지원
  • 백그라운드 작업 지원
  • 노트북 배터리 충전 상태 표시(배터리가 가득 차지 않은 경우) 등 다양한 부가 기능

리눅스에 jm-shell 설치하기

최신 버전의 jm-shell을 설치하려면 먼저 GitHub 저장소를 클론한 뒤, 해당 디렉터리로 이동합니다.

$ git clone https://github.com/jmcclare/jm-shell.git
$ cd jm-shell

다음으로 Bash가 jm-shell을 사용하도록 설정해야 합니다. ps1, colors.sh, colors_unset.sh 파일을 ~/.local/lib/bash 디렉터리로 복사합니다. 해당 디렉터리가 없다면 미리 생성해야 합니다.

$ mkdir ~/.local/lib/bash	#디렉터리가 없는 경우 생성
$ cp -v colors.sh colors_unset.sh ps1 -t ~/.local/lib/bash/

이제 ~/.bashrc 셸 초기화 파일에 다음 줄을 추가하여 ps1 파일을 source 합니다.

source ~/.local/lib/bash/ps1

그런 다음 ~/.bashrc에서 prompt_style 변수를 사용해 원하는 프롬프트 스타일을 지정합니다. 사용 가능한 스타일은 standard, tweaked, extensive, minimal, kirby입니다.

prompt_style=extensive

설정을 마쳤으면 ~/.bashrc 파일을 저장하고 닫은 뒤, 변경 사항을 적용하기 위해 다시 source 합니다.

$ source ~/.bashrc

셸 로그 파일의 위치를 변경하고 싶다면(기본값: ~/.local/share/bash/shell.log), ~/.bashrc 파일에서 BASHSHELLLOGFILE 변수를 설정하면 됩니다.

BASHSHELLLOGFILE=~/.bash-shell.log

자세한 내용은 jm-shell GitHub 저장소(https://github.com/jmcclare/jm-shell)를 참고하세요.

jm-shell은 Bash 셸을 자유롭게 커스터마이징할 수 있는 스크립트 모음으로, 일상적인 작업에 실질적인 도움이 되는 다양한 정보성 기능을 갖춘 도구입니다. 직접 설치해서 사용해 보고, 사용 후기를 댓글로 공유해 주세요.