Nếu bạn là người dùng dòng lệnh Linux thường xuyên, tôi chắc chắn bạn đã từng sử dụng lệnh cat. Công cụ này chủ yếu được sử dụng để hiển thị nội dung của tệp, mặc dù nó cung cấp nhiều tính năng nhỏ nhưng hữu ích khác. Bài viết này sẽ thảo luận chi tiết về lệnh cat, giải thích một số tính năng chính của lệnh này.
Tất cả các ví dụ được đề cập trong hướng dẫn này đều đã được thử nghiệm trên Ubuntu 22.04 LTS.
Sau đây là 10 điểm giúp bạn hiểu rõ hơn về cat, bao gồm cách thức hoạt động và các tính năng mà lệnh này cung cấp:
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22143%22%3E%3C/svg%3E
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22148%22%3E%3C/svg%3E
Khi chạy, lệnh yêu cầu bạn nhập thông tin vào thiết bị đầu cuối. Khi bạn hoàn tất, hãy nhấn CTRL+d.
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E
Để xác minh chéo sự tồn tại của tệp cũng như kiểm tra thông tin mà tệp chứa, tôi đã sử dụng lệnh sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22176%22%3E%3C/svg%3E
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Xin lưu ý rằng toán tử chuyển hướng đầu ra (>) mà chúng ta đã sử dụng trong trường hợp này sẽ xóa tệp đích trước khi nội dung được chuyển đến đó. Vì vậy, bạn nên biết rằng có một toán tử chuyển hướng khác (>>) sẽ thêm nội dung vào tệp đích thay vì xóa tệp đó trước.
Ví dụ:
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22230%22%3E%3C/svg%3E
Lệnh đầu tiên trong ảnh chụp màn hình ở trên hiển thị tất cả các dòng trống trong tệp. Nhưng do tùy chọn dòng lệnh -s mà chúng tôi sử dụng trong lệnh cat thứ hai, các dòng trống lặp lại đã bị loại bỏ.
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22209%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, lần đầu tiên các TAB được hiển thị bình thường, nhưng khi cùng một lệnh được thực thi với tùy chọn -T, các TAB đã bị thay thế bằng ^I.
Ví dụ:
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, lệnh đầu tiên thường hiển thị nội dung của tệp có chứa các ký tự không in được. Nhưng khi chúng ta sử dụng tùy chọn -v, các ký tự đó được hiển thị theo ký hiệu đặc biệt mà tùy chọn này sử dụng.
Lưu ý rằng LFD (xuống dòng) và các ký tự TAB là các ngoại lệ đối với tùy chọn dòng lệnh này.
Ví dụ:
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, lệnh đầu tiên cho thấy tệp (file10.txt) chứa hai dòng. Những dòng đó chứa các tab cũng như một số ký tự không in được. Vì vậy, khi cùng một lệnh được chạy với tùy chọn dòng lệnh -A, các tab được thay thế bằng ^I và các ký tự không in được được hiển thị bằng ký hiệu đặc biệt. Và cuối cùng, mỗi dòng kết thúc bằng $. Vì vậy, về cơ bản, -A đã thực hiện những gì -vET sẽ thực hiện.
Tất cả các ví dụ được đề cập trong hướng dẫn này đều đã được thử nghiệm trên Ubuntu 22.04 LTS.
Lệnh cat Linux
Trang hướng dẫn của công cụ mô tả lệnh này như sau:
Mã:
cat - concatenate files and print on the standard output
1. Cách xem nội dung của tệp bằng cat
Lệnh cat cho phép bạn xem nội dung của tệp trên đầu ra chuẩn (stdout). Có thể thực hiện theo cách sau:
Mã:
$ cat [filename]
Mã:
$ cat file1.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22143%22%3E%3C/svg%3E
2. Cách hiển thị nhiều tệp bằng cat
Công cụ này cũng cho phép bạn hiển thị nội dung của nhiều tệp cùng một lúc. Có thể thực hiện theo cách sau:
Mã:
$ cat [filename] [filename] ...
Mã:
$ cat file1.txt file2.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
3. Cách hiển thị nội dung của tệp bằng số dòng
Nếu muốn, bạn cũng có thể hiển thị nội dung của tệp bằng số dòng được in ở đầu mỗi dòng. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -n của công cụ.
Mã:
$ cat -n [filename]
Mã:
$ cat -n file1.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22148%22%3E%3C/svg%3E
4. Cách tạo tệp bằng lệnh cat
Bạn cũng có thể tạo tệp mới và điền thông tin vào đó bằng một lệnh cat duy nhất. Sau đây là cách thực hiện:
Mã:
$ cat > [name-of-new-file]
Ví dụ:
Mã:
$ cat > file4.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E
Để xác minh chéo sự tồn tại của tệp cũng như kiểm tra thông tin mà tệp chứa, tôi đã sử dụng lệnh sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22176%22%3E%3C/svg%3E
5. Cách sao chép nội dung của một tệp sang tệp khác
Bạn cũng có thể sử dụng catđể sao chép nội dung của một tệp sang tệp khác. Bạn có thể thực hiện theo cách sau:
Mã:
$ cat [filename-whose-contents-is-to-be-copied] > [destination-filename]
Mã:
$ cat file1.txt > file3.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Xin lưu ý rằng toán tử chuyển hướng đầu ra (>) mà chúng ta đã sử dụng trong trường hợp này sẽ xóa tệp đích trước khi nội dung được chuyển đến đó. Vì vậy, bạn nên biết rằng có một toán tử chuyển hướng khác (>>) sẽ thêm nội dung vào tệp đích thay vì xóa tệp đó trước.
6. Cách làm cho cat làm nổi bật phần cuối dòng
Nếu muốn, bạn cũng có thể làm cho cat làm nổi bật phần cuối của các dòng. Công cụ thực hiện điều này bằng cách hiển thị $ ở cuối mỗi dòng. Tính năng này có thể được truy cập bằng tùy chọn dòng lệnh -E của công cụ.
Mã:
$ cat -E [filename]
Mã:
$ cat -E file1.txt
7. Cách để lệnh cat loại bỏ các dòng trống lặp lại
Nếu muốn, bạn cũng có thể sử dụng lệnh cat để loại bỏ các dòng trống lặp lại trong đầu ra. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -s.
Mã:
$ cat -s [filename]
Mã:
$ cat -s file6.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22230%22%3E%3C/svg%3E
Lệnh đầu tiên trong ảnh chụp màn hình ở trên hiển thị tất cả các dòng trống trong tệp. Nhưng do tùy chọn dòng lệnh -s mà chúng tôi sử dụng trong lệnh cat thứ hai, các dòng trống lặp lại đã bị loại bỏ.
8. Cách làm cho cat hiển thị các ký tự tab là ^I
Lệnh cat cũng cho phép bạn hiển thị các ký tự tab là ^I. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -T của công cụ.
Mã:
$ cat -T [filename]
Mã:
$ cat -T file7.txt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22209%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, lần đầu tiên các TAB được hiển thị bình thường, nhưng khi cùng một lệnh được thực thi với tùy chọn -T, các TAB đã bị thay thế bằng ^I.
9. Cách làm cho mèo hiển thị các ký tự không in được
Bạn cũng có thể làm cho lệnh cat hiển thị các ký tự không in được nếu muốn. Bạn có thể thực hiện thao tác này bằng tùy chọn dòng lệnh -v.
Mã:
$ cat -v [filename]
Mã:
$ cat -v file9.txt
Lưu ý rằng LFD (xuống dòng) và các ký tự TAB là các ngoại lệ đối với tùy chọn dòng lệnh này.
10. Tùy chọn -A
Nếu bạn cần sử dụng các tùy chọn -v, -E và -T cùng nhau, thì thay vì viết -vET trong lệnh, bạn có thể sử dụng tùy chọn dòng lệnh -A.
Mã:
$ cat -A [filename]
Mã:
$ cat -A file10.txt