$ HOME / bin Linux Mint'te PATH'e eklenmedi


1

Klasörü yarattım $HOME/binve buraya bazı sembolik bağlantılar koydum.

Ayrıca Terminal özelliklerinde Run command as login shell( bu soruya göre ) onay kutusunu ayarladım .

Şimdi yazdığımda echo $PATHbin dizininin PATH'a eklenmemiş olduğunu görüyorum. Bunu koymaya çalıştım (varsayılan):

if [ -d "$HOME/bin" ] ; then
    export PATH="$HOME/bin:$PATH"
fi

içine .bash_profile, .profileve .bashrcfakat hiçbir şey çalıştı.

Burada neyin yanlış gittiğini biliyor musun?


Güncelleme: Eğer bir terminal açıp çalıştırırsam . ~/.bashrcbin dizini doğru PATH'a eklenir. Ancak eğer bir terminal açıp çalıştırırsam . ~/.profile, PATH'a eklenmemiş (test için her iki dosyaya da yukarıdaki if ifadesini dahil ettim).

Ayrıca bir ilave echo "in bashrc"için .bashrcve bunun "bashrc olarak" basar bir terminal açın, yani zaman yükleme bashrc de (için başarılı aynı test başarısız değil .profile).

Yanıtlar:


2

Sadece sorunumun cevabını buldum. Aşağıdaki satır benim içimdeydi .profile:

export PATH="/usr/local/sbin:usr/local/bin:...elbette PATH bu değere sıfırlanır. Bu, PATH’te değişiklik yapan ve bu çizginin üzerinde olan herhangi bir şeyin artık etkisinin olmadığı anlamına geliyor.

Bu sorunun nedeni şuydu: Bir süre önce benim .profileile komutumu değiştirdim echo "export PATH=\"$PATH:$HOME/.npm-packages/bin\"" >> ~/.profile. $PATHDüz metin olarak yazacağını düşündüm .profileama bunun yerine onu PATH'ın asıl içeriğine göre çözdü. Dolar işareti ( \$PATHyerine $PATH) kaçmak zorunda kaldı , şimdi beklendiği gibi çalışıyor.


0

$ HOME / bin (veya eşdeğeri) bulunmuyorsa, problem PATH'ı ayarlamak için kullandığınız kodda olabilir. Bunu, PATH'yi belirleyen if / then komutunu yazıp bunu şöyle değiştirerek kontrol edebilirsiniz:

echo "just a test" > ~/justatest
if [ -d "$HOME/bin" ]; then echo "echo bin found" > ~/bin/testresult; fi
chmod 777 ~/bin/testresult
~/bin/testresult

İlk satır bir akıl sağlığı kontrolüdür ve asla başarısız olmamalıdır. Son satırlar bin dizininizin kullanılabilirliğini test eder. Ben de ~ PATH yerine ~ kongre kullandım - aynı şey.


Zaten böyle bir şey denedim, kod sorun değil. Satırı export PATH="$HOME/bin:$PATH"if ifadesi olmadan ayarlasam bile, PATH'a eklenmedi. Ve btw '$ HOME yerine' ~ demek istediğini düşünüyorum, $ PATH değil
LPrc

Evet, ~ $ HOME yerine; doğru. $ HOME / bin i belirttiginiz gibi PATH konumuna koyarsanız echo $PATH, oturum açtıktan sonra ne gösterir?
Erik Bryer

Gibi tüm standart yolları /usr/binve ek olarak kendim için eklediğim tüm özel yolları ~/.profile, gibi yazdırır /home/simon/programs/jdk1.8.0_65/bin. Bunun dışında her şey yolunda $HOME/bin. Bir terminal açıp çalıştırırsam export PATH="$HOME/bin:$PATH"ve sonra echo $PATHbin dizini PATH'e başarılı bir şekilde eklenir, ancak yalnızca geçerli oturum için.
LPrc,
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.