Cách thay đổi shell mặc định thành ZSH - chsh nói rằng shell không hợp lệ


36

Tôi đã cài đặt ZSH trên máy ảo của tôi, nơi tôi đã biên dịch nó từ nguồn. Vị trí của ZSH là /usr/local/bin/zshkhi tôi chạy chsh -s /usr/local/bin/zshchsh: /usr/local/bin/zsh is an invalid shell. Tôi cũng đã thử điều này với sudo là tốt. Làm thế nào tôi có thể thay đổi điều này?



6
@Mikel, không, câu hỏi đó là "Tôi không biết về chsh" thay vì " chshkhông làm việc cho tôi".
cjm

Câu trả lời:




3

Đầu tiên, hãy kiểm tra xem có zshđược liệt kê dưới dạng shell hợp lệ không

cat /etc/shells

Nếu zshkhông được liệt kê, cài đặt nó. Ví dụ: nếu bạn sử dụngapt

sudo apt-get install zsh

Làm, bước 1 lần nữa và xem đường dẫn của zsh. Trong trường hợp của tôi, cả hai /usr/bin/zsh/usr/zshđược liệt kê. Như @ Stéphane Chazelas đã đề cập trong bình luận, nếu bạn muốn biên dịch và cài đặt shell từ đầu, hãy nhớ thêm đường dẫn vào /etc/shells.

Thay đổi vỏ bằng cách sử dụng

chsh -s /usr/bin/zsh

Từ trang nam :

-s, --shell SHELLTên của vỏ đăng nhập mới của người dùng. Đặt trường này thành trống khiến hệ thống chọn vỏ đăng nhập mặc định.

Đăng xuất và đăng nhập lại.


Có, nếu bạn cài đặt shell như một phần của gói OS, bao bì OS thường sẽ thêm shell vào /etc/shells. Vấn đề ở đây là nếu bạn biên dịch và cài đặt shell bằng tay, bạn cũng cần thêm đường dẫn cho /etc/shellschính mình.
Stéphane Chazelas

Điểm tốt. Tôi đã nghĩ về một người quản lý gói như 'apt'. Tôi đã chỉnh sửa câu trả lời để bao gồm quan điểm của bạn.
Sat Yam

Đây thực chất là những gì hai câu trả lời khác đã nói, mặc dù.
Jeff Schaller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.