Tệp .bashrc là gì và nó làm gì?


21

Tôi dường như không thể tìm thấy bất kỳ thông tin rõ ràng về các .bashrctập tin là gì và chính xác những gì nó làm.


Cảm ơn tất cả sự giúp đỡ cho đến nay. Dường như kịch bản này thực hiện mọi thứ từ tô màu, hoàn thành, bí danh và lịch sử vỏ, v.v ... Có điều gì có vẻ không hữu ích không?


4
.bashrclà một trong nhiều tập tin cấu hình bash. Xem tài liệu chính thức về Bash Startup Files .
muru

Câu trả lời:


21

Các .bashrctập tin là một kịch bản được thực hiện bất cứ khi nào một phiên terminal mới được bắt đầu trong chế độ tương tác . Đây là những gì xảy ra khi bạn mở một cửa sổ terminal mới bằng cách nhấn Ctrl+ Alt+ Thoặc chỉ mở một tab terminal mới.

Ngược lại, một phiên cuối trong chế độ đăng nhập sẽ hỏi bạn tên người dùng và mật khẩu và thực thi ~/.bash_profiletập lệnh. Đây là những gì diễn ra, ví dụ, khi bạn đăng nhập vào một hệ thống từ xa thông qua SSH.

Bản .bashrcthân tệp chứa một loạt các cấu hình cho phiên cuối. Điều này bao gồm thiết lập hoặc cho phép: tô màu, hoàn thành, lịch sử shell, bí danh lệnh và hơn thế nữa. Các .bashrctập tin được phân phối với Ubuntu được nhận xét tốt và bạn sẽ có thể hiểu hầu hết những gì nó làm chỉ bằng cách đọc nó.

Bạn có thể điều chỉnh .bashrctheo ý thích của bạn. Ở đây bạn có thể lấy một ví dụ với nhiều tính năng bổ sung.


Liên kết bị hỏng.
rab

1
Liên kết đang hoạt động.
Luís de Sousa

Trong trang tải xuống tập tin không hoạt động.
rab

1
Cả liên kết và tải xuống đều hoạt động tốt
M. Becerra

5

Câu hỏi về superuser - Tệp .bashrc là gì? bởi @pinnut và được trả lời bởi @DigitalRoss

Trên thực tế, nó bashđặc biệt đọc .bashrc(và /etc/bash.bashrc). Có rất nhiều vỏ khác nhau.

Trang bash man (của Brian Fox và Chet Ramey; cũng là trang thông tin "Bash Startup Files" ) là tài liệu tham khảo chính thức:

Khi một vỏ tương tác không phải là vỏ đăng nhập được khởi động, bash sẽ đọ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 --norctùy chọn. Các --rcfiletùy chọn tập tin sẽ buộc bash để đọc và thực hiện các lệnh từ tập tin thay vì ~/.bashrc.

Ví dụ, khi bash được khởi động không tương tác, để chạy tập lệnh shell, nó tìm kiếm biến BASH_ENVtrong môi trường, mở rộng giá trị của nó nếu nó xuất hiện ở đó và sử dụng giá trị mở rộng làm tên của tệp để đọc và thực thi. Bash hành xử như thể lệnh sau được thực thi:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

nhưng giá trị của PATHbiến không được sử dụng để tìm kiếm tên tệp.

Các tập tin chỉ là lệnh shell. Nó thường được sử dụng để thay đổi lời nhắc, đặt biến môi trường và xác định thủ tục shell. Theo truyền thống, tệp .profileđược sử dụng cho mục đích này, nhưng bashcó rất nhiều tiện ích mở rộng nên nó cần tệp khởi động riêng cho người dùng muốn đặt bashism vào tệp khởi động.

" Không phải là vỏ đăng nhập " có nghĩa là những thứ như kịch bản khởi chạy và thường các cửa sổ đầu cuối được bắt đầu bởi các trình quản lý cửa sổ. Đôi khi tôi thiết lập các hệ thống * nix để có .bashrcBASH_ENVchỉ cần nguồn .profile. Miễn là bạn không đi lạc bên ngoài các lệnh shell POSIX thì bạn sẽ nhận được cùng một khởi tạo trong bất kỳ shell nào.

Nó đặc biệt có giá trị khi shthực sự bash, điều này đôi khi xảy ra. Để làm điều này sử dụng:

. .profile

Một lý do điều này rất phức tạp là bởi vì đôi khi mọi người đặt những thứ tạo ra đầu ra vào các tệp khởi động shell hoặc họ đặt các lời nhắc vô điều kiện. Điều này gây ra nhiều vấn đề khi chạy các chương trình shell và các lệnh backtick trong các ngôn ngữ, chưa kể đến system(3)từ các chương trình C. Cách thức bashkhởi động được thiết kế, tôi nghĩ, để có một tệp trong đó cài đặt đầu ra và nhắc nhở là OK và một tệp không có. Theo truyền thống, một bài kiểm tra thời gian chạy sẽ được thực hiện để phân biệt tính tương tác, ví dụ, kiểm tra xem liệu lời nhắc có được đặt không.

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.