Lệnh cat trong Linux là một trong những lệnh phổ biến và cơ bản nhất, dùng để đọc, nối và ghi nội dung file. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng lệnh cat hiệu quả nhất trong nhiều trường hợp.
Lệnh cat trong Linux là gì?
Lệnh cat trong Linux (viết tắt là concatenate) là một công cụ xử lý và hiển thị nội dung file trong hệ điều hành Linux và Unix. Dòng lệnh được sử dụng trong việc ghi nội dung file sang các định dạng chuẩn, hiển thị nội dung file text, nối nội dung các file với nhau.
![Sử dụng lệnh Cat trong Linux để xem và hiển thị toàn bộ nội dung file qua 12 ví dụ chi tiết 7 Lệnh cat trong Linux](https://static-xf1.vietnix.vn/wp-content/uploads/2024/05/Lenh-cat-trong-Linux.webp)
Cú pháp cơ bản của lệnh cat
Cú pháp cơ bản của lệnh cat có dạng như sau:
cat [OPTIONS] [FILE_NAMES]
Bên cạnh đó, bạn có thể tham khảo các câu lệnh trong Linux cơ bản để hiểu chi tiết cách hoạt động của hệ điều hành.
15 ví dụ về cách sử dụng lệnh cat trong Linux
- Hiển thị nội dung file bằng lệnh cat
- Điều hướng nội dung file sang một file mới
- Hiển thị các ký tự TAB
- Hiển thị ký tự cuối dòng
- Đọc nối tiếp nội dung file bằng lệnh cat
- Tạo một file mới bằng lệnh cat
Ví dụ 1: Hiển thị nội dung file bằng lệnh cat trong Linux
Chức năng cơ bản nhất của lệnh cat
là đọc nội dung file. Giả sử bạn cần hiển thị nội dung của file /etc/issue
lên terminal:
cat /etc/issue
![Sử dụng lệnh Cat trong Linux để xem và hiển thị toàn bộ nội dung file qua 12 ví dụ chi tiết 8 đánh số dòng của nội dung trong file thì hãy truyền thêm option -n vào lệnh](https://static-xf1.vietnix.vn/wp-content/uploads/2024/05/danh-so-dong-cua-noi-dung-trong-file-thi-hay-truyen-them-option-n-vao-lenh.webp)
Nếu như bạn muốn đánh số dòng của nội dung trong file thì hãy gán thêm tùy chọn -n
vào lệnh:
cat -n /etc/lsb-release
Output:
1 DISTRIB_ID=Ubuntu 2 DISTRIB_RELEASE=18.04 3 DISTRIB_CODENAME=bionic 4 DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
Trường hợp bạn muốn xem nội dung 1 file có tên là jayesh.txt:
cat jayesh.txt
Lúc này, lệnh ls sẽ hiển thị tất cả các tệp và thư mục ở vị trí hiện tại.
Ví dụ 2: Điều hướng nội dung file sang một file mới
Thay vì hiển thị nội dung đầu ra lên màn hình (stdout) thì bạn có thể điều hướng output sang một file khác. Giả sử bạn cần copy nội dung của file1.txt
sang file2.txt
thì có thể dùng toán tử > như sau:
cat file1.txt > file2.txt
Nếu file2.txt không tồn tại thì lệnh cat sẽ tự tạo một file, ngược lại thì nếu file đã có sẵn thì nội dung sẽ bị ghi đè.
Mặt khác, nếu bạn không muốn copy nội dung mà cần nối tiếp nội dung của file1.txt vào file2.txt thì hãy sử dụng toán tử >> ở dưới đây:
cat file1.txt >> file2.txt
Ví dụ 3: Hiển thị các ký tự TAB
Tùy chọn -T
cho phép bạn phân biệt được tab và space từ kết quả hiển thị trên màn hình:
cat -T /etc/hosts # Output 127.0.0.1^Ilocalhost 127.0.1.1^Iubuntu1804.localdomain
Có thể thấy ký tự TAB sẽ được hiển thị thành ^I
.
Ví dụ 4: Hiển thị ký tự cuối dòng
Tương tự, bạn cũng có thể truyền thêm tùy chọn -e
nếu muốn hiển thị các ký tự cuối dòng:
cat -e /etc/lsb-release # Output DISTRIB_ID=Ubuntu$ DISTRIB_RELEASE=18.04$ DISTRIB_CODENAME=bionic$ DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"$
Các ký tự đánh dấu kết thúc dòng sẽ hiển thị dưới dạng ký tự $.
Ví dụ 5: Đọc nối tiếp nội dung file bằng lệnh cat
Khi truyền nhiều hơn hai tên file vào lệnh cat thì nội dung của các file sẽ được nối với nhau, theo thứ tự từ trái sang phải.
Ví dụ, lệnh dưới đây có nhiệm vụ đọc nội dung của file1.txt và file2.txt, sau đó hiển thị kết quả lên terminal:
cat file1.txt file2.txt
Bên cạnh đó bạn cũng có thể nối nội dung của các file text rồi ghi vào một file.
Ví dụ khác, lệnh dưới đây dùng để nối tiếp nội dung file1.txt và file2.txt rồi ghi vào một file mới có tên combinedfile.txt bằng toán tử >:
cat file1.txt file2.txt > combinedfile.txt
Nếu file combinedfile.txt
chưa tồn tại thì lệnh sẽ tự tạo một file mới, còn không nội dung sẽ bị ghi đè.
Để nối nội dung của file1.txt
, file2.txt
rồi chèn kết quả vào file3.txt
thì hãy dùng toán tử >>
:
cat file1.txt file2.txt >> file3.txt
Ví dụ 6: Tạo một file mới bằng lệnh cat
Việc sử dụng lệnh cat trong Linux để tạo file thường sẽ đơn giản hơn so với việc dùng các công cụ text editor như nano, Vim hay Sublime Text.
Để tạo một file mới, hãy dùng lệnh cat và toán tử > cùng với tên của file muốn tạo. Sau đó nhấn Enter, nhập nội dung rồi dùng tổ hợp phím Ctrl+D để lưu lại file.
Giả sử bạn muốn tạo một file mới có tên file1.txt
:
cat > file1.txt
Nếu file1.txt
đã có thì nội dung sẽ bị ghi đè. Tương tự các phần trên, bạn cũng có thể dùng lệnh >> nếu muốn nối nội dung vào một file đã có sẵn:
cat >> file1.txt
Ví dụ 7: Loại bỏ các dòng trống lặp đi lặp lại ở vị trí đầu ra (output)
Lệnh cat rất hữu ích trong việc xử lý các file chứa các dòng trống lặp đi lặp lại tại vị trí đầu ra. Để khắc phục, bạn thực hiện cú pháp sau:
cat -s file_name
Khi đó đầu ra của file sẽ xuất hiện dòng chữ:
Will suppress repeated empty lines in output
Ví dụ 8: Kết hợp lệnh tac hiển thị nội dung theo thứ tự ngược
Lệnh tac (dòng lệnh ngược của cat) được sử dụng nhằm hiển thị nội dung file theo thứ tự ngược lại. Nhập cú pháp đơn giản dưới đây để thực hiện lệnh:
tac file_name
Ví dụ:
Để file 2 cần hiển thị nội dung theo thứ tự ngược, bạn sẽ cần thực hiện lệnh tac theo cú pháp. Lúc này, file sẽ hiển thị ngược dòng cuối cùng trước tiên, dòng thứ hai và dòng thứ nhất.
tac file2
![Sử dụng lệnh Cat trong Linux để xem và hiển thị toàn bộ nội dung file qua 12 ví dụ chi tiết 10 Kết hợp lệnh tac hiển thị nội dung theo thứ tự ngược](https://static-xf1.vietnix.vn/wp-content/uploads/2024/05/Doc-nguoc-noi-dung-bang-lenh-tac.webp)
Ví dụ 9: Sử dụng lệnh cat mở file dạng đứt nét
Để mở một file có dấu gạch ngang xuất hiện đầu tiên bằng lệnh cat trong Linux, bạn có thể thực hiện lệnh theo cú pháp:
cat -- "-dashfile"
Ví dụ: Để mở file jayesh2 xuất hiện đầu tiên là dấu – – bạn thực hiện lệnh:
cat -- "-jayesh2"
![Sử dụng lệnh Cat trong Linux để xem và hiển thị toàn bộ nội dung file qua 12 ví dụ chi tiết 11 Sử dụng lệnh cat mở file dạng đứt nét](https://static-xf1.vietnix.vn/wp-content/uploads/2024/05/Su-dung-lenh-cat-mo-file-dang-dut-net.webp)
Ví dụ 10: Sử dụng lệnh cat thao tác với file có nội dung rộng
Với file có quá nhiều nội dung, bạn có thể thực hiện lệnh theo cú pháp sau:
cat "filename" | more
Sau khi thực hiện lệnh, màn hình sẽ xuất hiện dòng chữ:
Will show that much content, which could fit in terminal and will ask to show more.
Ví dụ 11: Hiển thị tất cả nội dung file bằng lệnh cat
Để hiển thị tất cả nội dung file trong thư mục, bạn hãy sử dụng ký tự (‘*.txt’) theo cú pháp dòng lệnh sau:
cat *.txt
![Sử dụng lệnh Cat trong Linux để xem và hiển thị toàn bộ nội dung file qua 12 ví dụ chi tiết 12 Hiển thị tất cả nội dung file bằng lệnh cat](https://static-xf1.vietnix.vn/wp-content/uploads/2024/05/Hien-thi-tat-ca-noi-dung-file-bang-lenh-cat.webp)
Lúc này màn hình sẽ hiển thị tất cả nội dung file trong thư mục
Ví dụ 12: Kết hợp hiệu ứng hiển thị nội dung file
Tùy chọn -A
cho phép bạn kết hợp các hiệu ứng của các tùy chọn ‘-v', '-E'
và ‘-T
khi thực hiện lệnh:
cat -A “filename”
Thao tác lệnh sẽ hiển thị nội dung của ‘Filename’ với các ký tự không in được hiển thị, phần cuối dòng được đánh dấu và các tab được hiển thị dưới dạng ‘^I’
Câu hỏi thường gặp
Đâu là sự khác biệt giữa lệnh cat và lệnh less trong Linux?
Lệnh cat: Thực hiện xem nhanh toàn bộ nội dung của một file nhỏ, hoặc muốn nối nhiều tệp tin lại với nhau.
Lệnh less: Thực hiện xem nội dung của một tệp tin lớn, tìm kiếm một thông tin cụ thể trong tệp tin, hoặc điều hướng trong file một cách linh hoạt.
Ngoài cat, bạn có thể sử dụng lệnh nào để hiển thị nội dung của một file lớn mà không bị tràn màn hình?
1. Lệnh less: less ten_file.txt
2. Lệnh more: more ten_file.txt
3. Kết hợp với lệnh head: cat ten_file.txt | head -n 20
4. Kết hợp với lệnh tail: cat ten_file.txt | tail -n 20
Lời kết
Bài viết này đã hướng dẫn cách sử dụng lệnh cat trong Linux qua 12 ví dụ để hiển thị, nối file và tạo các file rất dễ dàng. Nếu có bất kỳ thắc mắc nào thì hãy để lại ở phần comment bên dưới để được Vietnix hỗ trợ nhanh nhất nhé!