Trong Windows, khi bạn mở một dấu nhắc lệnh, hầu như luôn luôn là chương trình đang chạy cmd.exe
. Đây là một dẫn xuất NT nâng cao của nền tảng DOS cũ command.com
, đến lượt nó có những điểm tương đồng với trình CCP
thông dịch lệnh CP / M thậm chí cũ hơn .
Trong Linux, như @Griffin đề cập, thông thường bạn đang chạy bash
trong một loại trình giả lập thiết bị đầu cuối nào đó nếu bạn đang sử dụng nó trong môi trường đồ họa. (có thể khác nhau tùy thuộc vào môi trường phân phối và máy tính để bàn của bạn). Chữ này là viết tắt của "Bourne Again SHell" bởi vì đây là phiên bản mở rộng của lớp vỏ "Bourne" trước đó ( sh
) đã trở thành tiêu chuẩn trên Unix trong một thời gian dài. Có khác vỏ "thay thế" được sử dụng phổ biến như csh
, ksh
, và tcsh
.
Windows cmd.exe
cũng có thể được coi là một vỏ (như có thể explorer.exe
).
Cả dấu nhắc lệnh Windows và tất cả các shell Unix đều có một số "tích hợp" hoặc các lệnh được xử lý hoàn toàn trong trình bao. Điều này bao gồm một số lệnh cơ bản (chẳng hạn như cd
) và nhiều lệnh và toán tử có điều kiện điều khiển luồng tập lệnh nếu một tệp lệnh được thực thi.
Tuy nhiên, trong cả Linux và Windows, phần lớn các "lệnh" thực hiện những điều hữu ích trên thực tế là các chương trình bên ngoài được "gọi" bởi trình bao. Và đó là mục đích chính của shell, để cho phép một nhà điều hành khởi động các chương trình với việc chỉ định các đối số cho các chương trình đó. Nó không thực sự là một ngôn ngữ lập trình, nó chỉ là một khuôn khổ để khởi chạy các chương trình.