← study index

study note

Filter & IO redirection command Trong Linux

An English translation is not available yet. Showing the original article.
On this page (16)
  1. Filter & IO redirection command
  2. grep
  3. Dùng chuyển hướng đầu vào
  4. less
  5. more
  6. head
  7. tail
  8. cat
  9. cut
  10. awk
  11. Extend mode in vim
  12. sed
  13. Redirection
  14. free -h
  15. df -h
  16. /dev/null

Filter & IO redirection command

grep

Lệnh grep (viết tắt của Global Regular Expression Print) là công cụ lọc và tìm kiếm văn bản cực kỳ mạnh mẽ trong Linux.

Nó làm nhiệm vụ: Đọc một file (hoặc dữ liệu đầu vào) và chỉ in ra những dòng nào có chứa từ/chuỗi ký tự bạn yêu cầu.

code
grep [tùy_chọn] "từ_cần_tìm" tên_file

image.webp

Dùng chuyển hướng đầu vào

grep em a.txt (Chuyển đường dẫn file làm tham số)

  • Cách hoạt động: Lệnh grep trực tiếp nhận tên file a.txt như một tham số truyền vào. Chính chương trình grep sẽ đứng ra tự mở file a.txt, đọc dữ liệu bên trong, tìm từ "em" và in kết quả ra màn hình.

  • Bản chất: grep làm tất cả công việc từ mở file -> đọc file -> tìm kiếm.

grep em < a.txt (Dùng chuyển hướng đầu vào <)

  • Cách hoạt động: Bạn không đưa file a.txt cho lệnh grep. Thay vào đó, Shell (Trình quản lý dòng lệnh) sẽ đứng ra mở file a.txt trước, rồi dùng toán tử < để "bơm" toàn bộ nội dung file đó vào luồng đầu vào chuẩn (stdin) của lệnh grep. Lệnh grep lúc này chỉ nhận dữ liệu từ luồng vào chứ hoàn toàn không biết dữ liệu đó đến từ file tên là gì.

  • Bản chất: Shell mở file và đẩy dữ liệu cho grep xử lý.

image.webp

less

ệnh less là một công cụ xem nội dung file văn bản theo từng trang (viewer / pager) rất phổ biến trong Linux.

Nó thường được dùng để đọc các file văn bản có kích thước lớn (như file log /var/log/syslog hoặc các file cấu hình hệ thống) vì không tải toàn bộ file vào RAM, giúp mở file rất nhanh mà không lo đơ hay giật máy.

code
less tên_file

image.webp

more

Giống less nhưng mà chỉ có thể enter để xem xuống.

Xem 10 dòng đầu tiên hoặc n dòng đầu tiên

code
head -n file

tail

Xem 10 dòng cuối hoặc n dòng cuối

code
tail -n file

Có tùy chọn -f để xem dynamic log.

cat

lệnh xem đội dung

cut

Lệnh cut trong Linux là công cụ dùng để trích xuất (cắt) các cột, khoảng ký tự hoặc trường dữ liệu (fields) ra khỏi từng dòng của một file hoặc từ luồng dữ liệu đầu vào.

Nó đặc biệt hữu ích khi bạn muốn xử lý các file dữ liệu dạng bảng, file log, hoặc file cấu hình hệ thống ngăn cách bởi dấu hai chấm (như /etc/passwd), dấu phẩy (CSV), dấu tab...

code
cut [các_tùy_chọn] file_dữ_liệu

image.webp

awk

Lệnh awk là một ngôn ngữ kịch bản (scripting language) và công cụ dòng lệnh cực kỳ mạnh mẽ trong Linux, chuyên dùng để xử lý dữ liệu dạng bảng, trích xuất cột và báo cáo dữ liệu.

Nếu như lệnh cut chỉ cắt được các cột đơn giản, thì awk có thể thực hiện các phép tính toán, lọc điều kiện phức tạp, tìm kiếm chuỗi và định dạng lại dữ liệu đầu ra theo ý muốn.

Extend mode in vim

  • Thay thế từ này thành từ khác

:%s/từ1/từ2

Nếu thay thành không có gì thìu là //g

sed

sed -i 's/coronavirus/covid19/g' samplefile.txt

-i (In-place): Tùy chọn này bảo Linux hãy ghi đè trực tiếp những chỉnh sửa đó vào file samplefile.txt.

Sau khi chạy xong lệnh có cờ -i, gõ cat samplefile.txt bạn sẽ thấy file đã chính thức bị thay đổi hoàn toàn thành covid19.

Redirection

Không show kết quả ra terminal mà mình sẽ để nó ở trong file.

có thể là như sau uptime > c.txt. Nếu muốn thêm vào cuối thì dùng >>

free -h

Check ram của hệ thống.

df -h

Check disk của hệ thống

/dev/null

Trong Linux, /dev/null (trong hình bài học đang viết là /dev/null) là một file thiết bị đặc biệt được gọi là "lỗ đen" (black hole) hoặc "thùng rác dữ liệu" của hệ thống.

Mã số luồng dữ liệu chuẩn trong Linux:

0: stdin (Đầu vào chuẩn - bàn phím)

1: stdout (Đầu ra chuẩn - kết quả chạy đúng)

2: stderr (Đầu ra lỗi - thông báo lỗi)

image.webp