Oct 3, 2009

Tiện ích thường dùng trong các lệnh Unix - Linux (phần 1)

Grouping commands
Bạn có thể sử dụng một nhóm lệnh cùng một lúc, đây gọi là khả năng Grouping commands, các lệnh sẽ được ngăn cách nhau bởi một dấu chấm phảy (semicolon), ví dụ:
#who;ls;cal



Tuy nhiên bạn cũng cần lưu ý đến việc sử dụng gom nhóm lệnh này, nếu như bạn muốn sử dụng kèm các redirection. Ví dụ, giả sử bạn muốn in lịch mùa hè vào file summer.2009. bạn sẽ phải làm như sau:
#(cal 6 2009; cal 7 2009; cal 8 2009) > summer.2009

Chứ bạn không thể dùng : #cal cal 6 2009; cal 7 2009; cal 8 2009 > summer.2009

lý do bởi vì nếu chạy lệnh trên chỉ duy nhất kết quả của tháng 9 được ghi vào file.

Pipes


được sử dụng để kết nối output của một tiện ích này đến input của một tiện ích khác. Nói cách khác, nó lấy kết quả của một lệnh làm đầu vào cho một lệnh khác. Mô hình tổng quát như sau, kết quả của lệnh 1 làm input cho lệnh 2
command_1 | command_2

Pipe mà chúng ta hay gặp nhất là sự kết nối giữa ls, rpm và grep, head, tail, more, less,...
ví dụ : #ls /etc/sysconfig | less

Tees ( thường dùng kèm với pipe)


Thực sự mà nói, từ lúc học cho đến khi đọc các tài liệu gần đây, tôi mới có dịp biết đến tee, lý do đơn giản là ít khi được dạy, ít khi gặp, bởi vì chúng ta không mấy khi có nhu cầu về tính năng của nó. Tính năng của tee là :

1- Lưu output của một lệnh ra một file

2- chuyển output của lệnh nêu trên sang input của một lệnh khác (pipe)

Cấu trúc của một lệnh có dùng tiện ích tee:
command_1 | tee outfile_name | command_2

ví dụ:
#(cal 2008; cal 2009) | tee calendar.file | more

Một phần tiếp theo tôi muốn được nhắc tới nó đó là các tiện ích filter, thường thì chúng ta có thể sử dụng nó độc lập hoặc kết hợp với pipe. Ví dụ như cat, more, sort, ... xin phép được đề cập đến trong một entry khác để tránh làm loãng nội dung các entry lẫn nhau.

No comments:

Post a Comment