Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Unix 셸 팁: Bash에서 다른 로그인 셸로 변경하는 방법

질문: 현재 내가 사용 중인 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 환경에서 셸을 손쉽게 확인하고 전환할 수 있습니다.