Bạn có hài lòng khi sử dụng bash shell trong Linux không? Hay bạn muốn thử một giải pháp thay thế? Có tsch, cá, KornShell và Z Shell để bạn lựa chọn. Nhưng hệ điều hành Linux phổ biến nào tốt nhất?
Linux Shell là gì?
Thông thường, khi bạn viết một ứng dụng, nó được thực hiện bằng một ngôn ngữ cấp cao mà con người có thể hiểu được. Ví dụ trong số này là C #, Java, C ++, v.v. Bạn có tin hay không, máy tính của bạn coi mọi thứ là 1s như 0 hoặc thường được biết đến là mã nhị phân hoặc mã máy.
Sau đó, một trình biên dịch sẽ dịch ngôn ngữ cấp cao thành một tệp nhị phân giống như tệp thực thi. Tệp nhị phân này là những gì bạn thực thi để khởi chạy ứng dụng nói trên.
Bây giờ, đây là một cái nhìn rất cao về những gì sẽ xảy ra; chỉ cần nhớ, máy tính của bạn cần một lớp dịch. Điều này nằm giữa những gì bạn đang yêu cầu nó làm và cách nó có thể hiểu điều đó.
Một trình bao được biết đến như một trình thông dịch. Tương tự như một trình biên dịch, một trình thông dịch dịch mã người thành mã máy. Một trong những điểm khác biệt là thông dịch viên thực hiện từng câu một. Trong khi đó, một trình biên dịch quét toàn bộ chương trình và dịch tất cả thành mã máy.
Vì vậy, shell là một giao diện để bạn tương tác với hệ điều hành (OS) của mình. Khi bạn nhập các lệnh vào shell, nó có trách nhiệm giải thích các lệnh đó và làm cho điều kỳ diệu xảy ra. Tất cả các thao tác như sao chép tệp, đường ống, tệp danh sách đều nằm trong quyền hạn của trình bao.
Một số hệ điều hành Linux có sẵn. Để tìm hiểu tất cả các shell có sẵn trên hệ thống của bạn, hãy mở terminal và nhập:
cat /etc/shells
Để biết bạn hiện đang sử dụng loại shell nào:
echo $0
Nhưng bạn có đang sử dụng Linux shell tốt nhất không? Hãy xem xét những gì hiện có.
1. Bash
Đây là một dặm phổ biến nhất trong số những người dùng Linux. Thật khó để nghĩ về shell mà không có Bourne-Again Shell (bash) là một phần của phương trình. Nhiều bản phân phối Linux sử dụng bash làm trình bao mặc định vì bash là trình bao GNU mặc định. Được phát hành vào năm 1989, nó cũng tự hào có một vài thập kỷ phát triển lành mạnh đằng sau nó.
Tiền thân của Bash là The Bourne Shell (sh), là một trong những shell gốc của Unix. Một tính năng hấp dẫn đối với các lập trình viên sh là họ có thể chuyển trực tiếp các tập lệnh của mình sang bash hoàn toàn không thay đổi. Bash cũng cung cấp một số cải tiến cho người tiền nhiệm của nó:
- Hoàn thành lệnh
- Lịch sử lệnh
Thường thì tài liệu trực tuyến sẽ cho rằng bạn đang sử dụng bash. Tuy nhiên, không phải là không có khuyết điểm của nó --- như bất kỳ ai đã từng viết kịch bản bash đều có thể chứng thực! Không phải là bạn không thể làm được điều gì đó, mà là không phải lúc nào bạn cũng có thể đọc và viết một cách đặc biệt thanh lịch.
2. KornShell
Thường được gọi là ksh, KornShell là một trình bao Linux thay thế phổ biến có nguồn gốc từ Bell Labs vào những năm 1980. Không có nhiều sự khác biệt giữa bash và ksh, nhưng mỗi cái đều có những ưu điểm nhỏ so với cái còn lại. Ksh, ví dụ, có lệnh cd cũ mới. Nếu bạn đang ở trong thư mục / Downloads / foo / bar / one / foobar và bạn cần truy cập / Downloads / foo / bar / two / foobar bạn chỉ cần nhập:
cd one two
Các cựu chiến binh của ksh sẽ ủng hộ tính ưu việt của nó bằng cách đề cập đến lợi ích của nó. Chúng bao gồm:
- Cú pháp vòng lặp tốt hơn
- Các cách tự nhiên để lặp lại các lệnh
- Mảng liên kết
Không giống như bash, rất khó để tìm trợ giúp cho ksh trực tuyến. Nếu bạn muốn thử ksh, bạn nhập:
sudo apt install ksh
ksh
3. Tcsh
Tcsh có thể bắt nguồn từ những ngày đầu của Unix. Đây là phiên bản cải tiến của C shell (csh) và các tính năng:
- Hoàn thành dòng lệnh có thể lập trình
- Chỉnh sửa dòng lệnh
- Thêm đối số vào bí danh
- Truy cập lịch sử lệnh dễ dàng
Bạn có thể chạy bất kỳ lệnh nào bằng cách gõ ! N thay thế n bằng số tương ứng của nó trong lịch sử được hiển thị. Hoàn thành tab lịch sử trong tcsh hoạt động bằng cách nhập:
!a<TAB>
Điều này mở rộng đến lệnh cuối cùng bắt đầu bằng ký tự "a". Tương tự, trong bash, bạn sẽ phải nhập ! A:p để xem lệnh đầu tiên, sau đó là !! để thực thi nó.
Để dùng thử tcsh, hãy nhập:
sudo apt install tcsh
tcsh
Tcsh là trình bao mặc định cho các hệ thống dựa trên BSD như FreeBSD. Điểm hấp dẫn lớn của tcsh là ngôn ngữ kịch bản của nó, hữu ích cho bất kỳ ai chủ yếu lập trình bằng C. Điều này làm cho tcsh hữu ích cho việc tạo mẫu các chương trình C nhỏ mà không bị nhầm lẫn về những thứ như dấu ngoặc bạn đang sử dụng. Sự cố này có xu hướng xảy ra nếu bạn liên tục chuyển đổi giữa lập trình C và kịch bản shell.
4. Cá
Trong số tất cả sự nghiêm túc của Linux, nhóm của cá đã đưa vào dự án của họ một cảm giác hài hước. Trên trang web của họ, tiêu đề có nội dung "Cuối cùng, một trình bao dòng lệnh cho những năm 90" mặc dù cá (" f riendly i nteractive sh ell ") được phát triển vào năm 2005. Ngoài" Màu VGA Glorious ", là một số cải tiến so với các vỏ khác:
- Các lệnh có cú pháp không hợp lệ hiển thị thành màu đỏ
- Cú pháp đúng xuất hiện bằng màu xanh lam
- Đề xuất tự động hoàn thành
- Hoàn thành lệnh dựa trên các trang nam trên máy của bạn.
Tính năng này thêm cú pháp từ trang chủ của phần mềm mới được cài đặt vào các đề xuất tự động hoàn thành của bạn. Nếu bạn muốn làm quen với dòng lệnh hơn, cá có thể là một nơi tuyệt vời để bắt đầu.
Để lấy mẫu về loài cá, hãy nhập:
sudo apt install fish
fish
5. Z Shell
Nhiều người sẽ coi đây là cách để lại lớp vỏ tốt nhất cuối cùng, điều này hoàn toàn có thể hiểu được. Zsh có những điểm tương đồng với bash và ksh và kết hợp nhiều tính năng được tìm thấy trong chúng cũng như tcsh. Các tính năng của Zsh:
- Danh sách tự động hoàn thành có thể điều hướng
- Sửa lỗi chính tả vượt trội
- Hoàn thành dòng lệnh
- Lịch sử được chia sẻ trên các thiết bị đầu cuối
- Dấu cầu (ký tự đại diện cho tên tệp)
Globbing trong zsh rất hữu ích. Đánh máy:
vim /u/l/b/a<TAB>
Sẽ mở tệp:
/usr/local/bin/autoupdate.sh
Zsh có thể mất một lúc để cấu hình trong lần sử dụng đầu tiên nếu bạn không sử dụng cấu hình mặc định. Để dùng thử, hãy nhập:
sudo apt install zsh
zsh
Linux Shell nào tốt nhất cho tôi?
Thực tế là các tùy chọn này có sẵn là tuyệt vời. Mỗi cái là một cái nhìn sơ lược về lịch sử máy tính, nơi các lập trình viên quyết định họ muốn làm mọi thứ theo cách riêng của họ.
Sự khác biệt đáng kể giữa các shell này có thể được tìm thấy trong cú pháp script. Mỗi lớp vỏ có một bộ sắc thái riêng biệt tách chúng ra khỏi nhau. Như hiện tại, bash thống trị về thị phần, điều này làm cho việc tìm kiếm trợ giúp đơn giản hơn nhiều. Bash đơn giản là ứng dụng tổng hợp tốt nhất, đáp ứng nhu cầu của tất cả trừ những người dùng cao cấp nhất.
Khi bạn đã sử dụng hệ điều hành Linux, hãy đảm bảo rằng bạn đã quen thuộc với các kiến thức cơ bản về tập lệnh trình bao.