Các lệnh thông dụng trên linux để thao tác với file (log)

Có lần gặp sự cố, bạn client ping cho mình “nhờ” mình kiểm tra log server để xem tại thời điểm gặp sự cố, hệ thống có gì lạ không. Mình vốn thật thà: “để từ từ tui hỏi phát, chứ cái này tui cũng chưa rành”, bạn ấy hơi ngạc nhiên “tưởng backend phải giỏi mấy cái này chứ”. Và kết quả là sau khi nhờ “tư vấn” và trace log, mình đã tìm ra được nguyên nhân gây ra lỗi.

Đó chỉ là một trong vô số lần mà mình tìm được nguyên nhân và fix được lỗi nhờ vào “xem” được file log, từ đó mình cũng mặc định luôn, dân backend Java là phải thành thạo linux, không thành thạo là một thiếu sót lớn. Mình cũng đang bị thiếu sót rất lớn này, và vẫn đang học để bổ sung. Và bài viết hôm nay, mình chia sẻ một vài lệnh mà mình hay sử dụng để thao tác trên file cho các bạn mới làm quen với linux:

  • cat: mở và in toàn bộ nội dung file ra màn hình, cái này chỉ thích hợp với file nhỏ, trong trường hợp file lớn thì dùng cat với các lệnh khác để count hoặc để search. Mở file lớn thì dùng head hoặc tail
  • head: mặc định là mở 10 dòng đầu của file, chúng ta có thể sử dụng thêm option -n (với n (number) là số dòng đầu cần xem). VD: head -20 (xem 20 dòng đầu của file)
  • tail: mặc định là mở 10 dòng của cuối của file, tương tự head, chúng ta có thể sử dụng option -n để xem nội dung số dòng cuối của file. Đặc biệt, với option -f (follow), chúng ta có thể xem được nội dung đang được write real time vào file, cái này rất hữu ích khi chúng ta muốn xem file log của chương trình đang chạy, log vẫn đang được ghi vào tại thời điểm xem.
  • grep: in ra dòng với nội dung tìm kiếm. VD: muốn xem nội dung  file log các đoạn có chứa “thachleblog”, mình sử dụng cat /data/log.text | grep “thachleblog”
  • wc: đếm số ký tự / dòng của file, mình hay xài wc -l để đếm số dòng của một file
  • awk: thao tác trên file sribe có format, cái này là cả một chân trời mới, có thể mình sẽ giới thiệu cơ bản ở một bài viết khác.

VD tổng quát:

Mình muốn thống kê xem trong file log.text có bao nhiêu dòng chứa cụm từ “thachleblog” mình có thể dùng lệnh sau:

cat log.text | grep “thachleblog” | wc -l

Để xem mô tả và các option của 1 lệnh linux bất kỳ, chúng ta thường gg, nhưng cũng thể dùng lệnh man để xem nhanh. VD: gõ man grep để xem mô tả và các option của lệnh grep.

Tham gia bình luận