우분투(Ubuntu)를 설치하면 기본적으로 BASH(배시, Bourne Again SHell)이라 불리우는 쉘이 설치되어있는데요 사실 쉘의 종류는 다양하고 커스터마이징도 가능한 부분이 있어서 개발자나 관리자가 원하는 쉘을 설치해서 커스터마이징을 할 수도 있습니다.
오늘은 우분투에 접속했을 때 기본쉘을 변경해보는 내용을 정리해보려고 합니다. 이는 우분투 뿐만 아니라 리눅스(Linux)기반 서버에서도 적용가능할것이라고 생각합니다.
우분투(Ubuntu) 변경할 수 있는 쉘 목록 확인 명령어
우분투는 기본쉘을 변경할 수 있는 명령어를 제공하고 있습니다. 바로 chsh(CHange SHell) 입니다.
정상 결과
$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish
chsh -l 명령어를 지원하는 배포판의 결과
지원하지 않는 배포판의 명령어 결과
$ chsh -l
chsh: invalid option -- 'l'
Usage: chsh [options] [LOGIN]
Options:
-h, --help display this help message and exit
-R, --root CHROOT_DIR directory to chroot into
-s, --shell SHELL new login shell for the user account
chsh -l 명령어를 지원하지 않는 배포판의 결과
원래는 위처럼 변경 가능한 쉘 목록이 결과로 나와야 하지만 저처럼 chsh: invalid option -- 'l' 이 나오는 경우도 있을겁니다. 해당 배포판은 해당 명령어로 확인할 수 없고 /etc/shells 파일 내용에서 확인할 수 있습니다.
/etc/shells 파일 확인을 통한 기본쉘 목록 확인
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/usr/bin/screen
우분투(Ubuntu) 기본쉘 변경 명령어
변경가능한 기본쉘 목록을 확인한 후에는 아래의 명령어를 통해서 변경해줍니다.
$ chsh -s /usr/bin/fish
Changing shell for user.
Password:
Shell changed.
chsh(CHange SHell) 명령어의 -s (--shell) 옵션을 통해서 현재 접속한 user의 기본쉘을 변경해줍니다. 명령어를 입력하면 접속한 user의 비밀번호를 입력해야합니다. 올바른 비밀번호를 입력하면 기본쉘 변경이 마무리됩니다.
우분투 기본쉘 확인 명령어
$ echo $SHELL
/usr/bin/fish
변경 전에는 /bin/bash로 나올 것입니다.
(추가) 관리자권한을 통해서 특정 user의 기본쉘 변경
# chsh -s /usr/bin/fish username
기본쉘 변경 명령어와 모두 동일하고 맨 뒤에 변경해줄 user의 이름을 추가로 입력해주면 됩니다.
참고