Si la machine a zsh dessus, vous devriez pouvoir exécuter zsh
sur une invite pour échanger, si cela fonctionne, vous pouvez soit essayer chsh
pour échanger votre shell (devrait fonctionner sans racine) ou lorsque vous vous connectez avec ssh
mettre ssh -t hostname zsh
pour le démarrer automatiquement.
Vous pouvez essayer le chsh
commande. Es-tu sûr que zsh n'est pas installé sur l'ordinateur distant ? Sinon, vous pouvez le faire (cité de la section 1.7 de la FAQ zsh)
L'idée de base est d'utiliser exec pour remplacer le shell actuel par zsh. Souvent, vous pouvez le faire dans un fichier de connexion tel que .profile (si votre shell est sh ou ksh) ou .login (si c'est csh). Assurez-vous d'avoir un moyen de modifier le fichier (par exemple via FTP) avant d'essayer car exec est souvent plutôt impitoyable.
Si vous avez zsh dans un sous-répertoire bin de votre répertoire personnel, mettez ceci dans .profile :
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
ou si votre shell de connexion est csh ou tcsh, mettez ceci dans .login :
if ( -f ~/bin/zsh ) exec ~/bin/zsh -l
(dans chaque cas, le -l indique à zsh qu'il s'agit d'un shell de connexion).
Si vous voulez vérifier que cela fonctionne avant de vous y engager, vous pouvez faire en sorte que le shell de connexion demande s'il faut exécuter zsh. Le travail suivant pour les shells de type Bourne :
[ -f $HOME/bin/zsh ] && {
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
et pour les shells de type C-shell :
if ( -f ~/bin/zsh ) then
echo -n "Type Y to run zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
Ce n'est pas une bonne idée de mettre cela (même sans le -l) dans .cshrc, au moins sans quelques tests sur ce que le csh est censé faire, car cela causera tous instance de csh se transforme en zsh et provoquera des scripts csh (oui, malheureusement certaines personnes les écrivent) qui n'appellent pas csh -f
échouer. Si vous voulez dire à xterm d'exécuter zsh, remplacez la variable d'environnement SHELL par le chemin complet de zsh en même temps que vous exécutez zsh (en fait, cela est judicieux pour la cohérence même si vous n'utilisez pas xterm). Si vous devez exécuter zsh depuis votre .cshrc, un contrôle de sécurité minimum est if ($?prompt) exec zsh.
Si vous souhaitez que votre shell de connexion apparaisse dans la liste des processus en tant que -zsh, vous pouvez lier zsh à -zsh (par exemple, par ln -s ~/bin/zsh ~/bin/-zsh) et remplacer exec par exec -zsh. (Assurez-vous que -zsh est dans votre chemin.) Cela a le même effet que l'option -l.
Note de bas de page :si vous avez un accès root, assurez-vous que zsh va dans /etc/shells sur toutes les machines appropriées, y compris les clients NIS, ou vous pourriez avoir des problèmes avec FTP sur cette machine.
Téléchargez zsh avec :
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
Vous pouvez compiler zsh vous-même, par exemple :
./configure --prefix=$HOME
make
make install
puis démarrez-le explicitement ou par programmation à partir du fichier de démarrage de votre shell actuel (mettez exec $HOME/bin/zsh -l
au bon endroit).