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
, ~/.zshenv
và ~/.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à sh
hoặ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/profile
là luôn đọc bởi zsh
lú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 $PATH
bộ trong /etc/profile
khô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 $PATH
từ ~/.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 $PATH
cho mọi trình zsh
bao do bạn gọi (cả interactive
và không, cả login
và không, v.v.), sau đó ~/.zshenv
là 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 man
trang đượ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 ~/.zshenv
không tồn tại - nếu bạn cần, hãy làm cho nó và nó sẽ được đọc.
.bashrc
và .bash_profile
đang không đọc bởi zsh
, trừ khi bạn nguồn rõ ràng chúng từ ~/.zshrc
hoặc tương đương; cú pháp giữa bash
và zsh
là không luôn luôn tương thích. Cả hai .bashrc
và .bash_profile
đều được thiết kế cho bash
cài đặt, không phải zsh
cài đặt.
.bashrc
và.bash_profile
không được đọc bởizsh
như tôi hiện có của tôirvm
ngoài$PATH
ở.bashrc
, và tôipython
bổ 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$PATH
xuất của mình sang~/.zshrc
vì tất cảzsh
cấ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!