Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Powłoki linuksa jak wybrać dobrą powłokę na swoje potrzeby

Zaczęty przez linux4ever, Czerwiec 18, 2025, 07:50:36 PM

Poprzedni wątek - Następny wątek

linux4ever

Jaką powłokę wybrać Bash,Zsh czy coś innego?

Co byśmy polecali z powłok dla początkujących i/lub zaaawansowanych użytkowników ?
"Powiedz mi, a zapomnę, pokaż mi, a zapamiętam, pozwól mi zrobić, a zrozumiem. "-Konfucjusz

pavbaranov

Dla początkującego? Cokolwiek. Dalczego? Bo reszta jest kwestią przyzwyczajenia.

microsofter

Dla początkujących: Bourne shell. To ,,ojciec wszystkich shelli" (pomijając jego, dawno już nieużywanego, poprzednika) i domyślna powłoka na większości Unixów. Skryptami Bourne shella można wykonać niemal wszystko, co potrafią jego następcy. Zdecydowanie polecam zaczynać od niego, a nie bardziej złożonych powłok, jak Korn shell czy Bash.

Chyba że jesteś programistą i znasz język C. Wtedy warto pójść w C-shell. Szybciej ogarniesz jego składnię, która jest właśnie podobna do C. Ale uwaga, wiele rzeczy w csh wykonuje się odmiennie niż w Bourne shell, więc późniejsza przesiadka na którąś z wyżej wymienionych powłok, będzie oznaczać dodatkową naukę. Np. edycja zmiennej w Bourne shellu:

export LC_ALL=C
to samo w C-shellu:

setenv LC_ALL C
Dla zaawansowanych: Korn shell. Jak dotąd, stworzyłem w nim 1 skrypt, którego za Chiny nie mogłem zrobić w Bourne shellu (nie wiem jak by było z C-shell, jeszcze nie znałem go). Jednocześnie nie widzę przeszkód, aby zaawansowany użytkownik wciąż używał Bourne shella. Jednym słowem, wszystko zależy od tego, jakie skrypty piszesz. Bo do codziennego użytku, czyli klepania w terminalu komend mount, zfs czy init, każdy nada się równie dobrze.
były: MS Windows, Sun Solaris, Oracle Solaris; jest: OpenSolaris + m0n0wall + Solaris powered NAS

Piotr_1988

Standardem na Linuxie jest bash, więc początkujący użytkownik Linuxa ucząc się czegoś innego tylko utrudni sobie życie. Tu nie ma o czym dyskutować... 😉 Inna sprawa, że (1) zupełny początkujący raczej rzadko pisze własne skrypty i (2) w bash w moim odczuciu dość ciężko się coś pisze. Skrypty raczej łatwiej jest pisać w polskim języku programowania Amber opcjonalnie kompilowanym do bash. Prawdę powiedziawszy ja przestałem pisać skrypty, gdyż najpierw zaczęła za mnie je pisać sztuczna inteligencja, a później uznałem, że skoro już je za mnie pisze, niech pisze od razu w Rust zamiast w ślimaczym Bash. Jak teraz będę chciał jakiś skrypt, raczej niż pisać skrypt w bash lub czymkolwiek skryptowym, zagadam do Claude, by mi napisał odpowiedni program w Rust wykonujący dane operacje na plikach, itd. Poczekam kilkanaście sekund na wynik, zerknę, czy kod wygląda w porządku, a potem go skompiluję.
NixOS  |  Rocky Linux

microsofter

Bash to powłoka używana głównie w GNU/Linuxie. Rzadko jest domyślna na innych systemach uniksowych, a niektóre z nich nie posiadają jej nawet w opcji. Przywiązując się do Basha, a zwłaszcza zaczynając od niego, skazujemy się na problemy przy pierwszej zmianie systemu.

Co innego Bourne shell. Warto przyswoić go, wtedy możemy swobodnie przesiadać się pomiędzy BSD, GNU i Unixem SVR. Nasze skrypty, napisane dla sh, będą prawidłowo wykonane i pod Korn shellem, i powinny także pod Bashem. W drugą stronę to już nie zadziała.

Poza Linuxem, Bash nie cieszy się dobrą opinią i nie jest szczególnie lubiany. W środowiskach enterprise, Korn shell to standard.

Pisanie prostych skryptów w języku wysokiego poziomu, a następnie kompilacja, to dla mnie jakaś abstrakcja. Nie tylko dlatego, że nie jestem programistą, toteż jest to poza moimi możliwościami. Zwyczajnie, od zawsze stosuję najprosztszą powłokę, niezbędną dla danego skryptu - zadania które muszę wykonać. Czyli w Windows to jest CMD, a dopiero jeśli czegoś nie potrafi, sięgam po PowerShell. Podobnie w Unixie, używam Bourne lub C-Shella, a w razie czego Korn czeka w zanadrzu. Takie podejście dobrze sprawdza się, nie ma powodu aby komplikować proste rzeczy.
były: MS Windows, Sun Solaris, Oracle Solaris; jest: OpenSolaris + m0n0wall + Solaris powered NAS

Piotr_1988

Cytat: microsofter w Dzisiaj o 12:38:02 AMBash to powłoka używana głównie w GNU/Linuxie. Rzadko jest domyślna na innych systemach uniksowych, a niektóre z nich nie posiadają jej nawet w opcji. Przywiązując się do Basha, a zwłaszcza zaczynając od niego, skazujemy się na problemy przy pierwszej zmianie systemu.
(1) Jak widać w tytule wątku, pytanie jest o powłokę dla Linuxa. (2) Mimo całej naszej sympatii do tych systemów, uczciwe będzie stwierdzenie, że zastosowanie *BSD i innych Unixów jest dość marginalne w porównaniu do Linuxa i raczej jeden na dziesiątki tysięcy użytkowników przesiadki Linux -> Unix w trakcie swojego życia dokona. Chyba, że mówimy o macOS.

Cytat: microsofter w Dzisiaj o 12:38:02 AMPisanie prostych skryptów w języku wysokiego poziomu, a następnie kompilacja, to dla mnie jakaś abstrakcja. Nie tylko dlatego, że nie jestem programistą, toteż jest to poza moimi możliwościami. Zwyczajnie, od zawsze stosuję najprosztszą powłokę, niezbędną dla danego skryptu - zadania które muszę wykonać. Czyli w Windows to jest CMD, a dopiero jeśli czegoś nie potrafi, sięgam po PowerShell. Podobnie w Unixie, używam Bourne lub C-Shella, a w razie czego Korn czeka w zanadrzu. Takie podejście dobrze sprawdza się, nie ma powodu aby komplikować proste rzeczy.
Na myśli chyba masz języki niskiego poziomu, a nie wysokiego poziomu, a właściwie to średniego (niskiego jest Assembly). Owszem uchodzą ze średnio bardziej złożone, ale skoro w dzisiejszych czasach kod pisze nie człowiek, a sztuczna inteligencja, argument, że któryś z języków "jest trudny", odpada. Mogę poprosić np. Claude lub ChatGPT by mi napisały kod w jednym z conajmniej kilkudziesięciu języków i bez różnicy, czy język jest prosty, czy złożony, zajmie to sekundy...
NixOS  |  Rocky Linux

microsofter

Cytat: Piotr_1988 w Dzisiaj o 01:15:43 AM(1) Jak widać w tytule wątku, pytanie jest o powłokę dla Linuxa.

Tutuł nie był dla mnie jednoznaczny, gdyż autor wcześniej zakładał dwuznaczne tematy https://forum.linuxiarze.pl/index.php/topic,5854.msg36693.html, oraz używał słowa Linux w niewłaściwym kontekście https://forum.linuxiarze.pl/index.php/topic,5514.msg35184.html. Dlatego wypowiedziałem się z punktu widzenia całości systemów uniksowych, a nie stricte GNU/Linuxa.

Z AI masz rację. Wieczorem wrzuciłem do Copilota mój skrypt z Korn shella, z prośbą na przerobienie go pod Bourne shell i C-Shell. Okazuje się, że jest to możliwe, a nawet łatwe.

Wracając do Basha: czy poza faktem że to domyślna powłoka na GNU, są jakieś merytoryczne powody aby go promować? Chyba nie. Ksh93 potrafi to samo. A nawet więcej, gdyż integruje składnię z C-Shell, czego nie przetrawi Bash.
były: MS Windows, Sun Solaris, Oracle Solaris; jest: OpenSolaris + m0n0wall + Solaris powered NAS

linux4ever

Cytat: microsofter w Dzisiaj o 11:44:07 AM
Cytat: Piotr_1988 w Dzisiaj o 01:15:43 AM(1) Jak widać w tytule wątku, pytanie jest o powłokę dla Linuxa.

Tutuł nie był dla mnie jednoznaczny, gdyż autor wcześniej zakładał dwuznaczne tematy https://forum.linuxiarze.pl/index.php/topic,5854.msg36693.html, oraz używał słowa Linux w niewłaściwym kontekście https://forum.linuxiarze.pl/index.php/topic,5514.msg35184.html. Dlatego wypowiedziałem się z punktu widzenia całości systemów uniksowych, a nie stricte GNU/Linuxa.


Czyli zdobywam sławę i moje posty są poczytne.

Co do powłok co sądzisz o powłoce fish.

To inna alternatywa.
"Powiedz mi, a zapomnę, pokaż mi, a zapamiętam, pozwól mi zrobić, a zrozumiem. "-Konfucjusz

Piotr_1988

Cytat: microsofter w Dzisiaj o 11:44:07 AM
Cytat: Piotr_1988 w Dzisiaj o 01:15:43 AM(1) Jak widać w tytule wątku, pytanie jest o powłokę dla Linuxa.

Tutuł nie był dla mnie jednoznaczny, gdyż autor wcześniej zakładał dwuznaczne tematy https://forum.linuxiarze.pl/index.php/topic,5854.msg36693.html, oraz używał słowa Linux w niewłaściwym kontekście https://forum.linuxiarze.pl/index.php/topic,5514.msg35184.html. Dlatego wypowiedziałem się z punktu widzenia całości systemów uniksowych, a nie stricte GNU/Linuxa.
Mniejsza o tytuł. Chodzi mi tylko o to, że widząc argument "z bash trudniej jest się przesiaść na Unixa", pierwsze co myślę to, "a ile osób w swoim życiu będzie sie chciało przesiąść na tego Unixa!?".

Piszę to nie jako zatwardziały zwolennik Linuxa, a jako miłośnik systemów unixopodobnych ogółem.

Cytat: microsofter w Dzisiaj o 11:44:07 AMZ AI masz rację. Wieczorem wrzuciłem do Copilota mój skrypt z Korn shella, z prośbą na przerobienie go pod Bourne shell i C-Shell. Okazuje się, że jest to możliwe, a nawet łatwe.
Z całym szacuneczkiem myślę, że z tym, że programowanie jest "poza Twoimi możliwościami", "nie jesteś programistą", itp., itd., przesadzasz. Chyba przy kilku okazjach wracałeś do tematu różnych powłok unixowych, znasz różnice pomiędzy tymi powłokami, twierdzisz, że piszesz w nich własne skrypty (nie wiem, na ile złożone, ale jednak), więc jak dla mnie jesteś programistą - logiczne, oczywiste.
Jeśli piszesz skrypty w Korn shell to -przy założeniu, że nigdy nie miałeś kontaktu- język wysokopoziomowy interpretowany typu Lua lub kompilowany typu Fortran opanujesz w podstawach w kilka godzin (w Fortranie główna nowość jak taka, że deklarujesz typy zmiennych), a po kilku dniach przyzwyczajenia bardzo możliwe, że sam uznasz, że wygodniej jest pisać w Lua lub Fortranie niż w Korn shell. To raz.
A dwa, w dzisiejszych czasach kodu nie pisze człowiek, lecz sztuczna inteligencja, więc żeby zostać programistą (nie mówię zawodowym, a tak dla siebie), wiele nie trzeba. Kilka lat temu bym się zgodził z Tobą w tym, że nie ma sensu przekombinowywać, a skrypty pisze się w typowych dla danego systemu językach skryptowych. Teraz żyjemy w innym świecie. Oczywiście nie wykluczam, że są jacyś hardkorowi linuxiarze na wyginięciu, którzy ze względów ideologicznych lub z przyzwyczajenia lub zwyczajnie dla zabawy wciąż sami piszą skrypty. Mi jest sybciej i łatwiej otworzyć okno z Claude i opisać własnymi słowami w języku polskim, co potrzebuję, co program ma robić, itd. A skoro dostaję po paru sekundach gotowca, to już wolę, by był on w języku kompilowanym i śmigał zamiast się ślimaczyć. W specyficznych sytuacjach chcę sam linijka po linijce napisać kod, ale są to sytuacje odległe od typowych zastosowań skryptowych.

Cytat: microsofter w Dzisiaj o 11:44:07 AMWracając do Basha: czy poza faktem że to domyślna powłoka na GNU, są jakieś merytoryczne powody aby go promować? Chyba nie. Ksh93 potrafi to samo. A nawet więcej, gdyż integruje składnię z C-Shell, czego nie przetrawi Bash.
Nie, chyba nie ma.
NixOS  |  Rocky Linux

Zobacz najnowsze wiadomości na forum