Takma adların çalışması için her terminali açtığımda neden .bashrc kaynağını kullanmalıyım? [çift]


25

Bu satırı dosyama ekledim ~/.bashrc.

alias myserver='ssh davidfaux@davidfaux.com'

Ancak terminali açıp çalıştırdığımda myserverterminal bundan şikayet ediyor

-bash: myserver: command not found

Ben .bashrc dosyamı kaynak, ancak, ( . .bashrc), diğer ad çalışır.

Bununla birlikte, takma adın çalışması için terminali her açtığımda dosyayı kaynaklamak istemiyorum. Bunu nasıl yapabilirim?


3
Bu yorum bunun nedenini açıklar. Bu soru size nasıl düzeltileceğini anlatıyor.
ughoavgfhw

Çok teşekkürler! Kabuğun başlamasının bu dosyaları sırayla çalıştırdığını bilmiyordum. Gerçekten de, ekleme . .bashrciçine .bash_profileişler.
David Faux,

@ughoavgfhw Yorumunuzu bir cevap olarak değiştirebilir misiniz / değiştirmelisiniz? Bu şekilde bir cevap olarak işaretlenebilir.
soxman

Yanıtlar:


25

Kısacası, takma adlarınızı yanlış dosyaya koyuyorsunuz .bashrc, bu nedenle takma adların herhangi bir yeni giriş terminali örneğinde çalışmasını sağlamak için kaynak çalıştırmaya devam etmeniz gerekir.

Chris Johnsen'in “ Neden .bashrc” adlı yorumu otomatik olarak çalışmıyor?

Terminal, varsayılan olarak, / usr / bin / login yoluyla kabuğu başlatır, bu da kabuğu bir giriş kabuğu yapar. Her platformda (sadece Mac OS X'te değil) bash, oturum açma kabukları için .bashrc kullanmaz (yalnızca / etc / profile ve .bash_profile, .bash_login, .profile'ın var olan ve okunabilir). Bu nedenle “kaynak. / .Bashrc dosyasını .bash_profile dosyasına koyunuz” standart tavsiyedir.

Daha fazla bilgi için kullanım kılavuzuna bakınız bash:

man bash

O zaman INVOCATION bölümüne bakınız.


İşlerin yürümesi için yeniden başlatmam gerekir mi? Çünkü source ~/.bashrc.bash_profile dosyama ekledim , fakat hala aynı sorunla karşı karşıyayım ...
Michiel

1
Hayır, çoğu durumda değişikliklerin etkili olması için yeni bir terminal penceresi açmanız gerekir, değişiklikler yalnızca yeni açılan pencerede etkinleşir.
MrDaniel

11

Her zaman koyabilirsin

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

dosyaya ~/.profileveya ~/.bash_profilemac içine düşünüyorum.

Oooor, sadece eşyalarını koyabilirsiniz .profileveya .bash_profile.


Bu diğer cevabında da belirtilmiştir - neden bu konulardan emin değilsiniz?
user151019 23:14

Lütfen bu çok benzer soruyu okuyun: apple.stackexchange.com/q/12993/22003 ve orada bir iyileştirme ekleyin.
dan

@danielAzuelos Bekle; Diğer sayfada yorum yapmamı veya diğer soruyu temel alarak cevabımı güncellememi ister misiniz?
Dylan

@Mark ben sadece varsayımsal bir anlamda düşünüyordum - örneğin eğer birinin terminali süreci kaynağı bilmek istemiyorsa. Terminalleri muhtemelen ilk etapta başlamayacaktı, ama yine de .... birileri kendi / usr / bin / login ya da bir şey hack ediyor gibi.
Dylan

→ Dylan: Lütfen bu çok benzer soruyu okuyun: apple.stackexchange.com/q/12993/22003 ve "belki?" De bir cevap bulacaksınız.
dan
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.