Đường ống là gì
Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 43 trên 82.
Chuyển hướng cho phép bạn gửi đầu ra vào tệp, nhưng nếu bạn muốn gửi đầu ra của một lệnh trực tiếp vào một lệnh khác thì sao? Đó là lúc đường ống phát huy tác dụng.
Ống dẫn (pipe) kết nối đầu ra tiêu chuẩn (standard output) của một lệnh với đầu vào tiêu chuẩn (standard input) của lệnh khác bằng ký hiệu |. Thay vì lưu kết quả trung gian vào tệp, dữ liệu sẽ truyền trực tiếp giữa các lệnh.
cat names.txt | sortLệnh này lấy đầu ra của cat names.txt và chuyển trực tiếp vào sort. Kết quả đã sắp xếp sẽ hiển thị trên màn hình mà không tạo tệp tạm thời nào.
Nếu không có pipe, bạn sẽ cần nhiều bước:
cat names.txt > temp.txt
sort < temp.txt
rm temp.txtDấu pipe thực hiện cùng một việc chỉ bằng một lệnh duy nhất, gọn gàng. Hãy hình dung nó kết nối các lệnh như những đoạn của một đường ống: dữ liệu đi vào một đầu và lần lượt chảy qua từng lệnh cho đến khi đến đầu ra cuối cùng.
Thử thách
DễDùng ký hiệu ống dẫn để đọc nội dung của fruits.txt và sắp xếp theo thứ tự bảng chữ cái bằng một lệnh duy nhất.
Chạy một lệnh để:
- Dùng
catđể đọcfruits.txt - Chuyển đầu ra sang
sortbằng ký hiệu|
Gợi ý: Định dạng là
cat filename | sort. Đầu ra củacatđược chuyển thẳng vàosort, không cần tệp trung gian.
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản
4Thư mục
Tạo thư mụcSao chép thư mụcDi chuyển và đổi tên thư mụcXóa thư mụcÔn tập: thao tác với thư mục2Điều hướng
In đường dẫn thư mục hiện tạiLiệt kê tệpChuyển thư mụcĐường dẫn tuyệt đối và tương đốiThư mục chính và thư mục gốcÔn tập: tìm đường8Chuyển hướng
Đầu ra chuẩnGhi đè vào tệpGhi thêm vào tệpĐầu vào chuẩnLỗi chuẩnÔn tập: Công cụ tạo nhật ký6Ký tự đại diện và mẫu
Ký tự đại diện dấu saoKý tự đại diện dấu hỏiKý tự đại diện trong ngoặc vuôngKết hợp ký tự đại diệnÔn tập: thao tác có chọn lọc9Đường ống
Đường ống là gìNối hai lệnh bằng đường ốngNối nhiều lệnh bằng đường ốngDùng đường ống với grepÔn tập: luồng xử lý dữ liệuTự luyện tập: Playground Terminal