it-swarm-vi.tech

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

Sự khác biệt về chức năng giữa các tệp .profile, .bash_profile.bashrc Là gì?

220
lollercoaster

.bash_profile.bashrc dành riê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 riêng của Shell. (.profile đã được sử dụng bởi Bourne Shell ban đầu.) .bash_profile hoặc là .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à hệ thống cửa sổ hiện đại, .bashrc tự nó không được sử dụng nhiều. Nếu bạn sử dụng screen hoặc tmux, màn hình/cửa sổ thường chạy các lớp con thay vì 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 Shell) và công cụ per-Shell của .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 người dùng .profile cho cấu hình toàn hệ thống và tương tự /etc/bashrc trong subshells (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 /etc/profile.d thư mục chứa Shell scriptlets, là . (source) - xuất phát từ /etc/profile; các mảnh ở đây là per-Shell, với *.sh áp dụng cho tất cả các vỏ tương thích Bourne/POSIX và các tiện ích mở rộng khác áp dụng cho Shell cụ thể đó.

180
geekosaur

. hồ sơ

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

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


. bashrc

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


. 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_profile có thể là một cái gì đó đơn giản như

. ~/.profile
. ~/.bashrc

Nếu bạn đã bỏ qua .bashrc, chỉ có .profile sẽ được tải.

74
MangeshBiradar

Theo trang bash man, .bash_profile được thực thi cho 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ảng điều khiển, ngồi ở máy hoặc từ xa qua ssh: .bash_profile được thực thi để cấu hình Shell của bạn trước lệnh Prompt ban đầu. Nhưng, nếu bạn đã đăng nhập vào máy và mở một cửa sổ đầu cuối mới (xterm) bên trong Gnome hoặc KDE, thì .bashrc được thực thi trước lệnh cửa sổ Nhắc. .bashrc cũng được chạy khi bạn bắt đầu một cá thể bash mới bằng cách gõ /bin/bash trong một thiết bị đầu cuối.

Một ngoại lệ đối với các nguyên tắc của cửa sổ đầu cuối là Mac OS X, Terminal.app, chạy Shell đăng nhập theo mặc định cho mỗi cửa sổ đầu cuối mới, gọi .bash_profile thay 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.

Khác tại đây .

41
Paulecci