"Shell đăng nhập tương tác được bắt đầu sau khi đăng nhập thành công, sử dụng / bin / login, bằng cách đọc tệp / etc / passwd. Lệnh gọi shell này thường đọc / etc / profile và tương đương riêng tư của nó ~ / .bash_profile khi khởi động.
Một shell không đăng nhập tương tác thường được bắt đầu tại dòng lệnh bằng cách sử dụng chương trình shell (ví dụ: [prompt] $ / bin / bash) hoặc bằng lệnh / bin / su. Một vỏ không đăng nhập tương tác cũng được bắt đầu với một chương trình đầu cuối như xterm hoặc konsole từ trong môi trường đồ họa. Kiểu gọi shell này thường sao chép môi trường cha và sau đó đọc tệp ~ / .bashrc của người dùng để biết thêm hướng dẫn cấu hình khởi động. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Do đó, tôi sẽ không đặt các biến môi trường trong bashrc, vì nó không chỉ chống lại quy ước chung, mà bạn cũng sẽ bỏ lỡ các biến bashrc của mình khi gọi một thiết bị đầu cuối từ môi trường Desktop đồ họa.
Trên Redhat trong /etc/profile
tôi tìm thấy bình luận này:
"Các bí danh và hàm rộng của hệ thống nên đi vào / etc / bashrc. Các biến môi trường cá nhân và các chương trình khởi động nên đi vào ~ / .bash_profile. Các bí danh và hàm cá nhân nên đi vào ~ / .bashrc."
Vì vậy, nếu bạn muốn đặt các biến môi trường trên cơ sở người dùng, hãy thực hiện nó trong tệp .bash_profile của người dùng.
Hướng tới .bash_profile
tôi đọc:
"Biến môi trường cá nhân và các chương trình khởi động.
Các bí danh và chức năng cá nhân nên có trong ~ / .bashrc. Các biến môi trường toàn hệ thống và các chương trình khởi động nằm trong / etc / profile. Các bí danh và hàm rộng của hệ thống nằm trong / etc / bashrc. "
Kết luận
Nếu bạn chỉ muốn root để xem các chương trình cư trú, ví dụ trong / sbin
Tôi sẽ thêm đường dẫn đó vào .bash_profile
tập tin gốc . Nhưng nếu bạn muốn mọi người dùng xem những chương trình gốc cụ thể nào được cài đặt trên hộp của bạn, tôi sẽ đưa /sbin
vào /etc/.profile
. Bây giờ mọi người dùng có thể sử dụng hoàn thành tab để tìm kiếm các chương trình cụ thể gốc và nâng cao quyền nếu cần thiết.
Trường hợp đặc biệt: SSH
Khi ssh được bắt đầu bằng một dòng lệnh, một vỏ đăng nhập tương tác được bắt đầu. Nhưng trong trường hợp /etc/profile
này là không đọc. Khi tôi xác định các biến môi trường trong .bash_profile
tệp của mỗi người dùng, nó đã làm việc với ssh.
~/.profile
cũng là một tùy chọn hợp lệ khác