Sự khác biệt giữa vỏ bash 'Đăng nhập' và 'Tương tác'


50

Sự khác biệt giữa vỏ bash 'Đăng nhập' và 'Tương tác' là gì? Tôi đã trích dẫn Wikipedia dưới đây nhưng bất cứ ai có thể đưa ra một câu trả lời tốt hơn?

EDIT: Đây là một wiki cộng đồng vì vậy có thể thay vì bỏ phiếu để đóng, bạn có thể cung cấp các ví dụ về tình huống nào gọi cho loại $ SHELL

Kịch bản khởi động

Khi Bash bắt đầu, nó thực thi các lệnh trong nhiều tập lệnh khác nhau.

Khi Bash được gọi như một vỏ đăng nhập tương tác, đầu tiên nó sẽ đọc và thực thi các lệnh từ tệp / etc / profile, nếu tệp đó tồn tại. Sau khi đọc tệp đó, nó sẽ tìm ~ / .bash_profile, ~ / .bash_login và ~ / .profile, theo thứ tự đó, đọc và thực thi các lệnh từ lệnh đầu tiên tồn tại và có thể đọc được.

Khi một vỏ đăng nhập thoát ra, Bash đọc và thực thi các lệnh từ tệp ~ / .bash_logout, nếu nó tồn tại.

Khi một vỏ tương tác không phải là vỏ đăng nhập được khởi động, Bash đọc và thực thi các lệnh từ ~ / .bashrc, nếu tệp đó tồn tại. Điều này có thể bị ức chế bằng cách sử dụng tùy chọn --norc. Tùy chọn tệp --rcfile sẽ buộc Bash đọc và thực thi các lệnh từ tệp thay vì ~ / .bashrc.


Tôi đã chỉnh sửa câu hỏi để phù hợp hơn với các quy tắc trang web một nửa. Tôi không nghĩ mình sẽ hiểu được mong muốn xóa thông tin hữu ích ...
Gareth

7
Tại sao mọi người bỏ phiếu câu hỏi này xuống? Có vẻ hoàn toàn hợp pháp với tôi?
duffbeer703

2
Ugh, lấy câu trả lời ra khỏi câu hỏi của bạn, và đăng nó như một câu trả lời. Nó ổn để trả lời câu hỏi của riêng bạn.
derobert

2
Đó là một câu hỏi rất hợp lệ vì sự khác biệt là khó hiểu. Ví dụ, lưu ý rằng khi bạn đăng nhập vào môi trường đồ họa thông qua xdm và chạy xterm, bạn sẽ nhận được một vỏ tương tác và các tệp khởi động shell đăng nhập không chạy.
pjc50

Câu trả lời:


16

Trong tệp hồ sơ của vỏ đăng nhập của bạn, bạn có thể thiết lập một số thứ bạn sẽ sử dụng trong phiên của mình và chỉ cần thực hiện một lần. Một vài ý tưởng:

  • tạo một tệp tạm thời chứa địa chỉ IP mà bạn đã kết nối, sau này bạn có thể đưa nó vào một số tập lệnh thiết lập quy tắc tường lửa.
  • chạy ssh-agent, yêu cầu các khóa SSH của bạn và lưu trữ các biến môi trường của tác nhân SSH trong một tệp.
  • nếu đó là một máy giới hạn và đồng nghiệp của bạn muốn biết về thông tin đăng nhập của nhau, hãy viết (1) tin nhắn thông báo cho họ về thông tin đăng nhập của bạn.

Trong tệp shell của không đăng nhập ( .bashrc), bạn nên định cấu hình shell của mình:

  • Dấu nhắc ưa thích
  • đặt bí danh
  • đặt tùy chọn lịch sử
  • xác định các hàm shell tùy chỉnh
  • xuất các biến môi trường, (có thể là PAGER, EDITOR nếu cài đặt toàn hệ thống hút)
  • tải các biến ssh-agent được lưu trong .bash_profile

Thông thường, bạn sẽ bao gồm .bashrctừ .bash_profilevới sau đây. Sau đó, vỏ đăng nhập nhận được tất cả các tùy chỉnh của bạn và .bash_profiletệp không phải trùng lặp những thứ đã có trong đó .bashrc.

[[ -f ~/.bashrc ]] && . ~/.bashrc

3
Vỏ đăng nhập có phải là vỏ đầu tiên bắt đầu khi bạn mới sử dụng máy không? Tất cả các shell khác mà bạn mở sau đó có thể hoặc không thể tương tác. Một cái vỏ chạy từ cron? Không có vẻ tương tác, nhưng nó là đăng nhập? Nếu bạn không ở trên máy thì sao? Đó là những câu hỏi chưa được trả lời
François Beausoleil

4
Bây giờ, RATNG
François Beausoleil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.