Cách lưu đầu ra dòng lệnh thành tệp trên Windows, Mac và Linux | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách lưu đầu ra dòng lệnh thành tệp trên Windows, Mac và Linux

Chia sẻ kiến thức 07/03/2022

Nếu bạn đang cố gắng chẩn đoán sự cố, việc lưu kết quả đầu ra của một lệnh vào một tệp sẽ rất hữu ích mà lại rất dễ thực hiện.

 

Nếu bạn đang cố gắng chẩn đoán sự cố, việc lưu kết quả đầu ra của một lệnh vào một tệp sẽ rất hữu ích mà lại rất dễ thực hiện.

 

Khi bạn chạy một lệnh trong cửa sổ Terminal, đầu ra của lệnh thường được hiển thị trên Terminal hoặc màn hình, vì vậy bạn có thể đọc nó ngay lập tức. Bạn cũng có thể xuất đầu ra của một lệnh vào một tệp, nếu bạn muốn lưu nó.

Lưu đầu ra của một lệnh vào một tệp sẽ hữu ích nếu bạn đang cố gắng chẩn đoán sự cố. Để nhận được trợ giúp từ bộ phận hỗ trợ kỹ thuật, bạn có thể phải chạy một số lệnh trên máy tính của mình và gửi kết quả cho nhóm hỗ trợ. Bạn có thể làm điều này rất dễ dàng bằng cách sử dụng chuyển hướng đầu ra trên dòng lệnh.

Trong bài viết này, FUNiX sẽ giới thiệu cách gửi đầu ra của một lệnh tới một tệp văn bản trong bash shell trên Windows, Mac và Linux.

Lưu ý: Chúng tôi sẽ sử dụng Mac Terminal trong ví dụ của mình, nhưng cách thực hiện trong bash shell trên Linux và bash shell mới trong Windows 10 cũng tương tự như vậy.

Chuyển hướng đầu ra đến tệp

Có hai toán tử (operator) để chuyển hướng đầu ra của lệnh tới tệp thay vì màn hình.

Biểu tượng > tạo một tệp mới nếu không có hoặc ghi đè tệp nếu nó đã tồn tại. >> cũng tạo một tệp mới nếu nó không tồn tại, nhưng nó nối văn bản vào cuối tệp nếu nó đã tồn tại, thay vì ghi đè tệp.

Thay thế /path/to/file bằng đường dẫn đầy đủ đến tệp bạn muốn sử dụng.

ls > /path/to/file

Đây là lệnh cho ví dụ của chúng ta:

ls > /Users/lorikaufman/TerminalOutput/ls_output.txt

Để xem nội dung của tệp trong cửa sổ Terminal, hãy sử dụng lệnh cat như được hiển thị trong lệnh sau. Một lần nữa, thay thế /path/to/file bằng đường dẫn đầy đủ đến tệp bạn muốn xem.

cat /path/to/file

Toán tử > thay thế nội dung của tệp hiện có mỗi khi bạn sử dụng nó để chuyển hướng đầu ra. Nếu bạn muốn lưu kết quả đầu ra từ nhiều lệnh vào một tệp duy nhất, hãy sử dụng toán tử >>. Điều này nối kết quả đầu ra của một lệnh vào cuối tệp được chỉ định, nếu nó đã tồn tại. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới.

Ví dụ: chúng ta sẽ thêm thông tin hệ thống vào cuối tệp đã tạo ở trên. Vì vậy, trong dòng sau, uname -a là lệnh, theo sau là toán tử chuyển hướng >>. Sau đó là đường dẫn đầy đủ đến tệp mà chúng ta muốn nối đầu ra của lệnh uname.

Tham số (parameter) -a trong lệnh uname xuất ra tất cả thông tin hệ thống có sẵn.

uname -a >> /Users/lorikaufman/TerminalOutput/ls_output.txt

Để xem tệp với thông tin được nối thêm trong cửa sổ Terminal, hãy nhập lệnh sau, với đường dẫn đầy đủ đến tệp của bạn.

cat /Users/lorikaufman/TerminalOutput/ls_output.txt

Lặp lại quá trình này nhiều lần nếu bạn cần để liên tục nối đầu ra của lệnh vào cuối tệp.

lưu dòng lệnh xuất cửa sổ mac linux

Đây là một ví dụ khác về việc gửi đầu ra của lệnh ls dưới dạng cây thư mục, với các thư mục con được liệt kê đệ quy (tham số R) và một tệp trên mỗi dòng (tham số 1).

ls -1R > /Users/lorikaufman/TerminalOutput/dir_tree.txt

Sau đó, chúng ta sử dụng lệnh cat, như đã đề cập trước đó, để xem nội dung của tệp trong cửa sổ Terminal.

cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
lưu dòng lệnh xuất cửa sổ mac linux

Toán tử > và >> không hiển thị đầu ra của lệnh trên màn hình. Đầu ra chỉ được gửi đến một tệp.

Nếu bạn muốn gửi kết quả đầu ra đến một tệp và xem nó trên màn hình, hãy sử dụng lệnh tee thay vì các toán tử > và >>.

ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt

Lệnh trên thay thế tất cả nội dung trong tệp hoặc tạo một nội dung mới nếu nó không tồn tại, giống như toán tử >. Chúng ta đã sử dụng lệnh cat sau để xem nội dung tệp trong cửa sổ Terminal.

cat /Users/lorikaufman/TerminalOutput/ls_output.txt
lưu dòng lệnh xuất cửa sổ mac linux

Để sử dụng lệnh tee để hiển thị kết quả ra màn hình và nối nó vào cuối tệp, hãy nhập lệnh sau. Ở đây, chúng ta đang thêm thông tin hệ thống đầy đủ vào cuối tệp bằng lệnh uname -a , giống như đã làm với toán tử >>, nhưng bên cạnh đó cũng gửi kết quả ra màn hình.

uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
lưu dòng lệnh xuất cửa sổ mac linux

Lệnh sau đây là phiên bản tee của việc hiển thị một cách đệ quy cây thư mục vào một tệp và ra màn hình, một tệp trên mỗi dòng, giống như chúng ta đã làm với toán tử >.

ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt

Sau đó, chúng ta sử dụng lại lệnh cat để xem nội dung của tệp.

cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
lưu dòng lệnh xuất cửa sổ mac linux
 

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/tag/save-command-line-output-file-windows-mac-linux/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại