Nếu bạn không thể chạy chsh
vì bạn không có đặc quyền quản trị viên, hãy nói chuyện với ai đó .
Nhiều khả năng bạn không thể sử dụng chsh
dưới dạng không phải root vì hệ thống bạn đang sử dụng được định cấu hình để chsh
không hoạt động, chẳng hạn vì hệ thống sử dụng NIS hoặc LDAP thay vì chỉ /etc/passwd
tệp. Hoặc có lẽ quản trị viên hệ thống của bạn chỉ muốn duy trì một số kiểm soát.
Quy trình thay đổi vỏ của bạn phụ thuộc vào chính sách của tổ chức. Có thể có một lệnh cục bộ làm những gì chsh
bình thường. Hoặc bạn có thể cần gửi một vé hỗ trợ yêu cầu thay đổi vỏ.
Hầu hết các câu trả lời khác đều tốt, nhưng nếu quản trị viên của bạn phản hồi hợp lý, bạn có thể không muốn làm phiền việc hack các tập lệnh khởi động của mình. Có lẽ tôi chỉ cần gọi zsh -l
thủ công sau khi đăng nhập cho đến khi quản trị viên cập nhật tài khoản của tôi.
Một lưu ý khác: Đôi khi các shell khác nhau có thể sử dụng cùng một tệp khởi động. Ví dụ, sh
và bash
cả hai có thể thực hiện $HOME/.profile
, và csh
và tcsh
cả hai có thể thực hiện $HOME/.login
và $HOME/.cshrc
(mặc dù các file khởi động vỏ cụ thể thích .bashrc
, .bash_profile
và .tcshrc
có thể ghi đè lên những). Nếu hệ vỏ mặc định của bạn là /bin/csh
và bạn muốn sử dụng /bin/tcsh
, việc cập nhật .login
lệnh gọi của bạn /bin/tcsh -l
có thể tạo ra một vòng lặp vô hạn. zsh
không xảy ra để thực thi bash
các tệp khởi động cụ thể, vì vậy đó không phải là vấn đề đối với bạn.
Hầu hết các vỏ thiết lập các biến mà xác định được bao bạn đang chạy ( $BASH_VERSION
, $tcsh
, $ZSH_VERSION
). Nếu bạn định viết mã khởi động để gọi shell yêu thích của mình, thì không nên để nó ở trong một if
cái để nó được thực thi chỉ khi bạn chưa chạy shell đó. Sử dụng mã từ câu trả lời của konsolebox :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(Sự phức tạp thêm của việc kiểm tra "${ZSH_VERSION:-unset}"
thay vì chỉ "$ZSH_VERSION"
cho phép khả năng bạn đã thực hiện set -o unset
, một tùy chọn khiến tham chiếu đến một biến không xác định là lỗi.)
zsh
vào.bashrc
tập tin. Đăng xuất và đăng nhập và thực hiện!