Ubuntu'da .bash_profile bulamıyorum


67

.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.


1
Bunun ~/.profileyerine kullanmalısın .
muru


1
Bazı yapılandırma dosyalarının (hatta dizinlerin) eksik olması oldukça yaygındır. Bu durumda bunları okuması gereken yazılım varsayılan bir konfigürasyon kullanacak ve / veya konfigürasyonu almak için diğer kaynakları okuyacaktır. Var olmayan bir yapılandırma dosyasını değiştirmek istiyorsanız, önce onu oluşturun.
Bakuriu,

Yanıtlar:


84

Ubuntu kullanır ~/.profile.

.bash_profileUbuntu’da kendi dilini yaratabilirsin ama sonra .profileokunmayacak.

.Profile içeriğini okursak:

cat ~/.profile

çıktı

# ~/.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


.profile benim için işe yaramadı. Ben .bashrc düzenlemek zorunda vim ~/.bashrcsonra. ~/.bashrc
Nahid

.Bash_profile kullanmak Ubuntu'da çalışmaz. Dash'i Bash değil GUI giriş kabuğu olarak kullanır, bu yüzden bash_profile okunmaz.
Jonathan Hartley

.Profile dosyanızı düzenlerseniz, değişiklikleri görmek için oturumu kapatıp tekrar açmanız gerekir.
Jonathan Hartley

8

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.

Not etmek önemlidir:

Ş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.

Eksik .profile?

Daha .profilesonra buradan kopyasını alamazsanız:

cp /etc/skel/.profile ~/.profile

veya

# Remember the note above
cp /etc/skel/.profile ~/.bash_profile

Fakat, eğer Bash önce ~ / .bash_profile'yi arıyorsa, o zaman neden Ubuntu'da bunu yapmıyor? Ubuntu Bash'i değiştirdi mi? Bu garip görünüyor. man bashUbuntu'da hala ilk önce .bash_profile'un nasıl görüneceğini açıklar.
Jonathan Hartley

İlk .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.
Ravexina

Doğru, ilk başta ben de öyle düşündüm! Ve tanımladığınız şey RHEL'de gerçekleşiyor. Ancak Ubuntu'da, öyle değil. Bir yaratırsam .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 .
Jonathan Hartley

Buradaki noktayı kaçırıyorsun. Aslında biz bash hakkında konuşuyoruz, burada söylediğim şey Ubuntu'nun '.profile' ve diğerleri değil yarattığıdır, yani eğer yeni bir bash kabuğu (giriş kabuğu) açarsak, bu dosyaları okuma sırası budur. Hangi dağıtımı kullandığımız önemli değil. :)
Ravexina,

Okuyucular cevabınızın önerdiği gibi .profile .bash_profile adını değiştirirse, o zaman Ubuntu'daki insanlar için bu dosya giriş yaparken veya bir terminal açmadan okunmayacaktır. Sistemlerini bozdun. Dosyanın okunmasının tek yolu, açıkça bir giriş kabuğu yapmak için '--login' argümanıyla bash oturumları başlatmalarıdır. Bu asla masaüstünde otomatik olarak olmayacak.
Jonathan Hartley

5

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 .


.bash_profile dosyasının neden olmadığı konusunda bir fikriniz var mı?
Roledenez

Dizinden kopyalayabilirsiniz /etc/skel/.
Frantique

Bu kanonik bir tasarım kararıdır. Ancak, bu yapamaz demek değildir.
Kaos

.bash_profileSebebinin Ubuntu'da eksik olduğunu (ve çalışmadığını) diğer cevaplarla ilgili yorumlarda açıkladım .
Jonathan Hartley

2

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.


Orijinal Linux'ta .profile, GUI'ye giriş yaptığınızda veya uzaktan bağladığınızda veya konsola giriş yaptığınızda, yani ctrl + shift + F2 tuşlarına basıldığında uygulanır. Makineye ilk giriş yaptığınızda, ardından oluşturduğunuz tüm diğer işlemlerin ana öğesi olan bir kabuk oluşturduğu belirtilmelidir. WSL'de bunların hiçbiri gibi bir şey olmadığından şüpheleniyorum, bu yüzden .profile asla okunamayabilir.
Jonathan Hartley

benim için aynı. ~/.profile
ubuntu'da

0

.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.

http://stefaanlippens.net/bashrc_and_others

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.