Yanıtlar:
Geleneksel olarak, unix sistemlerde kullanıcı başına ortam değişkenlerini tanımlayabileceğiniz yerdir ~/.profile. Bu dosya, oturum açma kabuğunun Bourne uyumlu bir kabuk olması koşuluyla oturum açma kabuğu (yani oturum açtığınızda başlatılan ve komutları yazabileceğiniz program) tarafından okunur.
Bash, Bourne uyumlu bir kabuktur. Giriş kabuğu olarak çağrıldığında, ~/.bash_profilebu dosyanın var olup ~/.profileolmadığını ve var olmadığını okur ~/.bash_profile.
Genel bir kural olarak, şifrenizi metin modunda (örneğin, bir metin konsolunda veya uzaktan ssh ile) yazarsanız, elde ettiğiniz kabuk bir giriş kabuğudur.
Ancak, parolanızı grafiksel bir programa yazar ve grafiksel bir ortama giriş yaparsanız, bu normal oturum açma kabuğunu atlar. İster .profilebu durumda grafiksel oturumu nasıl ayarlandığına bağlıdır okunur; örneğin Linux dağıtımları, ekran yöneticileri ve masaüstü ortamları arasında değişiklik gösterir. Bazen zincirdeki programlardan biri açıkça bir giriş kabuğu çağırır; bazen programlardan biri açıkça okur ~/.profile; ve bazen bunların hiçbiri olmaz ve ~/.profileokunmaz.
Değişkenliğin bir örneğini vermek için, ilgili komut dosyalarına hızlı bir bakıştan anlayabildiğim kadarıyla, Ubuntu 10.04'te: kdm veya lxdm ile giriş yaparsanız, var ~/.bash_profileise okunur ~/.profile; gdm ile giriş yaparsanız sadece ~/.profileokunur; xdm ile giriş yaparsanız, ~/.profileokunmaz.
Tanıdığım tüm sistemler, kullanıcı başına ortam değişkenlerini ayarlamanın bir yolunu sunar. Ne yazık ki genel bir cevap yok.
Bazen ~/.bashrcbir GUI ortamındaki ortam değişkenlerini ayarlamak veya her terminalde bir oturum açma kabuğu başlatmak için öneriler göreceğinizi unutmayın . Her ikisi de kötü fikirler; Bunun nedenlerinden biri, karşılaştığınız sorundur, yani ortam değişkenlerinizin yalnızca bir terminal aracılığıyla başlatılan programlarda mevcut olması ve doğrudan bir simge veya menü veya klavye kısayoluyla başlatılan programlarda bulunmamasıdır.
.profilegiriş yaptığınızda okunur. Ortam değişkenlerini koymak .bashrcişe yaramaz ve senaryonuz şunu gösterir: Bu kabuğu çalıştıran (muhtemelen GUI) uygulamasının ortam değişkenleriniz olması gerekir, ancak bunları tanımlarsanız .bashrc, t.
Kesin cevap, Bash Başlangıç Dosyaları'nın bash man sayfası bölümünde . "Oturum açma kabuğu olmayan bir etkileşimli kabuk başlatıldığında, Bash bu dosya varsa ~ / .bashrc'deki komutları okur ve yürütür."
Diğer sorularınızın yanıtları, eshell'in gerçekten çalışmadığını gösterir bash. Emacs eshelldeğil bash. Bunun eshellyük olacağı varsayıldığında, .bashrcvarsayıldığı zshveya cshyüklendiği kadar hatalıdır .bashrc. Farklı bir kabuk.
İki seçenek görüyorum:
bashve elisp kodunu üreten kendi komut dosyanızı oluşturun eshell.Yinelenmeden bir yola dizin ekleme konusundaki tartışma da ilginizi çekebilir .
~ / .Profile içinde PATH ayarlamak sadece işe yarayacaktır. Bu dosya, bash dahil bildiğim her POSIX uyumlu veya Bourne benzeri kabuk tarafından giriş yapıldığında okunur. Bu dosyada değişiklik yaparsanız, değişikliklerin etkili olması için oturumu kapatıp tekrar oturum açmanız gerekir. PATH giriş işleminizin ortamının bir parçası olduğundan, daha sonra başlattığınız her kabuğa dışa aktarılmalıdır.