Shell mặc định cho root
trên OS X là /bin/sh
. Nó sh
cũng là một phiên bản của bash
, nhưng khi được gọi với tên sh
Bash :
cố gắng bắt chước hành vi khởi động của các phiên bản lịch sử sh
càng gần càng tốt, đồng thời tuân thủ tiêu chuẩn POSIX.
Khi được gọi dưới dạng shell đăng nhập tương tác hoặc dưới dạng shell không tương tác với --login
tùy chọn, trước tiên, nó sẽ cố gắng đọc và thực thi các lệnh từ /etc/profile
và ~/.profile
, theo thứ tự đó. ... một shell được gọi vì sh không cố đọc và thực thi các lệnh từ bất kỳ tệp khởi động nào khác
Đó là, nó hoàn toàn không đọc .bash_profile
, bất kể nó có được gọi là shell đăng nhập hay không . Bạn có thể sử dụng .profile
thay thế, hoặc thậm chí liên kết tượng trưng với nhau. Nếu bạn khởi chạy shell đăng nhập với su -l
, .profile
được tải khi khởi động, nhưng .bash_profile
sẽ không bao giờ.
Bạn cũng có thể sử dụngdscl
để thay đổi vỏ rễ của (lưu ý rằng /etc/passwd
là không dùng để xác định vỏ trên OS X). Bạn có thể kiểm tra shell hiện tại của root với dscl . -read /Users/root UserShell
; tham khảo tài liệu và suy nghĩ cẩn thận trước khi thay đổi nó thành một cái gì đó khác.
Một cách tiếp cận khác chỉ đơn giản là thay đổi su
lời mời của bạn để buộc thực thi bash
ngay lập tức.
Đưa ra những gì bạn đã nói, có lẽ tôi muốn giới thiệu liên kết tượng trưng, nhưng bạn có thể muốn xem xét các thay đổi mà chế độ POSIX của Bash thực hiện và quyết định xem bạn có muốn có chúng hay không.