Cách thức pipes

Một phần của tài liệu Quan-tri-mang-nuy-vn-17308_-_He_dieu_hanh_ma_nguon_mo.pdf (Trang 63)

Trong Linux có một số loại shell, shell ngầm định là bash. Shell cho phép ngƣời dùng chạy từng lệnh shell (thực hiện trực tiếp) hoặc dãy lệnh shell (file script) và đặc biệt hơn là theo dạng thông qua ống dẫn (pipe).

- Trong một dòng lệnh của shell có thể thực hiện một danh sách các lệnh tuần tự nhau dạng:

<lệnh> [; <lệnh>]...

Nhƣ vậy danh sách lệnh là dãy các lệnh liên tiếp nhau, cái sau cách cái trƣớc bởi dấu chấm phảy ";"

Ví dụ: $ cal 10 1999; cal 11 1999 ; cal 12 1999

Shell cho ngƣời dùng cách thức đặc biệt thực hiện các lệnh tuần tự nhau, cái ra của lệnh trƣớc là cái vào của lệnh sau và không phải thông qua nơi lƣu trữ trung gian.

- Sử dụng ống dẫn là cách thức đặc biệt trong UNIX và Linux, đƣợc thể hiện là một cách thức của shell để truyền thông liên tiến trình. ống dẫn đƣợc tổ chức theo kiểu cấu trúc dữ liệu dòng xếp hàng "vào trƣớc ra trƣớc" FIFO "First In First Out".

Mô tả cách thức sử dụng đƣờng ống trong shell nhƣ sau:

<lệnh phức hợp> là hoặc <lệnh> hoặc (<lệnh>[;<lệnh>]...)

Vậy đƣờng ống có dạng

<lệnh phức hợp> | <lệnh phức hợp>

Lệnh phức hợp phía sau có thể không có đối số. Trong trƣờng hợp đó, thông tin kết quả từ lệnh phía trƣớc trở thành thông tin input của lệnh ngay phía sau mà không chịu tác động theo cách thông thƣờng của lệnh trƣớc nữa.

Ví dụ: $ cal 1999 | more

Nội dung lịch năm 1999 (lệnh cal đóng vai trò tiến trình A) không đƣợc in ngay ra màn hình nhƣ thông thƣờng theo tác động của lệnh cal nữa mà đƣợc lƣu lên một "file" tạm thời kiểu "ống dẫn" của hệ thống và sau đó trở thành đối số của lệnh more (lệnh more đóng vai trò tiến trình B).

Trong chƣơng trình, có thể dùng ống dẫn làm file vào chuẩn cho các lệnh đọc tiếp theo. Ví dụ: ls -L | \

thì ký hiệu "\" chỉ ra rằng ống dẫn đƣợc dùng nhƣ file vào chuẩn.

Một phần của tài liệu Quan-tri-mang-nuy-vn-17308_-_He_dieu_hanh_ma_nguon_mo.pdf (Trang 63)