Chức năng chính yếu của một chương trình SHELL
Về cơ bản, SHELL (hay còn gọi là hệ vỏ) là một interface nằm giữa OS Kernel và người dùng, nó cung cấp môi trường để người dùng thao tác với Kernel. Các chương trình shell sẽ làm nhiệm vụ thông dịch (interpret) các lệnh của người dùng sang chương trình có sẵn trên hệ thống từ đó thực thi các chức năng tương ứng. Các lệnh này người dùng có thể nhập trực tiếp qua chế độ tương tác (interactive) hoặc thông qua dạng script. Các shell script sẽ được thông dịch (chứ không phải biên dịch - compile). Điểm khác biệt giữa cách thức hoạt động của shell và trình biên dịch (compiler) đó là:
shell đọc các lệnh trong script tuần tự từ trên xuống, tìm vị trí các lệnh đó trong hệ thống để thực thi
compiler sẽ biên dịch các lệnh trong script sang một dạng mà máy tính có thể hiểu được, ví dụ mã máy và sinh ra một chương trình (program) tương ứng. Chương trình này sẽ có thể được sử dụng bởi các shell script sau này.
Các loại shell phổ biến
Trên môi trường thực tế có khá nhiều loại shell được sử dụng, có thể xếp chúng làm hai nhóm, nhóm Bourne Shell và nhóm C Shell
Nhóm Bourne Shell: gồm có các shell như sh, ksh, bash.
sh (bourne shell): là một trong số các shell đầu tiên được tạo ra, khoảng năm 1977 trên Unix ver 7 bởi Stephen Bourne tại AT&T Bell Laboratories, là cơ sở cho các shell khác như ksh và bash. Không có nhiều chức năng như các shell khác nhưng vẫn được duy trì trên các hệ thống Unix và Unix-like. Với các hệ thống Linux mới hiện nay, mặc định sh chỉ là một symlink trỏ tới bash.
ksh (korn shell): Được phát triển bởi David Korn (AT&T Bell Laboratories) trong khoảng những năm 1980, được công bố rộng rãi năm 1983. Tập hợp các tính năng trên bourne shell cộng thêm một số tính năng của C shell (vd: history)
bash (Bourne Again shell): được viết bởi Brian Fox trong khuôn khổ một dự án của GNU cho việc thay thế sh, được công bố rộng rãi vào khoảng 1989. Cung cấp rất nhiều tiện ích và là shell mặc định được sử dụng trên Linux, Mac OS X, Darwin hiện nay. Đây sẽ là đối tượng chúng ta sử dụng và trải nghiệm.
Nhóm C Shell: gồm có csh và tcsh, được viết khởi nguồn trên ngôn ngữ C. Cú pháp rất gần gũi và thân thuộc với C
- csh (C shell): được phát triển bởi Bill Joy vào cuối những năm 1970
- tcsh (Tenex C shell): nâng cấp từ csh với nhiều tính năng mới, nhiều tính năng trong đó vay mượn từ Tenex system do đó có thêm chữ T trong tên gọi.
cảm ơn bài viết, rất hữu ích
ReplyDelete