.bash_profileUbuntu 14.04'te dizinimde bulamıyorum /home/user. Kullandığım ls -agörmek için komutu .bash_profile, ancak böyle bir dosya yok.
.bash_profileUbuntu 14.04'te dizinimde bulamıyorum /home/user. Kullandığım ls -agörmek için komutu .bash_profile, ancak böyle bir dosya yok.
Yanıtlar:
Ubuntu kullanır ~/.profile.
.bash_profileUbuntu’da kendi dilini yaratabilirsin ama sonra .profileokunmayacak.
.Profile içeriğini okursak:
cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
Yani ~/.profileyerine~/.bash_profile
vim ~/.bashrcsonra. ~/.bashrc
Bir giriş kabuğu çağırırken bash, config dosyalarını bu sıraya göre arar:
[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile
Bir varsa o kadar ilkini bulduktan sonra, diğerleri için arayan durdurur .bash_profilebenim de $HOMEpartisi yüzünden bakmaz .bash_loginve .profileartık.
Bu üç dosya adından, varsayılan olarak Ubuntu kullanır, .profileisterseniz yeniden adlandırabilirsiniz .bash_profile:
mv ~/.profile ~/.bash_profile
Kullandığımız yeni bash kabuğunu açarsanız Şimdi bash -l, su - $USER, sudo -u $USER -iveya bir giriş kabuğu olarak bash çalıştıran herhangi başka komutlar, ~/.bash_profilekaynaklı alacak.
Şu ana kadar bahsettiğim şey sadece Bash'in kendisi için geçerlidir, sisteme bir GUI'den giriş yaptığınızda, ekran yöneticisi doğru dosyaları almaktan sorumludur.
Ubuntu gdm3, ekran yöneticisi olarak kullanır , eğer bir göz /etc/gdm3/Xsessionatarsak, aşağıdakilerden hiçbirinin kaynaklanmayacağını görebiliriz .profile:
# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
if [ -f "$file" ]; then
source_with_error_check "$file"
fi
done
Bu nedenle, oturum açmak için bir GUI kullanıyorsanız, dosyayı .profilead altında tutun; aksi halde ortamlarınızdaki bazı değişkenleri ve ayarları özleyebilirsiniz.
Sanırım daha iyi seçenek bir sembolik bağlantı oluşturmaktır .profile:
ln -s ~/.profile ~/.bash_profile
Şimdi verileriniz içinde yaşıyor .profile, gdmhiçbir şeyi kaçırmıyor .bash_profile, asıl yük olan bash yüklerini .profileve her birini düzenleyerek aynı sonucu elde ediyorsunuz.
Daha .profilesonra buradan kopyasını alamazsanız:
cp /etc/skel/.profile ~/.profile
veya
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
man bashUbuntu'da hala ilk önce .bash_profile'un nasıl görüneceğini açıklar.
.bash_profile önce onu bulamıyor (çünkü yok) arar, sonra .bash_logintekrar bulur (Ubuntu bu iki ismi kullanmaz). Son olarak arar .profileve evet. Yani eğer bir .bash_profilegiriş ~yaparsanız ubuntu'nun üzerine yazıyorsunuz, ~/.profileburada hiçbir şeyin değiştirilmemiş olan bash'ın varsayılan davranışı bu.
.bash_profile, okunmaz. Bunun sadece Ubuntu'nun 'Bash'i artık bir GUI giriş kabuğu olarak kullanmaması nedeniyle fark ettim. Bunun yerine 'Dash' kullanır. Bunun 18.04'ten beri geçerli olduğunu düşünüyorum .
Bu, dosyanın bulunmadığı anlamına gelir. Ancak, dosyayı oluşturabilir ve bir giriş kabuğu olarak çağrılırsa bashdosyayı çalıştırır / kaynaklar bash. Yani kaçınılmaz bir kabukla giriş yaparsınız (örneğin ssh).
İçeriğin bir terminali her açtığınızda çalıştırılmasını istiyorsanız, .bashrcdosyayı değiştirmelisiniz .
/etc/skel/.
.bash_profileSebebinin Ubuntu'da eksik olduğunu (ve çalışmadığını) diğer cevaplarla ilgili yorumlarda açıkladım .
Kullanmak ~/.profileyerine en iyi cevap ~/.bash_profilebenim için işe yaramadı.
değişiklik yapmaya .bashrcçalıştı
Sadece:
vim ~/.bashrc
Not: Ubuntu WSL kullanıyorum.
~/.profile
.Bashrc'yi kastediyorsanız, onu ev klasörünüzde bulacaksınız. Orada değilse, / etc / skel klasöründen home klasörünüze kopyalayabilirsiniz.
Bu konuda daha fazla bilgiye ihtiyaç duyarsanız, lütfen stefaan lippens sayfasını ziyaret edin.
~/.profileyerine kullanmalısın .