Wenn die Maschine zsh hat, sollten Sie einfach zsh
ausführen bei einer Aufforderung zum Austauschen, wenn das funktioniert, können Sie entweder chsh
versuchen um Ihre Shell auszutauschen (sollte ohne root funktionieren) oder wenn Sie sich mit ssh
verbinden Geben Sie ssh -t hostname zsh
ein um es automatisch zu starten.
Sie können den chsh
ausprobieren Befehl. Sind Sie sicher, dass zsh nicht auf dem entfernten Computer installiert ist? Wenn nicht, können Sie dies tun (zitiert aus Abschnitt 1.7 der zsh-FAQ)
Die Grundidee besteht darin, mit exec die aktuelle Shell durch zsh zu ersetzen. Oft können Sie dies in einer Anmeldedatei wie .profile (wenn Ihre Shell sh oder ksh ist) oder .login (wenn es csh ist) tun. Stellen Sie sicher, dass Sie eine Möglichkeit haben, die Datei zu ändern (z. B. über FTP), bevor Sie dies versuchen, da exec oft ziemlich unversöhnlich ist.
Wenn Sie zsh in einem Unterverzeichnis bin Ihres Home-Verzeichnisses haben, fügen Sie dies in .profile:
ein[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
oder wenn Ihre Login-Shell csh oder tcsh ist, fügen Sie dies in .login:
einif ( -f ~/bin/zsh ) exec ~/bin/zsh -l
(in jedem Fall teilt das -l zsh mit, dass es sich um eine Login-Shell handelt).
Wenn Sie überprüfen möchten, ob dies funktioniert, bevor Sie sich dazu verpflichten, können Sie die Login-Shell fragen lassen, ob zsh ausgeführt werden soll. Folgendes funktioniert für Bourne-ähnliche Shells:
[ -f $HOME/bin/zsh ] && {
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
und für C-Shell-ähnliche Shells:
if ( -f ~/bin/zsh ) then
echo -n "Type Y to run zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
Es ist keine gute Idee, dies (auch ohne das -l) in .cshrc einzufügen, zumindest ohne einige Tests darüber, was die csh tun soll, da dies zu every führen wird Instanz von csh zu einem zsh wird und csh-Skripte verursacht (ja, leider schreiben einige Leute diese), die csh -f
nicht aufrufen Versagen. Wenn Sie xterm anweisen möchten, zsh auszuführen, ändern Sie die SHELL-Umgebungsvariable auf den vollständigen Pfad von zsh, während Sie zsh ausführen (tatsächlich ist dies aus Gründen der Konsistenz sinnvoll, selbst wenn Sie xterm nicht verwenden). Wenn Sie zsh aus Ihrer .cshrc-Datei ausführen müssen, besteht eine Mindestsicherheitsprüfung darin, ob ($?prompt) zsh ausführen.
Wenn Sie möchten, dass Ihre Login-Shell in der Prozessliste als -zsh erscheint, können Sie zsh mit -zsh verknüpfen (z. B. durch ln -s ~/bin/zsh ~/bin/-zsh) und die exec in exec -zsh ändern. (Stellen Sie sicher, dass sich -zsh in Ihrem Pfad befindet.) Dies hat denselben Effekt wie die Option -l.
Fußnote:Wenn Sie Root-Zugriff haben, stellen Sie sicher, dass zsh auf allen geeigneten Rechnern, einschließlich NIS-Clients, in /etc/shells geht, oder Sie könnten Probleme mit FTP zu diesem Rechner haben.
Laden Sie zsh herunter mit:
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
Sie können zsh beispielsweise selbst kompilieren:
./configure --prefix=$HOME
make
make install
und starten Sie es dann explizit oder programmgesteuert aus der Startdatei Ihrer aktuellen Shell (geben Sie exec $HOME/bin/zsh -l
an der richtigen Stelle).