Cách sử dụng lệnh cat trong Linux [22 ví dụ hữu ích]

Lệnh cat (viết tắt của "concatenate") là một trong những lệnh thường được sử dụng nhất trong Linux, được cài đặt sẵn trong hầu hết các hệ thống phân phối Linux và được sử dụng chủ yếu để hiển thị nội dung của các tệp tin đã tồn tại.

Hơn nữa, lệnh cat có thể được sử dụng bởi người dùng để nối nhiều tệp tin, tạo tệp tin mới, thêm nội dung vào các tệp tin đã tồn tại, xem nội dung của một tệp tin và chuyển hướng đầu ra trong terminal hoặc các tệp tin.

Lệnh cat cũng có thể được sử dụng để định dạng đầu ra của tệp tin với sự trợ giúp của các tùy chọn khác nhau, như việc thêm số trước mỗi dòng nội dung của tệp tin.

Ngoài ra, nó có thể thực thi kết hợp với các lệnh khác để thực hiện các nhiệm vụ khác nhau bao gồm cung cấp điều hướng trang và chuyển đổi định dạng tệp tin thành nhị phân hoặc hệ thập lục phân.

Trong bài viết này, chúng tôi sẽ tìm hiểu cách sử dụng lệnh cat một cách thuận tiện với các ví dụ trong Linux.

Cú pháp lệnh cat

Lệnh cat có thể chấp nhận nhiều tùy chọn và đối số tên tệp tin như sau:

$ cat [OPTION]... [FILE]...

Hãy hiểu cú pháp trên:

[OPTION] - Người dùng có thể cung cấp nhiều tùy chọn để thay đổi hành vi của lệnh. Các tùy chọn bắt đầu bằng dấu gạch ngang ("-"), như "-E" được sử dụng để hiển thị kết thúc dòng và "-n" để hiển thị số trước dòng.

[FILE] - Đối số tệp chỉ định tệp sẽ được điều chỉnh bởi lệnh. Tuy nhiên, người dùng có thể cung cấp tên của nhiều tệp tin, cách nhau bằng khoảng trắng.

Lưu ý: Để đọc chi tiết về tất cả các tùy chọn có sẵn của lệnh cat, thực thi lệnh "cat --help" trong terminal Linux của bạn:

$ cat --help
Cat Command Help

Hãy khám phá các ví dụ khác nhau để tận dụng sức mạnh của lệnh cat.

1. Hiển thị nội dung của tệp trong Linux

Chức năng cơ bản của lệnh cat là hiển thị nội dung của một tệp tin đã tồn tại trong Linux. Để làm điều đó, cung cấp tên của tệp tin mà không có tùy chọn như dưới đây.

$ cat Documents/tecmint1.txt

Ở đây trong lệnh, nội dung của tệp "tecmint1.txt" nằm trong thư mục "Documents" sẽ được hiển thị.

View File Contents in Linux

2. Hiển thị nội dung của nhiều file trong Linux

Lệnh cat cũng có thể được sử dụng để hiển thị nội dung của nhiều hơn một tệp tin bằng cách cung cấp tên các tệp tin cách nhau bằng khoảng trắng như dưới đây:

$ cat tecmint1.txt tecmint2.txt 
View Multiple Files Contents

Trong đầu ra ở trên, chúng ta có thể thấy nội dung của cả hai tệp tin trong terminal. Hai dòng đầu tiên là của tệp "tecmint1.txt", trong khi dòng cuối cùng của đầu ra là nội dung của tệp "tecmint2.txt".

3. Tạo file bằng lệnh cat

Người dùng có thể tạo một tệp tin mới và lưu nội dung vào đó với ký hiệu ">" (được biết đến như là "toán tử chuyển hướng đầu ra") sẽ chuyển hướng đầu ra của lệnh đến tệp tin được chỉ định bởi tên tệp "Systemknow_tutorial.txt" như sau:

$ cat > Systemknow_tutorial.txt

Lưu ý: Nếu bạn muốn tạo một tệp tin mới, hãy chắc chắn rằng không có một tệp có cùng tên đã tồn tại. Nếu không, lệnh sẽ ghi đè nội dung của tệp đã tồn tại.

Sau khi thực thi lệnh, một chỉ báo sẽ nhấp nháy ở dòng mới. Viết nội dung cho tệp và nhấn các phím CTRL + D để lưu và thoát khỏi tệp:

Create New File and Add Content

Bạn có thể xác minh việc tạo ra tệp bằng cách sử dụng lệnh ls và sử dụng lệnh cat để xem nội dung của tệp mới được tạo ra:

$ ls
$ cat Tecmint_tutorial.txt
View File Contents

4. Nối văn bản vào tệp trong Linux

Một trong những lợi ích của lệnh cat là nó có thể thêm nội dung vào một tệp tin đã tồn tại bằng cách sử dụng ký hiệu ">>" (được biết đến như là "toán tử chuyển hướng nối") sẽ nối / kết hợp nội dung bổ sung vào một tệp tin đã tồn tại "Systemknow_tutorial.txt".

$ cat >> Systemknow_tutorial.txt

Nhập hoặc dán nội dung mà bạn muốn thêm vào tệp và nhấn các phím CTRL + D:

Append Text to a File

Bây giờ hãy xác minh xem liệu nội dung đã được thêm vào các nội dung hiện có được lưu trong tệp hay không:

$ cat Tecmint_tutorial.txt
Check File Contents

5. Sao chép nội dung file sang file khác trong Linux

Đôi khi, người dùng muốn tạo một bản sao của các nội dung được lưu trong một tệp vào một tệp mới cho các mục đích khác nhau, như sao lưu. Ở đây, toán tử ">" sẽ đọc nội dung của tệp "Systemknow_tutorial.txt" theo thứ tự và đặt nó vào một tệp mới có tên là "New_file.txt".

$ cat Systemknow_tutorial.txt > New_file.txt

Bước tiếp theo là bạn xác minh xem liệu tệp mới đã được tạo thành công hay không bằng cách chạy:

$ ls
$ cat New_file.txt
Copy Contents From One File to Another

6. Nối nội dung của nhiều file vào một file trên Linux

Như đã đề cập trước đó, lệnh cat có thể được sử dụng cho mục đích nối chuỗi. Hãy chạy lệnh để nối/ghép nội dung của các tệp "systemknow1.txt" và "systemknow2.txt" và lưu kết quả vào một tệp mới có tên là "cat_systemknow.txt":

$ cat systemknow1.txt systemknow2.txt > cat_systemknow.txt

Lệnh trên sẽ đọc nội dung của các tệp "systemknow1.txt" và "systemknow2.txt" và sẽ viết chúng vào một tệp mới "cat_systemknow.txt".

Tiếp theo, chúng ta cần xác minh liệu tệp mới có lưu trữ nội dung được nối của cả hai tệp hay không:

$ ls 
$ cat cat_tecmint.txt
Concatenate Multiple Files in Linux

7. Xem nội dung tệp có kết thúc dòng

Người dùng cũng có thể sử dụng tùy chọn -E để xem các ký tự EOL (End of Line) trong nội dung của tệp. Các ký tự EOL được biết đến là các ký tự không in được và chúng được biểu diễn bằng ký hiệu đô la ($) .

$ cat -E cat_tecmint.txt 

Đầu ra dự kiến sẽ hiển thị ký hiệu $ ở cuối mỗi dòng nội dung.

View File Content with End of Line

8. Liệt kê nội dung của tất cả các loại tệp được chỉ định

Lệnh cat có thể sử dụng ký tự đại diện * (wildcard) để liệt kê nội dung của tất cả các tệp tin có sẵn trong thư mục hiện tại. Ngoài ra, bạn cũng có thể chỉ định bất kỳ loại tệp cụ thể nào như ".txt" sau đó là một ký tự đại diện để hiển thị nội dung của tất cả các tệp "txt" có sẵn trong thư mục.

$ cat *.txt
List Contents of Files by File Types

Đầu ra sẽ hiển thị nội dung của tất cả các tệp "txt" một sau một.

9. Hiển thị số dòng trong file

Nếu bạn muốn hiển thị số dòng trước mỗi dòng nội dung của tệp, sử dụng tùy chọn -n để hiển thị số dòng trong đầu ra mà không thay đổi nội dung gốc của tệp.

$ cat -n Fruits.txt
Show Line Numbers in File

Đầu ra dự kiến sẽ hiển thị số dòng trước mỗi dòng.

10. In số dòng của nhiều tập tin

Lệnh cat với tùy chọn -n cũng có thể hoạt động trên nhiều tệp bằng cách nối nội dung của nhiều tệp và thêm số dòng trước mỗi dòng của đầu ra kết hợp.

$ cat -n Fruits.txt veg.txt

Ở đây trong lệnh, nội dung của các tệp Fruits.txt và veg.txt sẽ được nối lại, và sau đó tùy chọn -n sẽ thêm số dòng ở đầu mỗi dòng của đầu ra.

Print Line Numbers of Multiple Files

11. Hiển thị nội dung tệp bằng ký tự tab

Tùy chọn -T có thể hiển thị các ký tự khoảng trắng tab ^I trong đầu ra, các ký tự này được biết đến là các ký tự không in được.

$ cat -T tabfile
Show File Contents with Tab Characters

Đầu ra sẽ chứa các ký tự tab thay vì các khoảng trắng tab.

12. Xem nội dung tệp bằng lệnh khác

Một số tệp chứa nhiều nội dung không thể hiển thị hoàn toàn trên màn hình đầu ra của terminal. Nếu chúng ta sử dụng lệnh đơn giản cat để hiển thị nội dung của các tệp như vậy, đầu ra không cho biết rằng còn nhiều nội dung khác và người dùng cần cuộn xuống để xem.

$ cat tutorial.txt
View File Contents

Ở đây trong đầu ra, chúng ta chỉ có thể thấy một phần của nội dung thực sự.

Để giải quyết vấn đề này, bạn có thể sử dụng ký hiệu ống | mà giúp sử dụng đầu ra của một lệnh như là đầu vào của một lệnh khác, trong trường hợp này, đó là lệnh "more" mà cung cấp điều hướng trang ở cuối của tệp.

$ cat tutorial.txt | more

13. Xem nội dung tệp với ít lệnh hơn

Bạn cũng có thể sử dụng lệnh less để xem nội dung của một tệp tin theo cách có thể cuộn và tìm kiếm bằng cách sử dụng các phím.

$ cat tutorial.txt | less

14. Loại bỏ các dòng trống lặp đi lặp lại trong đầu ra

Trong một số trường hợp, người dùng để lại các dòng trống lặp lại nhầm thay vì chỉ có một dòng trống duy nhất. Tuy nhiên, lệnh cat có thể được sử dụng để loại bỏ các dòng trống lặp lại từ nội dung của một tệp tin với sự trợ giúp của tùy chọn -s.

$ cat -s tutorial.txt
Suppress Repeated Empty Lines in File Output

Đầu ra chỉ có các dòng trống duy nhất, tất cả các dòng trống lặp lại đã được loại bỏ thành công.

15. Nối nội dung tệp vào cuối tệp khác

Lệnh cat có thể gộp nội dung của một tệp vào cuối của tệp khác bằng cách sử dụng ký hiệu >> (gọi là “toán tử chuyển hướng ghi thêm”).

$ cat Fruits.txt >> veg.txt 
$ cat veg.txt
Append One File Content to Another

Kết quả sẽ cho thấy rằng nội dung của cả hai tệp đã được gộp vào tệp “veg.txt”.

16. Hiển thị nội dung file theo thứ tự đảo ngược

Để hiển thị nội dung của tệp theo thứ tự ngược lại, sử dụng lệnh tac, cũng được biết đến như là 'cat' ngược, hiển thị dòng cuối cùng trước, sau đó là dòng thứ hai từ cuối lên đầu, và cứ như vậy.

$ tac Weekdays.txt
View File Contents in Reverse Order

Kết quả sẽ hiển thị nội dung của tệp "Weekdays.txt" theo thứ tự ngược lại.

17. Hiển thị nội dung tệp ở định dạng nhị phân

Lệnh cat có thể được sử dụng kết hợp với tiện ích 'xxd' cùng với tùy chọn -b để chuyển đổi nội dung của tệp thành định dạng nhị phân.

$ cat Weekdays.txt | xxd -b

Hãy phân tích cú pháp trên:

  • | – Ký hiệu đường ống (|) sẽ chuyển đầu ra của lệnh cat cho lệnh (xxd -b).
  • 'xxd' – Đây là một tiện ích sẽ chuyển đổi nội dung thành biểu diễn thập lục phân.
  • -b – Tùy chọn này được sử dụng với 'xxd' để chỉ định định dạng đầu ra nhị phân thay vì định dạng thập lục phân mặc định.
View File Content in Binary Format

Kết quả hiển thị nội dung của tệp dưới dạng nhị phân và định dạng gốc cạnh nhau.

18. Hiển thị nội dung tệp ở định dạng thập lục phân

Để chuyển đổi nội dung của một tệp thành định dạng thập lục phân, người dùng có thể sử dụng tiện ích 'hexdump' như được thể hiện dưới đây:

$ cat Weekdays.txt | hexdump -C

Ở đây trong lệnh, ký hiệu đường ống đang kết nối cả hai lệnh trong khi lệnh 'hexdump' sẽ chuyển đổi nội dung thành định dạng thập lục phân. Ngoài ra, tùy chọn -C sẽ hiển thị biểu diễn ASCII cùng với các giá trị thập lục phân.

View File Content in Hexadecimal Format

Kết quả sẽ hiển thị nội dung của tệp đã được chuyển đổi sang định dạng thập lục phân thành công.

19. Hiển thị các dòng tệp cụ thể trong Linux

Lệnh cat có thể kết hợp với lệnh sed để hiển thị một phạm vi cụ thể của các dòng từ một tệp khớp với mẫu được xác định từ tệp.

$ cat Weekdays.txt | sed -n '3,6p'

Ở đây trong lệnh trên, lệnh sed sẽ nhận đầu ra của lệnh cat làm đầu vào với sự giúp đỡ của ký hiệu đường ống. Sau đó, lệnh sed với tùy chọn -n và mẫu 3,6p sẽ in ra các dòng từ 3 đến 6 từ đầu vào đó.

View Specific Lines of File Content

20. Sắp xếp nội dung file theo thứ tự bảng chữ cái

Người dùng có thể sử dụng lệnh cat cùng với lệnh sort để sắp xếp các dòng nội dung theo thứ tự chữ cái như được thể hiện dưới đây.

$ cat -v veg.txt | sort
View File Content Alphabetically

Kết quả sẽ hiển thị nội dung của tệp đã được sắp xếp theo thứ tự chữ cái.

21. Hiển thị điểm đánh dấu cuối tệp trong tệp

Lệnh cat có thể được sử dụng với 'here document', giúp người dùng nhập nội dung vào tệp và đặt dấu kết thúc trang.

'Here document' được ký hiệu bằng ký hiệu << theo sau bởi một biến thể, cho phép người dùng nhập nhiều dòng văn bản trực tiếp từ terminal và lưu chúng vào một tệp.

Quá trình nhập được kết thúc bằng cách nhập biến thể được chỉ định trên một dòng mới.

$ cat > month.txt << EOF
View End of File Marker in File

Kết quả đã lưu đầu vào trong tệp “month.txt” và kết thúc quá trình nhập khi nhập “EOF”.

22. View CPU Info in Linux

Lệnh cat cũng có thể hiển thị nội dung của một tệp ảo có tên là “cpuinfo”, chứa thông tin về bộ xử lý CPU, tên mô hình, kích thước bộ nhớ cache, số lõi, và các chi tiết khác về CPU.

$ cat /proc/cpuinfo
View Linux CPU Info

Đó là tất cả cho bài viết này, tôi hy vọng bạn đã hiểu về cách sử dụng lệnh cat trong Linux. Bạn có thể tham khảo trang man của lệnh cat nếu bạn muốn biết thêm tùy chọn.

$ man cat

Bài viết này hiển thị 22 ví dụ về lệnh cat trong Linux để nối, hiển thị và tạo tệp. Ngoài ra, lệnh cat cũng có thể được sử dụng với các lệnh Linux khác để thực hiện các hoạt động phức tạp hơn như sắp xếp nội dung hoặc chuyển đổi nội dung thành các định dạng tệp khác.