본문 바로가기

목록이 없습니다.

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

Server/Ubuntu

     

    우분투(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