Chuyển từ zsh sang bash trên OSX, và quay lại?


193

Vì vậy, tôi đang học cách phát triển trong Rails, và đã khám phá ra sức mạnh của zsh. Tuy nhiên, đối với một số nhiệm vụ khác của tôi, tôi muốn sử dụng Bash bình thường. Mặc dù chúng giống nhau, tôi chỉ cảm thấy thoải mái với bash trong một số tình huống. Làm cách nào để chuyển đổi qua lại hoặc bật và tắt zsh? Cảm ơn!

Câu trả lời:


379

Bạn chỉ có thể sử dụng execđể thay thế vỏ hiện tại của mình bằng một vỏ mới:

Chuyển sang bash:

exec bash

Chuyển sang zsh:

exec zsh

Điều này sẽ không ảnh hưởng đến các cửa sổ đầu cuối mới hoặc bất cứ điều gì, nhưng nó thuận tiện.


1
Không có gì! Nếu bạn hài lòng với câu trả lời này, vui lòng dành một chút thời gian để đánh dấu nó là được chấp nhận bằng cách đánh dấu chọn bên trái câu trả lời. Cảm ơn!
larsks

1
Hoặc, chỉ cần gọi zsh, và khi bạn hoàn thành exitđể quay lại bash. Thực hiện nó có vẻ không cần thiết và không mong muốn.
Chris Trang

Tất cả phụ thuộc vào những gì bạn mong đợi cửa sổ đầu cuối của bạn sẽ làm gì khi bạn thoát. Bản thân tôi thấy việc bắt đầu một subshell không cần thiết và không mong muốn.
larsks

2
Làm thế nào để bạn thay đổi mặc định? Ngoài ra, khi tôi thực hiện "exec bash" trong zsh, nó không lấy nguồn bash_profile của tôi.
kalehv

1
Có những lúc tôi muốn sử dụng zsh và những lần khác khi nó can thiệp vào những gì tôi muốn làm. Đặt mặc định qua lại là một ý tưởng tồi vì vậy đây là giải pháp hoàn hảo !!! thanh danh!!
Bob Roberts

126

bạn có thể thử chsh -s /bin/bashđặt bash làm mặc định hoặc chsh -s /bin/zshđặt zsh làm mặc định.


53

Tôi chuyển đổi giữa zsh và bash hơi thường xuyên. Trong một thời gian, tôi thường phải sử dụng nguồn bash_profile của mình mỗi lần chuyển đổi. Sau đó tôi phát hiện ra bạn có thể (thường) làm

exec bash --login

hoặc chỉ

exec bash -l

1
Cảm ơn phill, tôi đã cài đặt thinkbot / laptop và nó làm hỏng tất cả các cấu hình của tôi. Mẹo của bạn giúp lấy lại môi trường bash của tôi.
Seralto

1
Sẽ là chiếc mũ hữu ích mà bạn đã viết "--login" để làm gì?
Ewoks

Make bash act as if it had been invoked as a login shell (see INVOCATION below). Nguồn
lony

16

nếu nó chỉ là một công tắc tạm thời

bạn có thể sử dụng exec như đã đề cập ở trên, nhưng để biết thêm về một giải pháp lâu dài.

bạn có thể sử dụng chsh -s / bin / bash (để chuyển sang bash) và chsh -s / bin / zsh (để chuyển sang zsh)


12

Đối với Bash, hãy thử

chsh -s $(which bash)

Đối với zsh, hãy thử

chsh -s $(which zsh)

6

zsh có một lệnh dựng sẵn emulatecó thể mô phỏng các shell khác nhau bằng cách đặt các tùy chọn phù hợp, mặc dù csh sẽ không bao giờ được mô phỏng đầy đủ.

emulate bash
perform commands
emulate -R zsh

Cờ -R khôi phục tất cả các tùy chọn về giá trị mặc định của chúng cho shell đó.

Xem: hướng dẫn sử dụng zsh


1
Không rõ mặc dù phiên bản bash nào nó sẽ giả lập, nó sẽ giả lập bash 4.x chứ? hay 5.x?
Edgar Aroutiounian

2

Bạn chỉ có thể gõ bashvào thiết bị đầu cuối để chuyển sang bash, sau đó gõ zshđể chuyển sang zsh. Làm việc cho tôi ít nhất.


Điều này thậm chí còn đơn giản hơn.
andromeda

2
Điều này không hoạt động, nhưng mỗi lần bạn gõ zshhoặc bashbạn sẽ vào một lớp vỏ con (quy trình con dưới lớp vỏ hiện tại). Bạn sẽ cần phải thoát thoát một số lần để trở về lớp vỏ trên cùng.
RichVel

0

Trong Mac OS Catalina vỏ tương tác mặc định là zsh. Để thay đổi shell thành zsh từ bash:

chsh -s /bin/zsh

Sau đó, bạn cần nhập mật khẩu Mac của bạn. Thoát khỏi thiết bị đầu cuối và mở lại nó. Để kiểm tra xem nó đã thay đổi thành công thành ssh hay chưa, hãy đưa ra lệnh sau.

echo $SHELL

Nếu kết quả là / bin / zsh, nhiệm vụ của bạn đã hoàn thành.

Để thay đổi nó trở lại thành bash, hãy đưa ra lệnh sau trên terminal.

chsh -s /bin/bash

Xác nhận lại bằng cách sử dụng echo $SHELL. Sau đó, kết quả sẽ là / bin / bash.


0

bạn chỉ có thể gõ bashhoặc nếu bạn luôn muốn sử dụng bash:

trên "iTerm2"

  • Chuyển đến tùy chọn> Cấu hình> Lệnh
  • Chọn "Lệnh" từ danh sách thả xuống
  • Kiểu bash

Kiểm tra bằng cách đóng iTerm và mở lại


-5

Bạn có thể dễ dàng chuyển trở lại bash bằng cách sử dụng lệnh "bye"


bye sẽ thoát zsh nhưng không quay lại bash
Cece Dong - MSFT
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.