Sự khác biệt giữa ~/.profilevà là ~/.bash_profilegì?
Sự khác biệt giữa ~/.profilevà là ~/.bash_profilegì?
Câu trả lời:
Đây .profilelà 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_profilekhá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ụ, bashvà kshnhưng không cshhoặc tcsh. Và zshcung cấp cả hai shvà cshkhả năng tương thích để nó sẽ đọc cả .profilevà .login, cũng như zshcác tệp chấm cụ thể.
                    Các shnguồn gốc ban đầu .profilekhi khởi động.
bashsẽ 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 .profile1 .
Lưu ý rằng nếu bashđược bắt đầu dưới dạng sh(ví dụ: /bin/shliên kết đến /bin/bash) hoặc được bắt đầu bằng --posixcờ, nó sẽ cố gắng mô phỏng shvà chỉ đọc .profile.
Chú thích:
.bash_profile, .bash_login,.profileXem 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_profilevà ~/.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/passwdnhư:
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 loginvà 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_historytậ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~/.tcshrcgiống như ~./bashrctrong bashBạn có thể đặt biến $histfilelà tên của tệp lịch sử và biến $historylà 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 $ZDOTDIRkhô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ế.
~/.profileNó 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_profilevà ~/.bash_profilechạy ~/.bashrc. Quả thực ~/.bashrckhô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ề dashchỉ áp dụng cho các bản phân phối dựa trên Debian và Debian như Ubuntu.]
~/.bash_profilelàm việc theo bash, nhưng ~/.profilelà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_profilechỉ được sử dụng khi đăng nhập. Do đó, lý do cho hai tập tin riêng biệt.
.profiledà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.