リモートホストにログインできるようにPuTTYセッションを構成し、(a)bashを開始します(b)PS1変数を変更します(プロンプトコンテンツ)(c)通常どおりセッションで作業を続行します。
私は試した:
何か案は?フォーラムで同様の質問をいくつか調べましたが、役立つものは何も見つかりませんでした。
より一般的には、多くのユーザーが1人のユーザーとしてログインするホストにログインするため、すべてのユーザーが1人のユーザーの「設定」を共有します。 PuTTYにこれらの設定の一部を一時的に変更させる方法を探しています(つまり、PuTTYを使用して開いたセッションに時間制限がかかるようにします)。セッション内で実行されている個人バージョンの.bashrcのようなものです。これが理にかなっていることを願っています。
ターゲットサーバーは 受け入れるように構成されている 1番目のオプションが機能するように環境変数を設定する必要があります。 2つ目は実際には正常に機能していますが、問題はそれが模倣するように設計されていることです
ssh user@foo command
接続し、command
を実行して終了します。 command; bash
を指定することで開いたままにすることができますが、変数を設定する場合は機能しません。変数が設定された後、新しいシェルが開始されます。
したがって、環境変数の設定を有効にできるようにサーバーへのルートアクセス権を持たない限り、これを行うために私が考えることができる唯一の方法は、サーバーを~/.bashrc
編集し、そこでPS1
を定義することです。この行を~/.bashrc
に追加します。
PS1="some stuff"
これで、そのサーバーにログインするたびに、プロンプトが設定されます。
これを行う別の方法は、bashセッションに別のrcfileを使用することです。次の行を使用して新しいファイルを作成します。
source /etc/profile
source ~/.bashrc
PS1='some stuff'
たとえば、~/.myps1
として保存し、PuTTY設定で、リモートサーバーで実行するコマンドを次のように設定します。
bash --rcfile ~/.myps1
これにより、リモートサーバーで新しいシェルセッションが開き、上記のファイルが読み込まれます。このファイルは、最初に.bashrc
を読み取り、次にPS1
を設定します。
さまざまな理由でsshd構成を変更できない、および/または+2000サーバーを持っている(そして大量構成ツールにアクセスできない、または他のユーザーの設定を変更できない/したくない)場合は、これが私が思いついた解決策ですと:
PuTTYで目的のセッションをロードし、[接続]> [SSH]に移動します。 「サーバーに送信するデータ」セクションの「リモートコマンド」フィールドで、次を使用します。
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] bash
例:
env -u PS1 PS1="[\u@\h]\\$ " bash
それ以外の方法では機能しなかったため、最初に変数の設定を解除しました。
リモートコマンドをexport PS1='foo'; /usr/bin/bash
...のように設定してみてください。これにより、PS1の設定後にbashセッションが生成されます。