Shell Là Gì

Shell là một chương trình cung cấp giao diện giữa người dùng và hệ điều hành (OS). Mỗi khi bạn đăng nhập hoặc mở một cửa sổ terminal hoặc console, hệ điều hành khởi động một shell cho bạn.

Kernel, hay nhân, là chương trình quản lý và điều phối tất cả các hoạt động của máy tính. Khi giao tiếp với kernel, shell cung cấp phương thức để bạn sử dụng các tiện ích và chương trình trong hệ thống.

Môi trường sử dụng Shell

Shell cung cấp một môi trường để bạn tùy chỉnh từ các file khởi tạo. Những file này chứa thông tin cài đặt phù hợp với từng môi trường người dùng khác nhau. Điển hình như:

  • Tìm đường dẫn đến các lệnh.
  • Thiết lập quyền mặc định cho các file mới.
  • Cung cấp các giá trị cho các biến mà các chương trình khác sử dụng.
  • Cho phép bạn tùy chỉnh các giá trị theo ý muốn.

Liệu Shell có loại nào khác nhau không?

Dưới đây là một số loại shell phổ biến trong hệ điều hành UNIX/Linux:

1. Bourne Shell (sh)

Shell đầu tiên được viết bởi Steve Bourne tại AT & T Bell Labs. Shell này thích hợp cho việc lập trình shell vì tính nhỏ gọn và tốc độ. Tuy nhiên, nó thiếu tính năng tương tác như việc gọi lại các lệnh trước đó (lịch sử lệnh) và tính toán số học và biểu thức logic. Bourne Shell là shell mặc định của Solaris OS.

2. C Shell (csh)

C shell là một phiên bản cải tiến của UNIX được viết bởi Bill Joy tại Đại học California Berkeley. Ngoài tính năng tương tác như bí danh và lịch sử lệnh, shell này còn hỗ trợ các tính năng lập trình tiện lợi và cú pháp giống với ngôn ngữ lập trình C.

3. Korn Shell (ksh)

Korn Shell được viết bởi David Korn tại AT & T Bell Labs và là một superset của Bourne Shell. Shell này cung cấp các tính năng tương tác tương đương với C Shell và bổ sung các tính năng lập trình tiện lợi như hàm số học và hàm giống ngôn ngữ C.

4. GNU Bourne-Again Shell (bash)

GNU Bourne-Again Shell (bash) tương thích hoàn toàn với Bourne Shell và kết hợp các tính năng từ Korn và C Shell. Shell này có phím mũi tên để thuận tiện trong việc gọi lại lệnh và chỉnh sửa. Bash là shell phổ biến và mặc định trong hầu hết các hệ điều hành Linux.

Đó là một số loại shell phổ biến và đặc tính của chúng.

Table 1: Các lệnh và đặc tính của 4 loại Shell

Shell Path Câu lệnh mặc định (non-root user) Câu lệnh mặc định (root user)
Bourne Shell (sh) /bin/sh $ #
C Shell (csh) /bin/csh % #
Korn Shell (ksh) /bin/ksh $ #
GNU Bourne-Again Shell (Bash) /bin/bash bash-x.xx$ bash-x.xx#

Đó là một số thông tin căn bản về shell. Nếu bạn quan tâm, hãy khám phá thêm về quy trình trong hệ điều hành tại đây.