ssh login şirketinde .bashrc


374

Hardy 8.04 çalıştıran benim ubuntu-box içine ssh zaman, benim ortam değişkenleri .bashrcayarlanmamış.

Bir kaynak yaparsam .bashrc, değişkenler düzgün ayarlanır ve her şey yolunda.

Girişte neden gelmiyor .bashrc?


92
Bu "konu dışı" nasıl?
— Jonah

8
Böyle katı değilim, ama tahminim bu serverfault.com, superuser.com veya askubuntu.com'a ait
— Michael Butler

16
@MichaelButler Kabul etti. Neden kapatmak yerine onu hareket ettirmediklerini merak ediyorum ...
— Luc

4
@Luc - Sorular yalnızca oluşturulduktan sonraki 60 gün içinde taşınabilir. Bu soru oluşturulduktan 3 buçuk yıl öncesine kadar konu dışı olarak kapatılmadı. 60 günlük kuralın soru veritabanları yedeklendiğinde veya bununla ilgili bir şeyleri olduğuna inanıyorum ... bu yedekleme gerçekleştikten sonra taşınması zorlaşıyor.
— ArtOfWarfare

Bunun oldukça faydalı bir soru olduğunu düşündüm. Makine B'ye ssh yapmak için A makinesine ssh gerektiğimde bu sorunla karşılaştım (yalnızca A'nın yerel ağı üzerinden erişilebilir). Bana .bashrcve arasındaki pratik farkı öğretti .bash_profile!
— information_interchange

Yanıtlar:


620

.bashrcSSH kullanarak oturum açtığınızda kaynak oluşturulmaz. Bu şekilde kaynak gerekir .bash_profile:

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

32
Bu Bash ile herhangi bir aklı başında dağıtım üzerinde çalışması gerekir, bu nedenle tüm bu yorumlar eski :)

1
Ubuntu 12.04 LTS sunucusunda bu gerekli değildir, çünkü .bashrcSSH girişi varsayılan olarak yapılır.
— orokusaki

4
@orokusaki: Düzeltme, bu :) .profile'ı atlamaya zorlayan dolandırıcı bir .bash_profile dosyası vardı.
— Lester Peabody

4
@LesterPeabody gibi, benim .bashrc'm, sahte bir .bash_profile nedeniyle bir Ubuntu 12.04 LTS sunucusundan kaynaklanmıyordu. RVM kurulumu tarafından oluşturuldu. RVM komutunu .profile klasörüne taşıdım ve .bash_profile dosyasını sildim. Şimdi hepsi iyi çalışıyor.
— Rod Daunoravicius

4
fwiw Debian Jessie / 8 halihazırda .bashrckutudan çıkıyor - ama bunu yapıyor .profile, değil .bash_profile.
— underscore_d

75

Hobhouse gibi benzer bir durum yaşadım. Komut kullanmak istedim

 ssh myhost.com 'some_command'

ve 'some_command' '/ var / some_location' da var, bu yüzden '$ HOME / .bashrc' düzenleyerek PATH ortamında '/ var / some_location' ifadesini eklemeye çalıştım

ama bu işe yaramıyordu. çünkü varsayılan .bashrc (Ubuntu 10.4 LTS) aşağıdaki gibi kodla kaynak yapılmasını önler

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

ssh olmayan oturum açma kabuğu için ortam değiştirmek istiyorsanız. bu satırın üstüne kod eklemelisiniz.


7
Teşekkürler dostum! Bu benim için işe yaramadı biraz :)
— Raymond Barlow

Serin uç çiy. Jenkinlerden komut dosyaları çalıştırırken bu tuzağa düştüm. Ssh ile giriş yaptım ve işe yaradı. Jenkins etkileşimli olmayan bir şekilde giriş yaptı ve başarısız oldu.
— Krzysztof Jabłoński

1
Ortak çözüm neden etkileşimli olmayan mermiler için yeni bir yol bile belirlememem. İfadenin, bu nedenle sadece biraz yukarıda olması gerekir. Sadece takma adlar ve etkileşimli araçların başlatılması bu çizginin altına
— inmelidir

2
Ubuntu'nun diğer versiyonunda interaktif kontrol şuna benzer:bash # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac
— Sylvain

Teşekkürler, bu benim için çözdü. Bunu yaklaşık bir saat önce görseydim!
— Justin Lawrence

31

Bash invocation'ın nasıl çalıştığı, dotfiles'ın ne yaptığını ve bunları nasıl kullanmanız / yapılandırmanız gerektiği konusunda mükemmel bir kaynak için şunu okuyun:


Anahtar pasajı: "/ etc / profile ve sonra .bash_profile veya .bash_login veya .profile dosyalarından birini okumasına neden olur."
— Andy Hayden

29

Ayman'ın çözümü işe yaramazsa, .profileyerine dosyanızı adlandırmayı deneyin .bash_profile. Bu benim için çalıştı.


2
Muhteşem. Bu detayda 15 dakika kaybettim.
— 2012'de

Bu Ubuntu
— 12.10'da

1
Ben GUI giriş .profile yükler düşünüyorum. Terminal girişleri için .bash_profile.
— Razec Luar

Bu aynı zamanda bir Debian Jessie docker konteynerine SSH girişi için de çalıştı (kalıcı depolama için sadece veri konteyneri kullanarak) - AMA ayrıca giriş kablonuzun / bin / bash ve değil / bin / sh olup olmadığını kontrol etmek için / etc / passwd'yi kontrol etmek isteyebilirsiniz. -------> / bin / dash
— Stuart Cardall

1
@RazecLuar .profile, adı geçen kabuğun bir GUI oluşturmaya niyet edip etmediğine bakılmaksızın, herhangi bir giriş kabuğu tarafından yürütülecektir . .profileYorumunuz , soru ve SSHing'de açıkça GUI olmayan bir yöntemle çağrıldığını açıkça belirten bu cevapla tamamen çelişiyor .
— underscore_d
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.