셸은 운영체제와 명령어를 통해 상호작용하는 프로그램으로, 대화형(터미널) 및 비대화형(셸 스크립팅) 두 가지 방식으로 사용됩니다. 💻
스크립트 상단의 '쉬뱅(shebang)' 라인은 해당 스크립트를 실행할 셸 프로그램을 지정합니다. 📜
Bash: 대부분의 Linux 기본 셸이며, 광범위하게 사용되므로 공개용 셸 스크립트 작성에 적합합니다. 하지만 대화형 사용 시 사용자 정의 및 고급 기능 추가가 어렵습니다. 🐧
ZSH: macOS의 기본 셸로, Bash와 유사한 문법을 가지며 뛰어난 탭 완성, 맞춤법 교정, 풍부한 플러그인 생태계(자동 완성, 구문 강조 등)를 통해 대화형 사용 경험을 크게 향상시킵니다. 다만, 수동 설정이 많이 필요합니다. ✨
Fish (Friendly Interactive Shell): 사용자 친화적이며 최소한의 설정으로 자동 완성, 구문 강조 등 강력한 대화형 기능을 기본 제공합니다. fish_config 웹 기반 설정 도구도 있습니다. 하지만 Bash/ZSH와 다른 고유한 문법을 가집니다. 🐠
스크립트 작성: 널리 공유할 스크립트는 호환성을 위해 Bash로 작성하는 것이 권장됩니다. 개인용 스크립트라면 Fish의 쉬운 문법을 활용할 수 있습니다. ✍️
대화형 사용: ZSH 또는 Fish는 고급 기능과 사용자 정의 옵션으로 터미널 사용 경험을 극대화하므로 대화형 사용에 강력히 추천됩니다. 🚀
기본 셸 변경은 chsh -s $(which <셸_이름>) 명령어를 통해 가능하며, 필요에 따라 여러 셸을 함께 사용할 수 있습니다. 🔄