phiên bản tl; dr: sử dụng ~/.zshrc
Và hãy đọc trang người đàn ông để hiểu sự khác biệt giữa:
~/.zshrc, ~/.zshenvvà ~/.zprofile.
Về nhận xét của tôi
Trong nhận xét của tôi đính kèm với câu trả lời mà kev đưa ra , tôi nói:
Điều này có vẻ không chính xác - / etc / profile không được liệt kê trong bất kỳ tài liệu zsh nào mà tôi có thể tìm thấy.
Điều này hóa ra không chính xác một phần: /etc/profile có thể có nguồn gốc từ zsh. Tuy nhiên , điều này chỉ xảy ra nếu zshđược "gọi là shhoặc ksh"; trong các chế độ tương thích này:
Các tập lệnh khởi động / tắt máy zsh thông thường không được thực thi. Đăng nhập shell source / etc / profile theo sau là $ HOME / .profile. Nếu biến môi trường ENV được đặt trên lệnh gọi, thì $ ENV được lấy sau các tập lệnh hồ sơ. Giá trị của ENV phải chịu sự mở rộng tham số, thay thế lệnh và mở rộng số học trước khi được hiểu là tên đường dẫn. [ man zshall, "Khả năng tương thích" ].
Các liên kết ArchWiki ZSH nói:
Khi đăng nhập, Zsh lấy nguồn các tệp sau theo thứ tự sau:
/ etc / profile
Tệp này được lấy từ tất cả các shell tương thích với Bourne khi đăng nhập
Implys này /etc/profilelà luôn đọc bởi zshlúc đăng nhập - Tôi đã không có bất kỳ kinh nghiệm với các dự án Arch Linux; wiki có thể đúng với phân phối đó, nhưng nhìn chung thì không đúng. Các thông tin là không chính xác so với các trang của nhãn hiệu zsh, và dường như không áp dụng đối với Zsh trên OS X (đường dẫn trong $PATHbộ trong /etc/profilekhông làm cho nó vào buổi zsh của tôi).
Để giải quyết câu hỏi:
chính xác thì tôi nên đặt phần bổ sung rvm, python, node, v.v. vào $ PATH của mình ở đâu?
Nói chung, tôi sẽ xuất khẩu của tôi $PATHtừ ~/.zshrc, nhưng nó có giá trị một chi của zshall trang người đàn ông, đặc biệt là "STARTUP / SHUTDOWN FILES" phần - ~/.zshrcđược đọc cho tương tác vỏ, mà có thể hoặc không thể phù hợp với nhu cầu của bạn - nếu bạn muốn $PATHcho mọi trình zshbao do bạn gọi (cả interactivevà không, cả loginvà không, v.v.), sau đó ~/.zshenvlà một lựa chọn tốt hơn.
Có tệp cụ thể nào mà tôi nên sử dụng không (tức là .zshenv hiện không tồn tại trong cài đặt của tôi), một trong những tệp tôi hiện đang sử dụng hay nó thậm chí có vấn đề gì không?
Có một loạt các tệp được đọc khi khởi động (kiểm tra các mantrang được liên kết ) và có lý do cho điều đó - mỗi tệp có vị trí cụ thể (cài đặt cho mọi người dùng, cài đặt cho người dùng cụ thể, cài đặt cho trình bao đăng nhập, cài đặt cho mọi trình bao, Vân vân).
Đừng lo lắng về việc ~/.zshenvkhông tồn tại - nếu bạn cần, hãy làm cho nó và nó sẽ được đọc.
.bashrcvà .bash_profileđang không đọc bởi zsh, trừ khi bạn nguồn rõ ràng chúng từ ~/.zshrchoặc tương đương; cú pháp giữa bashvà zshlà không luôn luôn tương thích. Cả hai .bashrcvà .bash_profileđều được thiết kế cho bashcài đặt, không phải zshcài đặt.
.bashrcvà.bash_profilekhông được đọc bởizshnhư tôi hiện có của tôirvmngoài$PATHở.bashrc, và tôipythonbổ sung trong.bash_profile, và cả hai đều được bổ sung tốt. Trong mọi trường hợp, tôi sẽ chuyển tất cả các lần$PATHxuất của mình sang~/.zshrcvì tất cảzshcấu hình khác của tôi đều được đặt ở đó. Tôi phải thừa nhận rằng, tôi không quá quen thuộc với các loại vỏ khác nhau. Từ việc đọc các liên kết bạn đã đăng, tôi đoán tôi sử dụng một trình bao tương tác, nhưng tôi sẽ đọc thêm để chắc chắn ... Cảm ơn một lần nữa!