WIPIVERSE

xonsh

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년까지 공개된 공식 자료와 커뮤니티 문서를 기반으로 작성되었으며, 최신 버전 및 세부 사항은 공식 홈페이지를 참조한다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기