가장 최근의 Linux 배포판에는 bash가 기본 셸로 포함되어 있지만 다른 (아마도) 더 나은 셸도 사용할 수 있습니다.
이것이 아무도 바꾸고 싶어하지 않는 역사적 유물인지, 아니면 bash를 첫 번째 선택으로 삼을 만한 타당한 이유가 있는지 알고 싶습니다.
답변1
짧은 대답은 Linux가 실제로 GNU/Linux이기 때문입니다. 커널만 Linux이지만 Unix와 유사한 환경을 제공하는 기본 유틸리티 세트는 다음과 같이 제공됩니다.암소 비슷한 일종의 영양GNU 쉘은세게 때리다
내가 말했듯이, 그것은 짧은 대답입니다;)
몇 가지 추가 설명을 추가하도록 편집했습니다.
저는 Unix 역사가가 아니므로 IMHO에만 답변할 수 있다는 점을 접두사로 지정하겠습니다.
몇 가지 요점을 말하자면, 첫 번째 bash는 emacs가 편집자를 위한 것처럼 쉘을 위한 주방 싱크대입니다.
bash가 출시되었을 때 무료 ksh 구현은 없었고 tcsh는 무료 csh 대체품이었지만 Stallman은 csh용 쉘 프로그래밍에 강력히 반대했습니다.
대화형 셸인 bash는 뛰어난 기록/명령 호출 기능을 갖추고 있으며 세션 간 기록을 저장할 수 있습니다. 쉘 프로그래밍에서 sh, bsh, ksh를 대체하며 훌륭한 대화형 쉘입니다.
언덕 아래로 굴러가는 눈덩이처럼 bash는 추진력과 규모를 얻었습니다.
예, 개인적인 목적이나 취향에 더 적합한 수십 개의 다른 쉘이 있지만 단일 다목적 쉘 bash의 경우 괜찮은 작업을 수행했으며 20년 이상 많은 사람들의 관심을 끌었습니다.
답변2
Bash에는 잠재적인 경쟁자가 있습니다.
- 지쉬더 발전된 상호 작용 기능을 갖추고 있지만 스크립팅에 몇 가지 특이한 점이 있습니다(지금은 이전보다 적음). Linux가 초기 단계였던 1990년대 초중반에는 zsh가 사실상 알려지지 않았습니다.
- 케시이는 1980년대 중반부터 상업용 unice의 사실상 표준이었지만 2000년까지는 독점 소프트웨어였기 때문에 Linux에서는 옵션이 아니었습니다. 또한 ksh는 bash에 비해 명령줄 편집 기능이 좋지 않습니다.
- 인산이수소칼륨ksh의 무료 복제본인 가 옵션이었을 것이지만 잘 알려져 있지 않으며 명령줄 편집 기능이 좋지 않습니다. (Pdksh는 일부 BSD에서 여전히 사용되고 있지만 이제 ATT ksh는 무료이지만 더 이상 활발하게 활동하는 프로젝트는 아닙니다.)
- 일부 배포판 설치금연 건강 증진 협회Ash(ash라는 느슨한 쉘 제품군을 의미함) 는
/bin/sh
대화형 기능 없이 작고 빠르도록 설계되었습니다(스크립트 편집에만 사용됨). 화산의 부활은 1990년대에 비교적 새로운 일이었고 기존 변종에는 많은 기능이 부족했습니다. - 테크스zsh가 등장하기 전에는 가장 발전된 대화형 쉘이었지만 sh 및 zsh와는 달랐습니다.스크립팅을 잘 못함.
또한 bash는 공식입니다암소 비슷한 일종의 영양쉘과 리눅스 시스템은GNU/리눅스: Linux 커널의 가장 잘 알려진 부분은 GNU가 아니지만 많은 핵심 프로그램이 GNU에서 나왔습니다. Bash가 사실상의 표준이 되었을 때, Bash는 유명했고, 공식적인 지위를 얻었으며, 훌륭한 기능 세트를 갖추고 있었습니다.
답변3
가장 간단한 대답은 무엇입니까? 어떤 것들은 기본값이어야 하기 때문입니다. 가장 합리적인 기본 설정은 대부분의 사용자에게 이미 익숙한 설정입니다. 이러한 관점에서 Bash는 좋은 선택입니다. 모든 사람은 자신의 세계에서 최고를 선택할 자유가 있습니다. 대부분의 사람들은 항상 자신의 요구 사항을 충족하는 경우 기본값을 사용하도록 선택합니다.
답변4
다른 모든 답변은 훌륭하지만 실용적인 관점에서 볼 때: 익숙하지 않은 시스템 앞에 앉아 있거나 원격으로 액세스하고 뭔가를 해야 하는 경우 bash가 모든 것에서 최고라고 믿을 수 있습니까? 가장 오래된 시스템에서 사용 가능합니까? 나는 계속해서 일을 처리할 수 있다.
다른 답변과 귀하의 질문에서 지적했듯이 다른 많은 쉘이 있습니다 (zsh에 대해 좋은 소식을 많이 들었지만 아직 시도하지 않았습니다.). 구문이 다르며 때로는 사용되는 명령이 다릅니다. 일을 완수하는 측면에서도 차이점이 있습니다. 단지 뭔가를 끝내고 싶다면 다른 셸에 적응하지 않고도 bash를 사용하는 것이 충분히 까다롭습니다.
또한 일반적으로 유용할 수 있는 쉘 스크립트를 작성할 때 bash용으로 작성하며, 시스템 관련 작업을 하지 않도록 매우 주의한다면 거의 모든 곳에서 작동할 것이라는 것을 알고 있습니다.