리눅스

우분투에서 기본 쉘을 dash에서 bash로 변경하는 방법

변군이글루 2025. 11. 17. 10:04
반응형

우분투에서 기본 쉘을 dash에서 bash로 변경하는 방법

우분투는 기본적으로 dash를 /bin/sh의 기본 셸로 사용하고 있습니다. 이는 부팅 속도를 최적화하고 시스템 스크립트를 빠르게 실행하기 위함입니다.

우분투가 dash를 기본으로 사용하는 이유

더 빠른 부팅 속도

  • dash가 bash보다 가볍고 실행 속도가 빠름
  • 시스템 스크립트(/bin/sh) 실행 시 부팅 시간 단축

POSIX 호환성

  • dash는 POSIX 표준을 엄격히 준수
  • 시스템 스크립트의 이식성 향상

경량화

  • 메모리 사용량이 bash보다 적음
  • 디스크 공간도 적게 차지

보안성

  • 기능이 간결하여 보안 취약점 가능성 감소

bash vs dash 비교

  dash (Debian Almquist Shell) bash (Bourne Again SHell)
장점 빠른 실행 속도
적은 메모리 사용
POSIX 표준 준수
시스템 스크립트에 적합
풍부한 기능 세트
우수한 인터랙티브 환경
자동 완성, 히스토리 등 사용자 편의 기능
스크립팅 기능이 풍부
단점 인터랙티브 기능 부족
사용자 친화적이지 않음
bash-specific 기능 사용 불가
상대적으로 무거움
실행 속도가 느림
메모리 사용량이 많음
728x90

현재 사용 가능한 Shell 목록 확인

cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen

현재 사용 중인 쉘 확인

echo $SHELL

기본 시스템 쉘 변경하기

update-alternatives 사용(권장)

sudo update-alternatives --config sh
  • 출력된 목록에서 bash를 선택합니다.

심볼릭 링크 직접 변경

sudo ln -sf /bin/bash /bin/sh

dpkg-reconfigure 사용

sudo dpkg-reconfigure dash
  • 메뉴에서 "No"를 선택하여 dash를 기본 셸로 사용하지 않도록 설정합니다.

사용자별 로그인 쉘 변경

  • 현재 사용자 계정의 로그인 쉘을 bash로 변경할 수 있습니다.
chsh -s /bin/bash
  • 변경 적용 후에는 다시 로그인하거나 새로운 터미널을 열어야 적용됩니다.

변경 확인

/bin/sh가 어떤 쉘을 가리키는지 확인

ls -l /bin/sh

현재 셸 확인

echo $0
echo $SHELL

시스템 및 사용자 스크립트 사용 예시

시스템 스크립트용(/bin/sh)

#!/bin/sh
# 시스템 초기화 스크립트 - dash 사용
echo "시스템 시작 중..."

사용자 스크립트용(/bin/bash)

#!/bin/bash
# 사용자 스크립트 - bash 기능 활용
for i in {1..10}; do
    echo "Count: $i"
done

 

728x90
반응형