Có gì trong Zsh như .bash_profile không?


83

Mỗi khi tôi mở thiết bị đầu cuối, tôi phải mã nguồn .bash_profileđể kích hoạt $JAVA_HOMEhoặc các biến khác.


1
có, nó có được tự động lấy nguồn mỗi khi thiết bị đầu cuối mở không?
i3wangyi

Câu trả lời:


104

Có, nó được gọi là ~/.zshenv.

Đây là cách tôi đã $JAVA_HOMEthiết lập ~/.zshenv:

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

Tuy nhiên, hãy nhớ rằng zsh không phải là bash, vì vậy việc bạn phải lấy nguồn .bash_profilemỗi khi mở một thiết bị đầu cuối không có nghĩa là bạn phải làm điều đó với zsh. Với zsh, tôi chỉ phải lấy lại nguồn của mình ~/.zshenv khi tôi thực hiện các thay đổi đối với nó , và sau đó chỉ đối với các thiết bị đầu cuối đã mở : các thiết bị đầu cuối mới nên đã lấy nguồn mới và được cải tiến của tôi ~/.zshenv.

GHI CHÚ

Tôi thường thấy nó hữu ích, khi cố gắng xác định tệp khởi động zsh nào của mình, tôi nên đặt mọi thứ vào để tham khảo tệp khởi động zsh .


17
Trên thực tế, .zprofilecó nghĩa gần hơn .bash_profile, ở chỗ cả hai chỉ được lấy nguồn từ các shell tương ứng của chúng cho các shell đăng nhập. .zshenvđược thực thi cho tất cả các trường hợp zsh, cho dù chúng có phải là trình bao đăng nhập hay không.
chepner

6
@chepner .zshenvlà nơi tất cả các biến môi trường nên được xác định. Xem ở đây
Alexej Magura

3
Đã đồng ý; .bash_profilephải làm để làm bash.zshenv.zprofile/.zlogincùng nhau làm để làm gì zsh. Liên kết đó cung cấp thông tin tốt về những gì nên đi đến đâu.
chepner

31

Tôi biết đây là một câu hỏi cũ, nhưng gần đây tôi đã nâng cấp MacO lên Catalina, điều này đã thay đổi trình bao mặc định từ bash thành zsh.

Tôi đã kết thúc việc này:

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

Để có nguồn zsh .bash_profile ban đầu của tôi.


11
Sử dụng lệnh như thế này để đảm bảo rằng tệp được tạo trong thư mục chính của người dùng:echo source ~/.bash_profile > ~/.zshenv
Smair

Việc sử dụng có echoquan trọng ở đây không? Cái đó làm cái gì?
QA Sam

3
@QASam, echo là phải ở đây, X > Ychỉ vượt qua những gì X xuất ra. Không có tiếng vang, không có gì được xuất ra.
James LoveLady

3

Gần đây với bản nâng cấp lên Catalina OS từ Mac, mặc định nó thay đổi thành chạy Z shell sử dụng tệp zshrc làm tài nguyên Z-shell, chúng tôi thường có bash_profile bên trong thư mục chính của người dùng, giải pháp đơn giản là

  1. sao chép nội dung từ bash_profile bằng cách mở> vim ~ / .bash_profile
  2. tạo zshrc bằng> vim ~ / .zshrc
  3. sao chép nội dung bash_profile vào zsrc

Mở một cửa sổ đầu cuối mới và chạy bí danh / tập lệnh trước đó của bạn sẽ hoạt động hoàn hảo


2

Một giải pháp thay thế đơn giản khác để tiếp tục sử dụng .bash_profile của bạn là thêm tệp này vào tệp .zshrc của bạn:

  1. Mở tệp .zhsrc của bạn> vim ~ / .zshrc
  2. Thêm dòng này vào tệp .zshrc của bạn> nguồn ~ / .bash_profile

với giải pháp đơn giản này, bạn có thể tiếp tục thêm .bash_prifile của mình nếu bạn thích zhs.

Thêm .bash_profile


có thể có một số khác biệt giữa bash và zsh khiến bash_profile không khởi động đúng cách không? xem zsh.sourceforge.net/FAQ/zshfaq02.html#l14
framontb

0

Trong Mac Catalina, thiết bị đầu cuối sử dụng zsh. Thay vì có .bash_profile, bạn nên có .zshenv và viết tập lệnh của bạn ở đó.

Khi bạn mở terminal lần sau, các tập lệnh bên trong .zshenv sẽ được thực thi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.