Pokud je na stroji zsh, měli byste v pohodě spustit zsh
na výzvu k výměně, pokud to funguje, můžete zkusit chsh
pro výměnu vašeho shellu (mělo by fungovat bez root) nebo když se připojujete pomocí ssh
zadejte ssh -t hostname zsh
aby se spustil automaticky.
Můžete zkusit chsh
příkaz. Jste si jisti, že zsh není nainstalován na vzdáleném počítači? Pokud ne, můžete to udělat (citováno ze zsh FAQ sekce 1.7)
Základní myšlenkou je použít exec k nahrazení aktuálního shellu zsh. Často to můžete udělat v přihlašovacím souboru, jako je .profile (pokud je váš shell sh nebo ksh) nebo .login (pokud je to csh). Než to zkusíte, ujistěte se, že máte nějaký způsob, jak soubor změnit (např. přes FTP), protože exec je často dost nemilosrdný.
Pokud máte zsh v podadresáři bin svého domovského adresáře, vložte jej do .profile:
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
nebo pokud je váš přihlašovací shell csh nebo tcsh, vložte toto do .login:
if ( -f ~/bin/zsh ) exec ~/bin/zsh -l
(v každém případě -l říká zsh, že se jedná o přihlašovací shell).
Pokud chcete zkontrolovat, zda to funguje, než se k tomu zavážete, můžete přimět přihlašovací shell, aby se zeptal, zda spustit zsh. Následující práce pro shelly podobné Bourneovi:
[ -f $HOME/bin/zsh ] && {
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
a pro shelly podobné C-shell:
if ( -f ~/bin/zsh ) then
echo -n "Type Y to run zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
Není dobrý nápad to vkládat (i bez -l) do .cshrc, alespoň bez nějakých testů toho, co má csh dělat, protože to způsobí každý instance csh se změní na zsh a způsobí csh skripty (ano, bohužel je někteří lidé píší), které nevolají csh -f
neuspět. Pokud chcete říci xtermu, aby spustil zsh, změňte proměnnou prostředí SHELL na úplnou cestu zsh současně s spuštěním zsh (ve skutečnosti je to rozumné pro konzistenci, i když nepoužíváte xterm). Pokud musíte spustit zsh z vašeho .cshrc, minimální bezpečnostní kontrola je if ($?prompt) exec zsh.
Pokud chcete, aby se váš přihlašovací shell objevil v seznamu procesů jako -zsh, můžete propojit zsh s -zsh (např. pomocí ln -s ~/bin/zsh ~/bin/-zsh) a změnit exec na exec -zsh. (Ujistěte se, že -zsh je ve vaší cestě.) To má stejný účinek jako volba -l.
Poznámka pod čarou:pokud MÁTE přístup root, ujistěte se, že zsh jde do /etc/shells na všech příslušných počítačích, včetně klientů NIS, jinak můžete mít problémy s FTP na tomto počítači.
Stáhnout zsh pomocí:
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1
cd zsh
Zsh si můžete zkompilovat sami, například:
./configure --prefix=$HOME
make
make install
a poté jej spusťte explicitně nebo programově ze spouštěcího souboru vašeho aktuálního shellu (zadejte exec $HOME/bin/zsh -l
na správném místě).