Tôi hiểu về sự khác biệt giữa đăng nhập tương tác và Tương tác không đăng nhập
Theo bài viết xuất sắc này: Thứ tự tải tệp khởi động Zsh/Bash (.bashrc, .zshrc, v.v.) chúng ta có bảng sau
+-----------------+------+----------+------+
| |Tương tác|Tương tác|Tập lệnh|
| |đăng nhập |không đăng nhập | |
+-----------------+------+----------+------+
|/etc/hồ sơ | Một | | |
+-----------------+------+----------+------+
|/etc/bash.bashrc| | Một | |
+-----------------+------+----------+------+
|~/.bashrc | | B | |
+-----------------+------+----------+------+
|~/.bash_profile | B1 | | |
+-----------------+------+----------+------+
|~/.bash_login | B2 | | |
+-----------------+------+----------+------+
|~/.hồ sơ | B3 | | |
+-----------------+------+----------+------+
|BASH_ENV | | | Một |
+-----------------+------+----------+------+
| | | | |
+-----------------+------+----------+------+
| | | | |
+-----------------+------+----------+------+
|~/.bash_logout | C | | |
+-----------------+------+----------+------+
Liên kết đầu tiên đề cập đến bài đăng xuất sắc khác này: Dọn dẹp các tùy chỉnh bash nơi có sẵn một lời giải thích tuyệt vời về đăng nhập tương tác và Tương tác không đăng nhập như sau:
Một đăng nhập tương tác shell là shell mà bạn đang nhập vào, đó là shell đầu tiên bạn thực thi trên máy. Thông thường, bạn sẽ phải đăng nhập ngay trước khi shell bắt đầu. Ví dụ: khi bạn SSH vào một hệ thống từ xa và nhập lệnh cho hệ thống đó, bạn đang nhập vào trình bao đăng nhập tương tác.
Một vỏ không đăng nhập tương tác shell mới có bắt đầu sau khi bạn đã đăng nhập hay không; một ứng dụng không yêu cầu bạn phải đăng nhập lại. Ví dụ, nếu bạn mở một cửa sổ đầu cuối mới trong giao diện người dùng đồ họa của mình và nhận được dấu nhắc trình bao, đó là trình bao tương tác không đăng nhập. Một ví dụ khác về trình bao tương tác không đăng nhập sẽ là một trình bao phụ bắt đầu từ bên trong trình soạn thảo văn bản; ví dụ, gõ :sh trong vi.
Về cái trước, nó thực tế được áp dụng bắt buộc trong Ubuntu Người phục vụ môi trường - nơi làm việc với từng tty
là nó cần đăng nhập, vì vậy theo bảng ~/.profile
được sử dụng (tôi xác nhận không tồn tại cả ~/.bash_profile
cũng không ~/.bash_login
các tập tin). Nó áp dụng cho su - người dùng khác
(nó yêu cầu mật khẩu của anh ấy/cô ấy) và do đó mật khẩu của chính anh ấy/cô ấy ~/.profile
tập tin cũng được thực thi. Cho đến đây tôi vẫn ổn.
Về cái sau - lý do của bài đăng này - Ubuntu máy tính để bàn môi trường, nó áp dụng khi một cửa sổ/thiết bị đầu cuối mới được mở chỉ bằng một tab theo mặc định, do đó, theo bảng nên được thực thi /etc/bash.bashrc
và ~/.bashrc
tập tin và không phải các .Hồ sơ
tập tin
Nhưng mà tại sao nếu được thực hiện trong điều đó phần cuối:
tiếng vang $Java_HOME
(được xác định trên .Hồ sơ
)
tiếng vang $M2_HOME
(được xác định trên .Hồ sơ
)
tiếng vang $GRADLE_HOME
(được xác định trên .Hồ sơ
)
java nào
mvn nào
lớp nào
tất cả các lệnh hoạt động bình thường?
Hành vi tương tự cho bất kỳ tab mới nào (Ctrl + Shift + T
) trong cùng một Cửa sổ và ngay cả đối với Cửa sổ đầu cuối mới với lại tab mặc định duy nhất của nó
Tôi đọc bài viết sau:
Và tôi không có cài đặt nào được đề cập (cài đặt thứ hai được điều chỉnh cho Ubuntu Desktop 18:04):
- Các
.bashrc
các tệp không đề cập hoặc tìm nguồn cung ứng .Hồ sơ
tập tin
Chỉnh sửa
--> Sở thích
--> không tên
-> tab lệnh
--> Chạy lệnh dưới dạng vỏ đăng nhập
(nó không được chọn)