질문: 현재 내가 사용 중인 Unix 셸이 무엇인지 어떻게 확인할 수 있나요? 그리고 Unix 셸을 일시적으로 또는 영구적으로 변경하려면 어떻게 해야 하나요? (예를 들어, bash에서 tcsh로 변경)
답변: $0, exec, chsh -s 명령을 활용하면 이 모든 작업을 수행할 수 있습니다. 이번 글에서는 각 방법을 자세히 살펴보겠습니다.
1. 현재 사용 중인 Unix 셸 확인하기
echo $0 명령을 실행하면 현재 사용 중인 셸의 이름을 확인할 수 있습니다.
$ echo $0 /bin/bash
2. 현재 셸을 다른 셸로 임시 변경하기
exec 명령을 사용하면 현재 세션에서 셸을 일시적으로 변경할 수 있습니다.
$ echo $0 /bin/bash $ exec /bin/sh $ echo $0 /bin/sh
참고: 위와 같은 방식은 일시적인 변경입니다. 로그아웃 후 다시 로그인하면 원래 기본 셸로 돌아갑니다.
3. 현재 셸을 다른 셸로 영구 변경하기
기본 로그인 셸을 영구적으로 변경하려면 chsh(change shell) 명령을 사용합니다.
$ chsh -s /bin/sh Password:
참고: 이 방법으로 변경하면 설정이 영구적으로 저장됩니다. 다시 로그인해도 새로 지정한 셸이 계속 적용됩니다.
4. 시스템에서 사용 가능한 셸 목록 확인하기
시스템에 설치되어 사용 가능한 모든 셸은 /etc/shells 파일에 정리되어 있습니다.
$ cat /etc/shells # /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /bin/ksh93
로그인 셸을 변경할 때는 반드시 위 목록에 있는 셸 중에서만 선택해야 합니다. 반면 현재 세션의 셸만 임시로 바꾸는 경우라면 시스템에 존재하는 어떤 셸이든 자유롭게 사용할 수 있습니다.
5. 새로운 셸 설치하기
원하는 셸(예: ksh)이 시스템에 없다면 아래와 같이 패키지 관리자를 통해 새로 설치할 수 있습니다. 설치가 완료되면 해당 셸을 영구적인 로그인 셸로 지정하거나, 명령줄 작업용 임시 셸로 활용할 수 있습니다.
$ sudo apt-get install ksh
이처럼 $0, exec, chsh 세 가지 명령만 익혀두면 Unix 환경에서 셸을 손쉽게 확인하고 전환할 수 있습니다.