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