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.
Table of Contents
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:
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.
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.
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.