Shell trong Linux là một cách thuận tiện và thông thường để tương tác với hệ thống tệp trong Linux và chạy các lệnh với các đối số và liên quan đến các biến môi trường. Nó cung cấp rất nhiều tính năng hữu ích, ví dụ, kết nối đầu ra của một quá trình với đầu vào của người khác, chuyển hướng các luồng đầu vào / đầu ra đến / từ các tệp, FIFO, v.v. Một vỏ là một cách tốt để dễ dàng kết hợp một số chương trình nhỏ, mỗi chương trình làm một nhiệm vụ tương đối nhỏ, để cung cấp một cái gì đó hữu ích. Một số chương trình này (như find và ls) được thiết kế để làm việc với chúng trong một trình bao.
Để hiểu sự mở rộng, chỉ cần nhớ rằng một từ (chuỗi giới hạn không gian của các ký tự aplhanumeric và -
, và một số ký hiệu khác), với nó chứa *
hoặc các ?
ký tự mẫu, không được thoát hoặc đặt bên trong dấu ngoặc kép ( "
) hoặc dấu nháy đơn '
, được thay thế bằng một chuỗi của các từ được phân cách bằng dấu cách với tên tệp khớp với mẫu. Bạn cũng có một từ có dấu hoa thị, sau khi mở rộng, bạn sẽ có 0, một hoặc một vài từ, sẽ được xử lý bằng bash như một số đối số. Ở đây có thiết kế cụ thể của ls
lệnh: nó phù hợp hoàn hảo với lược đồ này khi được sử dụng ls foo*
để hiển thị tất cả các tệp bắt đầu bằng "foo"! Nó được mở rộng thành một cái gì đó như
ls foobar boobaz
và tôi chỉ in các tệp từ các đối số, kiểm tra sự tồn tại và duyệt qua các bộ phát sóng, v.v.
Nhưng đó chủ yếu là câu hỏi của triết học. Trong các hệ thống khác, mọi thứ xuất hiện từ nút "Bắt đầu" và thanh tác vụ. Một số người dùng tốt với nó. Một số cố gắng cài đặt shell giống như linux vào các hệ thống như vậy. Đó là một vấn đề của hương vị, nhưng để lập trình các tập lệnh đơn giản, xử lý các tệp, shell là cực kỳ thuận tiện.