Linux tee command

Tìm hiểu lệnh tee trong Linux: Hướng dẫn chi tiết từ A đến Z

Bạn đã bao giờ muốn lưu trữ kết quả của một lệnh Linux đồng thời hiển thị nó trên màn hình chưa? Lệnh tee chính là công cụ bạn cần! Trong bài viết này, chúng ta sẽ cùng nhau khám phá mọi ngóc ngách của lệnh tee, từ cú pháp cơ bản đến những ứng dụng nâng cao, cùng với các ví dụ thực tế dễ hiểu. Hãy sẵn sàng để làm chủ một trong những lệnh hữu ích nhất trong thế giới Linux!

tee là một lệnh vô cùng linh hoạt, cho phép bạn sao chép đầu ra chuẩn (standard output) của một lệnh và đồng thời chuyển nó đến một hoặc nhiều tệp tin, cũng như hiển thị nó trên màn hình. Điều này đặc biệt hữu ích khi bạn muốn ghi lại kết quả của một lệnh để phân tích sau này, hoặc đơn giản là muốn theo dõi quá trình thực thi của một lệnh trong khi vẫn lưu lại kết quả. Hãy tưởng tượng bạn đang chạy một lệnh phức tạp và muốn đảm bảo rằng không có lỗi nào bị bỏ sót. tee sẽ giúp bạn dễ dàng theo dõi và lưu trữ mọi thứ.

Cú pháp cơ bản của lệnh tee

Cú pháp của lệnh tee khá đơn giản:

command | tee [option] [file...]

Trong đó:

  • command: Lệnh mà bạn muốn sao chép đầu ra.
  • tee: Lệnh tee.
  • [option]: Các tùy chọn của lệnh tee (ví dụ: -a, -i).
  • [file...]: Một hoặc nhiều tệp tin mà bạn muốn lưu đầu ra vào.

Ví dụ, để chạy lệnh ls -l và lưu kết quả vào tệp tin output.txt đồng thời hiển thị trên màn hình, bạn sẽ sử dụng lệnh sau:

ls -l | tee output.txt

Các tùy chọn phổ biến của lệnh tee

Lệnh tee cung cấp một số tùy chọn hữu ích để điều chỉnh hành vi của nó. Dưới đây là một số tùy chọn phổ biến nhất:

  • -a, --append: Ghi thêm (append) vào tệp tin thay vì ghi đè (overwrite). Điều này rất hữu ích nếu bạn muốn lưu kết quả của nhiều lệnh vào cùng một tệp tin.
  • -i, --ignore-interrupts: Bỏ qua các tín hiệu ngắt (interrupt signals). Điều này có nghĩa là lệnh tee sẽ tiếp tục chạy ngay cả khi bạn nhấn Ctrl+C.
  • --output-error[=MODE]: Đặt cách xử lý lỗi đầu ra. Giá trị mặc định là warn (cảnh báo). Các giá trị khác bao gồm exit (thoát) và ignore (bỏ qua).

Ví dụ, để ghi thêm kết quả của lệnh date vào tệp tin output.txt, bạn sẽ sử dụng lệnh sau:

date | tee -a output.txt

Ví dụ thực tế về lệnh tee

Để hiểu rõ hơn về cách sử dụng lệnh tee, hãy cùng xem xét một số ví dụ thực tế:

  1. Ghi lại kết quả của một lệnh dài: Giả sử bạn đang chạy một lệnh phức tạp để biên dịch một chương trình. Bạn muốn ghi lại tất cả các thông báo lỗi và cảnh báo để xem xét sau này. Bạn có thể sử dụng lệnh sau:
    make | tee build.log
    Lệnh này sẽ chạy lệnh make và lưu tất cả đầu ra vào tệp tin build.log, đồng thời hiển thị nó trên màn hình.
  2. Theo dõi tiến trình của một lệnh: Bạn đang tải xuống một tệp tin lớn và muốn theo dõi tiến trình mà không cần mở một cửa sổ terminal khác. Bạn có thể sử dụng lệnh sau:
    wget http://example.com/largefile.zip | tee download.log
    Lệnh này sẽ tải xuống tệp tin largefile.zip và lưu tất cả đầu ra (bao gồm tiến trình tải xuống) vào tệp tin download.log, đồng thời hiển thị nó trên màn hình.
  3. Sao chép đầu ra đến nhiều tệp tin: Bạn muốn lưu kết quả của một lệnh vào hai tệp tin khác nhau. Bạn có thể sử dụng lệnh sau:
    ls -l | tee file1.txt file2.txt
    Lệnh này sẽ chạy lệnh ls -l và lưu kết quả vào cả hai tệp tin file1.txtfile2.txt, đồng thời hiển thị nó trên màn hình.

So sánh lệnh tee với các lệnh tương tự

Mặc dù tee là một công cụ mạnh mẽ, nhưng có một số lệnh khác có thể thực hiện các tác vụ tương tự. Dưới đây là so sánh giữa tee và một số lệnh phổ biến khác:

Lệnh Mô tả Ưu điểm Nhược điểm
tee Sao chép đầu ra chuẩn đến một hoặc nhiều tệp tin và hiển thị trên màn hình. Linh hoạt, dễ sử dụng, có thể ghi thêm vào tệp tin. Chỉ xử lý đầu ra chuẩn.
> (redirection) Chuyển hướng đầu ra chuẩn đến một tệp tin (ghi đè). Đơn giản, dễ sử dụng. Chỉ chuyển hướng đến một tệp tin, ghi đè tệp tin hiện có.
>> (append redirection) Chuyển hướng đầu ra chuẩn đến một tệp tin (ghi thêm). Đơn giản, dễ sử dụng, ghi thêm vào tệp tin. Chỉ chuyển hướng đến một tệp tin.

Lời khuyên và thủ thuật khi sử dụng lệnh tee

  • Sử dụng tee -a để tránh ghi đè: Nếu bạn muốn lưu kết quả của nhiều lệnh vào cùng một tệp tin, hãy sử dụng tùy chọn -a để ghi thêm vào tệp tin thay vì ghi đè.
  • Kết hợp tee với các lệnh khác: tee hoạt động tốt khi kết hợp với các lệnh khác như grep, sed, và awk để lọc và xử lý đầu ra trước khi lưu vào tệp tin.
  • Kiểm tra tệp tin đầu ra: Sau khi sử dụng tee, hãy kiểm tra tệp tin đầu ra để đảm bảo rằng kết quả được lưu trữ đúng như mong đợi.

Câu hỏi thường gặp (FAQ)

  1. Làm thế nào để chỉ lưu lỗi (standard error) vào tệp tin? Bạn có thể sử dụng cú pháp sau:
    command 2>&1 | tee error.log
    Lệnh này sẽ chuyển hướng lỗi (standard error) đến đầu ra chuẩn (standard output), sau đó tee sẽ sao chép cả hai vào tệp tin error.log.
  2. Làm thế nào để bỏ qua các tín hiệu ngắt khi sử dụng tee? Bạn có thể sử dụng tùy chọn -i:
    command | tee -i output.txt
  3. Làm thế nào để ghi kết quả vào nhiều tệp tin và vẫn hiển thị trên màn hình? Bạn có thể liệt kê nhiều tệp tin sau lệnh tee:
    command | tee file1.txt file2.txt file3.txt

Kết luận

Lệnh tee là một công cụ vô cùng hữu ích trong Linux, cho phép bạn dễ dàng sao chép đầu ra chuẩn của một lệnh đến một hoặc nhiều tệp tin, đồng thời hiển thị nó trên màn hình. Với cú pháp đơn giản và các tùy chọn linh hoạt, tee có thể giúp bạn quản lý và ghi lại kết quả của các lệnh một cách hiệu quả. Hy vọng rằng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan về lệnh tee và giúp bạn tự tin sử dụng nó trong công việc hàng ngày của mình.

Hãy thử nghiệm với các ví dụ khác nhau và khám phá những khả năng mà tee mang lại. Chắc chắn rằng bạn sẽ thấy nó trở thành một phần không thể thiếu trong bộ công cụ Linux của mình!

Last Updated : 22/08/2025