'/bin/bash' vs '/bin/sh'

강지현·2024년 11월 5일

Linux 운영체제 (1주)

목록 보기
8/13
post-thumbnail

/bin/sh란?

  • UNIX 시스템에서 가장 기본적인 셸

  • 대부분의 UNIX 시스템과 리눅스 배포판은 /bin/sh 가 Bourne Shell을 가리키는 심볼릭 링크라고 할 수 있다.

  • 간단하고 호환성이 높아서 다양한 시스템에서 기본 셸로 사용된다.

심볼릭 링크(symbolic link) 란?

  • 링크를 연결하여 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크

심볼릭 링크 사용방법

  • original 디렉토리를 생성 이후 capture.png 를 넣는다.

/bin/bash란?

  • GNU 프로젝트의 일환으로 만들어진 Bourne-Again Shell의 약자이다.

  • /bin/sh 에 비해 더 많은 기능을 지원하며, 사용자 친화적인 기능들(예 : 자동 완성, 명령어 히스토리, 셸 스크립팅에서 배열 사용 등)을 제공한다.

  • 리눅스 사용자들 사이에서 가장 널리 사용되는 셸 중 하나이다.

/bin/sh와 /bin/bash의 주요 차이점은?

1. 스크립트 호환성

  • /bin/sh : POSIX 표준을 따르는 스크립트에 최적화되어 있어, 다양한 시스템에서 호환성을 유지하기 쉽다.

  • /bin/bash : bash 특유의 기능을 사용할 수 있어 더 복잡한 스크립트를 작성할 수 있지만, 다른 셸에서 호환되지 않을 수 있다.

2. 기능성

  • /bin/bash/bin/sh 보다 훨씬 많은 기능을 제공한다.

    • ex) 배열을 사용하거나 명령어 치환을 더 유연하게 다룰 수 있다.

3. 사용 편의성

  • bash가 사용자 편의 기능이 많다.

    • ex) 명령어 자동 완성, 명령어 히스토리 등

사용 예시

/bin/sh

  • 간단한 시스템 유지 관리 스크립트나 다양한 UNIX 시스템에서 실행되어야 하는 스크립트 작성할 때 사용한다.
#!/bin/sh
echo "Hello, World!"

/bin/bash

  • 사용자와의 상호작용이 많거나, 복잡한 로직을 처리해야 하는 스크립트를 작성할 때 유용하다.
#!/bin/bash
echo -n "당신의 이름을 입력하세요: "
read name
echo "안녕하세요, $name님!"

즉, 간단하고 호환성이 중요하면 /bin/sh 를 사용하고 더 많은 기능과 사용자 편의성을 원한다면 /bin/bash 를 사용하면 된다.

profile
시작!!

0개의 댓글