Section 4.1: 기본 쉘 변경하기

대부분의 최신 배포판들은 BASH (Bourne Again SHell) 를 선탑재 (pre-installed) 한 상태로 출시되며, 또한 이를 기본 쉘로 설정해놓고 있다.

Linux 상에서 쉘을 변경하기위한 명령어 (실제로는 ELF 형식의 실행 파일이다) 는 chsh (change shell) 이다.

쉘을 변경하기에 앞서, chsh -l 커맨드를 이용하여 사용자의 컴퓨터에 어떤 종류의 쉘들이 설치되고 설정되어 있는지를 확인할 수 있다. 해당 명령어의 실행 결과는 아래와 유사할 것이다:

[user@localhost ~]$ chsh -l /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /usr/bin/fish

어떤 배포판에서는, chsh -l 명령어가 정상적인 명령어로 인식되지 못할 것이다.이러한 경우에는, 사용 가능한 쉘들의 목록을 /etc/shells 파일에서 확인할 수 있다.

cat 명령어를 이용하여 아래와 같이 파일의 내용을 출력할 수 있다:

[user@localhost ~]$ cat /etc/shells # /etc/shells: 유효한 (valid) login 쉘들의 목록 /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /usr/bin/fish

위와 같이 사용 가능한 쉘들을 확인했다면, chsh -s 명령어를 통해 새로운 기본 쉘을 선택할 수 있다 (예: fish),

[user@localhost ~]$ chsh -s /usr/bin/fish Changing shell for user. Password: Shell changed.

이제 로그오프-로그온 수행을 통해, 새롭게 설정된 기본 쉘을 사용할 수 있다.

만약 시스템의 관리자 권한을 가지고 있으면서, 다른 사용자에 대해 기본 쉘을 변경하기를 원한다면, chshroot 권한으로 실행함으로써 주어진 목적을 달성할 수 있다. 예를 들어 user_2 사용자의 기본 쉘을 fish 로 변경하는 경우를 가정해 본다면, 위에서 소개된 방법과 동일한 명령어를 사용하되 다른 사용자의 계정 정보를 추가로 기술하기만 하면 된다: chsh -s /usr/bin/fish user_2

만약 현재의 기본 쉘이 무엇인지를 확인하고자 한다면, 기본 쉘에 대한 경로 정보를 가리키고 있는 $SHELL 환경변수 내용을 보면 된다. 따라서, 위에서 소개된 방법을 정상적으로 수행하였다면, 아래와 같은 결과를 얻을 수 있을 것이다.

~> echo $SHELL /usr/bin/fish

chsh 옵션들:

-s shell 주어진 shell 을 login 쉘로 사용한다. -l, --list-shells /etc/shells 에 기술된 쉘들의 목록을 출력하고 종료한다. -h, --help 사용 설명서를 출력하고 종료한다. -v, --version 버전 정보를 출력하고 종료한다.
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts