Sự khác biệt về chức năng giữa là gì .profile
, .bash_profile
và .bashrc
các tập tin?
Sự khác biệt về chức năng giữa là gì .profile
, .bash_profile
và .bashrc
các tập tin?
Câu trả lời:
.bash_profile
và .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_profile
hoặ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, .bashrc
bản thân 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ì 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 .profile
cấu hình toàn hệ thống của người dùng và tương tự như vậy /etc/bashrc
trong 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.d
thư mục chứa shell scriptlets, được .
( source
) -ed từ /etc/profile
; các mảnh ở đây là mỗi vỏ, với *.sh
việ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ể đó.
.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 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
và .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ỉ .profile
có thể được tải.
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ì .bashrc
sẽ được thực thi trước dấu nhắc lệnh của cửa sổ. .bashrc
cũng được chạy khi bạn bắt đầu một bash mới bằng cách gõ /bin/bash
và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_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.
Thêm ở đây .