Najnowsze dystrybucje Linuksa zawierają domyślną powłokę bash, chociaż istnieją inne (prawdopodobnie) lepsze powłoki.
Próbuję zrozumieć, czy jest to jakaś historyczna pozostałość, której nikt nie chce zmienić, czy są jakieś dobre powody, które sprawiają, że bash jest pierwszym wyborem?
/bin/sh
, który jest domyślną powłoką w „normalnym” systemie UNIX-es ...bash
to najlepsza powłoka, ponieważ znam ją dobrze i jest wszędzie, robi wszystko, czego potrzebuję zwięźle i stosunkowo łatwo, jest czytelna i może być w pewnym stopniu zrozumiana przez ludzi bez wiedzy, jak tworzyć skrypty bash. Czego jeszcze chcesz od muszli? Jeśli chcesz mieć wiele funkcji programowania, używasz powłoki niepoprawnie.Odpowiedzi:
Krótka odpowiedź brzmi, ponieważ linux to tak naprawdę GNU / Linux. Tylko jądro jest linuxem, ale podstawowa kolekcja narzędzi zapewniających środowisko uniksowe jest dostarczana przez GNU, a powłoka GNU jest bash
Jak już powiedziałem, to krótka odpowiedź;)
edytowane w celu dodania dodatkowego komentarza ...
Pozwolę sobie powiedzieć, że nie jestem historykiem uniksowym, więc mogę odpowiedzieć tylko IMHO
Kilka punktów, przede wszystkim bash, to zlew kuchenny z muszli, podobnie jak emacs dla redaktorów.
W momencie wydania bash nie było żadnych darmowych implementacji ksh, tcsh był darmowym zamiennikiem csh, ale Stallman miał rację przeciwko csh do programowania powłoki.
Jako interaktywna powłoka bash miała doskonałe przywołanie historii / poleceń, a także zapisywanie historii między sesjami. To był spadek w zastępstwie sh, bsh, ksh do programowania powłoki i stworzony dla przyzwoitej interaktywnej powłoki.
Podobnie jak śnieżka tocząca się w dół, uderzenie nabiera tempa i wielkości.
Tak, istnieją dziesiątki innych pocisków; skorupy, które lepiej nadają się do indywidualnego celu lub smaku, ale dla pojedynczego bashu skorupa wykonuje przyzwoitą robotę i ma na nią wiele oczu od ponad 20 lat.
źródło
Bash ma kilku potencjalnych konkurentów:
/bin/sh
. Ash (rozumiem przez to dowolną luźną rodzinę muszli zwaną ash) został zaprojektowany jako mały i szybki, bez interaktywnych funkcji (służy tylko do edycji skryptów). Odrodzenie popiołu jest stosunkowo nowe; w latach 90. istniejącym wariantom brakowało wielu funkcji.Co więcej, bash jest oficjalną powłoką GNU , a systemy Linux to tak naprawdę GNU / Linux : wiele podstawowych programów pochodzi z GNU, nawet jeśli najbardziej znana część, jądro Linuksa, nie. W momencie, gdy stał się de facto standardem, bash był dobrze znany, miał oficjalny status i miał przyzwoity zestaw funkcji.
źródło
/bin/sh
, inne wysyłają popiół. Na przykład Ubuntu/bin/sh
jestdash
(widelec popiołu obsługiwany przez Debiana) przez jakiś czas. Bash ma więcej funkcji, popiół jest mniejszy i szybszy. Oba są zgodne z POSIX (lub przynajmniej są wystarczająco zgodne w praktyce).Najprostsza odpowiedź? Ponieważ coś „musi być” domyślnym. Najbardziej sensownym domyślnym jest ten, z którym większość użytkowników już się czuje. Pod tym względem Bash jest dobrym wyborem. Każdy ma swobodę wyboru tego, co najlepsze w swoim świecie. Większość wybierze opcję domyślną, jeśli zawsze zrobiła to, czego potrzebują.
źródło
Pochodzę z DOS (z zainstalowanym doskey) Naprawdę brakowało mi funkcji przypominania ostatnich poleceń, po prostu przesuwając kursor w górę / w dół. BASH był IMO pierwszą powłoką, która zaimplementowała to w * nix.
Więc prawdopodobnie większość facetów z tego pokolenia lubiła bash.
źródło
tcsh
była to pierwsza powłoka * nix, która używa klawiszy strzałek do poruszania się po historii powłoki.Wszystkie pozostałe odpowiedzi są świetne, ale z praktycznego punktu widzenia: jeśli usiądę przed nieznanym systemem (lub uzyskam do niego dostęp zdalnie) i będę musiał coś zrobić, mogę liczyć na to, że bash będzie dostępny na wszystkich systemach oprócz najstarszych. Mogę po prostu iść naprzód i załatwić sprawę.
Jak wskazano w innych odpowiedziach i pytaniu, istnieje wiele innych powłok (słyszę wiele dobrych rzeczy na temat Zsh, ale nie próbowałem tego), ale różnią się one pod względem składni i czasami używanych poleceń doprowadzanie pracy do końca. Jeśli chcę po prostu coś zrobić, bash jest wystarczająco trudny bez konieczności dostosowywania się do innej powłoki.
Ponadto, gdy piszę skrypt powłoki, który może być ogólnie przydatny, piszę go dla bashu i wiem, że jeśli będę bardzo ostrożny, aby nie robić rzeczy zależnych od systemu, uruchomi się on prawie wszędzie.
źródło
Bezwładność.
Bash był najłatwiej dostępną darmową powłoką, kiedy zaczęły pojawiać się systemy Linux (GNU / Linux, jeśli wolisz). Fakt, że pochodzi z projektu GNU, nie zaszkodził.
Co do tego, dlaczego wciąż jest domyślną powłoką, nigdy nie było wystarczającego powodu, aby ją zmienić. Nawet jeśli jakaś inna powłoka jest lepsza, istnieją zalety posiadania tej samej domyślnej powłoki logowania w różnych dystrybucjach i trudno byłoby przekonać wszystkich (Debian, Red Hat, Suse itp.) Do zgody na przejście na coś innego.
A przecież to tylko domyślna. Każdy użytkownik może użyć
chsh
do zmiany swojej powłoki logowania. Nie trzeba zmieniać wartości domyślnej dla wszystkich.źródło