GNU/Linux >> Linux の 問題 >  >> Linux

root アクセスなしで zsh をインストールしますか?

マシンに zsh がある場合は、 zsh を実行するだけで問題ありません。 スワップするプロンプトで、それが機能する場合は chsh を試すことができます シェルを交換する (ルートなしで動作するはずです) または ssh で接続している場合 ssh -t hostname zsh を入れてください 自動的に開始します。


chsh を試すことができます 指図。離れたコンピュータに zsh がインストールされていませんか?そうでない場合は、これを行うことができます (zsh FAQ セクション 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 のインスタンスが zsh に変わり、csh -f を呼び出さない csh スクリプトが発生します (そうです、残念ながらこれらを作成する人もいます)。 失敗する。 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 で問題が発生する可能性があります。


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

次に、明示的に、または現在のシェルの起動ファイルからプログラムで起動します (put exec $HOME/bin/zsh -l


Linux
  1. rootなしでCentOSにg ++をインストールすることは可能ですか?

  2. 自動依存関係処理を使用して root ユーザーなしで Linux (CentOS) にパッケージをインストールする方法は?

  3. root アクセスなしで、参照 BLAS とリンクされている場合は、調整された BLAS で R を実行します

  1. root にならずに RPM をインストールするにはどうすればよいですか?

  2. sudo なしで emacs をインストールしますか?

  3. root 権限なしで Linux にソフトウェアをインストールする

  1. root アクセスを許可せずに、あるユーザーが別のユーザーに su できるようにするにはどうすればよいですか?

  2. root アクセスなしで 1024 未満のポートにバインドする

  3. パスワードなしで Linux root ユーザー mysql root アクセスを許可する