Cách sử dụng lệnh tee để tách đầu ra của thiết bị đầu cuối trên Linux
Linux cho phép bạn lưu trữ đầu ra lệnh trong các tệp như một phương tiện chuyển hướng đầu ra. Khi bạn lưu đầu ra vào một tệp bằng cách sử dụng > hoặc >> toán tử, đầu ra được chuyển hướng mà không có thông tin nào được hiển thị trên thiết bị đầu cuối.
Nhưng nếu bạn muốn in kết quả ra màn hình và lưu đồng thời vào một tệp thì sao? Mặc dù bạn không thể làm điều đó với các toán tử chuyển hướng đầu ra, nhưng có thể làm như vậy bằng cách sử dụng lệnh tee trên Linux.
Mục Lục
Cú pháp lệnh cơ bản
tee là một tiện ích tiêu chuẩn của Linux được sử dụng để phân chia đầu ra của lệnh giữa đầu ra tiêu chuẩn và các tệp.
Không giống như hầu hết các lệnh Linux, tee được sử dụng với các chương trình khác bằng cách sử dụng một đường dẫn (|). Toán tử đường ống—một trong nhiều toán tử dòng lệnh trên Linux—cho phép chương trình sử dụng đầu ra của lệnh khác làm đầu vào. Bạn có thể đã sử dụng đường ống trong khi sử dụng grep cùng với lệnh ls hoặc cat.
Cú pháp cơ bản của lệnh tee là:
command | tee options filepath
…Ở đâu tùy chọn Và đường dẫn tập tin là các đối số dòng lệnh và đường dẫn đến tệp bạn muốn lưu trữ đầu ra.
Tách đầu ra thiết bị đầu cuối trên Linux Với tee
Cách sử dụng đơn giản nhất của tee là chia đầu ra để hiển thị trong thiết bị đầu cuối cũng như lưu trữ bên trong một tệp. Chẳng hạn, để lưu đầu ra của lệnh ls vào một tệp văn bản có tên “đầu ra.txt,” chạy:
ls | tee ./output.txt
Đầu ra sẽ hiển thị nội dung của thư mục làm việc hiện tại như bình thường. Khi kiểm tra tệp output.txt, bạn sẽ thấy rằng tee cũng đã lưu kết quả đầu ra vào tệp.
Khi bạn chỉ định đường dẫn tệp, tee sẽ kiểm tra xem tệp có tồn tại không. Nếu không tìm thấy, nó sẽ tự động tạo tệp cho bạn, thuận tiện cho việc sử dụng trong các tập lệnh shell. Nó rất hữu ích khi bạn muốn ghi nhật ký đầu ra của chương trình hoặc tập lệnh để tham khảo sau này.
Bạn sẽ phải mở đầu lệnh tee bằng sudo để đọc hoặc lưu trữ dữ liệu vào tệp do người dùng root sở hữu.
Nếu tệp được chỉ định có dữ liệu được lưu trữ bên trong mà bạn không muốn ghi đè lên, hãy sử dụng -Một cờ để nối thêm đầu ra vào tệp, thay vì xóa toàn bộ tệp rồi lưu dữ liệu:
ls | tee -a ./output.txt
Tương tự, bạn có thể chuyển hướng đầu ra sang nhiều tệp bằng cách chỉ định các đường dẫn, được phân tách bằng dấu cách đơn:
ls | tee ./output1.txt ./output2.txt
Đôi khi, lỗi không mong muốn hoặc gián đoạn thủ công (sử dụng Ctrl + C hoặc Ctrl + Z) trong lệnh cũ có thể khiến phát bóng thoát. Để bỏ qua những gián đoạn như vậy, hãy sử dụng -Tôi lá cờ:
ls | tee -i output.txt
Để nhận trợ giúp dòng lệnh liên quan đến tee hoặc tìm chi tiết phiên bản, hãy sử dụng –giúp đỡ Và –phiên bản cờ như sau:
tee --help
tee --version
Chuyển hướng đầu ra sang lệnh khác
Bạn có thể tạo một chuỗi đầu ra bằng cách đặt tee với các lệnh Linux khác. Làm như vậy sẽ lưu đầu ra vào tệp đã chỉ định và sau đó chuyển nó sang lệnh tiếp theo để xử lý.
Sử dụng định dạng sau để chuyển hướng đầu ra của tee sang lệnh khác:
command | tee filepath | othercommand
Ví dụ: lệnh sau sẽ lưu đầu ra lệnh ls vào đầu ra.txt cuối cùng trước khi chuyển hướng nó đến grep để tìm kiếm nhanh:
ls | tee output.txt | grep "Documents"
Nhìn chung, bạn có thể sử dụng lệnh tee để thử với đầu vào và đầu ra tiêu chuẩn trên Linux.
Thao tác đầu ra và văn bản với các lệnh Linux
Lệnh tee bổ sung chức năng rất cần thiết cho các toán tử chuyển hướng đầu ra tiêu chuẩn trên Linux. Bạn thậm chí có thể sử dụng nó để thao tác đầu ra của lệnh trước khi chuyển nó sang chương trình khác.
Tương tự, bạn có thể sửa đổi văn bản bằng thiết bị đầu cuối với sự trợ giúp của một số lệnh Linux tiêu chuẩn. Họ có thể mất một chút thời gian để làm quen, nhưng cuối cùng, thao tác văn bản thông qua dòng lệnh đáng để học hỏi đối với bất kỳ quản trị viên hệ thống nào.