Grep: Học Shell Scripting sử dụng Grep Terminal Command

lệnh grep

Học Shell Scripting bằng lệnh terminal: grep

Lệnh "grep" trong Hệ điều hành tự do như GNU / Linux là một lệnh rất hữu ích và có giá trị. Tên của nó xuất phát từ cụm từ trong tiếng Anh: «Global Regular Expression Print» và nó được sử dụng để thực hiện nhiệm vụ tìm kiếm, đối sánh và hiển thị một mẫu tìm kiếm hoặc một biểu thức chính quy của một (1) tệp hoặc một số tệp văn bản.

Về cơ bản, lệnh «grep» tìm kiếm mẫu được chỉ ra trong các tham số của lệnh lệnh và in kết quả thu được sau các chỉ dẫn của các tham số của lệnh lệnh, có thể là: Màn hình hoặc Tệp đầu ra.

Giới thiệu về lệnh "grep"

Đã có trong các ấn phẩm trước khác của cùng một blog, chẳng hạn như bài viết này «Một số lệnh cơ bản trên ...»Chúng ta đã thảo luận về cách sử dụng cơ bản của lệnh tuyệt vời này, nhưng Trong ấn phẩm này, chúng ta sẽ thấy cách sử dụng lệnh "grep" ở mức trung bình và nâng cao hơn trong các lệnh chức năng và hữu ích có thể hỗ trợ một số tác vụ thực tế nhất định. trong các tập lệnh shell của chúng tôi hoặc trực tiếp trên thiết bị đầu cuối để đạt được kết quả tức thì hơn về một tác vụ cụ thể sẽ được thực hiện.

Ví dụ thực tế

Xem vị trí / vị trí của chúng tôi

in nội dung của thư mục hiện tại của chúng tôi bằng cách sử dụng cây thư mục đồ họa:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

Ví dụ:

Grep: Thư mục giống cây

Tạo mật khẩu ngẫu nhiên có độ dài 30 ký tự

Tạo chuỗi ngẫu nhiên bên trong / dev / urandom, sau đó chọn và hiển thị một (1) duy nhất bằng bộ lọc với lệnh «grep» chỉ cho các ký tự chữ và số, với điều kiện kích thước của 30 ký tự đầu tiên, loại bỏ tất cả các nguồn cấp dòng.

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

Ví dụ:

Grep: Tạo mật khẩu

Tạo một bản tóm tắt đồ họa về các kết nối

Xem ở dạng đồ họa (bảng) và tóm tắt số lượng kết nối mạng bên trong và bên ngoài được phát hiện bởi lệnh "netstat" của một máy chủ tại một thời điểm nhất định.

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

Ví dụ:

Grep: Biểu đồ kết nối Netstat

Nó cũng có thể được sử dụng để tạo một bảng tóm tắt về số lượng kết nối theo loại của chúng, như được hiển thị bên dưới:

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

Ví dụ:

Grep: Bảng Tóm tắt với Netstat

Tìm một chuỗi (mẫu) trong một đường dẫn

Định vị và hiển thị tất cả các kết quả phù hợp của một mẫu trong tên tệp hoặc nội dung tệp. Việc sử dụng các tham số để đạt được điều này là: -R (Lặp lại cho các thư mục con), -n (Hiển thị số dòng của các kết quả phù hợp), -i (Bỏ qua chữ hoa và chữ thường), -s (Suppress 'không tồn tại thông báo "Và" không thể được đọc "), -I (Bỏ qua các mã nhị phân trong tìm kiếm).

grep -RnisI  *

Grep: Tìm các mẫu trong tệp và thư mục

Nó cũng có thể được sử dụng theo cách nâng cao hơn nếu được sử dụng trong dấu nhắc lệnh với lệnh "tìm" để định vị một mẫu trong một loại tệp được xác định trước. như hình bên dưới:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep: Tìm kiếm các mẫu trong tệp

Biết số lượng dữ liệu trong bộ nhớ RAM

Điều này rất hữu ích để biết chính xác có bao nhiêu dữ liệu (thông tin) đang chờ được ghi vào đĩa cứng và cần phải khởi động lại hoặc tắt máy tính.

grep ^Dirty /proc/meminfo

Grep: Dữ liệu trong RAM

Biết địa chỉ IP WAN của chúng tôi

Luôn luôn rất hữu ích khi biết IP WAN của chúng tôi tự động từ thiết bị đầu cuối và sau đó chuyển tham số đó cho một tác vụ tự động khác. Ví dụ này sử dụng dịch vụ DynDNS để lấy nó.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep: Biết IP WAN của chúng tôi

Liệt kê các thiết bị được kết nối với một phân đoạn Mạng

Sử dụng vòng lặp for với lệnh "ping" và lọc kết quả bằng lệnh "grep", chúng ta có thể xác thực máy tính của mình được kết nối với mạng có bật dịch vụ ping mà không cần đến công cụ NMap.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

Ví dụ:

Để liệt kê trường địa chỉ IP được theo dõi, bạn có thể sử dụng dòng này nâng cao hơn, lọc kết quả của lệnh "grep" bằng cách sử dụng lệnh "awk" và "cut", như được hiển thị bên dưới:

for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1

Ví dụ:

Grep: Danh sách IP LAN

Các ví dụ này về các dòng lệnh sử dụng lệnh grep. Và chúng có thể được sử dụng để sử dụng trực tiếp từ bảng điều khiển hoặc gián tiếp bằng cách chèn chúng vào một tập lệnh (tác vụ tự động).

Trong bài tiếp theo về Shell Scripting, chúng ta sẽ khám phá các lệnh khác.

Nếu bạn muốn tìm hiểu thêm một chút về lệnh «grep», hãy truy cập liên kết này «DEBIAN Wiki»Và nếu bạn muốn tìm hiểu thêm về Shell Scripting trong Blog của riêng chúng tôi, bạn có thể xem các ấn phẩm khác của chúng tôi về chủ đề này, bằng cách nhấp vào đây: Viết kịch bản DesdeLinux


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Leandro dijo

    Bài viết rất hay, cảm ơn rất nhiều.

  2.   Cài đặt bài đăng trên Linux dijo

    Không có gì phải lo! Bây giờ đến một với lệnh Sed.