PS1Değişkeni göndermek istiyorsanız ve değişken '(tek tırnak) içermiyorsa , şunu deneyin:
ssh targethost -t "PS1='$PS1'; exec bash"
Yerel olsa .bashrcda üzerine yazabilirsiniz PS1( bu işaret için Dennis Williamson sayesinde ).
Ortam değişkenlerini ssh üzerinden aktarmanın yolları vardır , ancak bunlar genellikle sunucu yapılandırmasında devre dışı bırakılır. Eğer PermitUserEnvironmentyönerge etkindir sunucu yapılandırması ve her kullanıcı (evet, bu kadar şanslı olmayabilir) kendi anahtar çiftini vardır ekleyebilir environment="PS1=…"içinde çizgisine ~/.ssh/authorized_keyssizin anahtarına karşılık gelen.
Kendi yapılandırmanızı paylaşılan bir kullanıcı hesabında tutmak istiyorsanız, kendi yapılandırma dosyası dizininizi oluşturabilir ve HOMEortam değişkenini bu dizini işaret edecek şekilde ayarlayabilirsiniz .
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
mrstatic.homeBir dosyayı diğer kullanıcılarla paylaşmak istediğinizde, dizinde üst dizindeki karşılık gelen girdiyi gösteren sembolik bağlantılar oluşturun .
Ardından,
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Uzaktan kumandayı .profile(veya başka bir başlatma dosyasını) değiştirmek istiyorsanız, muhtemelen ayarlarınızı otomatikleştirebilirsiniz. Birçok site LC_*ortam değişkenlerine (normalde yerel ayarlar için kullanılır) izin verir . Bu koşulların her ikisi de karşılanırsa, aslında LC_USERistemci tarafında yerel ayarlar için kullanılmayan bir değişken ayarlayabilir ve bunu sunucuda test edebilirsiniz .profile.
(Elbette paylaşılan hesaplar kötü bir fikirdir, ancak bu durumu değiştirebilecek bir konumda olmayabileceğinizin farkındayım.)
"PS1='$PS1' bash -i"(ve neden de değilexec)?