Về cơ bản, việc shell có đăng nhập hay không, tương tác hay không quan trọng vì một lý do chính xác:
Các tập tin khởi tạo và các tùy chọn mặc định được đặt tùy thuộc vào việc shell có đăng nhập hay không và tương tác hay không.
Tương ứng, một shell có đăng nhập hay không hoặc tương tác hay không chỉ phụ thuộc vào lời gọi được sử dụng - tên và tùy chọn lệnh chính xác.
Hai thuộc tính khác trực giao - một vỏ có đăng nhập hay không có liên quan đến việc xác định xem nó có tương tác hay không.
Bash bắt đầu một vỏ đăng nhập nếu bất kỳ điều nào trong số này là đúng:
argv[0]
, tên của lệnh được gọi là, bắt đầu bằng một -
- các
-l
tùy chọn được quy định
Tương tự, bash bắt đầu một vỏ tương tác nếu bất kỳ điều nào trong số này là đúng:
- nó không được chỉ định một tệp để thực thi (nghĩa là lệnh không
bash some/file
) hoặc chuỗi lệnh để chạy ( bash -c 'foo'
) (điều kiện thực tế phức tạp hơn một chút, xem hướng dẫn)
- các
-i
tùy chọn đã được chỉ định
Đáng chú ý (và nghịch lý), cái sau ngụ ý bash -ic 'foo'
bắt đầu một vỏ tương tác.
Vì vậy, sau đây bắt đầu đăng nhập, vỏ tương tác, mặc dù nó không có gì tương tác về nó và lời mời không liên quan gì đến việc đăng nhập:
bash -lic true
Việc đăng nhập thông qua bảng điều khiển hoặc GUI sẽ khởi động trình đăng nhập (hoặc có thể không) hoàn toàn là một hiệu ứng của quá trình đăng nhập bằng cách sử dụng lệnh gọi phù hợp.
Các điều kiện và hiệu ứng được mô tả chi tiết trong hướng dẫn bash, phần Khởi động tệp .
Một nguồn gây nhầm lẫn chính là có một ý nghĩa phổ biến khác cho shell "đăng nhập":
Shell đăng nhập của người dùng là shell được xác định trong passwd
mục nhập của người dùng đó (có thể đến từ /etc/passwd
LDAP hoặc một số nguồn khác).
Các login
chương trình, SSH, vv bắt đầu vỏ này như một đăng nhập vỏ theo nghĩa có nghĩa là trong phần còn lại của câu trả lời - với một hàng đầu -
trong tên lệnh, thường. Nếu bạn muốn đặc biệt khó hiểu, bạn có thể nói:
Một số quy trình đăng nhập bắt đầu shell đăng nhập của người dùng dưới dạng shell đăng nhập.
Lưu ý rằng đăng nhập GUI bắt đầu một vỏ đăng nhập hoàn toàn vì các nhà phát triển nghĩ rằng nó thuận tiện - LightDM chạy tập lệnh khi đăng nhập rõ ràng không tương tác và chắc chắn không phụ thuộc vào vỏ đăng nhập của người dùng (theo nghĩa thứ hai). Tuy nhiên, không phụ thuộc vào trình quản lý hiển thị bắt đầu trình bao đăng nhập - không phải tất cả trong số họ thực hiện và trên Wayland và Gnome, quá trình đăng nhập hoàn toàn không sử dụng tập lệnh shell.
non-interactive login shell
là sai.