Linux’ta Can Kurtaran 14 Grep Komutu Kullanımı
Linux grep komutunda uygulamalı kılavuz mu arıyorsunuz? Bu kılavuzda linux’ta 14 grep komut örneğini ele alacağız.
Grep, Linux/Unix sistemlerinde bir dosyadan metin veya dize aramak için kullanılan bir komut satırı aracıdır. Grep, küresel düzenli ifade baskısı anlamına gelir. Belirtilen dizge ile bir grep komutu çalıştırdığımızda, eğer eşleşirse, mevcut dosyanın içeriğini değiştirmeden o dizgiyi içeren dosyanın satırını gösterecektir.
grep komutunun sözdizimi
$ grep <Seçenekler> <Arama Dizisi> <Dosya Adı>
Seçenekler:
Daha fazla gecikmeden grep komut örneklerine derinlemesine bakalım.
1) Bir dosyada bir kelime veya dize arama
Grep komutunu ve ardından arama dizesini veya desenini çalıştırdığımızda, bir dosyanın eşleşen satırını yazdıracaktır. Örnek aşağıda gösterilmiştir.
/etc/passwd dosyasında “nobody” kelimesini arayın,
$ grep nobody /etc/passwd nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
2) Birden fazla dosyada desen arama
Grep komutu kullanılarak birden fazla dosyada bir kelime veya kalıp aranabilir. /etc/passwd, /etc/shadow ve /etc/gshadow dosyalarında ‘sunucucozumleri’ kelimesini aramak için aşağıdakileri çalıştırın.
$ sudo grep sunucucozumleri /etc/passwd /etc/shadow /etc/gshadow
Çıktı,
3) Desenle eşleşen dosya adlarını yazdırın
Diyelim ki ‘root’ kelimesini içeren dosya isimlerini listelemek istiyoruz, bunu yapmak için grep komutunda ‘-l’ seçeneğini ve ardından word (pattern) ve dosyaları kullanın.
$ grep -l 'root' /etc/fstab /etc/passwd /etc/mtab /etc/passwd
4) Satır numarasını çıkış satırlarıyla görüntüleyin
Desen veya kelimeyle eşleşen satırı ve numarasını görüntülemek için grep komutunda ‘-n’ seçeneğini kullanın . Aşağıdaki örnekte, kalıp ‘hiç kimse’dir
$ grep -n 'nobody' /etc/passwd 18:nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
5) Desen eşleşmesini ters çevirin
Grep komutunda ‘-v’ seçeneğini kullanarak kalıba uymayan satırları görüntüleyebiliriz.
$ grep -v 'nobody' /etc/passwd
6) Belirli bir desenle başlayan tüm satırları yazdırın
Bash kabuğu, şapka sembolünü (^) satırın veya kelimenin başlangıcını işaretleyen özel bir karakter olarak ele alır. /etc/passwd dosyasında “backup” kelimesi ile başlayan satırları gösterelim, run
$ grep ^backup /etc/passwd backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
7) Belirli bir kelime ile biten tüm satırları yazdırın
Bash kabuğu dolar sembolünü ‘$’ satır veya kelimenin sonlarını işaretleyen özel bir karakter olarak ele alır. /etc/passwd’nin ” bash ” kelimesi ile biten tüm satırlarını listeleyin .
$ grep bash$ /etc/passwd root:x:0:0:root:/root:/bin/bash sunucucozumleri:x:1000:1000:sunucucozumleri,,,:/home/sunucucozumleri:/bin/bash
8) Deseni yinelemeli olarak aramak
grep komutundaki ‘-r’ seçeneği , klasör ve alt klasörlerde yinelemeli olarak desen aramak için kullanılır. Diyelim ki, /etc klasöründe yinelemeli olarak bir ‘nologin’ kalıbı aramak istiyoruz.
$ sudo grep -r nobody /etc /etc/shadow:nobody:*:19101:0:99999:7::: /etc/shadow-:nobody:*:19101:0:99999:7::: /etc/passwd:nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin /etc/ssh/sshd_config:#AuthorizedKeysCommandUser nobody /etc/passwd-:nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
Yukarıdaki komut, “/etc” dizininde ‘hiç kimse’ kalıbını yinelemeli olarak arayacaktır.
9) Bir dosyanın tüm boş satırlarını yazdırın
Grep komutu ayrıca bir dosyadaki tüm boş veya boş satırları ‘^$’ özel karakter kombinasyonunu kullanarak yazdırabilir , örnek aşağıda gösterilmiştir:
$ grep '^$' /etc/sysctl.conf
çıktı,
Boş satırların satır numaralarını yazdırmak için şunu çalıştırın:
$ grep -n '^$' /etc/sysctl.conf
10) Arama yaparken harf durumunu yoksay
grep komutundaki ‘-i’ seçeneği , kalıplar ve verilerdeki büyük/küçük harf farklarını yok sayar. ‘-i’ kullandığımızda arama yaparken büyük harf veya küçük harf ayrımı yapmayacaktır.
sysctl.conf dosyasında ‘IP_Forward’ dizesini aramak istediğimizi varsayalım, çalıştırın
$ grep IP_Forward /etc/sysctl.conf $ $ grep -i IP_Forward /etc/sysctl.conf #net.ipv4.ip_forward=1
Grep komutu, ‘-w’ seçeneği kullanılarak yalnızca tam sözcükleri eşleştirmek için de kullanılabilir, örnek aşağıda gösterilmiştir,
$ sudo sysctl -a | grep -w 'vm.swappiness' vm.swappiness = 60
Yukarıdaki komut tam olarak “ vm.swappiness” kelimesi olan satırları arayacak ve arayacaktır .
11) Birden çok kalıbı eşleştirme
grep komutundaki ‘-e’ seçeneği sayesinde tek bir komutta birden fazla örüntü arayabiliriz. Örnek belpw listelenmiştir:
$ grep -e nobody -e mail /etc/passwd mail:x:8:8:mail:/var/mail:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin $ or $ grep -E "nobody|mail" /etc/passwd mail:x:8:8:mail:/var/mail:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
12) Bir dosyadan desen alır
grep komutundaki ‘-f’ seçeneği dosyadan kalıp almayı sağlar. Örnek aşağıda gösterilmiştir:
Önce mevcut çalışma dizininizde “grep_pattern” adında bir arama kalıbı dosyası oluşturun. Benim durumumda içine aşağıdaki içeriği koyun.
$ cat grep_pattern ^sunucucozumleri.com root false$ $
Şimdi grep_pattern dosyasını kullanarak aramayı deneyin.
$ grep -f grep_pattern /etc/passwd
13) Desenle eşleşen satır sayısını sayın
Arama düzeniyle eşleşen satır sayısını saymak istiyorsanız grep komutunda ‘-c’ seçeneğini kullanın.
/etc/password dosyasında false word ile biten satırların sayısını saymak istediğimizi düşünelim.
$ grep -c false$ /etc/passwd
6
14) Desen eşleştirmeden önce ve sonra N satır yazdır
Grep komutu ayrıca -B ve -A seçeneklerini kullanarak desen eşleştirmeden önce ve sonra n sayıda satır yazdırabilir.
a) Desen eşleştirmeden önce dört satır yazdırın
$ grep -B 4 "games" /etc/passwd
b) Desen eşleştirmeden sonra dört satır yazdırın, grep komutunda -A seçeneğini kullanın
$ grep -A 4 "games" /etc/passwd
c) Eşleşen desenin etrafına dört satır yazdırın, -C seçeneğini kullanın
$ grep -C 4 "games" /etc/passwd
Umarım bu örnekler linux’ta grep komutunu nasıl daha verimli kullanacağınızı anlamanıza yardımcı olur. Lütfen sorularınızı ve geri bildirimlerinizi aşağıdaki yorumlar bölümüne gönderin.