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
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ị.
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
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:
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
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:
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
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
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
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.
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
Đầ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
Đầ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.
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
Đầ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
Ở đâ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
Đầ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
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
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.
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.
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 đó.
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
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
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
Đó 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.