Jak zmienić domyślną powłokę w systemie Linux za pomocą chsh

Opublikowany: 2022-01-29
Stylizowany monit powłoki na laptopie z systemem Linux w stylu Ubuntu.
Fatmawati Achmad Zaenuri/Shutterstock

Bash nie jest jedyną powłoką Linuksa. Łatwo jest wypróbować inne powłoki, takie jak Zsh, który jest bardzo popularny. Kiedy znajdziesz taką, która Ci się podoba, użyj polecenia chsh , aby ustawić ją jako domyślną powłokę. Pokażemy Ci jak.

Dlaczego powłoka jest ważna

Powłoka znajduje się między tobą a systemem operacyjnym. Zapewnia środowisko wewnątrz okna terminala, które umożliwia wpisywanie poleceń i uruchamianie programów. Powłoka sprawdza wprowadzone dane i dowiaduje się, czego chcesz. Jeśli może sam wykonać Twoją licytację, robi to. Jeśli potrzebuje pomocy z zewnątrz, przeszukuje ścieżkę i znajduje programy, które mogą zrobić wszystko, o co prosisz.

W systemie Linux dostępnych jest wiele różnych powłok. Wszystkie pozwalają wykonywać te same podstawowe zadania: eksplorować system plików, pracować z plikami, uruchamiać programy i uruchamiać skrypty. Jednak każdy z nich wykonuje te zadania na swój własny sposób i ma swoje szczególne cechy i cechy charakterystyczne.

Pociski są zwykle projektowane przez ludzi, którzy chcą, aby rzeczy zachowywały się w określony sposób. Jeśli twoje myślenie jest zgodne z tym projektantem, ta powłoka może być dla ciebie odpowiednia. Poza tym wypróbowanie nowej powłoki w systemie Linux jest łatwe.

W większości dystrybucji Linuksa, w tym Ubuntu, domyślną powłoką jest bash . Wykonuje świetną robotę i jest bardzo zdolny. Jednak inna powłoka może zapewnić oszczędność czasu, która miałaby duży wpływ na przepływ pracy. Nigdy nie dowiesz się, czy nie wyglądasz!

POWIĄZANE: Co to jest ZSH i dlaczego należy go używać zamiast Bash?

Wiadro pełne muszli

Omówiliśmy już różne powłoki systemu Linux, ale oto krótkie wprowadzenie do najczęstszych:

  • bash: Powłoka Bourne ponownie jest domyślna w wielu dystrybucjach.
  • rbash: Ta Ograniczona powłoka bash zapewnia minimalną funkcjonalność dla osoby lub skryptu w niej działającego.
  • ash: Powłoka Almquist jest lżejszą wersją bash.
  • myślnik: Debian Alquist Shell jest domyślnym skryptem powłoki w Ubuntu. Podczas gdy bash jest domyślnym loginem i interaktywną powłoką, dash służy do uruchamiania procesów systemowych, ponieważ jest znacznie lżejszy niż bash .
  • zsh: Powłoka Z to nowoczesne podejście do rodziny powłok bash . Oferuje fajne ulepszenia, takie jak sprawdzanie pisowni poleceń i sugerowane poprawki.
  • fish: Ta przyjazna interaktywna powłoka została napisana od podstaw i nie pochodzi z żadnej innej rodziny powłok. Ma być przyjazny dla użytkownika. Wśród wielu innych korzyści, fish oferuje sugestie poleceń na podstawie Twojej historii i zawartości bieżącego folderu, podobnie jak tekst predykcyjny.
  • ksh: KornShell zapewnia szczególnie silny język skryptowy.

POWIĄZANE: Jaka jest różnica między powłokami Bash, Zsh i innymi powłokami systemu Linux?

Wymień zainstalowane muszle

Aby zobaczyć, które powłoki są zainstalowane na twoim komputerze, użyj tego polecenia. Po prostu wyświetla zawartość /etc/shells :

 kot /etc/muszle 

Wspomnieliśmy o bash , dash i rbash , ale czym jest sh ?

sh to powłoka Thompsona, napisana w 1971 roku przez Kena Thompsona z Bell Labs. Nie jest już utrzymywany i już dawno został zastąpiony przez nowoczesne pociski. Jest dołączony wyłącznie w celu zachowania zgodności ze starszymi skryptami, które nadal mają następujące jako pierwszą linię:

 #!/kosz/sz

Instruuje to system, aby używał powłoki sh do wykonania skryptu. Czy naprawdę masz tę starą powłokę na swoim komputerze i czy jest ona używana do uruchamiania twoich skryptów? Polecenie which powie nam, który program faktycznie działa po wpisaniu polecenia.

Zobaczmy, co działa po wpisaniu sh :

 który sh

Wygląda na to, że znajduje się plik binarny. jeśli jednak zajrzymy trochę głębiej, zobaczymy, że jest to dowiązanie symboliczne, które w rzeczywistości wskazuje na dash , lekką powłokę używaną do wykonywania skryptów:

 ls -l /bin/sh 

To zgrabny, lekki sposób na zapewnienie sieci bezpieczeństwa dla skryptów, które spodziewają się znaleźć sh w nowoczesnych systemach.

Instalowanie kolejnej powłoki

Zainstalujmy skorupę fish i ustawmy ją jako domyślną dla dave . W Ubuntu wpisujemy następujące polecenie:

 sudo apt-get zainstaluj rybę 

Na Manjaro użyj pacman :

 sudo pacman -Sy ryba 

W Fedorze wpisz następujące polecenie:

 sudo dnf zainstaluj rybę 

Reklama

Po zakończeniu instalacji możesz jeszcze raz sprawdzić zainstalowane powłoki:

 kot /etc/muszle 

Nasza nowa powłoka pojawia się jako /usr/bin/fish . Zwróć uwagę na tę ścieżkę — wkrótce będziesz jej potrzebować.

Zmienna środowiskowa $SHELL

Zmienna środowiskowa $SHELL przechowuje nazwę twojej aktualnej powłoki. Możemy sprawdzić, na który jest ustawiony za pomocą echo :

 echo $SHELL

Zacznijmy od skorupy fish :

 ryba

Sprawdźmy teraz ponownie, co mówi zmienna środowiskowa $SHELL :

 echo $SHELL 

Gdy po raz pierwszy używamy echo $SHELL , jesteśmy w powłoce bash . Zmienna środowiskowa przechowuje ścieżkę do pliku wykonywalnego bash , /bin/bash .

Reklama

Kiedy uruchamiamy skorupę fish , otrzymujemy przyjazną wiadomość powitalną i zmienia się wiersz poleceń. Co może być zaskakujące, środowisko $SHELL nadal przechowuje ścieżkę do pliku wykonywalnego bash , /bin/bash . W porządku – to normalne.

Kiedy uruchamiasz nową powłokę (lub dowolny inny program), dziedziczy ona środowisko powłoki nadrzędnej. Zatem skorupa fish dziedziczy globalne i eksportowane zmienne środowiskowe z powłoki bash . Ponieważ wartość zmiennej środowiskowej $SHELL nie została zmieniona, ma ona taką samą wartość w powłoce fish jak w powłoce bash .

Prowadzimy fish jak każdy inny program. Możemy również użyć exit , aby wyjść ze skorupy fish . Zamyka się jak każdy inny program i wracamy do powłoki bash .

To świetnie nadaje się do wypróbowywania nowych pocisków, sprawdzania, co potrafią i czy się z nimi dogadujesz. Możesz eksplorować, zanim wykonasz skok i przyjąć go jako swoją skorupę.

Jeśli zdecydujesz się ustawić fish — lub inną powłokę — jako domyślną, będziesz musiał użyć polecenia chsh .

Polecenie chsh

Polecenie chsh umożliwia zmianę domyślnej powłoki. Sztuczka polega na tym, że pozwala na zmianę zarówno domyślnego logowania, jak i domyślnych powłok interaktywnych. Możesz chcieć zmienić jedno lub drugie, albo oba.

Reklama

Za każdym razem, gdy logujesz się w celu uzyskania wiersza poleceń, używasz powłoki skonfigurowanej jako powłoka logowania. Kiedy jesteś już zalogowany i otwierasz okno terminala, używasz powłoki skonfigurowanej jako twoja interaktywna powłoka. Mogą to być te same lub różne muszle.

Aby ustawić powłokę logowania, użyj chsh bez parametrów:

 chszi 

Zostaniesz poproszony o podanie hasła. Następnie musisz wpisać ścieżkę do nowej powłoki i nacisnąć Enter.

Jeśli nawiążemy zdalne połączenie z tym komputerem testowym z innego, po zalogowaniu znajdziemy się w skorupie fish .

Aby zmienić powłokę interaktywną, użyj chsh z opcją -s (powłoka). Przekaż ścieżkę do nowej powłoki w wierszu poleceń:

 chsh -s /usr/bin/ryba 

Zostaniesz poproszony o podanie hasła i powrócisz do wiersza poleceń bieżącej powłoki. Aby zmiana zaczęła obowiązywać, musisz się wylogować i zalogować ponownie. Gdy to zrobisz, zobaczysz powitanie i wiersz polecenia powłoki fish .

Reklama

Zmienna środowiskowa $SHELL przechowuje teraz ścieżkę do nowej domyślnej powłoki:

 echo $SHELL 

Zmiana powłoki innego konta użytkownika

Jeśli masz uprawnienia roota i możesz używać sudo , możesz zmienić powłoki innych kont użytkowników. Polecenie jest takie samo jak poprzednio, z dodatkiem nazwy użytkownika tej osoby dodanej do wiersza poleceń:

 sudo chsh -s /usr/bin/fish mary 

Gdy mary zaloguje się następnym razem, zobaczy nową powłokę, gdy otworzy okno terminala.

Każdy ma faworyta

Dopóki czujesz się komfortowo z wyborem powłoki i to działa dla Ciebie, to świetnie! Pamiętaj tylko, że musi być w stanie uruchamiać typowe skrypty, takie jak procedury instalacyjne. W przypadku wspomnianych tu pocisków nie powinno to stanowić problemu.

Oczywiście możesz również pobrać i zainstalować nową powłokę oraz zabrać ją na jazdę próbną bez wprowadzania zmian w konfiguracji komputera. Kiedy będziesz gotowy do zawiązania węzła, chsh wykona za ciebie ceremonię.

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów