Tôi không thích gõ lại cá mỗi khi tôi bắt đầu thiết bị đầu cuối. Tôi muốn fish
mặc định. Làm cách nào tôi có thể đặt vỏ cá làm vỏ mặc định của mình trên máy Mac?
Tôi không thích gõ lại cá mỗi khi tôi bắt đầu thiết bị đầu cuối. Tôi muốn fish
mặc định. Làm cách nào tôi có thể đặt vỏ cá làm vỏ mặc định của mình trên máy Mac?
Câu trả lời:
Chúng được áp dụng cho MacOS Sierra 10.12.5 (16F73) và có thể một số phiên bản MacOS gần đây và sắp tới khác.
chsh
không đủ để thay đổi shell mặc định. Đảm bảo bạn nhấn Command+ ,trong khi thiết bị đầu cuối của bạn đang mở và thay đổi tùy chọn 'Shell mở bằng' thành 'Shell đăng nhập mặc định'.
Trong trường hợp bash, hãy đảm bảo rằng bạn thực thi echo $BASH_VERSION
để xác nhận rằng bạn đang chạy phiên bản bash dự định. bash --version
không cung cấp cho bạn thông tin chính xác.
Preferences
của Terminal.app . Xem câu trả lời này của Pankaj.
1. sudo nano / etc / shell
2. thêm / usr / local / bin / fish vào danh sách vỏ của bạn
3. chsh -s / usr / local / bin / cá
Shell open with: Default login shell
cài đặt của Terminal.app
Bạn có thể sử dụng chsh để thay đổi vỏ của người dùng.
Chạy mã sau đây, ví dụ, để thay đổi shell của bạn thành Zsh
chsh -s /bin/zsh
Như được mô tả trong trang chủ và bởi Lorin, nếu hệ điều hành không biết hệ vỏ, bạn phải thêm nó vào danh sách đã biết : /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
Giải pháp là thêm nó vào / etc / shell như được mô tả bởi câu trả lời @ lorin-hochstein bên dưới
-s
mặc dù). Tôi sẽ thử lại sớm.
Từ thiết bị đầu cuối:
Thêm Fish vào /etc/shells
, sẽ yêu cầu mật khẩu quản trị:
sudo echo /usr/local/bin/fish >> /etc/shells
Biến Fish thành vỏ mặc định của bạn với chsh
:
chsh -s /usr/local/bin/fish
Từ tùy chọn hệ thống:
Người dùng và nhóm → nhấp ctrl vào Người dùng hiện tại → Tùy chọn nâng cao ...
Thay đổi vỏ Đăng nhập thành /usr/local/bin/fish
Nhấn OK, đăng xuất và đăng nhập lại
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Đây là một cách khác để làm điều đó:
Giả sử bạn đã cài đặt nó với MacPorts, có thể được thực hiện bằng cách thực hiện:
sudo port install fish
Vỏ của bạn sẽ được đặt trong /opt/local/bin/fish
.
Bạn cần nói với OSX rằng đây là một vỏ hợp lệ. Để làm điều đó, thêm đường dẫn này vào cuối /etc/shells
tập tin.
Khi bạn đã hoàn thành việc này, bạn có thể thay đổi trình bao bằng cách đi tới Tùy chọn hệ thống -> Tài khoản. Nhấp vào Khóa để cho phép thay đổi. Nhấp chuột phải vào tài khoản và chọn "Tùy chọn nâng cao ...". Trong trường "Đăng nhập vỏ", thêm đường dẫn đến cá.
Điều duy nhất làm việc cho tôi là sự kết hợp của tất cả các phương pháp này.
Đầu tiên tôi phải thêm cá vào /etc/shells
tập tin
Sau đó tôi chạy chsh -s /usr/local/bin/fish
Cuối cùng, tôi đã gõ Command+ ,và thêm vào /usr/local/bin/fish
đường dẫn mặc định ở đó
Chỉ sau khi tôi đã làm cả ba điều, cá bắt đầu bật lên như mặc định cho các cửa sổ đầu cuối mới.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.Xem ảnh chụp màn hình này, nơi zsh
đang được đặt làm mặc định.
Tôi đang sử dụng macOS Sierra . Cũng hoạt động trong macOS Mojave .
Trên macOS Mojave tôi đã phải làm như sau (sử dụng zsh làm ví dụ):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
. Đã có mặt trên macOS Mojave. Được gói trên Mojave và mặc định ở Catalina.
Cách tải phiên bản bash mới nhất trên macOS hiện đại (đã thử nghiệm trên Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Sau đó, bạn đã sẵn sàng để hoàn thành tab kiểu vim chỉ có trên bash> = 4 (phiên bản hiện tại brew
là 5.0.2
# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete
# Display a list of the matching files
bind "set show-all-if-ambiguous on"
# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
các chsh
chương trình sẽ cho phép bạn thay đổi vỏ mặc định của bạn. Nó sẽ muốn đường dẫn đầy đủ đến thực thi, vì vậy nếu shell của bạn fish
thì nó sẽ muốn bạn cung cấp đầu ra được đưa ra khi bạn gõ which fish
.
Bạn sẽ thấy một dòng bắt đầu bằng " Shell:
". Nếu bạn chưa bao giờ chỉnh sửa nó, rất có thể nó sẽ nói " Shell: /bin/bash
". Thay thế /bin/bash
đường dẫn đó bằng đường dẫn đến vỏ mong muốn của bạn.
Công việc này đối với tôi khi cài đặt mac osx (sierra) mới:
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
> cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >
chỉ cần thay đổi giá trị đó (với lệnh write in dscl
).
Để thay đổi shell mặc định của bạn trên mac, hãy chạy như sau:
chsh -s <name-of-shell>
Danh sách các shell bạn có thể chọn là:
vì vậy nếu bạn muốn thay đổi từ sang shell / bin / zsh, lệnh của bạn sẽ như sau:
chsh -s /bin/zsh
bạn có thể thấy tất cả các shell có sẵn trên hệ thống của mình bằng cách chạy:
cat /etc/shells