Se la macchina ha zsh su di essa, dovresti semplicemente eseguire zsh
su una richiesta di scambio, se funziona puoi provare chsh
per scambiare la tua shell (dovrebbe funzionare senza root) o quando ti connetti con ssh
inserisci ssh -t hostname zsh
per avviarlo automaticamente.
Puoi provare il chsh
comando. Sei sicuro che zsh non sia installato sul computer distante? In caso contrario, puoi farlo (citato da zsh FAQ Sezione 1.7)
L'idea di base è usare exec per sostituire la shell corrente con zsh. Spesso puoi farlo in un file di login come .profile (se la tua shell è sh o ksh) o .login (se è csh). Assicurati di avere un modo per alterare il file (ad es. tramite FTP) prima di provarlo poiché exec è spesso piuttosto spietato.
Se hai zsh in una sottodirectory bin della tua home directory, inseriscilo in .profile:
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
o se la tua shell di login è csh o tcsh, inseriscila in .login:
if ( -f ~/bin/zsh ) exec ~/bin/zsh -l
(in ogni caso -l dice a zsh che è una shell di login).
Se vuoi verificare che funzioni prima di impegnarti, puoi fare in modo che la shell di login chieda se eseguire zsh. Il seguente lavoro per shell tipo Bourne:
[ -f $HOME/bin/zsh ] && {
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
e per shell simili a C-shell:
if ( -f ~/bin/zsh ) then
echo -n "Type Y to run zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
Non è una buona idea inserire questo (anche senza -l) in .cshrc, almeno senza alcuni test su cosa dovrebbe fare csh, poiché ciò causerà ogni istanza di csh si trasformerà in zsh e causerà script csh (sì, sfortunatamente alcune persone li scrivono) che non chiamano csh -f
fallire. Se vuoi dire a xterm di eseguire zsh, cambia la variabile d'ambiente SHELL nel percorso completo di zsh nello stesso momento in cui esegui zsh (in effetti, questo è ragionevole per coerenza anche se non stai usando xterm). Se devi eseguire exec zsh dal tuo .cshrc, un minimo controllo di sicurezza è if ($?prompt) exec zsh.
Se desideri che la tua shell di login appaia nell'elenco dei processi come -zsh, puoi collegare zsh a -zsh (ad esempio tramite ln -s ~/bin/zsh ~/bin/-zsh) e modificare exec in exec -zsh. (Assicurati che -zsh sia nel tuo percorso.) Questo ha lo stesso effetto dell'opzione -l.
Nota a piè di pagina:se hai accesso root, assicurati che zsh vada in /etc/shells su tutte le macchine appropriate, inclusi i client NIS, o potresti avere problemi con l'FTP su quella macchina.
Scarica zsh con:
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
Puoi compilare tu stesso zsh, ad esempio:
./configure --prefix=$HOME
make
make install
e quindi avviarlo in modo esplicito o programmatico dal file di avvio della shell corrente (inserire exec $HOME/bin/zsh -l
nel posto giusto).