Linux

Linux’ta Can Kurtaran 14 Grep Komutu Kullanımı

Linuxta Can Kurtaran 14 Grep Komutu Kullanimi3
Share

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:

Linuxta Can Kurtaran 14 Grep Komutu Kullanimi

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ı,

Linuxta Can Kurtaran 14 Grep Komutu Kullanimi2

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
Linuxta Can Kurtaran 14 Grep Komutu Kullanimi3

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ı,

Linuxta Can Kurtaran 14 Grep Komutu Kullanimi4

 

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
Linuxta Can Kurtaran 14 Grep Komutu Kullanimi5

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
Linuxta Can Kurtaran 14 Grep Komutu Kullanimi6

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
Linuxta Can Kurtaran 14 Grep Komutu Kullanimi7

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
Linuxta Can Kurtaran 14 Grep Komutu Kullanim8

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.