Zsh'ta .bash_profile gibi bir şey var mı?


94

Terminali her açtığımda .bash_profile, $JAVA_HOMEveya diğer değişkenleri etkinleştirmek için kaynak yapmam gerekiyor .


1
evet, terminal her açıldığında otomatik olarak kaynaklanıyor mu?
i3wangyi

Yanıtlar:


117

Evet, denir ~/.zshenv.

İşte ben nasıl var $JAVA_HOMEayarlanır ~/.zshenv:

export JAVA_HOME="$(/usr/libexec/java_home)"

Unutmayın, ancak, o zsh olduğu değil bu yüzden sadece 'var nedeni, kaynak, bash .bash_profilebir terminal yapar her açtığınızda değil sen zsh ile bunu yapmak zorunda olduğunu ortalama. Zsh ile, sadece üzerinde ~/.zshenv değişiklik yaptığımda ve daha sonra yalnızca zaten açık olan terminaller için yeniden kaynak yapmalıyım: yeni terminaller zaten yeni ve iyileştirilmiş terminallerime kaynak sağlamalıydı ~/.zshenv.

NOT

Zsh başlangıç ​​dosyalarımdan hangilerini zsh başlangıç ​​dosyalarına danışmak için yerleştirmem gerektiğini belirlemeye çalışırken çoğu zaman yararlı buluyorum .


17
Aslında, .zprofileanlam olarak daha yakındır .bash_profile, çünkü her ikisi de yalnızca giriş kabukları için kendi kabuklarından elde edilir. oturum açma kabukları olsun veya olmasın tüm örnekleri .zshenviçin yürütülür . zsh
chepner

6
@chepner .zshenv, tüm ortam değişkenlerinin tanımlanması gereken yerdir. Buraya
Alexej Magura

3
Kabul; .bash_profileiçin yapması gereken bashşey .zshenvve .zprofile/.zloginyapmak birlikte zsh. Bu bağlantı, neyin nereye gitmesi gerektiği konusunda iyi bilgi sağlar.
chepner

Tanımlamakla @Alexej Sorunu PATHiçinde .zshenvsonradan geçersiz kılınan olabileceğini tarafından söylemek ise /etc/profile; .zshenv veya .zshrc'deki PATH değişkenine bakın .
legends2k

38

Bunun eski bir soru olduğunu biliyorum, ancak yakın zamanda MacO'ları, varsayılan kabuğu bash'den zsh'ye değiştiren Catalina'ya yükselttim.

Bunu yaptım:

 echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv

Zsh kaynağına sahip olmak için benim orijinal .bash_profile.


11
Dosyanın kullanıcıların ana dizininde oluşturulduğundan emin olmak için şu komutu kullanın:echo source ~/.bash_profile > ~/.zshenv
Smair

echoBurada kullanımı önemli mi? Bu ne yapar?
awesame

3
@QASam, yankı burada bir zorunluluktur, X > Yyalnızca X'in çıktısını iletin . Eko olmadan hiçbir şey verilmez.
James LoveLady

3

Son zamanlarda Mac'ten Catalina OS'ye yükseltme ile, varsayılan olarak, zshrc dosyasını Z kabuğu kaynağı olarak kullanan Z kabuğunu çalıştıracak şekilde değiştirilir, genellikle kullanıcı ana dizininin içinde bash_profile vardı, çözüm basitçe

  1. > vim ~ / .bash_profile açarak bash_profile'dan içerik kopyala
  2. > vim ~ / .zshrc ile zshrc oluştur
  3. bash_profile içeriğini zsrc'ye kopyala

Yeni bir terminal penceresi açın ve önceki takma adınızın / betiğini çalıştırın, kusursuz çalışmalıdır


3

.Bash_profile dosyanızı kullanmaya devam etmenin diğer basit alternatifi, bu dosyayı .zshrc dosyanıza eklemektir:

  1. .Zhsrc dosyanızı açın> vim ~ / .zshrc
  2. Bu satırı .zshrc dosyanıza ekleyin> source ~ / .bash_profile

zhs'yi seviyorsanız, bu basit çözümle .bash_prifile dosyanızı eklemeye devam edebilirsiniz.

.Bash_profile ekleniyor


bash ve zsh arasında, bash_profile'ın düzgün başlamamasına neden olan bazı farklılıklar olabilir mi? bkz. zsh.sourceforge.net/FAQ/zshfaq02.html#l14
framontb

0

Mac Catalina'da, terminal zsh kullanır. .Bash_profile'a sahip olmak yerine, .zshenv'e sahip olmak ve betiğinizi oraya yazmak iyidir.

Her seferinde terminali açtığınızda, .zshenv içindeki komut dosyaları çalıştırılır.

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.