xonsh는 파이썬(Python) 언어를 기반으로 한 오픈소스 셸(shell) 및 스크립트 언어이다. Windows, macOS, Linux 등 주요 운영 체제에서 동작하며, Unix 셸과 파이썬 스크립트의 문법을 통합한 하이브리드 환경을 제공한다.
개요
- 유형: 명령줄 셸, 스크립트 언어
- 프로그램 언어: 파이썬(구현 언어)
- 라이선스: BSD 3‑Clause License
- 공식 홈페이지: https://xon.sh
주요 특징
| 구분 | 내용 |
|---|---|
| 파이썬 통합 | 셸 명령어와 파이썬 코드를 동일한 라인에서 혼용 가능. 예: ls -l $(python -c "print('*.py')") |
| 동적 변수 | 셸 변수를 파이썬 변수처럼 선언·사용할 수 있어, 복잡한 데이터 구조(리스트, 딕셔너리 등)도 직접 다룰 수 있다. |
| 플러그인 구조 | pip를 이용한 패키지 설치로 기능 확장이 용이. xontrib 라는 이름으로 서드파티 플러그인을 제공한다. |
| 자동 완성 | 파일·디렉터리 뿐 아니라 파이썬 객체, 함수명 등에 대한 자동 완성을 지원한다. |
| 다중 라인 입력 | 파이썬 코드 블록을 여러 줄에 걸쳐 입력할 수 있으며, 인터프리터 방식으로 즉시 실행한다. |
| 환경 호환성 | $PATH 등 기존 셸 환경 변수를 그대로 사용하면서, 파이썬 가상 환경(venv, conda)과 원활히 연동된다. |
역사
- 초기 공개: 2015년 초에 GitHub에 첫 번째 릴리즈가 공개되었다.
- 주요 개발: Xonsh 프로젝트는 주로 커뮤니티 기반으로 진행되며, 핵심 유지 관리자는 공개 저장소에 명시된 기여자들이다. 초기 설계자는 Erik N.(GitHub 아이디
eriknw)로 알려져 있으나, 공식 문서에서는 프로젝트 팀 전체를 “Xonsh 개발팀”으로 표기한다. - 버전 발전: 2020년대 초반까지 꾸준히 업데이트되어 현재는 0.14.x 버전(2024년 기준)이 배포되고 있다.
사용 예시
$ xonsh
>>> import os
>>> files = $(ls *.txt) # 셸 명령어와 파이썬 변수를 혼용
>>> for f in files:
... print(f, os.path.getsize(f))
위 예시처럼 $( … ) 구문을 통해 셸 명령 결과를 파이썬 변수에 바로 할당할 수 있다.
관련 프로젝트 및 확장
- xonsh‑builtin: 기본 제공 명령어 및 유틸리티 모음.
- xontrib‑ztab: Zsh‑style 탭 자동 완성을 제공.
- xonsh‑conda: Conda 가상 환경을 자동 감지·전환하는 플러그인.
참고문献
- Xonsh 공식 문서, “Getting Started” (https://xon.sh)
- GitHub 저장소 “xonsh/xonsh” – 릴리즈 노트 및 기여자 목록
- “The Xonsh Shell – A Python-Powered Command Prompt” – 커뮤니티 블로그(2022년)
※ 위 내용은 2024년까지 공개된 공식 자료와 커뮤니티 문서를 기반으로 작성되었으며, 최신 버전 및 세부 사항은 공식 홈페이지를 참조한다.