5 - Komut Satırı ve Metin İşleme Araçları
2026
Bu hafta odak noktamız:
Metin çıktısını okumak, filtrelemek, dönüştürmek ve komutları birlikte kullanmak
Bu dersin sonunda şunları yapabiliyor olmanızı bekliyorum:
| ile birleştirerek daha güçlü hale getirmekcat, tee, head, tail, more, lessgrep, wccut, tr, seddiff, sort, uniq, splitBu hafta sık göreceğimiz üç fikir:
|): bir komutun çıktısını başka bir komuta bağlarÖrnek:
Bu zincir şu soruyu yanıtlar:
Kabuk olarak /bin/bash kullanan kaç kullanıcı var?
Yeni başlayanlar için en güvenilir yöntem:
Komutu soldan sağa, her adımda “bu komut ne alıyor, ne veriyor?” diye okuyun.
Örnek:
Bu zinciri şöyle okuyabilirsiniz:
grep dosyadan satırları okur.wc -l bu satırları sayar.Bu düşünme biçimi, ileride daha uzun zincirleri de çözmenizi sağlar.
Yeni başlayanların en sık hatası: komutu ezberlemeye çalışmak.
Daha iyi yaklaşım:
Örnek:
grepwc -lhead -n 5catcat, dosya içeriğini standart çıkışa yazar.
Adı concatenate kelimesinden gelir; yani birden fazla dosyayı art arda da gösterebilir.
Beklenen çıktı:
cat ne zaman uygun?Uygun olduğu durumlar:
Uzun dosyalarda çoğu zaman less daha uygundur.
teetee, gelen veriyi hem ekrana yazar hem de dosyaya kaydeder.
Bu, özellikle boru hattında çok kullanışlıdır.
Beklenen sonuç:
Merhaba görünürmetin.txt dosyasına yazılırtee neden faydalı?Örneğin bir komut çıktısını hem görmek hem saklamak isteyebilirsiniz:
Dosyanın sonuna eklemek için:
Not: tee, geçen haftaki > ve >> yönlendirmelerinin daha esnek bir akrabası gibi düşünülebilir.
head ve tailBir dosyanın tamamını görmek yerine bazen sadece başını veya sonunu görmek isteriz.
head: ilk satırlartail: son satırlarVarsayılan olarak genelde 10 satır gösterirler.
head örnekleri-n: satır sayısı-c: byte sayısıBirden fazla dosya verilirse hangi çıktının hangi dosyaya ait olduğu başlıklarla gösterilir.
tail örnekleriEn önemli kullanım alanlarından biri log takibidir:
-f, dosyaya yeni satırlar geldikçe bekleyip göstermeye devam eder.
Not
/var/log/syslog her Linux dağıtımında aynı adla bulunmayabilir. Bu yol burada örnek olarak verilmiştir.
Bazı kaynaklarda tail -r örneğini görebilirsiniz; bu seçenek Linux sistemlerinde her zaman bulunmaz.
Linux’ta satırları ters sırada göstermek için çoğu zaman şu araç kullanılır:
Bu ayrımı bilmek önemlidir; çünkü derste hedefimiz Linux davranışını öğrenmektir.
more ve lessUzun dosyaları sayfa sayfa görmek için kullanılır.
Pratikte çoğu durumda less tercih edilir; çünkü daha rahattır.
more komutunu tanımak faydalıdır; ama günlük kullanımda çoğu zaman asıl ihtiyaç duyacağınız araç less olacaktır.
less daha iyi?less ile:
/ ile arama yapabilirsinizg ile başa, G ile sona gidebilirsinizq ile çıkabilirsinizÖzet fikir:
catlesshead / tailgrepgrep, dosyada veya komut çıktısında belirli bir deseni arar.
Temel kullanım:
Bu komut, içinde ahmet geçen satırları gösterir.
grep için temel seçenekler-i: büyük/küçük harf duyarsız arama-n: satır numarasını gösterme-r: dizin içinde özyinelemeli arama-v: eşleşmeyen satırları göstermeÖrnekler:
grep komut çıktısıyla da çalışırgrep, sadece dosyalarda değil, başka komutların çıktısında da çok işe yarar:
Not: dpkg örneği Debian/Ubuntu tabanlı sistemler içindir.
Not
ps aux | grep 'ssh' örneğinde bazen grep komutunun kendisi de sonuçlarda görünebilir. Bu, grep’in yanlış çalıştığı anlamına gelmez; arama deseni kendi komut satırında da geçtiği için olur.
grep için notYeni başlayanlar genelde iki şeyi karıştırır:
grep dosyanın tamamını değil, sadece eşleşen satırları gösterir.wcwc sayma işini yapar.
-l: satır sayısı-w: kelime sayısı-m: karakter sayısı-c: byte sayısıwc neden önemli?Çünkü çok sık şu sorular sorulur:
Örnek:
Bu komut, error geçen satır sayısını verir.
Aşağıdaki zinciri sözlü olarak açıklayın:
Beklenen açıklama:
/bin/bash geçen satırlar süzülürKomut zincirini anlayabilmek, tek tek komutları bilmekten daha değerlidir.
diffdiff, iki metin dosyasını satır satır karşılaştırır.
diff çıktısı nasıl okunur?Örnek çıktı:
Yorum:
Bu komut özellikle yapılandırma dosyaları veya metin değişiklikleri için yararlıdır.
cutcut, satır içinden belirli sütunları seçer.
En çok şu seçeneklerle kullanılır:
-d: ayraç-f: alan numarası-c: karakter aralığıÖrnek veri:
cut örnekleri/etc/passwd dosyasında alanlar : ile ayrılır.
Bu komutlar sırasıyla:
gösterir.
trtr, karakter düzeyinde dönüştürme yapar.
Yapabildikleri:
Genellikle stdin’den okur, stdout’a yazar.
tr örnekleriKüçük harfleri büyük harfe çevirmek:
Rakamları silmek:
Birden fazla boşluğu teke indirmek:
tr ne yapamaz?Önemli sınır:
tr, satır veya kelime değil karakter üzerinde çalışır.
Yani şu tip işler için uygun değildir:
Bu tür işler için çoğu zaman sed gerekir.
sedsed, akış içindeki metni kurallara göre dönüştürür.
En temel kullanım alanı: bul ve değiştir.
Beklenen çıktı:
sed ifadesini parçalara ayıralımParçalar:
s → substitute (değiştir)Varsayılan davranış: satırdaki ilk eşleşmeyi değiştirir.
sed örneklerised 's/bir/BIR/' numbers.txt
sed 's/bir/BIR/g' numbers.txt
sed '3 s/bir/BIR/' numbers.txt
sed '/dort/d' numbers.txt
sed '3d' numbers.txtYorum:
cut, tr, sed Nasıl Ayrılır?Bu üç araç sık karıştırılır. Kısa karar mantığı:
cuttrsedÖrnek sorular:
: ile ayrılmış veride 1. alanı al” → cuttrerror kelimesini uyari ile değiştir” → sedsortsort, satırları sıralar.
-n: sayısal sıralama-f: büyük/küçük harf farkını yok say-r: ters sıralauniquniq, art arda gelen aynı satırları teke indirir.
Buradaki kritik nokta şudur:
uniq tüm tekrarları değil, yan yana gelen tekrarları birleştirir.
Bu yüzden çoğu zaman önce sort kullanılır.
uniq örnekleri-c: kaç kez tekrar ettiğini gösterir-d: yalnız tekrar edenleri gösterirBu ikili (sort | uniq) log ve liste analizinde çok kullanılır.
splitsplit, büyük bir dosyayı parçalara ayırır.
İki yaygın kullanım:
-l: satır sayısına göre bölme-b: byte boyutuna göre bölmesplit sonrası birleştirmeParçalar çoğu zaman xaa, xab, xac gibi adlarla oluşur.
Birleştirmek için:
Doğrulama için metin dosyalarında diff, ikili dosyalarda ise cmp veya özet (hash) araçları daha uygundur.
Not: Parçaların doğru sırayla birleşmesi gerekir. Varsayılan xaa, xab, xac adlandırması bu yüzden kullanışlıdır.
| İhtiyaç | Komut |
|---|---|
| Kısa dosyayı göster | cat |
| Uzun dosyada gez | less |
| İlk / son satırları gör | head, tail |
| Belirli satırları bul | grep |
| Sayı üret | wc |
| Sütun seç | cut |
| Karakter dönüştür | tr |
| Metin değiştir | sed |
| Dosya farkı gör | diff |
| Sırala | sort |
| Tekrarları sadeleştir | uniq |
| Büyük dosyayı böl | split |
cat ile açıp ekrana boğulmakgrep kullanırken büyük/küçük harf duyarlılığını unutmakuniq komutunun sıralama yapmadığını sanmaktr ile kelime değiştirmeye çalışmakBu hafta hedef, sadece komut yazmak değil; komutun veri akışındaki rolünü anlamak.
Bu bölümde amaç, komutu sıfırdan hatırlamak değil; doğru aracı doğru işe eşleştirmektir.
/etc/passwd dosyasındaki kullanıcı adlarını listeleyin./bin/bash olan kullanıcı sayısını bulun.Bu hafta şunu öğrendik:
Bir sonraki aşamada bu araçları kabuk betikleri ve yönlendirme mantığıyla daha sistemli birleştireceğiz.