Linux Shell là gì? Các Linux Shell phổ biến nhất

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, fish, KornShell và Z Shell để bạn lựa chọn. Nhưng Linux shell phổ biến nào là tốt nhất?

Linux Shell là gì?

Thông thường, khi bạn viết một ứng dụng, thực hiện bằng ngôn ngữ cấp cao mà con người có thể hiểu được. Ví dụ: C#, Java, C++, vân vân. Bạn có tin hay không, máy tính của bạn chỉ được thông điệp viết dưới ký hiệu 0 và 1, 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 hiện để khởi chạy ứng dụng nói trên.

Máy tính của bạn là một thông dịch viên. Nó nằm giữa những gì bạn yêu cầu nó làm và cách nó thực hiện điều đó.

Shell gọi là 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 dùng thực hiện thành mã máy. Một trong những điểm khác biệt là trình thông dịch thực hiện từng câu một. Trong khi đó, một trình biên dịch sẽ 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 của mình. Khi bạn nhập các lệnh vào shell, nó có trách nhiệm diễn giải các lệnh đó. Các hoạt động như sao chép tệp, piping, tệp danh sách đều nằm trong quyền hạn của shell.

Một số Linux Shell có sẵn. Để tìm ra 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

Để tìm hiểu loại shell bạn hiện đang sử dụng:

echo $0
Ví dụ cho lệnh trên
Ví dụ cho lệnh trên

Nhưng bạn có đang sử dụng Linux Shell tốt nhất không? Hãy xem những gì có sẵn.

1. Bash

Đây là một shell 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). Nhiều bản phân phối Linux có bash là shell mặc định, vì bash shell GNU mặc định. Được phát hành vào năm 1989, nó đã có một vài thập kỷ phát triển mạnh mẽ.

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 mà hoàn toàn được giữ nguyên. Bash cũng cung cấp một số cải tiến cho người dùng:

  • Hoàn thành lệnh
  • Lịch sử lệnh

Thông thường tài liệu trực tuyến sẽ cho rằng bạn đang sử dụng bash. Tuy nhiên, nó không phải là không có thiếu sót - bất kỳ ai đã từng viết kịch bash script đều có thể chứng thực điều này! Việc ghi và đọc bash không phải lúc nào cũng dễ dàng.

2. KornShell

KornShell
KornShell

Thường được gọi là ksh, KornShell là một Linux Shell thay thế phổ biến có nguồn gốc từ Bell Labs vào những năm 80. 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 lợi thế nhỏ so với cái khác. Ksh, ví dụ, có lệnh cd cũ mới. Nếu bạn đang ở trong thư mục /Downloads/foo/bar/one/foobar, nếu cần truy cập /Downloads/foo/bar/two/foobar, bạn chỉ cần nhập:

cd one two

Các lợi ích của ksh bao gồm:

  • Cú pháp vòng lặp tốt hơn
  • Các cách lặp lại lệnh tự nhiên
  • 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, nhập:

sudo apt install ksh
 
 ksh

3. Tcsh

Tcsh
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á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ử hiển thị. Hoàn thành tab history 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 chữ cái “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 hiện nó.

Để dùng thử tcsh, hãy nhập:

sudo apt install tcsh
 
 tcsh

Tcsh là shell mặc định cho các hệ thống dựa trên BSD giống như FreeBSD. Điểm hấp dẫn lớn của tcsh là ngôn ngữ script của nó, hữu ích cho bất kỳ ai chủ yếu lập trình bằng ngôn ngữ C.

4. Fish

fish
fish

Với tất cả sự nghiêm túc của Linux, nhóm phát triển fish đã mang đến một dự án hài hước. Trên trang web của họ, tiêu đề có nội dung “Finally, a command line shell for the 90s” mặc dù fish (friendly interactive shell) đã được phát triển vào năm 2005. Ngoài lời chào mời “Glorious VGA Color”, fish cũng có một số cải tiến hơn các shell khác:

  • Các lệnh có cú pháp không hợp lệ sẽ được hiển thị màu đỏ
  • Cú pháp đúng sẽ hiển thị bằng màu xanh lam
  • Đề xuất tự động hoàn thành
  • Hoàn thành lệnh dựa trên trang man trên máy của bạn

Tính năng này thêm cú pháp từ trang man 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, fish một nơi tuyệt vời để bắt đầu.

Gõ dòng dưới đây để dùng thử fish:

sudo apt install fish
 
 fish

5. Z Shell

Z Shell
Z Shell

Zsh có những điểm tương đồng với bash và ksh, kết hợp nhiều tính năng được tìm thấy trong tcsh. Các tính năng của Zsh bao gồm:

  • 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 terminal
  • Globbing (ký tự đại diện cho tên tệp)

Globbing trong zsh rất hữu ích. Gõ:

vim /u/l/b/a<TAB>

Mở file:

/usr/local/bin/autoupdate.sh

Zsh có thể mất một lúc để định 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

Tham khảo thêm: 

Thứ Năm, 20/08/2020 08:12
51 👨 242
0 Bình luận
Sắp xếp theo