Bash hoặc Zsh, sự khác biệt là gì, tại sao lại sử dụng cái này hay cái kia? [bản sao]


23

Vì vậy, câu hỏi khá nhiều nói lên tất cả. Tôi đang ở trên Snow Leopard và tôi đã phát triển web rất nhiều, đặc biệt là trong Rails 3, ứng dụng này sử dụng giao diện điều khiển rất nhiều.

Tôi đã thấy một số blogger đáng chú ý, v.v. đề cập đến Zsh như sở thích của họ so với Bash, nhưng tôi không biết nó sẽ tạo ra sự khác biệt gì.

Bất cứ ai có thể cho tôi một so sánh tốt về sự khác biệt có gì và điều gì có thể khiến người này thích một lựa chọn này hay lựa chọn khác?



1
Nếu giúp, một bài báo 2016: stackabuse.com/zsh-vs-bash
Cœur

Câu hỏi này đã trở nên có liên quan một lần nữa do táo chuyển sang zsh
amar

Câu trả lời:


16

Đây là từ Câu hỏi thường gặp về Zsh :

2.5: Điểm tương đồng với bash

Bourne-Again Shell, bash, là một loại vỏ khác giống như Bourne; rõ ràng nhất
Sự khác biệt so với zsh là nó không cố gắng mô phỏng vỏ Korn. Từ khi cả hai
Vỏ đang được phát triển tích cực, có lẽ không hợp lý để quá cụ thể 
đây. Nói chung, bash đã chú ý nhiều hơn đến các tiêu chuẩn tuân thủ (ví dụ POSIX) cho
lâu hơn và cho đến nay đã tránh được các tính năng tương tác khó hiểu hơn (có thể lập trình 
hoàn thành, v.v.) mà zsh có.

Tôi đã sử dụng cả hai, nhưng thích Bash ngày nay vì các máy tôi làm việc mặc định để bash liên tục. Nhận xét tuân thủ tiêu chuẩn rất quan trọng đối với tôi vì điều đó có nghĩa là tính nhất quán giữa các hệ điều hành.

Zsh có khả năng tự động hoàn thành tốt, nhưng tôi cứ tìm những trường hợp không biết tôi muốn gì. Đó là vài năm trước, vì vậy nó có thể đã được cải thiện kể từ đó.

Tôi đã thấy rằng việc bật "vi-mode" ( set -o vi) trong Bash làm cho nó trở thành một môi trường dòng lệnh đẹp hơn nhiều so với bình thường, vì vậy tôi làm điều đó ngay lập tức trong .bashrctệp của mình .

Khi viết tập lệnh shell tôi không bao giờ lập trình trong bash hoặc zsh - Tôi lập trình bằng sh ( /bin/sh), vì đó là mẫu số chung thấp nhất và ít có khả năng gặp sự cố tương thích nhất. Đó chỉ là một thói quen cũ đã giúp tôi đứng vững.


2
Một sự khác biệt là các ký tự đại diện cư xử khác nhau. Ví dụ: để tìm tất cả các phiên bản của tệp có tên "vi", người ta có thể sử dụng bash với lệnh locate */vi. Sử dụng zsh kết quả cho cùng một lệnh là zsh: no matches found: */vi. Để làm cho tìm kiếm hoạt động trong zsh, truy vấn tìm kiếm phải được bao quanh bởi các trích dẫn như locate "*/vi".
Sao lưu chuyên nghiệp

Nhưng cả hai ví dụ của bạn đều hoạt động trong bash.
John Stack
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.