Jak zmienić domyślną powłokę w systemie Linux za pomocą chsh
Opublikowany: 2022-01-29 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ę
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
.
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.
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
.
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ę.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów