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

ssh 経由で PS1 プロンプトをプッシュする

~/.my_custom_bashrc など、各リモート マシンにファイルをアップロードします。 、カスタム bash で 構成 (この場合は PS1=... ) 次に ssh を起動します と:

ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"

bash を簡単に使用できます 読みやすくするためのラッパーとして機能します。


PS1 だけを送信したい場合 変数であり、' が含まれていません (一重引用符)、試してください:

ssh targethost -t "PS1='$PS1'; exec bash"

ローカル .bashrc PS1 を上書きする可能性があります ただし (これを指摘してくれた Dennis Williamson に感謝します)。

ssh 経由で環境変数を送信する方法はありますが、通常はサーバー構成で無効になっています。 PermitUserEnvironment の場合 ディレクティブがサーバー構成で有効になっていて、各ユーザーが独自のキー ペアを持っている場合 (そう、運が悪いかもしれません)、 environment="PS1=…" を追加できます ~/.ssh/authorized_keys の行まで あなたのキーに対応します。

共有ユーザー アカウントで独自の構成を維持したい場合は、独自の構成ファイル ディレクトリを作成し、HOME を設定できます。 そのディレクトリを指す環境変数

ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/

mrstatic.home にシンボリック リンクを作成する 他のユーザーとファイルを共有する場合、親ディレクトリ内の対応するエントリを指すディレクトリ。

次に、

でログインします。
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`

リモート .profile を変更する場合 (または他の初期化ファイル)、おそらく設定を自動化できます。多くのサイトで LC_* が許可されています 環境変数 (通常はロケール設定に使用されます)。これらの両方の条件が満たされている場合、実際にはロケールに使用されていない変数を設定できます (例:LC_USER)。 、クライアント側で、サーバー .profile でテストします .

(もちろん共有アカウントは悪い考えですが、あなたがその状況を変える立場にないかもしれないことは承知しています。)


ssh -t [email protected] "remote='$PS1' bash -i"

次に、プロンプトで:

PS1=$remote

Linux
  1. LinuxでBashプロンプトを短縮する方法は?

  2. Bashは最初の行を上書きします、Ps1 Bashプロンプト?

  3. Ssh – Sshを介してStdoutをリダイレクトしますか?

  1. Ps1のパスセパレータを強調表示しますか?

  2. Sudoを介してSsh上でスクリプトファイルを実行しますか?

  3. Ssh – FirefoxがSshよりも遅いのはなぜですか?

  1. Tcshと同様にBashまたはKsh93でPs1プロンプトを生成する方法は?

  2. Sshを介したコマンドでTrueを使用しますか?

  3. Bashプロンプト表示Hh:mm:ss?