Làm gì .bashrc thực sự làm gì?


13

Khi tôi nhập một ví dụ. một bí danh mới vào .bashrctập tin của tôi Tôi không thể sử dụng nó trong cửa sổ terminal đó ngay lập tức và cho đến gần đây tôi nghĩ rằng tôi phải khởi động lại thiết bị đầu cuối để tải lại .bashrctập tin. Sau đó tôi phát hiện ra ở đâu đó rằng nếu tôi viết

. .bashrc

điều này sẽ tải lại .bashrctập tin trong cửa sổ hiện tại và tôi không phải khởi động lại. Điều này hoạt động vây nhưng những gì đang thực sự xảy ra? Tại sao điều này tải lại .bashrctập tin?


1
Với ., bạn "nguồn" tập tin. Có nghĩa là nó đang được thực hiện về cơ bản
Der Hochstapler

có thể trùng lặp với nguồn nào?
Dan D.

1
@DanD. Trong khi câu trả lời là như nhau, câu hỏi nghe có vẻ khá khác biệt đối với tôi.
Calimo

1
@Dan D. câu hỏi này là nhiều hơn về màng não của . . Cho đến bây giờ tôi luôn nghĩ về . như một tốc ký cho thư mục hiện tại và .. như một tốc ký cho thư mục mẹ. Tôi không bao giờ nhận ra . là một bí danh cho nguồn (mà đến lượt nó là một khái niệm hoàn toàn mới đối với tôi). Nếu ai đó đến đây và muốn biết sự khác biệt tôi đã tìm thấy Sự khác biệt giữa thực thi tập lệnh bash và tìm nguồn cung ứng tập lệnh bash là gì? rất hữu ích
Spade

Câu trả lời:


17

Bởi vì .là một mệnh lệnh.

Đó là một lệnh tích hợp shell, đọc tệp được đặt tên và thực thi các lệnh trong đó trong quy trình shell hiện tại.

Shell Bourne Again cũng có sourcemột từ đồng nghĩa với lệnh này. Nhưng đây là một Bashism (mà vỏ Bourne Again lấy từ C Shell). Mặc dù đó là một chủ nghĩa Bash mà vỏ Bourne Again chia sẻ với TENEX C Shell, Z Shell và các loại khác (nhưng không phải là vỏ Korn, lưu ý). Đặc tả UNIX đơn chỉ tiêu chuẩn hóa ..

Cũng lưu ý rằng hành vi của ./ sourcethay đổi một cách tinh tế phụ thuộc vào việc vỏ Bourne Again có được chạy trong chế độ tương thích POSIX của nó hay không. (Một lần nữa, nó giống như các shell khác, mặc dù các hành vi không chuẩn của chúng không giống với các shell khác. Ví dụ, với Z Shell, có một cơ chế kịch bản shell được biên dịch trước và sourcekhác biệt một cách khéo léo với cách .xử lý đường dẫn tìm kiếm của nó. shell's .sẽ chạy các hàm shell, ví dụ khác.)

~/.bashrcchỉ là một trong một số tệp có nội dung (phụ thuộc vào cách quá trình shell được gọi) tự động có nguồn gốc khi khởi động shell. Không có gì ngăn cấm nó có nguồn gốc thủ công . Mặc dù nếu hành động của nó không bình thường, bạn có thể phải thực hiện một số công việc sửa lỗi sau đó.

đọc thêm


1

help . sẽ nói với bạn:

.: . filename [arguments]

Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.

Nói . .bashrcthực thi (nguồn) tệp .bashrcthực hiện các thay đổi được thực hiện cho tệp có sẵn trong phiên hiện tại.

Theo mặc định, ~/.bashrcsẽ được đọc lúc đăng nhập.

.là một từ đồng nghĩa với source.


1

Các .lệnh là điều tương tự như sourcelệnh, mà thực thi của bạn .bashrctập tin. Điều này thêm tất cả các bí danh bạn đã xác định và bất kỳ cài đặt / biến shell nào khác vào môi trường hiện tại. Từ sourcetrang trợ giúp của:

source: source filename [arguments]
    Execute commands from a file in the current shell.
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.