Linux에서 bash가 표준 인 이유는 무엇입니까?


19

가장 최근의 Linux 배포판에는 bash가 기본 셸로 포함되어 있지만 더 나은 셸을 사용할 수 있습니다.

나는 이것이 아무도 바꾸고 싶지 않은 역사적 남은 것인지 이해하려고 노력하고 있거나 bash를 첫 번째 선택으로 만드는 좋은 이유가 있습니까?


19
대부분의 컴퓨터에는 MS Windows가 설치된 상태로 판매되고 있지만 다른 더 나은 OS가있을 수도 있습니다.
choroba

배쉬는 간단하다. 일반적으로 사용자가 원하는 모든 작업을 수행 할 수 있습니다. 쉽게 전환 할 수 있습니다. 기본적으로 scsh를 사용하는 것은 재미 있지 않습니다.
cnd

4
Bash는 UNIX 표준의 OSS 구현으로 /bin/sh, '일반적인'UNIX-es에서 기본 쉘입니다.
Jan Marek

나는이 위키 링크를 알고 있지만 그것은 당신의 질문에 깊이 대답합니다. 하나의 쉘이 다른 것보다 en.wikipedia.org/wiki/Unix_shell
whoami

6
(논쟁 적으로) 더 잘 정의하십시오 . 나는 bash그것을 잘 알고 있기 때문에 최고의 쉘 이라고 생각 합니다. 어디에나 있고, 간결하고 상대적으로 쉽게 필요한 모든 것을하고, 쉽게 읽을 수 있으며, bash 스크립트를 만드는 방법을 모르면 사람들이 다소 이해할 수 있습니다. 껍질에서 무엇을 원하십니까? 많은 프로그래밍 기능을 원한다면 쉘을 잘못 사용하고 있습니다.
nicerobot 2012 년

답변:


18

짧은 대답은 리눅스가 실제로 GNU / Linux이기 때문입니다. 커널 만 리눅스이지만 유닉스와 같은 환경을 제공하는 기본 유틸리티 모음은 GNU에서 제공 하며 GNU 쉘은 bash입니다
.

추가 주석을 추가하기 위해 편집했습니다 ...
유닉스 역사가가 아니라고 말하면서 접두사를 만들 수 있습니다.

emacs가 편집자에게 있기 때문에 몇 가지 요점은 무엇보다도 bash의 부엌 싱크대입니다.
bash가 릴리스되었을 때 무료 ksh 구현은 없었고 tcsh는 무료 csh 대체였습니다. 그러나 Stallman은 쉘 프로그래밍을 위해 csh에 반대했습니다.
대화식 쉘 배쉬로서 세션에서 세션으로의 히스토리 저장과 함께 탁월한 히스토리 / 명령 리콜이있었습니다. 쉘 프로그래밍을 위해 sh, bsh, ksh를 대체하고 적절한 대화 형 쉘을 만들었습니다.
내리막 길의 눈덩이처럼 배쉬는 운동량과 크기를 얻었습니다.

그렇습니다. 수십 개의 다른 껍질이 있습니다. 개인 목적이나 취향에 더 잘 맞는 껍질이지만 껍질 주위의 모든 것을 위해 껍질 껍질은 괜찮은 일을하고 20 년 이상 그것에 많은 눈을 가지고 있습니다.


이해 했어요. 그러나 대부분의 배포에는 다른 많은 비 GNU 소프트웨어가 포함됩니다. bash는 Windows에서 지배적 인 OS 인 choroba가 언급 한 것처럼 사용되기 때문에 bash가 사용되는 것 같습니다. 그러나 수십 년 동안 Windows는 더 나은 하드웨어 지원 (드라이버)을 사용하여 다른 OS로 전환하기가 어려웠습니다. 사용자가 전환하지 못하도록 Bash가 제공하는 고유 기능이 무엇인지 알지 못합니까?
밀라노 Babuškov

짧고 간단한 답변을 위해 +1과 좋은 하나 @bdowning :-)
Nikhil Mulley

2
bash 특정 기능을 사용하는 스크립트가 너무 많으므로 @ MilanBabuškov Bash 설치 해야합니다 . 그 가정에서 시작하면 추가 쉘을 정당화해야합니다. Dash는 부팅 시간 단축 계획의 일환으로 Ubuntu와 같은 디스 토스에 포함되었습니다. bash가 대화식 쉘로 "충분히 충분"하다는 것을 감안할 때, 다른 쉘은 아직 기본 패키지로드 아웃의 일부가 될만큼 강력한 인수를 제공하지 않았습니다.
ssokolow

12

배쉬에는 몇 가지 잠재적 인 경쟁자가 있습니다.

  • Zsh 는 고급 대화식 기능을 갖추고 있지만 스크립팅과 관련하여 몇 가지 단점이 있습니다 (현재는 과거에 비해). 리눅스가 초기 단계였던 1990 년대 초 중반에서 zsh는 거의 알려지지 않았습니다.
  • Ksh 는 1980 년대 중반 이래로 상업 유니스 에 대한 사실상의 표준 이었지만 2000 년까지는 독점 소프트웨어 였으므로 Linux에서는 옵션이 아니 었습니다. 또한 ksh에는 bash와 비교하여 하위 명령 줄 버전 기능이 있습니다.
  • ksh의 무료 복제 본인 Pdksh 는 옵션 이었지만 잘 알려지지 않았으며 명령 행 버전 기능이 좋지 않았습니다. (Pdksh는 일부 BSD에서 여전히 사용되고 있지만 ATT ksh는 무료이므로 더 이상 매우 활발한 프로젝트가 아닙니다.)
  • 일부 배포판은으로 변형을 설치합니다 /bin/sh. Ash (애쉬라고하는 느슨한 셸 패밀리를 의미 함)는 대화식 기능이없는 작고 빠르도록 설계되었습니다 (스크립트 편집 전용). 재의 부흥은 비교적 최근입니다. 1990 년대에 기존 변형에는 많은 기능이 없었습니다.
  • Tcsh 는 zsh가 등장 할 때까지 가장 진보 된 대화식 쉘 이었지만 sh와 호환되지 않으며 스크립팅에는 적합하지 않습니다 .

또한 bash는 공식 GNU 셸이며 Linux 시스템은 실제로 GNU / Linux입니다 . 가장 핵심적인 부분 인 Linux 커널이 그렇지 않더라도 많은 핵심 프로그램이 GNU에서 제공됩니다. 사실상 표준이되었을 때, 배쉬는 잘 알려져 있었고, 공식적인 지위를 가지고 있었고, 적절한 기능을 가지고있었습니다.


내가 이해하는 것처럼 POSIX 표준은 / bin / sh에서 Bourne 쉘에 필요한 기능을 지정하며 대부분의 Linux 배포판은 Bourne 쉘을 사용하도록 작성된 쉘 스크립트에 따라 다릅니다. BASH는 기본적으로 Bourne 셸의 향상된 버전이며 / bin / sh는 실제로 실행시 Bourne 셸 기능으로 실행되는 / bin / bash에 대한 링크입니다.
bgvaughan

@bgvaughan 일부 배포판은 bash를 제공 /bin/sh하고 다른 배포판은 ash를 제공합니다. 예를 들어 우분투가 /bin/sh있었다 dash동안 (애쉬 포크 데비안 의해 유지). 배시는 더 많은 기능을 가지고 있으며, 재는 더 작고 빠릅니다. 둘 다 POSIX를 준수합니다 (또는 실제로는 충분히 준수합니다).
Gilles 'SO- 악마 그만해'

4

가장 간단한 대답? 어떤 것이 기본값이어야합니다. 가장 합리적인 기본값은 대부분의 사용자가 이미 익숙한 것입니다. 그 시점에서 Bash는 좋은 선택입니다. 누구나 세상에서 가장 좋은 것을 선택할 자유가 있습니다. 대부분 필요한 경우 항상 기본값을 사용하도록 선택합니다.


3

DOS에서 (Doskey가 설치된 상태에서) 커서를 단순히 위 / 아래로 움직여서 마지막 명령을 호출하는 기능을 놓쳤습니다. BASH는 * nix에서이를 구현 한 첫 번째 IMO였습니다.

아마 그 세대 이후의 대부분의 사람들은 배쉬를 좋아했습니다.


1990 년대까지 컴퓨터를 사용하지는 않았지만 tcsh, 화살표 키를 사용하여 쉘 기록을 앞뒤로 탐색하는 최초의 * nix 쉘인 것으로 가정했습니다 .
Anthony G-23:

1

다른 모든 대답은 훌륭하지만 실제적인 관점에서 볼 수 있습니다. 익숙하지 않은 시스템 앞에 앉아 있거나 원격으로 액세스하면 무언가를 해야하는 경우 가장 오래된 시스템을 제외한 모든 시스템에서 bash를 사용할 수 있습니다. 그냥 가서 일을 끝낼 수 있습니다.

다른 답변과 귀하의 질문에서 지적했듯이 다른 쉘이 많이 있습니다 (zsh에 대해 많은 좋은 소식을 들었지만 시도하지는 않았습니다).하지만 구문과 때로는 사용되는 명령에 따라 다릅니다. 일을 끝내기 위해. 무언가를 끝내고 싶다면 bash는 다른 쉘에 적응하지 않고도 까다로울 수 있습니다.

또한 일반적으로 유용 할 수있는 쉘 스크립트를 작성할 때 bash 용으로 작성하고 시스템 의존적 인 일을하지 않도록주의하면 거의 모든 곳에서 실행될 것이라는 것을 알고 있습니다.


1

관성.

Bash는 Linux (원하는 경우 GNU / Linux) 시스템이 나타나기 시작했을 때 가장 쉽게 사용할 수있는 무료 쉘이었습니다. 그것이 GNU 프로젝트에서 나온 사실은 아프지 않았습니다.

왜 이것이 여전히 기본 쉘인지에 관해서는, 그것을 바꿀 충분한 이유가 없었습니다. 다른 쉘이 더 좋더라도 다른 배포판에서 동일한 기본 로그인 쉘을 사용하면 이점이 있으며 모든 사람 (Debian, Red Hat, Suse 등)이 다른 것으로 전환하도록 동의하기가 어렵습니다.

그리고 결국 기본값입니다. 모든 사용자는 chsh자신의 로그인 쉘을 변경할 수 있습니다 . 모든 사람의 기본값을 변경할 필요는 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.