39

それは可能ですか(そしてどのように)?これは、ssh アクセス権がある (ルート アクセス権がない) 複数のリモート コンピューターで本当に必要です。

4

4 に答える 4

71

zsh をダウンロード:

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 を自分でコンパイルできます。

./configure --prefix=$HOME
make
make install

次に、明示的に、または現在のシェルの起動ファイルからプログラムで起動します (exec $HOME/bin/zsh -l適切な場所に配置します)。

于 2013-03-08T12:01:39.237 に答える
10

コマンドを試すことができますchsh。離れたコンピュータに zsh がインストールされていませんか? そうでない場合は、これを行うことができます(zsh FAQ Section 1.7から引用)

基本的な考え方は、exec を使用して現在のシェルを zsh に置き換えることです。多くの場合、.profile (シェルが sh または ksh の場合) または .login (csh の場合) などのログイン ファイルでこれを行うことができます。exec はしばしばかなり厳しいので、これを試みる前にファイルを変更する何らかの方法 (例えば FTP 経由) があることを確認してください。

ホームディレクトリのサブディレクトリ bin に zsh がある場合は、これを .profile に入れます。

[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l

または、ログイン シェルが csh または tcsh の場合は、これを .login に入れます。

if ( -f ~/bin/zsh ) exec ~/bin/zsh -l

(いずれの場合も -l は zsh にログイン シェルであることを伝えます)。

コミットする前にこれが機能することを確認したい場合は、ログイン シェルに zsh を実行するかどうかを尋ねさせることができます。Bourne のようなシェルでは次のように動作します。

[ -f $HOME/bin/zsh ] && {
        echo "Type Y to run zsh: \c"
        read line
        [ "$line" = Y ] && exec $HOME/bin/zsh -l
}

C シェルのようなシェルの場合:

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 を実行するように指示する場合は、zsh を実行すると同時に、SHELL 環境変数を zsh のフル パスに変更します (実際、これは、xterm を使用していない場合でも、一貫性を維持するために賢明です)。.cshrc から zsh を実行する必要がある場合、最小限の安全性チェックは if ($?prompt) exec zsh です。

ログイン シェルをプロセス リストに -zsh として表示する場合は、zsh を -zsh にリンクし (たとえば、ln -s ~/bin/zsh ~/bin/-zsh で)、exec を exec -zsh に変更します。(-zsh がパスにあることを確認してください。) これは -l オプションと同じ効果があります。

脚注: root アクセス権がある場合は、zsh が NIS クライアントを含むすべての適切なマシンの /etc/shells にあることを確認してください。そうしないと、そのマシンへの FTP で問題が発生する可能性があります。

于 2013-03-08T12:00:28.320 に答える
2

zshマシンに zsh がある場合は、スワップのプロンプトで実行するだけで問題ありません。それが機能する場合はchsh、シェルをスワップするか (root なしで動作するはずです)、またはsshputで接続しているときssh -t hostname zshに自動的に起動します。

于 2013-03-08T11:59:10.807 に答える
-3

ユーザー アカウントのディレクトリにディレクトリを作成し、zsh./configを展開してから、makeおよびを使用しmake installます。

于 2013-03-08T11:59:50.877 に答える