Làm thế nào để khởi tạo lại một cửa sổ đầu cuối thay vì đóng nó và bắt đầu một cửa sổ mới?


49

Khi tôi thực hiện một số thay đổi đối với hành vi shell / bash, chẳng hạn như thiết lập bí danh, có một lệnh nhanh để xác định lại cửa sổ đầu cuối thay vì đóng và mở một cửa sổ mới không?

Câu trả lời:


51

Nếu bạn muốn tải lại cấu hình .bashrc của bạn thì:

source ~/.bashrc

Để gõ ít hơn, bạn có thể thay thế sourcebằng dấu chấm:. ~/.bashrc


2
Đây là một câu hỏi, làm thế nào điều này hành xử khác hơn source ~/.bashrc?
crasic

Nó không. Nhìn vào trang bash man bạn sẽ thấy các lệnh được liệt kê là tương đương.
Carsten Thiel

2
sourcelà một cụ thể để bash. .là chuẩn hơn. Cả hai hoạt động như nhau trong bash.
Michael Terry

1
Điều này chỉ cần tải lại PATH của bạn và một số biến môi trường. Nó không "thiết lập lại" bất cứ điều gì. Câu trả lời của @ NES là câu trả lời đúng.
Cerin

2
Điều này không thiết lập lại bất cứ điều gì, nếu bạn đã có các bản cập nhật cho PATH của mình, giờ đây bạn sẽ có các bản cập nhật cũ và các bản cập nhật mới.
Constantin

39

Một số Bổ sung tôi tìm thấy trong trang chủ từ lệnh reset / tset

thiết lập lại thiết bị đầu cuối thiết lập đầu cuối

chỉ huy: reset

Tset khởi tạo thiết bị đầu cuối. Trước tiên, Tset xác định loại thiết bị đầu cuối mà bạn đang sử dụng. Xác định này được thực hiện như sau, sử dụng loại thiết bị đầu cuối đầu tiên được tìm thấy.

một lợi thế dường như là nó độc lập với lớp vỏ đã sử dụng. cũng làm việc với cá ở đây.

Vì vậy, để xác định lại bất kỳ thiết bị đầu cuối nào chỉ cần làm-

$ tset

HOẶC LÀ

$ reset

Thật không may điều này cũng sai. Nó không thiết lập lại các biến môi trường hiện có.
isarandi

9

Một tùy chọn bổ sung exec bashlà nếu bạn thay đổi .profile(hoặc .bash_profile), bạn có thể làm

$ exec bash --login

Điều đó sẽ đọc hồ sơ của bạn một lần nữa là tốt. Sẽ không hại gì khi thêm -itùy chọn cũng như nói rõ ràng với bash rằng đây là một vỏ tương tác, nhưng thông thường nó có thể tự tìm ra điều đó.


đối với tôi nó hoạt động mà không cần thực hiện quá
Armen Sanoyan

Đáng tiếc cũng sai. Đã đặt các biến môi trường vẫn còn đó và không thiết lập lại.
isarandi

6

Bạn phải thay thế ứng dụng / shell đang chạy bằng một thể hiện mới. Ví dụ: nếu bạn đang sử dụng bashlàm lớp vỏ ưa thích, hãy nhập dòng sau trong dòng lệnh của bạn ( $ là trình giữ chỗ cho phần đầu của dòng lệnh của bạn):

> $ exec bash

Ứng dụng / shell đang chạy được thay thế bằng thể hiện mới bashgiống như bắt đầu từ đầu. Tất cả các sửa đổi trước đó của bạn đã biến mất.

Lưu ý: Đừng quên rằng ứng dụng đầu cuối của bạn có thể được lập trình lại. Bạn phải thiết lập lại ứng dụng thiết bị đầu cuối của bạn bằng tay.


2
Bạn có ý nghĩa gì khi "lập trình lại"?
Eliah Kagan

0

Shell của bạn là một thực thi bạn có thể gọi. Vì vậy, nếu bạn đang sử dụng bash, bạn có thể gọi bashvà nếu bạn đang sử dụng một cái gì đó khác như zsh, bạn có thể nhậpzsh


0

Sử dụng exec sudo --login --user $USER.

Nếu bạn cũng muốn các lệnh đã nhập trước đó để disapper (full reset của nhà ga), kết hợp nó với resetnhưreset; exec sudo --login --user $USER

Có rất nhiều câu trả lời trên web nhưng hầu hết không thực sự hoạt động. Cách dễ dàng để kiểm tra là thiết lập export SOMEVAR=42sau đó thực hiện lệnh được cho là đặt lại và thực hiện echo $SOMEVAR. Nếu là 42, môi trường không được thiết lập lại.

Cũng có exec -c bash -lhoặc exec env -i bash -l, nhưng những cái này bị hỏng, bằng cách nào đó, biến $ HOME không được đặt sau cái này.

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.