Lệnh Run Run làm shell đăng nhập làm gì?


28

Tôi đã cài đặt một vài chương trình riêng biệt, một số chương trình yêu cầu tôi truy cập cài đặt thiết bị đầu cuối GUI và bật / tắt tùy chọn "Chạy lệnh dưới dạng vỏ đăng nhập" để hoạt động.

Thí dụ:

Tôi đã cài đặt Ruby on Rails . Thật không may, tôi phải đi vào các tùy chọn đầu cuối và kích hoạt "Chạy lệnh dưới dạng vỏ đăng nhập" để nó nằm trong PATH của tôi.

Đây không phải là quá nhiều vấn đề cho đến khi tôi cài đặt sexy-bash-prompt , chỉ hoạt động nếu tùy chọn bị tắt.

Vì vậy, câu hỏi của tôi về cơ bản là: "Chạy lệnh như shell shell" để làm gì? Có cách nào để có được những thứ chạy khi nó bị vô hiệu hóa để chạy khi bạn chạy như vỏ đăng nhập không?

Câu trả lời:


31

Giả sử vỏ của bạn là Bash (mặc định trong Ubuntu), đây là những điểm khác biệt:

  • Khi chạy như một vỏ đăng nhập , Bash sẽ đọc ~/.bash_profile(hoặc, nếu điều đó không tồn tại, ~/.profile) khi khởi động. Trong một số trường hợp, tập tin này ~/.bashrccũng đọc .

  • Khi chạy như một vỏ không đăng nhập , Bash sẽ đọc ~/.bashrc.

Vì vậy, tại sao bạn thấy các hành vi khác nhau khi chạy như một vỏ đăng nhập / không đăng nhập? Bởi vì .bash_profile/ bạn .profileđang làm những việc khác với bạn .bashrc.

Giải pháp tôi muốn giới thiệu trong trường hợp của bạn là sao chép các tùy chỉnh được thực hiện thành .bash_profile/ .profile, dán chúng vào .bashrcvô hiệu hóa "Chạy lệnh như một vỏ đăng nhập".


À, được rồi. Tôi hình dung nó phải làm với hồ sơ đăng nhập mà nó đọc (nguồn .bashrc khắc phục một số vấn đề tôi gặp phải). Tôi sẽ cho nó đi, xin lỗi cho câu hỏi khủng khiếp bằng văn bản.
AlbertEngelB

Cảm ơn lời giải thích ngắn gọn. Không có gì lạ khi thấy mọi người chỉ giữ các tùy chỉnh của họ trong .bashrc và có .bash_profile để nguồn .bashrc. Các tùy chỉnh cụ thể đăng nhập chỉ nên được giữ trong .bash_profile.
MichaelZ

1
Tại sao không chỉ nguồn .bashrc vào .bash_profile và để lại vỏ đăng nhập? Điều đó có khả thi không?
Bác sĩ Nefario
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.