Shell là gì? 4 loại Shell phổ biến nhất hiện nay
Shell là một thành phần phổ biến trong hệ điều hành Linux/Unix. Tuy nhiên trên thực tế, không phải ai cũng hiểu được Shell là gì cũng như những chức năng cơ bản của Shell. Cùng Bizfly Cloud tìm hiểu chi tiết về khái niệm này trong bài viết hôm nay nhé.
Shell là gì?
Shell là một chương trình cung cấp giao diện giao tiếp giữa người dùng và hệ điều hành (OS). Hệ điều hành khởi động một shell cho mỗi người dùng khi người dùng đăng nhập hoặc mở một cửa sổ terminal hoặc console.
Kernel (nhân) là một chương trình thực hiện các tác vụ sau:
- Kiểm soát tất cả các hoạt động của máy tính.
- Điều phối tất cả các tiện ích trong xử lý lệnh
- Đảm bảo rằng các tiện ích không xung đột lẫn nhau hoặc tiêu thụ hết tài nguyên hệ thống.
- Lên lịch và quản lý tất cả các quy trình hệ thống
Trong lúc giao tiếp với kernel, Shell sẽ cung cấp phương thức để người dùng có thể sử dụng được các tiện ích và chương trình.
Môi trường sử dụng Shell
Shell cũng cung cấp một môi trường dành cho người dùng để bạn có thể tùy chỉnh từ các file khởi tạo. Các file này cung cấp các thông tin cài đặt sao cho phù hợp với đặc điểm của những môi trường người dùng khác nhau, chẳng hạn như:
- Tìm các đường dẫn đến các lệnh.
- Set quyền mặc định trên các file mới
- Giá trị các biến mà các chương trình khác sử dụng
- Các giá trị bạn có thể tùy chỉnh
Có các loại Shell khác nhau nào?
Các mục dưới đây sẽ giới thiệu về các OS Shell khả dụng trên hệ điều hành UNIX/Linux bao gồm các tính năng và prompt mặc định của Shell.
1. Bournce Shell
Bourne Shell (sh):
Là Shell được viết bởi Steve Bourne tại AT & T Bell Labs, là 1 UNIX shell đầu tiên. Shell này thích hợp sử dụng cho lập trình shell vì lợi thế về tính nhỏ gọn và tốc độ. Một nhược điểm của Bourne shell là nó thiếu các tính năng tương tác, ví dụ như tính năng gọi lại các lệnh đã sử dụng trước đó (lịch sử lệnh). Bourne Shell cũng không có các tính năng tích hợp số học và xử lý biểu thức logic.
Bourne Shell là shell mặc định của Solaris OS, là shell tiêu chuẩn cho các script quản trị hệ thống Solaris.
Các lệnh trong Bourne shell:
Lệnh gọi tên đường dẫn đầy đủ là / bin / sh và / sbin / sh.
Lời nhắc mặc định cho non-root user là $.
Lời nhắc mặc định cho root user là #.
2. C Shell
C shell (csh):
Là một phần cải tiến UNIX được viết bởi Bill Joy - Đại học California Berkeley.
Có các tính năng kết hợp để sử dụng tương tác, chẳng hạn như bí danh và lịch sử lệnh
Hỗ trợ các tính năng lập trình tiện lợi, chẳng hạn như số học tích hợp và cú pháp biểu thức C-like.
Các lệnh trong C-shell:
Lệnh tên đường dẫn đầy đủ là / bin / csh
Dấu nhắc mặc định cho non-root user là tên máy chủ %.
Dấu nhắc mặc định cho root user là tên máy chủ #.
3. Korn Shell
Korn Shell (ksh):
Được viết bởi David Korn tại AT & T Bell Labs
Là một superset của Bourne Shell
Có các tính năng tương tác tương đương với các tính năng trong C shell
Bao gồm các tính năng lập trình tiện lợi như các hàm số học và các hàm C-like, cùng các phương thức thao tác chuỗi.
Nhanh hơn C shell
Chạy các script được viết cho Bourne shell.
Các lệnh trong Korn shell:
Lệnh tên đường dẫn đầy đủ là / bin / ksh.
Dấu nhắc mặc định cho non-root user là $
Dấu nhắc mặc định cho root user là #.
4. GNU Bourne-Again Shell
GNU Bourne-Again shell (bash):
Tương thích với Bourne shell
Kết hợp các tính năng hữu ích từ Korn và C Shell.
Có các phím mũi tên cho phép tự động map để recall lệnh và chỉnh sửa.
Các lệnh trong GNU Bourne-Again Shell:
Lệnh tên đường dẫn đầy đủ là / bin / bash.
Dấu nhắc mặc định cho non-root user là bash-x.xx$. (Trong đó x.xx cho biết số phiên bản shell là gì. Ví dụ: bash-3.50 $)
Dấu nhắc mặc định cho root user bash-x.xx #. (Trong đó x.xx cho biết số phiên bản shell là gì. Ví dụ: bash-3.50 $ #).
Bảng sau trình bày vắn tắt về 4 lệnh Shell và các đặc tính:
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 and /sbin/sh | $ | # |
C Shell (csh) | /bin/csh | % | # |
Korn Shell (ksh) | /bin/ksh | $ | # |
GNU Bourne-Again Shell (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |
So sánh giữa Shell và Bash
Dưới đây là một số điểm khác biệt giữa Shell và Bash:
>> Có thể bạn quan tâm: Tìm hiểu về Process trong hệ điều hành
Theo Bizfly Cloud tổng hợp