Cách đơn giản là phát minh ra một cỗ máy thời gian, thăm những người khác nhau đã nghĩ ra các tệp khởi động shell và bảo họ phân biệt rõ ràng giữa ba điều:
- thiết lập phiên, ví dụ các biến môi trường;
- khởi chạy phiên, ví dụ: bắt đầu trình bao dòng lệnh hoặc trình quản lý cửa sổ hoặc đang chạy
startx
;
- khởi tạo shell, ví dụ bí danh, dấu nhắc, các ràng buộc chính.
Không quá khó để có được phiên so với shell theo cách di động: khởi tạo thời gian đăng nhập đi vào .profile
(hoặc .zprofile
, hoặc .login
), khởi tạo shell đi vào .bashrc
hoặc .zshrc
. Trước đây tôi đã viết về .bash_profile
, zsh so với các shell khác , nhiều hơn về tính di động (chủ yếu là về bash) , nhiều hơn về người đọc.profile
.
Một vấn đề còn lại là phân biệt giữa thiết lập phiên và khởi chạy phiên. Trong hầu hết các trường hợp, ~/.profile
được thực thi khi bạn đăng nhập và có thể tăng gấp đôi cả hai, nhưng vẫn có ngoại lệ:
- Nếu vỏ đăng nhập của bạn là (t) csh hoặc zsh,
~/.login
và ~/.zprofile
có nguồn gốc thay vì ~/.profile
. Ditto cho bash và ~/.bash_profile
, nhưng điều này dễ dàng được giải quyết bằng cách tìm nguồn cung ứng ~/.profile
từ ~/.bash_profile
.
- Nếu bạn đăng nhập dưới trình quản lý hiển thị (xdm, gdm, kdm, thì), việc bạn
~/.profile
có đọc hay không phụ thuộc vào phiên bản của chương trình, vào bản phân phối của bạn (Linux hoặc cách khác) và vào loại phiên bạn chọn.
- Nếu bạn dựa vào trình quản lý hiển thị để bắt đầu một phiên cho bạn, bạn
.profile
phải đặt các biến môi trường nhưng không bắt đầu phiên (ví dụ: trình quản lý cửa sổ).
- Tệp cấu hình truyền thống cho các phiên X là
~/.xsession
, thực hiện cả thiết lập phiên và khởi chạy phiên. Vì vậy, các tập tin có thể là cơ bản . ~/.xsession; . ~/.xinitrc
. Một số nguồn phân phối ~/.profile
trước ~/.xsession
. Các bản phân phối hiện đại chỉ có nguồn ~/.xsession
khi bạn chọn phiên Phiên bản tùy chỉnh của người Đức từ trình quản lý hiển thị và phiên này không phải lúc nào cũng có sẵn.
- Trình quản lý phiên của bạn có thể có cách riêng để đặt các biến môi trường. (Đó là một phần tùy chọn trong môi trường máy tính để bàn của bạn, do bạn chọn thông qua tệp cấu hình hoặc bằng cách chọn loại phiên khi đăng nhập; đừng nhầm lẫn với các tập lệnh khởi động phiên được cung cấp bởi trình quản lý hiển thị, được thực thi dưới người dùng của bạn được chọn trên cơ sở toàn hệ thống. Vâng, đó là một mớ hỗn độn.)
Tóm lại, ~/.profile
là nơi thích hợp cho các biến môi trường. Nếu nó không được đọc, hãy thử tìm nguồn từ ~/.xsession
(và khởi động các chương trình X của bạn từ đó) hoặc tìm phương pháp dành riêng cho hệ thống (có thể phụ thuộc vào phân phối, trình quản lý hiển thị nếu có, loại phiên nếu trình quản lý hiển thị và môi trường máy tính để bàn hoặc quản lý phiên).
.profile
không được tải ở tất cả, hoặc là một cái gì khác ghi đè lên các biến địa phương? (Hãy thử đặt một số biến khác nhưexport MACIEJ_PROFILE=yes
để chắc chắn.set -x
Trong.profile
có thể là một cách tốt để kiểm tra những gì đang được thực hiện trong và sau.profile
, nếu nó đọc ở tất cả.) Không có điểm nào trong nguồn.profile
từ.zshrc
.