자주 찾는 디렉터리를 학습해 몇 번의 키 입력으로 이동하는 더 똑똑한 cd 명령어
idank/explainshell
manpage 설명을 각 인수에 연결해 셸 명령줄을 풀이하는 웹 도구이자 Python 라이브러리입니다.
- 스타
- 14,297
- 포크
- 854
- 열린 이슈
- 57
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
explainshell은 플래그와 인수가 포함된 파이프라인 같은 셸 명령줄을 받아 bashlex로 AST를 파싱한 다음, 각 토큰을 해당 manpage에서 추출한 옵션 설명과 연결합니다. 결과에는 명령의 각 부분이 무슨 역할을 하는지 표시되므로, 익숙하지 않은 한 줄짜리 명령을 살펴볼 때 유용합니다.
이 프로젝트는 roff 매크로를 사용하거나, 원본 텍스트에서 해당 줄의 범위를 반환하는 LLM 기반 추출기를 사용해 manpage를 파싱합니다. 따라서 표시되는 도움말 텍스트는 생성된 것이 아니라 manpage에서 잘라 온 내용입니다. 처리한 manpage는 하나의 SQLite 데이터베이스에 저장하고, Flask 웹 인터페이스에서 연결 결과를 보여 줍니다. 파이프와 && 같은 셸 연산자도 별도의 노드로 처리합니다.
저장소에는 manpage 데이터를 추출하고, diff를 확인하고, 살펴볼 수 있는 manager CLI와 LLM 추출 및 mandoc의 Markdown 렌더링을 평가하는 도구도 포함되어 있습니다. 최신 데이터베이스는 GitHub releases를 통해 배포되며, 그 안의 콘텐츠에는 각 manpage의 원본 라이선스가 적용됩니다.
핵심 기능
- 01셸 명령의 각 인수를 manpage에 있는 해당 옵션 설명과 연결합니다.
- 02명령줄을 AST로 파싱해 파이프, && 및 기타 셸 연산자를 처리합니다.
- 03roff 매크로 또는 원본 줄 범위를 반환하는 LLM을 사용해 옵션을 추출합니다.
- 04처리한 manpage를 하나의 SQLite 데이터베이스에 저장하고 Flask 기반 웹 인터페이스를 제공합니다.
- 05manpage 데이터를 추출하고, diff를 확인하고, 조회하는 CLI를 제공합니다.
활용 사례
- 익숙하지 않은 한 줄짜리 명령이나 파이프라인을 실행하기 전에 이해하기.
- 스크립트나 문서에 있는 셸 명령을 검토하기.
- manpage 데이터를 기반으로 자체 호스팅 명령어 레퍼런스를 만들기.
- LLM 기반 manpage 옵션 추출을 평가하거나 비교하기.
빠른 시작
- 1
저장소를 클론합니다
git clone https://github.com/idank/explainshell.git - 2
README에 설명된 대로 virtualenv에 Python 종속성을 설치합니다
pip install -r requirements-dev.txt - 3
최신 데이터베이스를 다운로드합니다
make download-latest-db - 4
웹 서버를 실행한 다음 http://localhost:5000 을 엽니다
make serve
사용 전 알아둘 점
- 코드는 GPLv3 라이선스이므로 파생물을 배포할 때도 GPLv3를 적용해야 합니다.
- 공개된 데이터베이스에는 각자의 라이선스가 적용되는 상위 man 페이지가 포함되어 있습니다. 따라서 재배포하려면 라이선스 준수 여부를 직접 검토해야 합니다.
- 새 man 페이지를 추출하려면 Codex와 같은 LLM 제공업체에 액세스하거나 OpenAI API 키가 필요합니다.
토픽
자주 묻는 질문
- explainshell은(는) 무엇인가요?
- manpage 설명을 각 인수에 연결해 셸 명령줄을 풀이하는 웹 도구이자 Python 라이브러리입니다. explainshell은 플래그와 인수가 포함된 파이프라인 같은 셸 명령줄을 받아 bashlex로 AST를 파싱한 다음, 각 토큰을 해당 manpage에서 추출한 옵션 설명과 연결합니다. 결과에는 명령의 각 부분이 무슨 역할을 하는지 표시되므로, 익숙하지 않은 한 줄짜리 명령을 살펴볼 때 유용합니다.
- explainshell은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- explainshell은(는) GPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- explainshell은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. explainshell의 마지막 커밋은 2026년 8월 26일입니다.
- explainshell은(는) 어디에 사용할 수 있나요?
- 익숙하지 않은 한 줄짜리 명령이나 파이프라인을 실행하기 전에 이해하기. 스크립트나 문서에 있는 셸 명령을 검토하기. manpage 데이터를 기반으로 자체 호스팅 명령어 레퍼런스를 만들기. LLM 기반 manpage 옵션 추출을 평가하거나 비교하기.
- explainshell는 어떻게 설치하나요?
- 저장소를 클론합니다: git clone https://github.com/idank/explainshell.git README에 설명된 대로 virtualenv에 Python 종속성을 설치합니다: pip install -r requirements-dev.txt 최신 데이터베이스를 다운로드합니다: make download-latest-db 웹 서버를 실행한 다음 http://localhost:5000 을 엽니다: make serve
- explainshell은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/idank/explainshell
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
사용자별·셸별로 여러 Node.js 버전을 설치하고 전환할 수 있는 POSIX 호환 bash 스크립트입니다.
입력 목록을 대화형으로 필터링하고, 셸 스크립트를 인터랙티브한 터미널 선택기로 바꿔 주는 범용 CLI 퍼지 파인더입니다.
안전한 인자 이스케이프와 크로스 플랫폼 헬퍼를 제공하는, 셸 스타일 스크립트 작성용 JavaScript 기반 도구입니다.
표준 타입 힌트로 CLI 애플리케이션을 만들고, 도움말·유효성 검사·셸 자동 완성을 제공하는 Python 라이브러리입니다.