Hoàn toàn khởi động lại Bash


18

Có cách nào để khởi động lại hoàn toàn Bash và tải lại .bashrc.profiletương tự không? Tôi muốn đảm bảo rằng các thay đổi của tôi đã được thực hiện đúng sau khi chỉnh sửa các tệp này.

Câu trả lời:


32

Có nó tự thay thế bằng chính nó.

exec bash -l

Lưu ý rằng điều này sẽ không ảnh hưởng đến những thứ như biến cwd hoặc xuất.


Đẹp, nhưng tôi đặc biệt muốn làm điều này để kiểm tra và xem liệu tôi PATHđang được thiết lập như tôi muốn hay của tôi PS1, v.v.
Naftuli Kay

1
Lấy ra execvà bạn nhận được một vỏ nguồn các tập tin mà bạn muốn. Sau đó chỉ exitkhi bạn kiểm tra xong.
Arcege

@TK: Bất kỳ biến nào bạn gán sẽ được ưu tiên hơn các biến còn lại từ shell trước.
Ignacio Vazquez-Abrams

Vì vậy, điều này sẽ làm việc để thay đổi nhắc nhở Bash của tôi? Tức là, nó sẽ tải lại dấu nhắc của tôi mỗi lần tôi chạy nó?
Naftuli Kay

Miễn là bạn đang thiết lập $PS1các tệp khởi động của bash, có.
Ignacio Vazquez-Abrams

9

Tôi khẩn thiết đề nghị đăng nhập vào một cửa sổ / màn hình riêng biệt. Bằng cách này, bạn vẫn có một phiên làm việc nếu có sự cố xảy ra với các thay đổi của bạn đối với các tệp khởi động. Ngoài ra, bạn chắc chắn có một môi trường sạch sẽ.

Lý do: Tôi thấy quá nhiều người tự khóa mình khỏi một hệ thống vì một lỗi đánh máy đơn giản trong .profile của họ (hoặc như vậy).


+10, một vỏ sạch, nơi bạn có thể thay đổi các chỉnh sửa là điều cần thiết.
Sardathrion - Phục hồi Monica

Tôi đang ở DE, vì vậy nó không tệ lắm, Bauhaus, hãy cẩn thận.
Naftuli Kay

3

Nếu mục tiêu của bạn chỉ đơn giản là đọc lại các tệp đã sửa đổi, bạn không phải khởi động lại nó. Bạn chỉ có thể nguồn nó.

source filename

hoặc là

. filename # notice the dot

Lưu ý rằng điều này sẽ không cung cấp cho bạn "trạng thái sạch" theo nghĩa là nó sẽ không bỏ đặt bất kỳ biến nào được đặt hoặc các hàm được xác định ...


2
su -l yourOwnUserName

Sẽ mở một vỏ mới cho yourOwnUserNamengười dùng với tất cả các cài đặt được tải lại. Đây là độc lập với vỏ, vì nó đề cập đến cài đặt hệ thống, không phải vỏ cụ thể của bạn. Nó cũng tải một số cài đặt toàn hệ thống bash -lkhông (như nhóm người dùng).


lưu ý quan trọng: "một vỏ mới" ở đây có nghĩa là một vỏ trong vỏ hiện tại của bạn, vì vậy bạn chỉ là vỏ sò, không thay thế vỏ ban đầu của bạn. Câu trả lời được chấp nhận làm điều đó đúng.
gạch dưới
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.