Sử dụng lệnh 'cat' và 'tac' trên Linux [Ví dụ cụ thể]

Bài viết này là một phần của loạt Linux Tricks and Tips của chúng tôi, trong bài viết này chúng tôi sẽ giới thiệu một số cách sử dụng cơ bản của lệnh cat (lệnh được sử dụng nhiều nhất trong Linux) và tac (ngược của lệnh cat - hiển thị các file theo thứ tự ngược lại) với một số ví dụ cụ thể.

Cách sử dụng cơ bản của lệnh Cat trong Linux

Lệnh cat, viết tắt của Concatenate, là một trong những lệnh được sử dụng nhiều nhất trong hệ điều hành *nix. Cách sử dụng cơ bản nhất của lệnh này là đọc các file và hiển thị chúng trên stdout, tức là hiển thị nội dung của các file trên màn hình terminal.

# cat file.txt
Xem Nội Dung Của File Trong Linux

Cách sử dụng khác của lệnh cat là đọc hoặc kết hợp nhiều file cùng nhau và gửi kết quả đến một màn hình như được minh họa trong các ví dụ dưới đây.

# cat file1.txt file2.txt file3.txt
Xem Nội Dung Của Nhiều File

Lệnh cũng có thể được sử dụng để nối (kết hợp) nhiều file thành một file duy nhất bằng cách sử dụng toán tử định hướng Linux > .

# cat file1.txt file2.txt file3.txt > file-all.txt
Kết hợp nhiều file trong Linux

Bằng cách sử dụng toán tử định hướng đính kèm, bạn có thể thêm nội dung của một file mới vào cuối file-all.txt với cú pháp sau.

# cat file4.txt >> file-all.txt
Gắn Nội Dung Tệp Vào Tệp Mới

Lệnh cat cũng có thể được sử dụng để sao chép nội dung của file vào một file mới. File mới có thể được đổi tên tuỳ ý. Ví dụ, sao chép file từ vị trí hiện tại đến thư mục /tmp/ .

# cat file1.txt > /tmp/file1.txt 
Sao chép nội dung của file vào file mới

Sao chép file từ vị trí hiện tại đến thư mục /tmp/ và đổi tên nó.

# cat file1.txt > /tmp/newfile.cfg
Sao chép file đến vị trí /tmp

Một cách sử dụng ít hơn của lệnh cat là tạo một file mới với cú pháp dưới đây. Khi hoàn thành việc chỉnh sửa file, nhấn CTRL+D để lưu và thoát khỏi file mới.

# cat > new_file.txt
Tạo file mới bằng lệnh cat

Để đánh số tất cả các dòng xuất ra của một file, bao gồm cả các dòng trống, hãy sử dụng cờ -n .

# cat -n file-all.txt
Thêm số vào các dòng trong file

Để hiển thị chỉ số của mỗi dòng không trống, hãy sử dụng cờ -b .

# cat -b file-all.txt
In số dòng trong file

Tìm hiểu cách sử dụng lệnh Tac trong Linux

Ý nghĩa ngược của lệnh tac command là Tac là phiên bản ngược của lệnh cat (cũng viết ngược lại) kiểu in mỗi dòng của một file bắt đầu từ dòng cuối cùng và kết thúc ở dòng đầu tiên trên đầu ra tiêu chuẩn của máy tính của bạn.

# tac file-all.txt
In nội dung file theo thứ tự ngược lại

Một tùy chọn quan trọng nhất của lệnh là cờ -s , nó tách nội dung của file dựa trên một chuỗi hoặc từ khóa từ file.

# tac file-all.txt --separator "two"
Xóa chuỗi khớp với file

Tiếp theo, cách sử dụng quan trọng nhất của lệnh tac là nó có thể giúp định vị các file log để gỡ lỗi, đảo ngược thứ tự thời gian của nội dung log.

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
Đầu ra mẫu
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

Tương tự như lệnh cat , tac làm việc tốt với các file văn bản, nhưng nó nên được tránh với các loại file khác, đặc biệt là các file nhị phân hoặc các file mà dòng đầu tiên chỉ ra chương trình sẽ chạy nó.