Shell là gì?
Shell là một chương trình giao diện giữa người dùng và hệ điều hành (OS). Khi người dùng đă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 mỗi người dùng. Kernel, nguyên thủy của hệ điều hành, điều khiển các hoạt động của máy tính, điều phối các tiện ích và quy trình hệ thống, đồng thời đảm bảo tính ổn định và an toàn cho hệ thống. Shell cung cấp giao diện giữa người dùng và kernel, cho phép người dùng sử dụng các tiện ích và chương trình.
Môi trường sử dụng Shell
Shell cung cấp một môi trường tùy chỉnh từ các file khởi tạo. Các file này chứa thông tin cấu hình phù hợp với môi trường người dùng, bao gồm đường dẫn tới các lệnh, quyền mặc định cho các file mới, giá trị biến và các giá trị có thể tùy chỉnh.
Các loại Shell khác nhau
Dưới đây là giới thiệu về các OS Shell phổ biến trên hệ điều hành UNIX/Linux, bao gồm tính năng và prompt mặc định của từng loại Shell.
1. Bourne Shell (sh)
Bourne Shell, được viết bởi Steve Bourne tại AT & T Bell Labs, là Shell UNIX đầu tiên. Shell này thích hợp cho lập trình shell vì tính nhỏ gọn và tốc độ cao. Tuy nhiên, Bourne Shell thiếu tính năng tương tác như lịch sử lệnh và 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 cho hệ điều hành Solaris và được sử dụng rộng rãi cho các script quản trị hệ thống.
2. C Shell (csh)
C Shell, được viết bởi Bill Joy tại Đại học California Berkeley, là một phiên bản cải tiến của UNIX. Shell này cung cấp tính năng tương tác như lịch sử lệnh và bí danh. Ngoài ra, C Shell hỗ trợ các tính năng lập trình tiện lợi như số học tích hợp và cú pháp biểu thức giống C. Đường dẫn đầy đủ của C Shell là /bin/csh.
3. Korn Shell (ksh)
Korn Shell, được viết bởi David Korn tại AT & T Bell Labs, là một superset của Bourne Shell. Korn Shell cung cấp các tính năng tương tác tương đương với C Shell, bao gồm cả các tính năng lập trình tiện lợi như hàm số học, hàm giống C và phương thức thao tác chuỗi. Shell này nhanh hơn C Shell và có thể chạy các script được viết cho Bourne Shell. Đường dẫn đầy đủ của Korn Shell là /bin/ksh.
4. GNU Bourne-Again Shell (bash)
GNU Bourne-Again Shell (bash) tương thích với Bourne Shell và kết hợp các tính năng hữu ích từ Korn Shell và C Shell. Bash cho phép sử dụng các phím mũi tên để gọi lại và chỉnh sửa lệnh trước đó. Đường dẫn đầy đủ của GNU Bourne-Again Shell là /bin/bash.
Dưới đây là bảng so sánh các loại Shell và các đặc tính của chúng:
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 | /bin/bash | bash-x.xx$ | bash-x.xx# |
Theo VCCloud tổng hợp
Đọc thêm: Tìm hiểu về Process trong hệ điều hành (HEFC).