Pardus Linux'ta uniq Komutu: Yinelenen Satırlarla Başa Çıkma

Pardus Linux, metin dosyalarını terminal üzerinden hızlı ve etkili bir şekilde işlemek için çok çeşitli araçlara sahiptir. Bu araçlardan biri olan uniq (unique - benzersiz), metin dosyalarındaki yinelenen (tekrar eden) satırları bulmak, saymak veya silmek için kullanılan vazgeçilmez bir komuttur.

Özellikle log (günlük) dosyalarını incelerken, veri temizliği yaparken veya listeleri düzenlerken uniq komutu hayat kurtarır.


1. uniq Komutunun Altın Kuralı: Neden sort ile Kullanılır?

uniq komutuyla ilgili bilinmesi gereken en önemli ve en sık gözden kaçan kural şudur: uniq komutu, yalnızca art arda gelen (yan yana olan) yinelenen satırları algılar.

Eğer aynı kelime dosyanın başında ve sonunda geçiyorsa, uniq bunları kopya olarak değerlendirmez. Bu nedenle, uniq komutu neredeyse her zaman sort (sıralama) komutu ile birlikte (pipe | kullanılarak) çalıştırılır.

Örnek Veri Dosyası: liste.txt

Çalışmalarımız için aşağıdaki içeriğe sahip bir liste.txt dosyası oluşturalım:

Plaintext:
Pardus
Pardus
Linux
Debian
Linux
Açık Kaynak
pardus

Temel Kullanım:

Eğer sadece uniq liste.txt yazarsak, çıktı şu olur:

Bash:
Pardus
Linux
Debian
Linux
Açık Kaynak
pardus

Dikkat ederseniz, araya "Debian" girdiği için iki "Linux" satırı teke düşürülmedi.

Doğru Kullanım (sort ile):

Bash:
sort liste.txt | uniq

Çıktı:

Bash:
Açık Kaynak
Debian
Linux
Pardus
pardus

Artık tüm satırlar alfabetik olarak sıralandığı için uniq komutu tüm tekrarları yakalayabildi.


2. En Sık Kullanılan uniq Parametreleri

uniq komutunun gücü, aldığı parametrelerde (seçeneklerde) gizlidir.

A. Yinelenen Satırları Saymak (-c / --count)

Her bir satırın metin içinde kaç kez tekrar ettiğini görmek istiyorsanız -c parametresini kullanabilirsiniz. Bu, özellikle en çok tekrar eden hataları veya kelimeleri bulmak için harikadır.

Bash:
sort liste.txt | uniq -c

Çıktı:

Bash:
      1 Açık Kaynak
      1 Debian
      2 Linux
      2 Pardus
      1 pardus

B. Sadece Yinelenen Satırları Göstermek (-d / --repeated)

Dosyanızda sadece tekrar eden (birden fazla kez yazılmış) satırları listelemek isterseniz -d parametresini kullanmalısınız.

Bash:
sort liste.txt | uniq -d

Çıktı:

Bash:

Linux
Pardus

C. Sadece Benzersiz (Hiç Tekrar Etmeyen) Satırları Göstermek (-u / --unique)

Dosyada eşi benzeri olmayan, sadece bir kez geçen satırları bulmak için -u kullanılır.

Bash:

sort liste.txt | uniq -u

Çıktı:

Bash:
Açık Kaynak
Debian
pardus

D. Büyük/Küçük Harf Duyarlılığını Kapatmak (-i / --ignore-case)

Linux terminali varsayılan olarak büyük/küçük harf duyarlıdır (Case-sensitive). Yani "Pardus" ve "pardus" iki farklı kelime olarak algılanır. Bunları aynı kabul etmek için -i parametresini ekleriz.

Bash:
sort liste.txt | uniq -ic

Çıktı:

Bash:
      1 Açık Kaynak
      1 Debian
      2 Linux
      3 Pardus

Gördüğünüz gibi "Pardus" ve "pardus" birleşerek 3 sayısına ulaştı.


3. Gelişmiş Kullanımlar (Alan ve Karakter Atlama)

Bazen satırların tamamını değil, sadece belirli bir kısmını karşılaştırmak isteyebilirsiniz. (Örneğin, satırların başında tarih veya saat olan bir log dosyasında çalışırken).

  • -f N (N kadar alanı atla): İlk N adet kelimeyi (boşluklarla ayrılmış alanları) görmezden gelir.

  • -s N (N kadar karakteri atla): İlk N adet harfi/karakteri görmezden gelir.

Örnek Senaryo: Bir log dosyasında (sistem.log) sadece yapılan işlemleri karşılaştırmak istiyorsunuz, saatleri değil:

Plaintext:
10:15 Giris_Yapildi
10:18 Giris_Yapildi
10:20 Hata_Alindi

Saatleri görmezden gelip (ilk alanı atlayıp) tekrar eden eylemleri saymak için:

Bash:
uniq -c -f 1 sistem.log

Çıktı:

Bash:
      2 10:15 Giris_Yapildi
      1 10:20 Hata_Alindi

Özet

Pardus Linux'ta uniq komutu, metin verisi işleme zincirinin en önemli halkalarından biridir.

  • Unutmayın, en iyi sonucu almak için verinizi önce sort ile sıralayın.

  • Veri analizi için -c (sayma), sadece kopyaları görmek için -d, ve sadece tekil veriler için -u parametrelerini aklınızda bulundurun.

Bu araçları birleştirerek Pardus sisteminizdeki logları, kullanıcı listelerini veya büyük metin dosyalarını saniyeler içinde analiz edebilirsiniz.

uniq komutu, Linux sistemlerinde ardışık tekrar eden satırları tespit etmek, filtrelemek veya saymak için kullanılan güçlü bir metin işleme aracıdır. Özellikle log dosyaları, kullanıcı listeleri, raporlar ve veri analizlerinde sıkça kullanılır.

Pardus Linux gibi GNU/Linux dağıtımlarında uniq, metin işleme zincirlerinin önemli parçalarından biridir ve genellikle sort, cat, grep gibi komutlarla birlikte kullanılır.


uniq Komutunun Temel Görevi

uniq komutu:

  • Tekrarlanan satırları kaldırabilir

  • Sadece tekrar eden satırları gösterebilir

  • Sadece benzersiz satırları listeleyebilir

  • Satırların kaç kez tekrar ettiğini sayabilir


Temel Kullanım Yapısı

uniq [seçenekler] dosya

Örnek:

uniq liste.txt

Önemli Bir Detay: uniq Sadece Ardışık Satırları Kontrol Eder

Örneğin:

elma
elma
armut
muz
muz

Burada tekrar eden satırlar yan yana olduğu için uniq bunları algılar.

Ancak:

elma
armut
elma
muz

Burada elma tekrar etse bile yan yana olmadığı için tekrar olarak algılanmaz.

Bu yüzden çoğu zaman sort ile birlikte kullanılır.


Örnek Dosya Oluşturalım

nano meyve.txt

İçerik:

elma
elma
armut
muz
muz
kiraz

Basit Kullanım

uniq meyve.txt

Çıktı:

elma
armut
muz
kiraz

Tekrar eden satırlar kaldırılmış olur.


sort ile Birlikte Kullanım

Karışık sıralı veri:

muz
elma
armut
elma
muz

Şu şekilde kullanılmalıdır:

sort meyve.txt | uniq

Çıktı:

armut
elma
muz

En Sık Kullanılan Seçenekler

SeçenekAçıklama
-c                Tekrar sayısını gösterir
-d                Sadece tekrar edenleri gösterir
-u                Sadece benzersiz olanları gösterir
-i                Büyük/küçük harf duyarsız
-f                Belirli alanları atlar
-s                Karakter atlama
--help                Yardım ekranı

-c : Tekrar Sayısını Gösterme

uniq -c meyve.txt

Çıktı:

2 elma
1 armut
2 muz
1 kiraz

Bu özellik log analizlerinde çok kullanılır.


-d : Sadece Tekrar Edenleri Gösterme

uniq -d meyve.txt

Çıktı:

elma
muz

-u : Sadece Tek Olan Satırlar

uniq -u meyve.txt

Çıktı:

armut
kiraz

-i : Büyük/Küçük Harf Duyarsız

Dosya:

Linux
linux
LINUX
Pardus

Komut:

uniq -i dosya.txt

Büyük-küçük harf farkını yok sayar.

Genellikle:

sort -f dosya.txt | uniq -i

şeklinde kullanılır.


sort + uniq Gerçek Gücü

Tekil Kullanıcı Listesi Çıkarma

sort kullanicilar.txt | uniq

IP Adreslerini Sayma

sort access.log | uniq -c

En Çok Tekrarlanan Satırları Bulma

sort access.log | uniq -c | sort -nr

Örnek çıktı:

120 192.168.1.10
85 192.168.1.5
40 10.0.0.1

Bu yöntem siber güvenlik analizlerinde oldukça önemlidir.


cut ile Birlikte Kullanım

CSV dosyalarında belirli sütunları benzersiz hale getirme:

cut -d: -f1 /etc/passwd | sort | uniq

Açıklama:

  • cut kullanıcı isimlerini alır

  • sort sıralar

  • uniq tekrarları kaldırır


awk ile Karşılaştırma

Bazı durumlarda awk daha gelişmiş filtreleme sağlar.

Örnek:

awk '!seen[$0]++' dosya.txt

Bu yöntem ardışık olmayan tekrarları da kaldırır.

Ancak uniq:

  • Daha hızlıdır

  • Daha basittir

  • Sistem araç zincirlerinde yaygın kullanılır


Log Analizi Örneği

Hataları Sayma

grep "ERROR" sistem.log | sort | uniq -c

Çıktı:

15 Disk error
3 Permission denied
7 Connection timeout

Güvenlik Analizi Örneği

Başarısız SSH Girişlerini Sayma

grep "Failed password" auth.log | sort | uniq -c | sort -nr

Siber güvenlik uzmanları bu yöntemi brute-force saldırılarını analiz etmek için kullanır.


uniq ve Pipe (|) Kullanımı

Linux’ta en güçlü kullanım şekli pipe ile olur.

Örnek:

cat dosya.txt | sort | uniq

Daha kısa hali:

sort dosya.txt | uniq

Gerçek Hayatta Kullanım Alanları

Sistem Yönetimi

  • Kullanıcı listeleri

  • Log analizi

  • Hata kayıtları

Siber Güvenlik

  • Şüpheli IP analizi

  • Saldırı tekrarları

  • Log temizleme

Veri Analizi

  • Tekrarlı kayıt temizleme

  • Veri filtreleme

  • Rapor hazırlama


Performans Avantajı

uniq:

  • Çok hafiftir

  • Büyük dosyalarda hızlıdır

  • Pipe işlemlerinde verimlidir

Özellikle milyonlarca satırlık log dosyalarında ciddi avantaj sağlar.


Yardım ve Manual Sayfası

Yardım

uniq --help

Manual Sayfası

man uniq

Özet

uniq komutu:

  • Tekrarlı satırları filtreler

  • Benzersiz verileri çıkarır

  • Log analizinde çok kullanılır

  • sort ile birlikte daha güçlü çalışır

  • Sistem yöneticileri ve siber güvenlik uzmanları için temel araçlardan biridir

Linux terminal kullanımında öğrenilmesi gereken en önemli metin işleme komutlarından biridir.


Faydalı Komut Özeti

uniq dosya.txt
uniq -c dosya.txt
uniq -d dosya.txt
uniq -u dosya.txt
sort dosya.txt | uniq
sort dosya.txt | uniq -c
sort log.txt | uniq -c | sort -nr

Linux sistemlerinde kullanılan uniq komutu, ilk bakışta basit bir metin filtreleme aracı
gibi görünse de siber güvenlik alanında oldukça önemli görevler üstlenir.
Özellikle log analizi, saldırı tespiti, olay müdahalesi (Incident Response),
tehdit avcılığı (Threat Hunting) ve dijital adli analiz süreçlerinde sıkça kullanılır.

Siber Güvenlikte Neden Önemlidir?

Siber güvenlik uzmanları çoğu zaman:

  • Devasa log dosyaları

  • Ağ kayıtları

  • Kimlik doğrulama kayıtları

  • Firewall logları

  • Web sunucu erişim kayıtları

  • IDS/IPS çıktılarını

incelemek zorundadır.

Bu kayıtların içinde tekrar eden olayları bulmak kritik öneme sahiptir.

İşte burada uniq devreye girer.


En Temel Görevi: Tekrarlayan Olayları Ortaya Çıkarmak

Saldırılar genellikle tekrar eden davranışlar üretir:

  • Aynı IP’den yüzlerce giriş denemesi

  • Aynı hatanın sürekli oluşması

  • Aynı kullanıcıya yapılan saldırılar

  • Sürekli tekrar eden HTTP istekleri

uniq, bu tekrarları görünür hale getirir.


Brute Force Saldırılarını Tespit Etme

Örnek:

grep "Failed password" auth.log | sort | uniq -c | sort -nr

Bu komut:

  1. Başarısız girişleri bulur

  2. Sıralar

  3. Tekrar sayılarını hesaplar

  4. En çok tekrar edenleri üstte gösterir

Örnek çıktı:

150 192.168.1.55
80 10.0.0.8
20 172.16.1.10

Burada:

  • Çok sayıda başarısız deneme yapan IP’ler

  • Olası brute-force saldırganları

  • Şüpheli hareketler

kolayca tespit edilir.


Log Analizinde Gücü

Siber güvenlikte log analizi en önemli alanlardan biridir.

uniq sayesinde:

  • Aynı hata kaç kez olmuş?

  • En çok hangi IP bağlanmış?

  • Hangi kullanıcı sürekli hata alıyor?

  • En sık görülen saldırı tipi nedir?

gibi sorular hızlıca cevaplanabilir.


Web Sunucu Saldırı Analizi

Apache veya Nginx loglarında:

cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr

Bu analiz:

  • En fazla istek atan IP’leri

  • DDoS belirtilerini

  • Bot aktivitelerini

  • Tarama (scanning) yapan sistemleri

ortaya çıkarabilir.


Zararlı Yazılım Analizinde Kullanımı

Malware analizlerinde bazı dosyalar tekrar eden:

  • domain adresleri

  • IP’ler

  • hata mesajları

  • API çağrıları

üretebilir.

Örnek:

strings malware.exe | sort | uniq

Bu yöntem:

  • Tekrarlı verileri temizler

  • Analizi sadeleştirir

  • IOC (Indicator of Compromise) bulmayı kolaylaştırır


Tehdit Avcılığı (Threat Hunting)

Tehdit avcıları büyük veri kümeleri üzerinde çalışır.

Örneğin:

cat dns.log | sort | uniq -c | sort -nr

Bu analizle:

  • Şüpheli DNS sorguları

  • Sürekli tekrar eden alan adları

  • C2 (Command & Control) iletişimleri

tespit edilebilir.


SIEM Sistemleri ile Benzer Mantık

Modern SIEM sistemleri:

  • Splunk

  • ELK Stack

  • Graylog

  • QRadar

arka planda aslında benzer mantıkla çalışır:

  • tekrar eden olayları sayar,

  • anomalileri bulur,

  • yoğunluk analizi yapar.

uniq bu mantığın terminal seviyesindeki en temel araçlarından biridir.


Dijital Adli Analizde Kullanımı

Adli bilişim uzmanları:

  • hash listeleri,

  • kullanıcı kayıtları,

  • dosya isimleri,

  • olay günlükleri

üzerinde tekrar analizi yapar.

Örnek:

sort hashes.txt | uniq -d

Bu komut tekrar eden hash değerlerini bulabilir.


IOC (Indicator of Compromise) Analizi

IOC listelerinde tekrar eden veriler analiz edilir.

Örnek:

cat ioc.txt | sort | uniq -c

Bu sayede:

  • En yaygın IOC’ler

  • En sık görülen zararlı IP’ler

  • Tekrarlayan saldırı altyapıları

belirlenebilir.


Performans Avantajı

Siber güvenlik analizlerinde veri miktarı çok büyüktür.

uniq:

  • Çok hafiftir

  • RAM kullanımını düşük tutar

  • Büyük loglarda hızlı çalışır

  • Pipe yapılarında çok verimlidir

Bu nedenle SOC ekipleri terminal araçlarını hâlâ yoğun şekilde kullanır.


uniq Komutu Neden Hâlâ Önemli?

Grafik arayüzlü araçlar gelişmiş olsa bile:

  • SSH üzerinden hızlı analiz

  • Sunucu üstünde doğrudan inceleme

  • Acil olay müdahalesi

  • Otomasyon scriptleri

için terminal araçları vazgeçilmezdir.

uniq, Linux siber güvenlik araç zincirinin temel parçalarından biridir.


Siber Güvenlikte Sık Kullanılan uniq Komutları

En Çok Bağlanan IP’leri Bulma

awk '{print $1}' access.log | sort | uniq -c | sort -nr

Başarısız SSH Denemeleri

grep "Failed password" auth.log | sort | uniq -c

Tekrarlayan Hataları Bulma

grep "ERROR" app.log | sort | uniq -c

Şüpheli Domain Analizi

cat dns.log | sort | uniq -c | sort -nr

Sonuç

uniq komutu:

  • Siber güvenlik analizlerinde kritik rol oynar

  • Tekrarlayan olayları görünür hale getirir

  • Log analizini kolaylaştırır

  • Brute-force saldırılarını tespit etmeye yardımcı olur

  • Tehdit avcılığı süreçlerinde kullanılır

  • SIEM mantığının temelini anlamayı sağlar

Bu yüzden Linux öğrenen bir siber güvenlik uzmanının mutlaka iyi seviyede bilmesi gereken komutlardan biridir.


Siber Güvenlikte uniq Komutunun Yeri ve Önemi: Veri Yığınında İğne Aramak

Siber güvenlik uzmanları (özellikle Mavi Takım / Blue Team analistleri ve sızma testi uzmanları), her gün gigabaytlarca log (günlük) dosyası, ağ trafiği dökümü ve hedef listesiyle boğuşur. Bu devasa veri yığınları arasında manuel olarak bir şeyler bulmak imkansızdır.

İşte bu noktada uniq komutu, sort, grep ve awk gibi diğer terminal araçlarıyla birleştiğinde siber güvenliğin İsviçre Çakısına dönüşür.

Siber güvenlik operasyonlarında uniq komutunun en kritik 4 kullanım alanı şunlardır:

1. Kaba Kuvvet (Brute-Force) ve Anomali Tespiti

Saldırganlar bir sisteme (örneğin SSH veya bir web paneli) sızmaya çalıştıklarında, saniyeler içinde binlerce hatalı giriş denemesi yaparlar. Bu durum log dosyalarına aynı IP adresinden gelen binlerce satır olarak yansır.

Bir güvenlik analisti, hangi IP adresinin saldırı yaptığını bulmak için -c (sayma) parametresini kullanır.

  • Senaryo: Linux sunucusuna yapılan başarısız SSH girişlerini tespit etmek.

  • Örnek Komut Zinciri:

    Bash:
    grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
    

    Bu komut, başarısız giriş yapan IP adreslerini çıkarır, sıralar, uniq -c ile hangi IP'nin kaç kez deneme yaptığını sayar ve en çok saldıranı en üste koyar.

2. Hedef Keşfi (Reconnaissance) ve Subdomain Birleştirme

Kırmızı Takım (Red Team) veya Bug Bounty araştırmacıları, bir hedefin zafiyet yüzeyini haritalandırırken birden fazla araç kullanır (Amass, Subfinder, Assetfinder vb.). Bu araçların hepsi genellikle aynı alt alan adlarını (subdomain) bulur ve devasa karmaşık bir liste oluşur.

  • Senaryo: Farklı araçlardan elde edilen hedef listelerini tekilleştirmek.

  • Örnek Kullanım:

    Bash:
    cat amass_sonuc.txt subfinder_sonuc.txt | sort | uniq > temiz_hedefler.txt
    

    Eğer bu adım atlanırsa, otomatik tarayıcılar aynı hedefe defalarca tarama yapar. Bu hem zaman kaybıdır hem de hedefin güvenlik duvarlarına (WAF) erken yakalanmaya sebep olur.

3. Wordlist (Kelime Listesi) Optimizasyonu

Parola kırma saldırılarında (Hashcat, John the Ripper vb.) kullanılan wordlist'ler (şifre deneme sözlükleri) gigabaytlarca boyutta olabilir. İnternetten indirilen veya farklı kaynaklardan birleştirilen bu listelerde milyonlarca tekrar eden parola bulunur.

  • Senaryo: CPU/GPU işlem gücünden ve zamandan tasarruf etmek için mükerrer şifreleri silmek.

  • Örnek Kullanım:

Bash:
sort dev_wordlist.txt | uniq > optimize_wordlist.txt    *Aynı şifreyi iki kez denemek (ve hash'ini hesaplamak) siber güvenlikte affedilmeyen bir kaynak israfıdır. `uniq` bunu çözer.*

### 4. Ağ Trafiği ve Tehdit Avcılığı (Threat Hunting)
Ağ üzerinde olağandışı bir hareketlilik olduğunda, uzmanlar `tcpdump` veya `tshark` gibi araçlarla trafiği dinler. Bir bilgisayarın (belki de bir zararlı yazılımın) hangi dış IP adresleriyle iletişim kurduğunu anlamak için hedefleri tekilleştirmek gerekir.

*   **Senaryo:** Bir cihazın bağlandığı eşsiz (unique) dış IP adreslerinin listesini çıkarmak.
*   **Örnek Kullanım:**cat ag_trafigi_ipleri.txt | sort | uniq -u     *Bu sayede, normalde sürekli iletişim kurulan DNS veya Google sunucuları yerine, belki de sadece bir kez iletişim kurulmuş şüpheli bir Komuta Kontrol (C2) sunucusunun IP adresi yakalanabilir.*

---

**Özetle:**
Siber güvenlikte **"Gürültüyü azaltmak ve anomaliyi vurgulamak"** en temel kuraldır. `uniq` komutu tam olarak bu işi yapar. Milyonlarca satırlık veriyi, insan gözünün analiz edebileceği rafine ve anlamlı bir zekaya (istihbarata) dönüştürmek için siber güvenlik uzmanlarının terminalinde her gün çalıştırdığı bir komuttur.


Yorumlar