Sự khác biệt giữa ~/.profile
và là ~/.bash_profile
gì?
Sự khác biệt giữa ~/.profile
và là ~/.bash_profile
gì?
Câu trả lời:
Đây .profile
là cấu hình cấu hình ban đầu cho shell Bourne (aka, sh
). bash
, là một vỏ tương thích Bourne sẽ đọc và sử dụng nó. Mặt .bash_profile
khác chỉ được đọc bởi bash
. Nó được dành cho các lệnh không tương thích với shell Bourne tiêu chuẩn.
.profile
. Ví dụ, bash
và ksh
nhưng không csh
hoặc tcsh
. Và zsh
cung cấp cả hai sh
và csh
khả năng tương thích để nó sẽ đọc cả .profile
và .login
, cũng như zsh
các tệp chấm cụ thể.
Các sh
nguồn gốc ban đầu .profile
khi khởi động.
bash
sẽ cố gắng tìm nguồn .bash_profile
đầu tiên, nhưng nếu điều đó không tồn tại, nó sẽ nguồn .profile
1 .
Lưu ý rằng nếu bash
được bắt đầu dưới dạng sh
(ví dụ: /bin/sh
liên kết đến /bin/bash
) hoặc được bắt đầu bằng --posix
cờ, nó sẽ cố gắng mô phỏng sh
và chỉ đọc .profile
.
Chú thích:
.bash_profile
, .bash_login
,.profile
Xem thêm:
Bạn biết nhiều shell tồn tại trong thế giới UNIX, nhưng hầu hết trong số chúng là:
/bin/sh
(Nhà phát minh: Stephen Bourne)/bin/bash
(Nhà phát minh: Brian Fox, thuộc dự án GNU) (shell mạnh mẽ)/bin/csh
(Nhà phát minh: Bill Joy, Nhà phát minh ngăn xếp TCP / IP)/bin/ksh
(Nhà phát minh: David Korn thuộc Bell Labs)/bin/zsh
(Vỏ mạnh mẽ)/bin/tcsh
(có nguồn gốc từ C Shell)/bin/dash
(Bắt nguồn từ shell Almquist (tro trong dự án NetBSD)) (Dash sinh ra từ lenny)Nhưng câu hỏi của bạn là về ~/.bash_profile
và ~/.profile
:
Khi bạn đăng nhập vào máy UNIX, nó sẽ chuyển hướng đến thư mục chính của bạn, theo trình bao được chọn bởi quản trị viên trong trường cuối cùng /etc/passwd
như:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Shell của bạn chạy và theo mặc định, mỗi shell có một tập tin được đặt cho login
và logout
. Khi bạn đăng nhập vào bash, ~/.profile
được chạy và khi bạn logout
, ~/.bash_logout
được chạy.
~/.bash_history
tập tin giữ lệnh đầu vào của bạn.
~/.login
Khi bạn đăng nhập~/.logout
Khi bạn đăng xuất~/.tcshrc
giống như ~./bashrc
trong bashBạn có thể đặt biến $histfile
là tên của tệp lịch sử và biến $history
là số lệnh cần giữ.
Quả thực đó là lớp vỏ mạnh mẽ và nếu bạn có thời gian rảnh, hãy chắc chắn di chuyển đến nó.
Ngoại trừ shell khác, shell Z có nhiều tệp cấu hình và tệp khởi tạo, chỉ cần tôi viết:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Lưu ý: nếu $ZDOTDIR
không đặt, đặt nhà.
Lưu ý: Vỏ TENEX C được rẽ nhánh từ vỏ C. Vỏ C hỗ trợ bởi BSD. Nếu bạn quen thuộc với lập trình ngôn ngữ C, bạn nên thoải mái vì cú pháp của nó tương tự nhau.
~/.login
~/.cshrc
~/.logout
Lưu ý: csh đã cũ. Sử dụng tcsh thay thế.
~/.profile
Nó rất mạnh mẽ và được sinh ra trong dự án GNU và được chia rẽ bởi Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Khi bạn đăng nhập, bash chạy ~/.bash_profile
và ~/.bash_profile
chạy ~/.bashrc
. Quả thực ~/.bashrc
không phải là tập tin khởi tạo bash, vì bash không chạy nó.
Nó chết rồi. Ngay cả khi bạn sử dụng man sh
, bạn thấy hướng dẫn sử dụng dash
. [Ghi chú của biên tập viên: bit về dash
chỉ áp dụng cho các bản phân phối dựa trên Debian và Debian như Ubuntu.]
~/.bash_profile
làm việc theo bash, nhưng ~/.profile
làm việc dưới vỏ Bourne và Korn.
Một shell đăng nhập chỉ đơn giản là một shell bạn có thể đăng nhập như thông qua ssh hoặc tại giao diện điều khiển. Một vỏ không đăng nhập là một vỏ mà ai đó cũng không thể đăng nhập. Một vỏ không đăng nhập thường được sử dụng bởi các chương trình / dịch vụ hệ thống.
Đối với điểm thứ ba của bạn. Đó là sự thật .bashrc
được thực thi trên mỗi phiên bản của shell. Tuy nhiên .bash_profile
chỉ được sử dụng khi đăng nhập. Do đó, lý do cho hai tập tin riêng biệt.
.profile
dành cho những thứ không liên quan cụ thể đến Bash, như biến môi trường $ PATH, nó cũng sẽ có sẵn bất cứ lúc nào. .bash_profile
đặc biệt dành cho shell đăng nhập hoặc shell được thực thi khi đăng nhập.