Lệnh tail trong Linux thường được sử dụng để xem một vài dòng hoặc dữ liệu cuối cùng trong một file. Đây là một lệnh phổ biến để đọc hoặc kiểm tra file trước khi sử dụng cho mục đích khác. Trong bài viết sau đây cùng Vietnix tìm hiểu rõ hơn về định nghĩa, cú pháp và cách ứng dụng.
Lệnh tail trong Linux là gì?
Lệnh tail cho bạn xem phần cuối của một file. Không những xem từng dòng, bạn còn có thể xem thông tin theo từng đoạn. Khi dùng chung với lệnh head trong Linux, bạn dễ dàng xem các dòng mình muốn trong file.
Cách sử dụng lệnh tail trong Linux rất đơn giản. Bạn chỉ cần gõ lệnh tail, theo sau là một số tùy chọn (nếu cần) và tên của một hoặc nhiều file mà bạn muốn xem nội dung.
Cú pháp của lệnh như sau:
tail [OPTION]... [FILE]...
Ngoài ra, bạn có thể tham khảo một số bài viết khác về các câu lệnh trong Linux.
6 tùy chọn của lệnh tail trong Linux
Lệnh tail trong Linux có nhiều tùy chọn giúp bạn thay đổi kết quả hiển thị hoặc sử dụng kết quả đó cho các mục đích khác. Bạn cũng có thể xem thông tin như phiên bản hay hướng dẫn sử dụng.
Tuỳ chọn | Mô tả |
-n -NUM hoặc -n NUM | Hiển thị NUM dòng cuối của file |
-f, – follow | Theo dõi file và cập nhật kết quả hiển thị khi có dòng mới |
-n +NUM | Hiển thị các dòng bắt đầu từ dòng thứ NUM trở đi |
-q, –quiet, –silent | Không hiển thị tên file trong kết quả |
-v, –verbose | Hiển thị tên file trong kết quả |
-s, –sleep-interval | Đặt thời gian cập nhật khi dùng tùy chọn -f |
7 ví dụ về việc sử dụng lệnh tail trong Linux
- Kết hợp lệnh tail và head để hiển thị các dòng cụ thể trong file
- Sử dụng lệnh tail để xem 10 dòng cuối của một file
- Xem một số dòng cuối trong file bằng lệnh tail
- Mở nhiều file cùng lúc với lệnh tail
- Hiển thị N byte dữ liệu cuối cùng từ file bằng lệnh tail
- Xem các dòng sau dòng thứ NUM bằng lệnh tail
- Xem trực tiếp thay đổi của file bằng lệnh tail
Ví dụ 1: Sử dụng lệnh tail để xem 10 dòng cuối của một file
Trong hệ điều hành Linux, lệnh tail có chức năng hiển thị 10 dòng cuối cùng của một file. Trong ví dụ này, chúng ta sẽ sử dụng 2 file: country.txt (chứa tên tất cả các quốc gia trên thế giới) và States.txt (chứa tên tất cả các tiểu bang của Mỹ) theo thứ tự của bảng chữ cái.
Cú pháp tổng quát của lệnh này khá đơn giản:
tail FILE.txt
Ví dụ, bạn muốn xem 10 dòng cuối của file country trên màn hình Desktop, bạn có thể thực hiện như sau:
Bước 1: Mở Terminal trên máy tính
Bước 2: Trong cửa sổ Terminal, gõ lệnh sau và nhấn Enter:
cd Desktop/
Kiểm tra xem file “country.txt” có tồn tại trên Desktop không bằng lệnh ls:
ls -l
Bước 3: Để xem 10 quốc gia cuối cùng trong danh sách, gõ lệnh:
tail country
Bước 4: Nhấn Enter sau đó danh sách 10 quốc gia cuối cùng sẽ xuất hiện.
Ví dụ 2: Xem một số dòng cuối trong file bằng lệnh tail trong Linux
Ví dụ bạn muốn xem 5 quốc gia cuối cùng trong file, thay vì 10 giá trị mặc định. Bạn có thể dùng tùy chọn -n
để chỉ định số dòng cần xem. Có 3 cách để sử dụng tùy chọn này. Cú pháp chung như sau:
tail -n -5 FILE.txt
tail -n 5 FILE.txt
tail -5 FILE.txt
Để xem 5 quốc gia cuối cùng trong danh sách, bạn có thể làm như sau:
Bước 1: Mở Terminal trên máy tính
Bước 2: Nếu file trong máy nằm trên màn hình Desktop, hãy dùng lệnh sau:
cd Desktop/
Sau đó, bạn có thể liệt kê các file trong folder này để kiểm tra:
ls -l
Bước 3: Ví dụ file trong máy có tên là country.txt, hãy gõ một trong các lệnh sau:
tail -n -5 country
tail -n 5 country
tail -5 country
Bước 4: Nhấn Enter, kết quả sẽ hiển thị 5 quốc gia cuối cùng trong file Country.txt
Ví dụ 3: Mở nhiều file cùng lúc với lệnh tail
Bạn có thể xem những dòng cuối cùng của nhiều file cùng một lúc bằng lệnh tail bằng việc chỉ cần liệt kê tất cả các tên file muốn xem, bạn thực hiện cú pháp chung như sau:
tail FILE1 FILE2
Ví dụ bạn muốn xem 5 dòng cuối trong cả hai file country và city. Bạn chỉ cần làm theo các bước sau:
Bước 1: Mở Terminal trên máy tính
Bước 2: Sử dụng lệnh (hoặc tên folder khác)
cd Desktop/
Để đến nơi chứa các file trong máy bạn. Kiểm tra lại các file bằng lệnh
ls -l
Bước 3: Để xem 5 dòng cuối cùng của cả hai file, gõ lệnh:
tail -n -5 country city
Bước 4: Nhấn Enter, bạn sẽ thấy 5 dòng cuối của mỗi file, kèm theo tên file ở đầu.
Ví dụ 4: Hiển thị N byte dữ liệu cuối cùng từ file bằng lệnh tail
Đôi khi, bạn không muốn xem nội dung file theo từng dòng mà theo từng ký tự hoặc byte. Lúc này, bạn cần dùng một tùy chọn khác của lệnh tail. Với tùy chọn -c
, bạn có thể xem N byte cuối cùng trong file.
Có 2 cách viết lệnh:
tail -c -20 FILE.txt
tail -c 20 FILE.txt
Để xem 20 ký tự cuối trong file “Country.txt”, bạn có thể làm như sau:
Bước 1: Mở Terminal
Bước 2: Dùng lệnh cd Desktop/ để đi đến folder chứa file “Country.txt”:
cd Desktop/
ls -l
Bước 3: Để xem 20 ký tự, gõ lệnh:
tail -c -20 country
tail -c 20 country
Bước 4: Nhấn Enter, kết quả sẽ hiển thị 20 ký tự đầu hoặc cuối của file Country.txt
Ví dụ 5: Xem các dòng sau dòng thứ NUM bằng lệnh tail
Bạn có thể xem tất cả các dòng sau một dòng cụ thể bằng tùy chọn -n +NUM. Cách này khá giống với cách dùng khác của tùy chọn -n, nhưng lần này có thêm phần +NUM, trong đó NUM là số dòng bắt đầu từ đó lệnh sẽ hiển thị tất cả các dòng tiếp theo. Cú pháp chung:
tail -n +NUM FILE.txt
tail +NUM FILE.txt
Ví dụ bạn muốn xem tất cả các dòng từ dòng 46 trở đi trong file country.
Bước 1: Mở Terminal.
Bước 2: Vì file Country.txt nằm trong folder Desktop, bạn cần di chuyển đến đó bằng lệnh:
cd Desktop/
Xác nhận file đã có bằng lệnh:
ls -l
Bước 3: Dùng một trong hai lệnh sau để hiển thị nội dung từ dòng 46 trở đi:
tail -n +46 country
tail +46 country
Bước 4: Nhấn Enter, kết quả sẻ hiển thị danh sách các tên quốc gia từ dòng 46 trở đi
Tại đây bạn sẽ tìm thấy tất cả dòng từ dòng 46 trở đi được hiển thị trong dòng lệnh giống như hình bên dưới.
Ví dụ 6: Xem trực tiếp thay đổi của file bằng lệnh tail
Lệnh tail thường được dùng để xem các log file. Khi sử dụng lệnh này, bất kỳ thay đổi nào trong file sẽ tự động hiển thị trên dòng lệnh đang chạy tail. Để làm điều này, bạn cần dùng tùy chọn -f hoặc –follow, giúp theo dõi mọi thay đổi trong file. Cú pháp chung như sau:
tail -f FILE.txt
Lệnh này sẽ hiển thị 10 dòng cuối của file và tiếp tục chạy cho đến khi bạn nhấn CTRL + C để thoát. Bạn có thể làm theo các bước sau để thử nghiệm:
Bước 1: Mở Terminal.
Bước 2: Để di chuyển đến folder chứa file, gõ lệnh cd:
cd Desktop/
ls -l
Bước 3: Gõ lệnh sau để chạy tail:
tail -f country
Bước 4: Dùng lệnh echo để chuyển hướng và thêm nội dung vào Country.txt:
echo "There are Africa's countries" >> country
Sau đó bạn sẽ thấy dòng “There are Africa’s countries” xuất hiện trên Terminal đang chạy.
Bước 5: Nhấn Enter
Bước 6: Nhấn CTRL + C để kết thúc lệnh tail, như bạn thấy ở hình bên dưới, chỉ cần cập nhật file bằng cách thêm một dòng mới, dòng mới đó đã được thêm vào lời nhắc.
Kết quả hiển thị sau khi thêm dòng mới:
Ví dụ 7: Kết hợp lệnh tail và head để hiển thị các dòng cụ thể trong file
Đôi khi bạn muốn xem các dòng nằm giữa khoảng cụ thể, chẳng hạn như từ dòng 5 đến 10 hoặc 75 đến 100. Điều này hoàn toàn có thể thực hiện bằng cách kết hợp hai lệnh head và tail. Cú pháp chung của lệnh head như sau:
head -NUM1 FILE.txt|tail +NUM2
Ở đây, đầu tiên lệnh head sẽ lấy ra NUM
1 dòng đầu tiên của file. Sau đó, lệnh tail +NUM
2 sẽ hiển thị tất cả các dòng từ dòng NUM2 trở đi. Để dễ hiểu hơn, hãy xem một ví dụ.
Bước 1: Mở Terminal.
Bước 2: Di chuyển đến folder chứa file bạn muốn xem, gõ lệnh:
cd Desktop/
Để liệt kê các file có trong folder, gõ lệnh:
ls -l
Bước 3: Giả sử bạn muốn xem các dòng từ 5 đến 10. Sử dụng lệnh sau:
head -10 city | tail +5
Bước 4: Nhấn Enter, kết quả bạn sẽ thấy trên màn hình chỉ hiển thị các dòng từ 5 đến 10. Bạn cũng có thể kiểm tra lại bằng cách mở trực tiếp file để so sánh.
Câu hỏi thường gặp
Tùy chọn -f của lệnh tail trong Linux có tác dụng gì?
Tùy chọn -f
trong lệnh tail của Linux đóng vai trò quan trọng trong việc theo dõi liên tục các thay đổi trong cùng một file. Khi thực thi lệnh, lệnh tail sẽ không chỉ hiển thị các dòng cuối cùng của file mà còn tiếp tục cập nhật và hiển thị thêm bất kỳ dòng nào được ghi vào file.
Có thể kết hợp lệnh tail với các lệnh khác như grep, awk để xử lý dữ liệu đầu ra không?
Câu trả lời là có thể. Việc kết hợp lệnh tail
với các công cụ mạnh mẽ như grep
và awk
sẽ giúp bạn thực hiện lệnh xử lý dữ liệu đầu ra một cách linh hoạt và hiệu quả hơn rất nhiều.
Có thể sử dụng lệnh tail để hiển thị nội dung của một file theo từng đoạn (block) không?
Câu trả lời là không vì lệnh tail
được thiết kế chủ yếu để hiển thị các dòng cuối cùng của một file. Nó không có tùy chọn tích hợp để chia file thành các đoạn (block) có kích thước cố định.
Lời kết
Qua bài viết, chúng ta đã tìm hiểu chi tiết về lệnh tail trong Linux và cách sử dụng lệnh hiệu quả trong việc xem nội dung file. Hy vọng những kiến thức này sẽ giúp bạn tận dụng tối đa sức mạnh của tail để quản lý và phân tích dữ liệu một cách dễ dàng hơn.