개요
우분투 시스템의 기본 /bin/sh 심볼릭 링크로 동작하는 초경량 셸 dash(Debian Almquist Shell)의 핵심 개념과 특징을 알아봅니다. 터미널 실습을 통해 bash와의 차이점을 이해하고, 가볍고 빠른 POSIX 표준 스크립트 작성 및 실행 방법을 완벽하게 익힐 수 있습니다.
우분투 기본 셸 링크 확인 및 dash 환경 점검
우분투 시스템의 기본 셸(/bin/sh)이 가리키는 심볼릭 링크 대상을 확인하기 위해 ls -l /bin/sh 명령어를 실행합니다.
실행 결과 /bin/sh가 dash를 가리키고 있음을 확인할 수 있습니다.

우분투 패키지 관리자에 dash 패키지가 정상적으로 설치되어 있는지 확인하기 위해 dpkg -l | grep dash 명령어를 실행합니다.
결과 목록의 ii 상태를 통해 패키지가 정상 설치되어 있음을 확인할 수 있습니다.

dash는 빠른 실행 속도와 적은 리소스 소모를 위해 설계된 초경량 POSIX 표준 호환 셸입니다.
셸 환경에서 전달된 명령어가 정상적으로 실행되는지 점검하기 위해 dash -c 명령어를 실행합니다.
⚙️ [주요 옵션]
-c : 전달된 문자열 형태의 명령어를 실행합니다.-s : 표준 입력(stdin)에서 명령어를 읽어 순차적으로 실행합니다.-e : 실행 중인 명령어가 오류(0이 아닌 종료 코드)를 반환하면 즉시 종료합니다.-u : 선언되지 않은 변수를 참조할 경우 오류를 출력하고 실행을 중단합니다.-n : 명령어를 실제로 실행하지 않고 문법 오류만 검사합니다.-x : 실행되는 명령어를 추적하여 화면에 순차적으로 출력합니다.

대화형 dash 셸 실행 및 내장 명령어(Built-in) 실습
dash 환경에서 주요 명령어들이 외부 실행 파일이 아닌 셸 내장 명령어(built-in)로 처리되는지 점검하기 위해 dash -c "type echo type pwd type cd" 명령어를 실행합니다.
실행 결과 echo, type, pwd, cd 모두 셸 내장 명령어로 등록되어 있어 불필요한 프로세스 생성 없이 빠르게 실행됨을 확인할 수 있습니다.

dash 셸 환경에서 사용자 정의 변수를 선언하고 저장된 값을 정상적으로 참조하는지 점검하기 위해 dash -c "test_var='Linux Dash Practice'; echo \$test_var" 명령어를 실행합니다.
변수 test_var에 할당된 문자열 값이 echo 명령어를 통해 화면에 정상적으로 출력되는 것을 확인할 수 있습니다.

현재 명령어를 실행 중인 셸 프로세스의 이름을 확인하기 위해 특수 매개변수인 $0을 출력하는 dash -c "echo \$0" 명령어를 실행합니다.
실행 결과로 dash가 출력되어 현재 스크립트가 의도한 대로 dash 셸 환경에서 구동되고 있음을 확인할 수 있습니다.

POSIX 표준을 준수하는 dash 셸 스크립트 작성 및 실행
dash 스크립트 실습을 위한 전용 디렉터리를 생성하고 해당 디렉터리로 이동하기 위해 mkdir -p ~/dash_practice && cd ~/dash_practice 명령어를 실행합니다.

dash 셸 환경에서 동작하도록 POSIX 표준 산술 연산과 while 루프 문법을 사용한 posix_test.sh 스크립트를 생성합니다.
스크립트 상단에 #!/bin/dash를 선언하여 dash 셸로 구동되도록 지정합니다.
![cat « ‘EOF’ > posix_test.sh
#!/bin/dash
count=1
while [ “$count” -le 3 ]; do
echo “Loop iteration: $count”
count=$((count + 1))
done
EOF](/ubuntu/20261025_023004_138/captures/s03_c02_cat_____EOF____posix_test_sh____bin_dash_count_1_w.png)
생성한 스크립트 파일을 직접 실행할 수 있도록 실행 권한을 추가하기 위해 chmod +x posix_test.sh 명령어를 실행합니다.

POSIX 표준 문법으로 작성된 스크립트의 정상 동작을 확인하기 위해 ./posix_test.sh 명령어를 실행합니다.
루프가 총 3회 반복되며 카운트 값이 순차적으로 출력되는 것을 확인할 수 있습니다.

Bash vs Dash 실행 속도 및 성능 비교 벤치마크
성능 벤치마크 테스트를 진행하기 위해 실습 디렉터리로 이동하는 cd ~/dash_practice 명령어를 실행합니다.

bash와 dash의 연산 처리 속도를 비교 측정하기 위해 50,000회 루프를 수행하는 bench.sh 스크립트를 생성합니다.
![cat « ‘EOF’ > bench.sh
i=1
while [ “$i” -le 50000 ]; do
i=$((i + 1))
done
echo “Finished loop test”
EOF](/ubuntu/20261025_023004_138/captures/s04_c02_cat_____EOF____bench_sh_i_1_while_____i__-le_50000.png)
bash 셸 환경에서 스크립트의 실행 속도와 소요 시간을 측정하기 위해 time bash bench.sh 명령어를 실행합니다.
반복 연산이 완료된 후 종료 메시지와 함께 실제 소요된 수행 시간이 측정됩니다.

동일한 스크립트를 dash 환경에서 구동하여 실행 속도를 비교하기 위해 time dash bench.sh 명령어를 실행합니다.
불필요한 기능 오버헤드를 줄인 경량 POSIX 셸인 dash가 bash 대비 훨씬 빠른 속도로 연산을 완료하는 것을 확인할 수 있습니다.

지금까지 우분투의 기본 시스템 셸인 dash의 특징과 주요 문법, 그리고 초경량 POSIX 스크립트 작성법을 간단하게 살펴보았습니다.
가볍고 빠른 dash 셸의 장점을 살려 시스템 리소스를 아끼고 이식성 높은 셸 스크립트를 작성해보시길 바랍니다.