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_profile
bu dosyanın var olup ~/.profile
olmadığı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 .profile
bu 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 ~/.profile
okunmaz.
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_profile
ise okunur ~/.profile
; gdm ile giriş yaparsanız sadece ~/.profile
okunur; xdm ile giriş yaparsanız, ~/.profile
okunmaz.
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 ~/.bashrc
bir 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.
.profile
giriş yaptığınızda okunur. Ortam değişkenlerini koymak .bashrc
iş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 eshell
değil bash
. Bunun eshell
yük olacağı varsayıldığında, .bashrc
varsayıldığı zsh
veya csh
yüklendiği kadar hatalıdır .bashrc
. Farklı bir kabuk.
İki seçenek görüyorum:
bash
ve 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.