Giới thiệu
Đường ống (pipe) là một dạng chuyển hướng trên hệ điều hành Linux và các hệ điều hành giống Unix, nó cho phép chúng ta sử dụng hai hoặc nhiều lệnh sao cho đầu ra của một lệnh đóng vai trò trực tiếp làm đầu vào của lệnh tiếp theo.
Kết nối trực tiếp giữa các lệnh cho phép chúng hoạt động đồng thời và cho phép dữ liệu được truyền giữa chúng liên tục thay vì phải chuyển qua các tệp văn bản tạm thời hoặc qua màn hình hiển thị
Biểu tượng |
biểu thị một đường ống.
Các đường ống là một chiều tức là luồng dữ liệu chuyển hướng từ trái sang phải qua đường ống.
Cú pháp như sau:
lệnh_1 | lệnh_2 | lệnh_3 | ... | lệnh_n
Ví dụ sử dụng pipe
Sử dụng đường ống kết hợp lệnh cat
, less
Khi chúng ta sử dụng lệnh cat
để xem một file nhưng khi file có nhiều trang thì đầu ra sẽ nhanh chóng đến trang cuối cùng của file và chúng ta sẽ không thấy nội dung ở giữa.
Để có thể xem toàn bộ nội dung file chúng ta có thể chuyển hướng đầu ra của lệnh cat
thành đầu vào lệnh less
như sau:
Chúng ta nhấn Enter để di chuyển sang từ dòng, nhấn space để di chuyển sang một trang và nhấn q để thoát
Sử dụng đường ống kết hợp lệnh cat
, grep
, tee
Để thực hiện chọn từ 123host
trong file 123hostvn
và lưu trữ chúng trong demo-pipe.txt
chúng ta dùng lệnh như sau:
File demo-pipe.txt đã được tạo, chúng ta hãy mở file và xem nội dung file
Sử dụng đường ống kết hợp lệnh ps aux
, grep
Khi chúng ta sử dụng ps aux
để xem các tiến trình đang chạy, thì sẽ hiện thị ra rất nhiều tiến trình đang chạy trên hệ điều hành của chúng ta.
Để xem một tiến trình cụ thể nào đó, chúng ta có thể chuyển hướng đầu ra của lệnh ps aux
thành đầu vào của lệnh grep
để tìm kiếm tiến trình chúng ta cần xem như sau.
Tổng kết
Như trong các ví dụ trên, chúng ta có thể thấy đầu ra của lệnh trước sẽ là đầu vào của các lệnh tiếp theo, chúng ta có thể kết hợp hai hoặc nhiều hơn các lệnh cho đến khi chúng ta đạt được kết quả mong muôn. Hy vọng bài viết này sẽ giúp các bạn hiểu rỏ hơn về đường ống (pipe) trong Linux.
Tính năng đang được phát triển