Sự khác biệt về chức năng giữa .profile .bash_profile và .bashrc


Câu trả lời:


151

.bash_profile.bashrcđặc trưng cho bash, trong khi .profileđược nhiều shell đọc trong trường hợp không có tệp cấu hình dành riêng cho shell của chúng. ( .profileđược sử dụng bởi shell Bourne ban đầu.) .bash_profilehoặc .profileđược đọc bởi shell đăng nhập, cùng với .bashrc; subshells chỉ đọc .bashrc. (Giữa kiểm soát công việc và các hệ thống cửa sổ hiện đại, .bashrcbản thân nó không được sử dụng nhiều. Nếu bạn sử dụng screenhoặc tmux, màn hình / cửa sổ thường chạy các lớp con thay vì các vỏ đăng nhập.)

Ý tưởng đằng sau điều này là thiết lập một lần được thực hiện bởi .profile(hoặc phiên bản dành riêng cho vỏ) và công cụ trên mỗi vỏ bằng .bashrc. Ví dụ: bạn thường chỉ muốn tải các biến môi trường một lần mỗi phiên thay vì bị tấn công bất cứ khi nào bạn khởi chạy một mạng con trong một phiên, trong khi bạn luôn muốn các bí danh của mình (không được truyền bá tự động như các biến môi trường).

Các tập tin cấu hình shell đáng chú ý khác:

/etc/bash_profile(dự phòng /etc/profile) được đọc trước .profilecấu hình toàn hệ thống của người dùng và tương tự như vậy /etc/bashrctrong các khung con (không có dự phòng cho cái này). Nhiều hệ thống bao gồm Ubuntu cũng sử dụng một /etc/profile.dthư mục chứa shell scriptlets, được .( source) -ed từ /etc/profile; các mảnh ở đây là mỗi vỏ, với *.shviệc áp dụng cho tất cả các vỏ tương thích Bourne / POSIX và các phần mở rộng khác áp dụng cho lớp vỏ cụ thể đó.


58

.Hồ sơ

.profiledành cho những thứ không liên quan cụ thể đến Bash, như biến môi trường PATHvà bạn bè, và nên có sẵn bất cứ lúc nào.

Ví dụ, .profilecũng nên được tải khi bắt đầu phiên máy tính để bàn.


.bashrc

.bashrcdành cho việc định cấu hình cách sử dụng Bash tương tác, như Bash aliases, thiết lập yêu thích của bạn editor, cài đặt Bash prompt, v.v.


.bash_profile

.bash_profile là để đảm bảo rằng cả hai thứ trong .profile.bashrcđược tải cho login shells.

Ví dụ, .bash_profilecó thể là một cái gì đó đơn giản như

. ~/.profile
. ~/.bashrc

Nếu bạn đã bỏ qua .bashrc, chỉ .profilecó thể được tải.


1
Điều này đã trả lời câu hỏi của tôi cho Mac OS X
Jake Toronto

38

Theo trang bash man, .bash_profileđược thực thi cho các shell đăng nhập, trong khi .bashrcđược thực thi cho các shell không đăng nhập tương tác.

Vì vậy, một vỏ đăng nhập hoặc không đăng nhập là gì?

Khi bạn đăng nhập (nhập tên người dùng và mật khẩu) qua bàn điều khiển, ngồi ở máy hoặc từ xa qua ssh: .bash_profileđược thực thi để định cấu hình trình bao của bạn trước dấu nhắc lệnh ban đầu. Nhưng, nếu bạn đã đăng nhập vào máy của mình và mở một cửa sổ đầu cuối mới (xterm) bên trong Gnome hoặc KDE, thì .bashrcsẽ được thực thi trước dấu nhắc lệnh của cửa sổ. .bashrccũng được chạy khi bạn bắt đầu một bash mới bằng cách gõ /bin/bashvào terminal.

Một ngoại lệ đối với các nguyên tắc của cửa sổ đầu cuối là Terminal.app của Mac OS X, chạy vỏ đăng nhập theo mặc định cho mỗi cửa sổ đầu cuối mới, gọi .bash_profilethay vì .bashrc. Các trình giả lập thiết bị đầu cuối GUI khác có thể làm tương tự, nhưng hầu hết có xu hướng không.

Thêm ở đâ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.