.bashrc iTerm + Mac OS X kaynaklı değildir


62

Mac OS X 10.6'da iTerm kullanıyorum. İTerm'i açtığımda, ne kaynak ne .bashrcde .bash_profilekaynaklanmıştı. Bunu söyleyebilirim çünkü içinde tanımlanan takma adlar .bashrcayarlanmadı. Nasıl düzeltilir?


2
Olan şu ~/.bash_profile, ilk önce bash tarafından çağrılıyor, bu sizin sahip olduğunuz talimatları kısa devre yapıyor ~/.bashrc. Bu sorun beklenmedik bir şekilde, sahte bir program ~/.bash_profileönceden dosya bulunmadığında size bazı talimatlar eklerse ve tüm bash komutlarınızı yerleştirdiyseniz ortaya çıkabilir ~/.bashrc. Çözüm, ~ / .bash_profile dosyanızı silmek veya ~ / .bash_profile kaynağınıza ~ / .bashrc dosyasını vermektir. Bu, komutunun source ~/.bashrcsonuna : ekleyerek ~/.bash_profileve terminali yeniden başlatarak yapılabilir.
Eric Leschinski,

Yanıtlar:


53

Bash, nasıl adlandırıldığına bağlı olarak EITHER .bash_profile veya .bashrc'ye kaynak sağlayacaktır. Bu bir giriş kabuğu ise, Bash bu sırayla ~ / .bash_profile, ~ / .bash_login veya ~ / .profile öğesini arar ve bulduğu ilki (ve yalnızca bu) kaynak yapar. Oturum açma kabuğu değilse, ancak etkileşimli ise (çoğu terminal oturumunda olduğu gibi), Bash ~ / .bashrc kaynak olacaktır.

Muhtemelen, iTerm ~ / .bashrc arıyor. Giriş kabuğu olarak başlayacak şekilde yapılandırılmışsa, ~ / .bash_profile ifadesini arar. Neredeyse kesinlikle kabuğun kaynaklanmaması yerine config dosyasındaki bir hatadır.

Her dosyanın başına bir satır koyardım. ~ / .Bash_profile dosyasının tepesinde:

export BASH_CONF="bash_profile"

Ve ~ / .bashrc üstündeki:

export BASH_CONF="bashrc"

Sonra yeni bir iTerm açın ve yazın

$ echo $BASH_CONF

Bu, dosyanın alındığını onaylamalıdır ve dosyanın sözdizimine bakabilirsiniz.


2
Her kaynak dosyası için farklı bir ortam değişkeni ayarlama o birden fazla dosya kaynaklı ise, bunu bileceksiniz olduğunu, daha fazla bilgi sağlar, nost sadece sonuncusu (değil sipariş kaynaklı kullanılabilir.)
kmarsh

Bu hala .bashrc dosyasını yüklemiyor. İTerm ve Terminal Tercihlerime kaynak ~ / .bashrc eklemeliydim. btw Mac OS X 10.9.5 kullanıyorum.
Dev Elk

Sadece bir .profile dosyası ekledim ve bu otomatik olarak terminal tercihlerinizi bozmadan OS X 10.9.5'te çalışıyor.
Dev Elk

1
Tercihler -> profiller -> genel'e giderek bir giriş kabuğu olduğunu öğrendim ve komut altında giriş kabuğu seçildi. MacOS El Capitan ve iTerm2 3.0.14'te geçerli
Aditya

Buradaki çözüm benim için işe yaramadı, ama bir çözüm buldum. Başlangıçta, bashrc ve bash_profile yoktu. Buradaki cevap bashrc yaratmayı öneriyor. Bir bashrc dosyası oluşturmak yerine bir bash_profile dosyası oluşturdum ve çalıştı. Şimdi neden bashrc'nin çalıştırılmadığını ve bash_dosyayesinin evet olduğunu anlamam gerekiyor.
kalmanIsAGameChanger 17:18

68

İTerm2'de bu çözümlerin hiçbiri benim için çalıştı. Komutu ekleyerek .bashrc dosyamı düzgün bir şekilde okumayı başardım.

source ~/.bashrc 

için : Gönder başında metne benim iTerm profili için Genel Ayarlar alanda /.

görüntü tanımını buraya girin


Kabul edilen cevabın önerisini yaptığınızda ne oldu? Çıktı yok?
Daniel Beck

Sağ. Çıktım yok ve iTerm 2 varsayılan bash kabuğunu takma isimlerimin hiçbiriyle yüklememiş.
Mark Struzinski,

Bu cevap şu ana kadar kırıldı - ikinci snippet'in girmesi gerekiyordu ~/.bashrc. Düzenlendi.
Daniel Beck

ZSH kullanıyorum ve aynı sorunu yaşıyordum. Bunun dışında, benim config dosyamdan hiçbiri ilk önce yoktu ve oluşturulması gerekiyordu. Bu cevabı kullandım ve "Başlangıçta metin gönder" i ayarladım, ancak ZSH'yi .zsh'yi yeniden başlattığımda ve. Bu kimseye yardımcı olur mu
bilmiyorum

Bunun benim sorunum olduğunu düşünmüştüm .. ve yol boyunca ana sayfa kataloğumun başlattığım klasör olmadığını fark ettim. Böylece .bash_profile dosyamı başka bir yere taşıdım ve ln -s olduğumu sandım ~ (home) kataloğumdan aslında yanlış klasöre bir
sembol ekledim

23

Acaba gerçekten Bash'i kullanıyor musun? Kullanabiliyor olabilirsiniz echo $SHELL, zsh kullanıyor olmanız oldukça muhtemeldir, on-my-zh'yi yüklediniz mi?

Eğer, ben yapılandırarak bunu düzeltmek olarak Acutually aynı sorunla karşılaşırsanız ~ / .zshrc yerine ya ~ / .bash_profile giriş kabuğu veya için ~ / .bashrc dışı giriş kabuğu için.

Belki bir deneyebilirsin


1
İlginç bir öneri olsa da, bu soru 3 yaşında ve kabul edilmiş bir cevabı var.
Tyson

12

10.6 makinemde ~/.profilekaynak var. Yani bir source .bashrcgiriş ~/.profileişi yapmalı.


Mac OS El Capitan'da benim için çalıştı.
user674669

Tecrübelerim bir .bashx dosyasını bir başkasından kaynaklamak istemediğinizi söylüyor, bir sebepten ayrılar :) Bunu yapıyorsanız, o zaman bir şeyler yanlış
Alexander Mills

@AlexanderMills Bu dosyaların var olmasının nedeni, Mac'in onları doğrudan Unix'ten çıkarmasıdır. Hepsinin bir kullanıcı için yüklenmemesi için hiçbir sebep yok.
RaisinBranCrunch

Birbirlerini yüklerlerse dairesel çağrılar alabilirsiniz, sorun, bunun en iyi yolu bir env var ile bir boole çevirmek ve yalnızca boole ayarlı değilse diğer dosyaları yüklemek.
Alexander Mills,

8

Kolay tamir

1.~/.zshrc Dosyanızı açın

2. Dosyanın sonuna aşağıdaki satırı ekleyin.

source ~/.bash_profile

1
Parlak! Bu benim için yaptı. Oh-my-zh 'u kurduktan sonra zsh'nin yoluna girdiği hiç aklıma gelmedi.
Cindy Conway

6

10.9 makinemde ~ / .bash_profile kaynaklanıyor. Bu yüzden ~ / .bash_profile içindeki bir kaynak .bashrc girişi işi yapmalıdır.


1

Diğer ad tanımlarınızı bash profil dosyasına koyun, dosyayı oluşturmanız gerekir, ancak otomatik olarak kaynaklanır. Alias.configuration adında ayrı bir dosya oluşturup bunu .bash_profile içinde kaynak olarak tanımladım, çünkü başka bir kullanıcı tanımlanmış ve aynı takma adı ayarlamak istiyorum.


1
Aslında ne kaynak ne .bashrcde .bash_profilekaynak.
Computist

1

Eklemek

set -x

başlangıcına /etc/profile. Bu size işletilirse her şeyin bir çizgi-by-line hesabını verir bashiçinden kaynaklandığı dosyaları dahil olmak üzere başladığında /etc/profile, ~/.bash_profileanlamadığınız eğer biraz zor olduğunu, vb bashçok iyi komut dosyası, ancak olmadığını görmek mümkün olabilir Bir başlangıç ​​dosyasında bir hata var ve çıktı, bashsorununuzu bulmanıza yardımcı olacak uzman bir kişi için yararlı olacaktır .

set -xSorun gidermeyi tamamladığınızda çizgiyi kaldırabilirsiniz .


1

10.10 ve iTerm2 2.0'da özelleştirilmiş profil

  • .bash_rc çalışmalı.
  • .bash_profile, "/ bin / bash" yerine "/ bin / bash --login" komutunu deneyin.

Bu cevabı ben oyladım çünkü OS X’de bir noktada bash’ın “.bashrc” yerine “.bash_rc” yi kaynaklayacağını kabul eden tek kişi görünüyor. Buraya geldim çünkü nedenini bulmaya çalışıyordum (ve hala bilmiyorum).
Marnix A. van Ammers

0

İTerm2'de, "login" dahil özel bir komut yerine "login kabuğu" kullandığınızdan emin olun, bu beklediğiniz şeyi yapmaz.


İTerm2 komutu gerçekte ne yapar?
studgeek

0

Aşağıdaki değişikliği yapın, iTerm bashrc kaynak olacaktır.

iTerm> Tercihler> Genel> [x] Komut: / bin / bash


0

/ Etc / bashrc dizinine aşağıdaki satırı ekleyerek sorunu çözebilirsiniz.

[-r "$ HOME / .bashrc"] &&. "$ HOME / .bashrc"


-1

Beklediğim gibi çalışması için çift çözümleri bir araya getirdim.

.bash_profile kaynak ve zsh üzerinde çalıştırın.

Preferences -> Profiles -> General .

Komut altında Komut'u seçin.
Ve metin kutusuna ekleyin /bin/bash --login.

Sonra .bash_profile içinde satır ekleyin /bin/zsh --login

Bu kadar.


(1 Ne? (2) Her bashzaman koşuyorsanız zsh, hiç kimsenin beklediği şey bu değil.
Scott

/ Bin / bash --login değerini ayarlarsam, zsh 'nin hiçbir özelliğini sağlamaz. O zaman tercihini loginshell olarak değiştirirsem, .bash_profile dosyasını okumaz. Her zaman source ~/.bash_profileel ile çalıştırmak zorundayım . @Scott Yukarıdakileri yaptıktan sonra, gerekli şekilde zsh var.
muhammed fesleğen

(1) Demek istediğim , istediğiniz şey zsholabilir , ancak [bash] olarak etiketlenen ve hakkında bir şey söylemediğiniz, bu soru için gerekli değil veya istenmemiş . (2) Eğer takma adları ve kabuk işlevlerini tanımlarsanız ve değişkenlerinizi (dışa aktarmadan) ve / veya içinde ayarlarsanız, kabuğunuzda sizin için kullanılabilirler mi? zsh.bashrc.bash_profilezsh
Scott
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.