본문 바로가기

목록이 없습니다.

우분투 기본 쉘 변경하기 (How to change default shell in Ubuntu)

2021. 2. 25. Server/Ubuntu
  1. 우분투(Ubuntu) 변경할 수 있는 쉘 목록 확인 명령어
    1. 정상 결과
    2. 지원하지 않는 배포판의 명령어 결과
    3. /etc/shells 파일 확인을 통한 기본쉘 목록 확인
  2. 우분투(Ubuntu) 기본쉘 변경 명령어
  3. 우분투 기본쉘 확인 명령어
  4. (추가) 관리자권한을 통해서 특정 user의 기본쉘 변경

 

우분투(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의 이름을 추가로 입력해주면 됩니다.

 

 

 

참고

nochoco-lee.tistory.com/350