Ответ 1
Вы можете попробовать команду chsh
. Вы уверены, что zsh не установлен на удаленном компьютере? Если нет, вы можете это сделать (цитата из раздела zsh FAQ 1.7)
Основная идея - использовать exec для замены текущей оболочки на zsh. Часто вы можете сделать это в файле входа, таком как.profile (если ваша оболочка - sh или ksh) или.login (если это csh). Убедитесь, что у вас есть способ изменить файл (например, через FTP), прежде чем попробовать это, поскольку exec часто довольно неумолимо.
Если у вас есть zsh в подкаталоге bin вашего домашнего каталога, поместите это в.profile:
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
или если ваша оболочка входа - csh или tcsh, поместите это в.login:
if ( -f ~/bin/zsh ) exec ~/bin/zsh -l
(в каждом случае -l сообщает zsh, что это оболочка входа).
Если вы хотите проверить это, прежде чем приступить к нему, вы можете заставить оболочку login спросить, следует ли exec zsh. Следующая работа для снарядов Bourne -l:
[ -f $HOME/bin/zsh ] && {
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
и для C -s ад -l ike shells:
if ( -f ~/bin/zsh ) then
echo -n "Type Y to run zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
Неплохо поместить это (даже без -l) в.cshrc, по крайней мере, без каких-либо тестов на то, что должно делать csh, поскольку это приведет к тому, что каждый экземпляр csh превратится в zsh и будет вызывают сценарии csh (да, к сожалению, некоторые люди пишут их), которые не вызывают csh -f
. Если вы хотите сообщить xterm о запуске zsh, измените переменную окружения SHELL на полный путь zsh одновременно с exec zsh (на самом деле это разумно для согласованности, даже если вы не используете xterm). Если вам нужно выполнить exec zsh из вашего.cshrc, минимальная проверка безопасности - если ($? Prompt) exec zsh.
Если вы хотите, чтобы ваша учетная запись отображалась в списке процессов в виде -zsh, вы можете связать zsh с -zsh (например, с помощью ln -s ~/bin/zsh ~/bin / -zsh) и изменить exec exec -zsh. (Убедитесь, что -zsh находится на вашем пути.) Это имеет тот же эффект, что и опция -l.
Сноска: если у вас есть доступ к корню, убедитесь, что zsh входит в /etc/shells на всех соответствующих машинах, включая NIS-клиенты, или у вас могут возникнуть проблемы с FTP для этой машины.