Jak změnit svůj výchozí Shell v Linuxu pomocí chsh

Bash není jediný linuxový shell. Je snadné vyzkoušet jiné mušle, jako je Zsh, který je velmi populární. Když najdete ten, který se vám líbí, použijte příkaz chsh, aby se stal vaším výchozím shellem. Ukážeme vám jak.

Proč je skořápka důležitá

Skořápka sedí mezi vámi a operačním systémem. Poskytuje prostředí uvnitř okna terminálu, které vám umožňuje psát příkazy a spouštět programy. Shell zkontroluje váš vstup a zjistí, co chcete. Pokud může provést vaše nabízení sám, udělá to. Pokud potřebuje pomoc zvenčí, prohledá cestu a najde programy, které dokážou udělat vše, co požadujete.

V Linuxu je k dispozici mnoho různých shellů. Všechny vám umožňují provádět stejné základní úkoly: prozkoumávat systém souborů, pracovat se soubory, spouštět programy a spouštět skripty. Každý z nich však plní tyto úkoly svým vlastním způsobem a mají své vlastní zvláštní rysy a zvláštnosti.

Skořápky mají tendenci navrhovat lidé, kteří chtějí, aby se věci chovaly specifickým způsobem. Pokud se vaše myšlení shoduje s myšlením tohoto návrháře, může se vám tato skořepina dobře hodit. Navíc vyzkoušet nový shell na Linuxu je snadné.

Ve většině distribucí Linuxu, včetně Ubuntu, výchozí shell je bash. Dělá skvělou práci a je velmi schopný. Jiný shell však může nabídnout rozdíl v úspoře času, který by měl velký dopad na váš pracovní postup. Nikdy to nezjistíš, když se nepodíváš!

Kbelík plný mušlí

Již jsme se zabývali různými linuxovými shelly, ale zde je rychlý úvod k těm nejběžnějším:

  Jak resetovat zapomenuté heslo Apple Notes na iPhone, iPad a Mac

bash: The Bourne opět shell je výchozí v mnoha distribucích.
rbash: Tohle Omezený bash shell poskytuje minimální funkčnost osobě nebo skriptu, který v něm běží.
popel: The Almquist shell je lehčí verze bash.
pomlčka: Debian Alquist Shell je výchozí shell skript v Ubuntu. Zatímco bash je výchozí přihlašovací a interaktivní shell, dash se používá ke spouštění systémových procesů, protože je mnohem lehčí než bash.
zsh: Z shell je moderní pojetí rodiny mušlí bash. Nabízí úhledná vylepšení, jako jsou kontroly pravopisu příkazů a navrhované opravy.
ryba: Tohle přátelský interaktivní shell byl napsán od nuly a není odvozen z žádné jiné rodiny shellů. Má být uživatelsky přívětivý. Kromě mnoha dalších výhod nabízí fish návrhy příkazů na základě vaší historie a obsahu aktuální složky, podobně jako prediktivní text.
ksh: KornShell poskytuje zvláště silný skriptovací jazyk.

Seznam nainstalovaných shellů

Chcete-li zjistit, které shelly jsou nainstalovány na vašem počítači, použijte tento příkaz. Jednoduše vypíše obsah souboru /etc/shells:

cat /etc/shells

Zmínili jsme bash, dash a rbash, ale co je to sh?

sh je Thompson shell, napsaný již v roce 1971 Ken Thompson z Bell Labs sláva. Už se neudržuje a dávno byl nahrazen moderními mušlemi. Je zahrnuta čistě pro zachování kompatibility se staršími skripty, které stále mají na prvním řádku následující:

#!/bin/sh

To dává systému pokyn, aby ke spuštění skriptu použil shell sh. Opravdu máte na svém počítači ten prastarý shell a používáte ho ke spouštění vašich skriptů? Příkaz which nám řekne, který program se skutečně spustí, když zadáte příkaz.

Podívejme se, co se spustí, když zadáte sh:

which sh

Zdá se, že to najde binární soubor. když se však ponoříme trochu hlouběji, uvidíme, že je to symbolický odkaz, který ve skutečnosti ukazuje na pomlčku, lehký shell používaný ke spouštění skriptů:

ls -l /bin/sh

To je úhledný a lehký způsob, jak poskytnout záchrannou síť pro skripty, které očekávají, že najdou sh na moderních systémech.

  Jak kontaktovat podporu Microsoft Office 365

Instalace jiného shellu

Pojďme nainstalovat rybí shell a nastavit jej jako výchozí pro dave. Na Ubuntu zadáme následující příkaz:

sudo apt-get install fish

Na Manjaru použijte pacman:

sudo pacman -Sy fish

Na Fedoře zadejte následující:

sudo dnf install fish

Po dokončení instalace můžete nainstalované shelly ještě jednou zkontrolovat:

cat /etc/shells

Náš nový shell se zobrazí jako /usr/bin/fish. Poznamenejte si tuto cestu – budete ji brzy potřebovat.

Proměnná prostředí $SHELL

Proměnná prostředí $SHELL obsahuje název vašeho aktuálního shellu. Můžeme zkontrolovat, který z nich je nastaven pomocí echo:

echo $SHELL

Začneme rybí skořápkou:

fish

Nyní znovu zkontrolujte, co říká proměnná prostředí $SHELL:

echo $SHELL

Když poprvé použijeme echo $SHELL, jsme v bash shellu. Proměnná prostředí obsahuje cestu ke spustitelnému souboru bash /bin/bash.

Když spustíme rybí shell, dostaneme přátelskou uvítací zprávu a příkazový řádek se změní. Co může být překvapivé je, že prostředí $SHELL stále drží cestu ke spustitelnému souboru bash, /bin/bash. To je v pořádku – to je normální.

Když spustíte nový shell (nebo jakýkoli jiný program), zdědí prostředí nadřazeného shellu. Rybí shell tedy zdědí globální a exportované proměnné prostředí z bash shellu. Protože hodnota v proměnné prostředí $SHELL nebyla změněna, má stejnou hodnotu v rybím shellu jako v bash shellu.

Spouštíme ryby jako každý jiný program. Exit můžeme také použít k opuštění rybího krunýře. Uzavře se jako každý jiný program a vrátíme se do bash shellu.

  Jak zarovnat text po odrážce v PowerPointu

To je skvělé pro vyzkoušení nových mušlí, zjištění, co dokážou a zda s nimi budete rozumět. Než skočíte, můžete prozkoumat a jeden si osvojit jako svou hlavní skořápku.

Pokud se rozhodnete nastavit rybu – nebo jakýkoli jiný shell – jako výchozí, budete muset použít příkaz chsh.

Příkaz chsh

Příkaz chsh vám umožňuje změnit váš výchozí shell. Trik je v tom, že vám umožňuje změnit výchozí přihlašovací i výchozí interaktivní shelly. Možná budete chtít změnit jedno nebo druhé nebo obojí.

Kdykoli se přihlásíte za účelem získání příkazového řádku, použijete shell nakonfigurovaný jako váš přihlašovací shell. Když jste již přihlášeni a otevřete okno terminálu, použijete shell nakonfigurovaný jako váš interaktivní shell. Mohou to být stejné nebo různé skořápky.

Chcete-li nastavit přihlašovací shell, použijte chsh bez parametrů:

chsh

Budete vyzváni k zadání hesla. Poté musíte zadat cestu k novému shellu a stisknout Enter.

Pokud se k tomuto testovacímu počítači připojíme na dálku z jiného, ​​po přihlášení se ocitneme v rybí skořápce.

Chcete-li změnit svůj interaktivní shell, použijte chsh s volbou -s (shell). Předejte cestu k novému shellu na příkazovém řádku:

chsh -s /usr/bin/fish

Budete vyzváni k zadání hesla a vrátíte se do příkazového řádku vašeho aktuálního shellu. Aby se změna projevila, musíte se odhlásit a znovu přihlásit. Když tak učiníte, uvidíte pozdrav a příkazový řádek rybího shellu.

Proměnná prostředí $SHELL nyní obsahuje cestu k vašemu novému výchozímu shellu:

echo $SHELL

Změna prostředí jiného uživatelského účtu

Pokud máte práva root a umíte používat sudo, můžete změnit shelly jiných uživatelských účtů. Příkaz je stejný jako předtím, s přidáním uživatelského jména této osoby do příkazového řádku:

sudo chsh -s /usr/bin/fish mary

Když se Mary příště přihlásí, uvidí nový shell, když otevře okno terminálu.

Každý