Ana içeriğe geç
Modül 3 · Ders 2 ders 2Kurstaki 7/11~15 min
Modül dersleri (2/2)

Boru hatları ve filtreler (grep ve |)

Linux komut satırının en güçlü özelliklerinden biri, farklı komutları bağlayarak birinin çıktısının bir sonrakinin girdisi olabilmesidir. Bu teknik boru hatları kullanılarak gerçekleştirilir ve genellikle grep metin filtreleme komutuyla eşleştirilir.


Filtreleme Metni: grep

grep (Global Normal İfade Yazdırma) komutu, bir veya daha fazla dosya içinde belirli bir metin dizesini arar ve eşleşen satırları yazdırır:

Bash
grep "string" [file_name]

grep için Faydalı Seçenekler

  • grep -i "error" server.log: büyük/küçük harfe duyarlı olmayan bir arama gerçekleştirir (büyük harf ve küçük harf arasındaki farkı yok sayarak "Hata", "hata" veya "HATA"yı bulur).
  • grep -n "connection" server.log: Eşleşen satırla birlikte satır numarasını görüntüler.
  • grep -v "INFO" server.log: Aramayı tersine çevirir ve yalnızca belirtilen anahtar kelimeyi içermeyen satırları görüntüler.

Komutların Zincirlenmesi: Boru Hattı |

Boru hattı operatörü | dikey çubuğuyla temsil edilir. Soldaki komutun standart çıktısını doğrudan sağdaki komutun standart girişine gönderir:

Bash
[command1] | [command2]

Örneğin, bir günlük dosyası çok büyükse ve tüm dosyayı yazdırmadan belirli bir kelimeyi aramak istiyorsanız, cat ve grep'yi birleştirebilirsiniz:

Bash
cat logs/server.log | grep ERROR

Bu, server.log dosyasının tamamını cat ile okur, ancak ekrana yazdırmak yerine akışı yalnızca "ERROR" kelimesini içeren satırları filtreleyen ve görüntüleyen grep'ye yönlendirir.


Kullanım Örnekleri ve Yaygın Hatalar

Yalnızca büyük harf içeren bir dosyada (örneğin "POST") küçük harfli bir kelime ararsanız (örneğin "post"), grep hiçbir şey döndürmez:

Bash
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)

Büyük/küçük harfe bakılmaksızın satırı bulmak için -i bayrağını kullanın:

Bash
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234

Belirtilen dosya mevcut değilse, grep bir hata döndürecektir:

Bash
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directory

Kendin dene

Alıştırma 1: Günlük dosyalarındaki hataları arayın

Egzersiz#linux.m3.l2.e1
Denemeler: 0Yükleniyor…

'logs/server.log' dosyasını yalnızca 'ERROR' sözcüğünü (büyük/küçük harfe duyarlı) içeren satırları ayıklamak ve görüntülemek için filtreleyin.

Düzenleyici yükleniyor…
İpucu göster

Grep komutunu ve ardından aranacak sözcüğü ve dosya yolunu kullanın.

3 denemeden sonra çözüm mevcut

Alıştırma 2: Boru hatları ve filtreler

Egzersiz#linux.m3.l2.e2
Denemeler: 0Yükleniyor…

'logs/server.log' dosyasını okumak için cat komutunu kullanın ve yalnızca 'WARNING' sözcüğünü içeren satırları filtrelemek ve yazdırmak için çıktısını grep komutuna aktarın (|).

Düzenleyici yükleniyor…
İpucu göster

'|' kanalını kullanarak cat logs/server.log'u grep WARNING'e bağlayın karakter.

3 denemeden sonra çözüm mevcut

Alıştırma 3: Büyük/küçük harfe duyarlı olmayan arama

Egzersiz#linux.m3.l2.e3
Denemeler: 0Yükleniyor…

Uygun grep bayrağını kullanarak 'logs/access.log' dosyasında 'post' kelimesini (büyük veya küçük harf) içeren tüm satırları arayın.

Düzenleyici yükleniyor…
İpucu göster

Büyük/küçük harf duyarlılığını göz ardı etmek için grep'i -i seçeneğiyle birlikte kullanın.

3 denemeden sonra çözüm mevcut