개요
리눅스 환경에서 사용자 계정의 기본 로그인 셸을 확인하고 변경하는 chsh 명령어의 사용법과 내부 동작 원리를 살펴봅니다. /etc/shells 및 /etc/passwd 파일과의 연계 구조를 실제 터미널 실습 화면과 함께 명확하게 정리합니다.
현재 사용 중인 셸과 시스템 등록 셸 목록 확인
현재 세션에서 사용 중인 기본 셸을 확인하기 위해 echo $SHELL 명령어를 실행합니다.
실행 결과를 통해 현재 로그인 계정에 설정된 기본 셸이 /bin/bash임을 확인할 수 있습니다.

시스템에 등록되어 변경 가능한 유효 로그인 셸 목록을 확인하기 위해 cat /etc/shells 명령어를 실행합니다.
출력 결과를 통해 /bin/sh, /bin/bash 등 사용자가 선택하여 지정할 수 있는 정상적인 셸 경로를 점검할 수 있습니다.

새로운 셸(zsh) 설치 및 유효 경로 검증
기본 셸 변경 실습에 사용할 새로운 셸인 zsh를 설치하기 위해 sudo apt-get update -qq && sudo apt-get install -y zsh 명령어를 실행합니다.

설치된 zsh 실행 파일의 정확한 위치를 파악하기 위해 which zsh 명령어를 실행합니다.
출력 결과를 통해 zsh 바이너리가 /usr/bin/zsh 경로에 정상적으로 위치함을 확인할 수 있습니다.

설치한 zsh가 시스템의 유효 로그인 셸 목록에 등록되어 있는지 점검하기 위해 grep -E 'bash|zsh' /etc/shells 명령어를 실행합니다.
실행 결과를 통해 /bin/zsh 및 /usr/bin/zsh 경로가 /etc/shells에 올바르게 포함되어 있어 향후 chsh 명령어로 변경 가능한 상태임을 확인할 수 있습니다.

chsh 명령어로 사용자 기본 셸 변경 실습
현재 작업을 수행 중인 사용자 계정명을 확인하기 위해 id -un 명령어를 실행합니다.
출력 결과를 통해 현재 로그인된 계정이 root임을 확인할 수 있습니다.

현재 사용자의 기본 로그인 셸을 zsh로 변경하기 위해 chsh -s $(which zsh) 명령어를 실행합니다.
오류 메시지 없이 실행이 완료되어 지정한 셸 경로(/usr/bin/zsh)로 변경 처리가 정상적으로 수행되었음을 확인할 수 있습니다.

/etc/passwd 파일에 변경된 로그인 셸 정보가 올바르게 저장되었는지 검증하기 위해 grep "^$(whoami):" /etc/passwd 명령어를 실행합니다.
출력 결과의 마지막 필드가 /usr/bin/zsh로 갱신되어 해당 계정의 기본 셸이 정상적으로 반영되었음을 확인할 수 있습니다.

chsh 명령어의 동작 원리 이해와 셸 원복
실습을 마친 후 현재 사용자의 기본 로그인 셸을 원래의 bash로 되돌리기 위해 chsh -s /bin/bash 명령어를 실행합니다.
별도의 오류 메시지 없이 명령이 종료되어 /bin/bash로의 셸 원복 처리가 정상적으로 수행되었음을 확인할 수 있습니다.

/etc/passwd 파일에 복구된 로그인 셸 정보가 올바르게 반영되었는지 확인하기 위해 grep "^$(whoami):" /etc/passwd 명령어를 실행합니다.
출력 결과의 마지막 필드가 /bin/bash로 갱신되어 현재 계정의 기본 셸이 원래 상태로 안전하게 복원되었음을 확인할 수 있습니다.

지금까지 우분투에서 chsh 명령어를 사용해 기본 셸을 변경하는 방법과 내부 동작 원리를 간단하게 살펴보았습니다.
원하는 셸 환경으로 안전하게 전환하여 더욱 편리하고 효율적인 리눅스 터미널 환경을 구축해 보시기 바랍니다.