Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Zsh Vs Bash - Sử dụng cái nào?

Bash và Zsh là hai shell Linux phổ biến. Hướng dẫn này khám phá những ưu và nhược điểm của chúng để giúp bạn xác định loại nào tốt nhất để sử dụng.

Shell là gì?

A vỏ là giao diện người dùng dòng lệnh mà bạn sử dụng để tương tác với máy tính của mình.

Nó cung cấp đầu vào và đầu ra văn bản cho phép bạn cung cấp hướng dẫn và nhận thông tin từ hệ thống máy tính của bạn.

Vỏ cũng bao gồm các tiện ích khác, như scripting để tự động hóa tác vụ và các công cụ dễ sử dụng như tự động hoàn thành để điều hướng hệ thống tệp nhanh hơn.

Bash và Zsh đều là Shells. Chúng được gọi là 'shell' vì chúng tồn tại bên ngoài lõi của hệ điều hành, hạt nhân.

BASH là gì?

Bash (viết tắt của “ Bourne Again SHell “) Được phát hành vào cuối những năm 1980 để thay thế cho Bourne Shell , phát hành vào những năm 1970.

Bản thân vỏ Bourne được sản xuất để thay thế vỏ Thompson, loại vỏ Unix đầu tiên có từ năm 1971.

Bash nhằm mục đích cung cấp một trình bao hoàn toàn miễn phí có khả năng tương thích với các tập lệnh trình bao hiện có. Nó nhanh chóng trở nên phổ biến như là trình bao mặc định trên hệ điều hành Linux và sau đó là trên dòng hệ điều hành Apple OS X.

Một số tính năng đáng chú ý của Bash:

  • Hoàn thành dòng lệnh (nhấn tab để tự động điền đường dẫn tệp thay vì nhập chúng ra)
  • Nó có thể thực hiện các phép tính mà không cần dựa vào phần mềm bên ngoài.
  • Bạn có thể chuyển hướng đầu ra của các lệnh một cách dễ dàng.
  • Sử dụng các biểu thức chính quy trong các lệnh.
  • Chạy các tập lệnh khi khởi động để tùy chỉnh môi trường của bạn

ZSH là gì?

Zsh ( “Z Shell” ) là một phiên bản mở rộng của Bourne shell, với nhiều cải tiến và tính năng từ Bash shell.

Zsh bao gồm hỗ trợ cho các plugin và chủ đề, và nhiều tính năng mở rộng được coi là một cải tiến lớn so với Bash.

Có lẽ là dấu hiệu lớn nhất cho thấy sự phổ biến ngày càng tăng của Zsh - Apple đã đặt nó làm mặc định trong Hệ điều hành MacOS của họ, một quyết định có thể không được xem nhẹ.

Một số cải tiến đáng chú ý so với Bash trong Zsh:

  • Các plugin và chủ đề!
    • Bạn thực sự có thể tùy chỉnh Zsh với các lớp phủ, bảng phối màu - điều chỉnh lớp vỏ của bạn để cung cấp thông tin bạn cần nhất
    • ôi trời! là một khuôn khổ plugin cho Zsh, hoạt động với một số lượng lớn các plugin cho mọi thứ
  • Các lệnh được cải tiến để điều hướng hệ thống tệp - chỉ cần nhập tên thư mục hoặc chữ cái đầu tiên của mỗi thư mục trong một đường dẫn dài và Zsh sẽ tự động điền chúng bằng cách đoán tốt nhất
    • Nó cũng sẽ chỉ đưa bạn đến thư mục phù hợp gần nhất nếu bạn mắc lỗi đánh máy khi nhập một đường dẫn - điều này khá dễ chịu
  • Hỗ trợ số dấu phẩy động!
  • zmv lệnh giúp làm việc với số lượng lớn tệp dễ dàng.
  • Đặc tả tệp mà không cần phải sử dụng phần mềm bên ngoài
  • Các thư mục được đặt tên - thiết lập các phím tắt như ~ webdir thay vì phải gõ thủ công đường dẫn đến thư mục web của bạn hoặc thiết lập các liên kết mềm

ZSH so với BASH

Còn về Scripts?

Do sự phổ biến rộng rãi và lâu dài của Bash, các tập lệnh shell thường được gọi chung là Bash Scripts .

Mặc dù các tập lệnh được viết cho một trình bao không được đảm bảo chạy dưới một trình bao khác - rất may, Zsh sẽ chạy hầu hết các tập lệnh Bash hiện có mà không cần sửa đổi nhiều - mặc dù bạn có thể muốn cập nhật chúng để sử dụng một số tính năng cải tiến có sẵn trong Zsh.

Nếu bạn định tiếp tục sử dụng các tập lệnh Bash của mình, hãy đảm bảo rằng bạn đang bao gồm:

#!/bin/bash 

… Dòng ở đầu các tập lệnh của bạn được viết cho Bash - để hệ thống của bạn biết thực thi chúng bằng Bash, ngay cả khi trình bao bạn sử dụng để tương tác với máy tính của mình được đặt thành Zsh làm mặc định.

Tôi nên sử dụng cái nào?

Nếu bạn đang làm việc trong một môi trường mà bạn sẽ tham khảo các tập lệnh hoặc ví dụ hiện có được viết cho Bash , gắn bó với Bash . Nếu bạn đang đột phá và muốn có một số tính năng bổ sung của Zsh và rất vui khi phải chỉnh sửa bất kỳ mã nào bạn có thể muốn sử dụng trong các tập lệnh cho trình bao mới, hãy sử dụng Zsh .

Để biết thêm các thủ thuật Linux, hãy nhấp vào liên kết này!