Tôi đang tìm hướng dẫn về những gì nên và không nên bao gồm trong các tệp khởi động khác nhau zsh
.
Tôi hiểu thứ tự tìm nguồn cung ứng của các tệp này và các điều kiện theo đó chúng có nguồn gốc, nhưng tôi vẫn chưa rõ những gì nên đi trong mỗi tệp.
Tôi đang tìm hướng dẫn về những gì nên và không nên bao gồm trong các tệp khởi động khác nhau zsh
.
Tôi hiểu thứ tự tìm nguồn cung ứng của các tệp này và các điều kiện theo đó chúng có nguồn gốc, nhưng tôi vẫn chưa rõ những gì nên đi trong mỗi tệp.
Câu trả lời:
Dưới đây là danh sách không độc quyền về những gì mỗi tệp có xu hướng chứa:
.zshenv
luôn có nguồn gốc, nó thường chứa các biến xuất khẩu nên có sẵn cho các chương trình khác. Ví dụ, $PATH
, $EDITOR
, và $PAGER
thường được đặt trong .zshenv
. Ngoài ra, bạn có thể thiết lập $ZDOTDIR
trong .zshenv
chỉ định một vị trí thay thế cho phần còn lại của cấu hình zsh bạn..zshrc
là cho cấu hình vỏ tương tác. Bạn đặt tùy chọn cho shell tương tác ở đó với các lệnh setopt
và unsetopt
. Bạn cũng có thể tải các mô-đun shell, thiết lập các tùy chọn lịch sử, thay đổi lời nhắc, thiết lập zle và hoàn thành, et cetera. Bạn cũng đặt bất kỳ biến nào chỉ được sử dụng trong trình vỏ tương tác (ví dụ $LS_COLORS
)..zlogin
có nguồn gốc khi bắt đầu một vỏ đăng nhập. Tập tin này thường được sử dụng để khởi động X sử dụng startx
. Một số hệ thống khởi động X khi khởi động, vì vậy tệp này không phải lúc nào cũng hữu ích..zprofile
về cơ bản giống như .zlogin
ngoại trừ việc nó có nguồn gốc trực tiếp trước đó .zshrc
có nguồn gốc thay vì trực tiếp sau nó. Theo tài liệu zsh, " .zprofile
có nghĩa là một thay thế cho '.zlogin' cho người hâm mộ ksh; cả hai không có ý định sử dụng cùng nhau, mặc dù điều này chắc chắn có thể được thực hiện nếu muốn.".zlogout
đôi khi được sử dụng để xóa và thiết lập lại thiết bị đầu cuối. Bạn nên xem qua các tệp cấu hình của người dùng Github ngẫu nhiên để có ý tưởng tốt hơn về những gì mỗi tệp nên chứa.
man zshall
chi tiết).
$PATH
trong .zshenv
, nhiều định dạng khác đều có nguồn gốc sau khi tập tin này sẽ ghi đè lên giá trị này. Xem zsh.org/mla/users/2003/msg00600.html .
$LANG
và $LC_ALL
đi đâu?
.zshenv
→ [ .zprofile
nếu đăng nhập] → [ .zshrc
nếu tương tác] → [ .zlogin
nếu đăng nhập] → [ .zlogout
đôi khi].
Dưới đây là danh sách những gì mỗi tệp nên / không nên chứa, theo ý kiến của tôi:
[Đọc mọi lúc]
Nó luôn có nguồn gốc, vì vậy nó nên đặt các biến môi trường cần được cập nhật thường xuyên . PATH (hoặc đường dẫn đối tác được liên kết của nó ) là một ví dụ hay vì có lẽ bạn không muốn khởi động lại toàn bộ phiên của mình để cập nhật. Bằng cách đặt nó trong tệp đó, mở lại trình giả lập thiết bị đầu cuối sẽ bắt đầu một phiên bản Zsh mới với giá trị PATH được cập nhật.
Nhưng hãy lưu ý rằng tệp này được đọc ngay cả khi Zsh được khởi chạy để chạy một lệnh duy nhất (với tùy chọn -c ), thậm chí bởi một công cụ khác như make
. Bạn nên rất cẩn thận để không sửa đổi hành vi mặc định của các lệnh tiêu chuẩn vì nó có thể phá vỡ một số công cụ sử dụng chúng (ví dụ bằng cách đặt bí danh). Chắc chắn, nó không bị cấm vì bạn biết những gì bạn đang làm.
[Đọc lúc đăng nhập]
Cá nhân tôi đối xử với tệp đó như thế .zshenv
nhưng đối với các lệnh và biến nên được đặt một lần hoặc không cần phải cập nhật thường xuyên :
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
) vì nó có thể mất một thời gian để thực thi.Nếu bạn sửa đổi tệp đó, bạn có thể nhận được các bản cập nhật cấu hình bằng cách thay thế vỏ hiện tại bằng vỏ mới như vỏ đăng nhập:
exec zsh --login
[Đọc khi tương tác]
Tôi đặt ở đây mọi thứ chỉ cần để sử dụng tương tác :
[Đọc lúc đăng nhập]
Tập tin này là như thế .zshprofile
, nhưng được đọc sau .zshrc
. Tôi coi vỏ được thiết lập đầy đủ tại thời điểm này.
Vì vậy, tôi sử dụng nó để khởi chạy các lệnh bên ngoài không sửa đổi các hành vi shell (ví dụ: trình quản lý đăng nhập).
[Đọc lúc đăng xuất] [Trong vỏ đăng nhập]
Tại đây, bạn có thể xóa thiết bị đầu cuối của mình hoặc bất kỳ thiết lập tài nguyên nào khác khi đăng nhập.
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout