Làm cách nào để đặt shell của tôi trong Mac OS X?


21

Tôi biết tôi có thể đặt "Shell mở bằng" trong tùy chọn Terminal, nhưng tôi tò mò liệu có cách nào để cài đặt hệ thống này không (tương tự như cập nhật / etc / passwd trong một số Unix).

Câu trả lời:


24

Sử dụng chshtiện ích như vậy:

chsh -s bash

Apple đã thay đổi chshmột chút trên Mac OS X so với những chshgì bạn thấy trong Linux chẳng hạn. Bạn có thể đọc thông tin của họ trong trang Mac OS X Man Page .


Và ở đây tôi đã hình dung nó là một cái gì đó phức tạp với một số tiện ích dành riêng cho OSX, heh. Cảm ơn.
phải

@john - độc đáo đã học :)
akira

Vâng tôi biết câu trả lời lần trước quá, tôi vừa bị đánh bại nó! :(
John T

19

Lưu ý rằng bạn sẽ chỉ được phép thay đổi thành một vỏ được liệt kê trong /etc/shells. Điều này thường ổn, nhưng điều đó có nghĩa là nếu bạn muốn cài đặt Bash 4 (từ Homebrew, MacPorts hoặc biên dịch của riêng bạn), bạn cần thêm một dòng vào /etc/shells. (Tôi đã gặp phải điều này một vài tuần trước và hình dung nó có thể giúp người khác biết ...)

Chỉnh sửa : Tim Smith chỉ ra rằng bạn có thể vượt qua /etc/shellsgiới hạn nếu bạn chạy chshbằng root thông qua sudo. Ví dụ, sudo chsh -s /usr/local/bin/my_shell $USERsẽ làm việc, ngay cả khi my_shellkhông được liệt kê trong /etc/shells. Tôi thích chỉnh sửa hơn /etc/shells, nhưng cuối cùng, đó là một trong những cách sử dụng sudovì bạn không thể chỉnh sửa /etc/shellsnhư một người dùng thông thường. Vì vậy, có lẽ sáu của một, một nửa tá khác.


Tại sao phải thay đổi /etc/shellsnếu bạn không phải làm thế? Đối với sự tỉnh táo, tôi thích giữ các tệp hệ thống như nhau.
ma11hew28

@MattDiPasquale Tôi không chắc ý của bạn là "sự tỉnh táo". /etc/shellslà tập tin trên hệ thống xác định hệ vỏ được công nhận. Tôi thay đổi tập tin đó vì tôi muốn thêm một vỏ vào danh sách các shell được nhận dạng. Có vẻ khá hợp lý với tôi.
Telemachus

Tốt alt. cách, vì một số lý do chsh sẽ không làm việc cho tôi. Tôi hiểu rồi ; chsh: bash: non-standard shell
RyBolt

@RyBolt Phải: lý do có lẽ là những gì tôi đề cập trong câu trả lời. Bạn không thể sử dụng chshmột mình nếu bạn đang cố gắng sử dụng một vỏ không được liệt kê trong /etc/shells.
Telemachus

@Telemachus, tôi chỉ cố gắng thay đổi vỏ bash ban đầu đi kèm với bản dựng Mac OSX mặc định của tôi. Có lẽ nó không /etc/shellslạ với tôi.
RyBolt

10

Để thực hiện việc này bằng GUI Mac OS X:

  1. Mở tùy chọn hệ thống.
  2. Mở ngăn tùy chọn Tài khoản và nhóm người dùng và nhóm người dùng nếu có thể.
  3. Trên người dùng bạn muốn thay đổi trình bao, control+ nhấp hoặc nhấp chuột phải vào người dùng và chọn Tùy chọn nâng cao
  4. Trường hợp nó nói Shell Đăng nhập Shell: Thay đổi điều này thành shell bạn muốn sử dụng.

Lưu ý, vị trí này là nơi bạn có thể thay đổi thư mục chính, UUID, ID người dùng, ID nhóm và tên ngắn nếu bạn không thoải mái với Terminal. Có một câu hỏi tương tự nằm ở đây là tốt.


5

Sử dụng các câu trả lời ở trên tôi đã nhận được một thông báo lỗi:

$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell

Để giải quyết vấn đề này:

sudo chsh -s zsh $(whoami)

whoami trong một subshell là để thay đổi shell cho người dùng của bạn, không phải root.

Một điều nữa nếu bạn đang sử dụng homebrew. Khi bạn chạy các lệnh dưới dạng root (sử dụng sudo), zsh trỏ đến / bin / zsh, đi kèm với OSX và có thể bị lỗi thời. Để sử dụng bản cập nhật được cài đặt qua homebrew, hãy sử dụng như sau:

sudo chsh -s $(which zsh) $(whoami)
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.