Cennet Teması Lisans doğrulanmadı, Lisansı doğrulamak için tema seçenekleri sayfasına gidin, Her alan adı için tek bir lisansa ihtiyacınız var.

Linux komutlarında boru (pipe) ve yönlendirme (redirection) kullanımını profesyonel bir şekilde açıklayarak verimliliği artırmanın yollarını anlatıyoruz.

Linux komut satırında pipe ve redirect komutlarını profesyonelce nasıl kullanabilirsiniz?

Linux komut satırı, kullanıcıya sistem üzerinde tam kontrol sağlayan güçlü bir araçtır, ancak gerçek faydası boru (pipe) ve yönlendirmeyi doğru kullanmayı anlamaktan gelir. Bu iki özellik, komutları birbirine bağlamaya ve çıktıları yüksek esneklikle iletmeye olanak tanır.

52972123178_c7bc15383d_o-1 Linux komutlarında boru (pipe) ve yönlendirmeyi profesyonelce kullanarak verimliliği artırmanın açıklaması

Boru (pipe) fonksiyonu, bir komutun çıktısını doğrudan işleme için başka bir komuta yönlendirmenizi sağlar; yönlendirme komutları ise sonuçları dosyalara kaydetmenize veya hataların ve çıktıların nasıl görüntüleneceğini değiştirmenize olanak tanır. Bu teknikler, sistem yönetimi, yazılım geliştirme veya hatta gelişmiş günlük kullanım alanlarında çalışan herkes için önemlidir.

Bu kılavuzda, Linux'ta Boru (Pipe) ve Yönlendirme (Redirection) kavramlarını, daha verimli komutlar yazmanıza ve karmaşık görevleri tek bir satırda gerçekleştirmenize yardımcı olacak net ve pratik örneklerle açıklıyoruz.

özet

  • Linux komutları, giriş, çıkış ve hata mesajları için standart Pipe sistemini kullanır.
  • Bu yönerge, çıktı akışını bir terminal penceresi yerine bir dosyaya gönderir.
  • Akışlar, komutları birbirine bağlamanıza olanak tanır; böylece birinin çıktısı diğerinin girdisi olur.
  • Linux'ta akışlar ve yönlendirme, komut çıktılarını verimli bir şekilde kullanmanıza olanak tanır. Bunları dosyalara kaydedebilir veya diğer komutlar için girdi olarak kullanabilirsiniz. İşte bilmeniz gerekenler.

Boru nedir?

Linux, diğer Unix benzeri işletim sistemleri gibi, akış kavramını içerir. Her işlem, stdin adı verilen bir giriş akışına, stdout adı verilen bir çıkış akışına ve stderr adı verilen bir hata akışına sahiptir. Linux'ta, gerçek dünyada olduğu gibi, akışların iki uç noktası vardır: bir kaynak (giriş) ve bir hedef (çıkış).

Giriş akışı, klavyeden komuta gelebilir ve bu sayede işleme bilgi veya komut gibi metinler gönderebilirsiniz. Çıkış akışı, genellikle terminal penceresine olmak üzere komuttan gelir. Standart hata akışı (stderr) da terminal penceresine yazar.

Akışları yeniden yönlendirebilir ve akışlar üzerinden yönlendirebilirsiniz. Yeniden yönlendirme, çıktıyı terminal penceresi dışındaki bir konuma göndermek anlamına gelir. Akışlar üzerinden yönlendirme ise bir komutun çıktısını alıp başka bir komutun girdisi olarak kullanmak anlamına gelir.

Bu sayede, basit bir komut dizisinden karmaşık çözümler oluşturmak için komutları birbirine bağlayabilir ve bunların uyum içinde çalışmasını sağlayabilirsiniz.

Akışların yeniden yönlendirilmesi

Yönlendirmenin en basit biçimi, bir komutun çıktısını alıp bir dosyaya göndermektir. Bu basit durum bile faydalı olabilir. Belki komut çıktısının bir kaydına ihtiyacınız var veya belki de okuyamayacağınız kadar büyük miktarda çıktı gönderiliyor.

Bu test bilgisayarında, `du` komutu 1380 satır metin çıktısı veriyor. Bu verileri bir dosyaya göndereceğiz.

du > disk-usage.txt
1-6 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Süslü parantez, `du` komutunun çıktısının `disk-usage.txt` adlı bir dosyaya yönlendirildiğini gösterir. Terminal penceresine hiçbir çıktı gönderilmez.

Dosyanın oluşturulduğunu doğrulamak için `ls` komutunu, içindeki satır, kelime ve karakter sayısını saymak için ise `wc` komutunu kullanabiliriz. Beklendiği gibi, `wc` komutu dosyanın 1380 satır içerdiğini gösteriyor.

ls 
wc disk-usage.txt
2-7 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
Bu tür yönlendirme, her kullanımda dosyayı oluşturur veya değiştirir. Yönlendirilen metni mevcut bir dosyanın sonuna eklemek istiyorsanız, aşağıdaki gibi çift süslü parantez ">>" kullanın.
ls /home/dave-mckay/ -R >> disk-usage.txt 
wc disk-usage.txt 
3-5 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
less komutuna -N (satır numaraları) seçeneğini ekleyerek, 1380. satırdan sonra yeni bilgilerin eklendiğini doğrulayabiliriz.
4-4 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
Hata üreten bir komut yazarsak, yalnızca standart çıktıyı yönlendirdiğimiz için standart hata mesajlarının yine de terminal penceresine gönderildiğini göreceğiz.
wc disk-usage.txt missing-file.txt > results.txt 
wc: missing-file.txt: No such file or directory
cat results.txt

5-3 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Disk-usage.txt dosyasının sonuçları results.txt dosyasına, eksik dosya.txt dosyasının hata mesajı ise terminal penceresine gönderilir.

Yönlendirdiğimiz yolu belirtmek için sağ açılı parantezlere sayısal göstergeler ekleyebiliriz. Yol 1, standart çıktı (stdout) ve yol 2, standart hata (stderr)'dir. Standart çıktıyı bir dosyaya, standart hata çıktısını ise başka bir dosyaya kolayca yönlendirebiliriz.

wc disk-usage.txt missing-file.txt 1> results.txt 2> error.txt 
cat results.txt
cat error.txt
6-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
Eğer her iki akışı da tek bir dosyaya yönlendirmek istiyorsanız, standart çıktıyı bir dosyaya yönlendiririz ve kabuğa standart hata çıktısını da standart çıktının gideceği aynı yere yönlendirmesini söyleriz.
wc disk-usage.txt missing-file.txt 1> results.txt 2>&1
cat results.txt

7-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Tüm hata mesajları kaydedilir ve standart sistem çıktısının (stdout) gönderildiği aynı dosyaya gönderilir.

Çıktının hiçbirini saklamak istemeyebilirsiniz; sadece terminal penceresine herhangi bir şey yazmaktan kaçınmak isteyebilirsiniz. Gönderilen her şeyi uyarı vermeden tüketen boş aygıt dosyası, istenmeyen ekran çıktısını göndermek için uygun bir hedeftir.

rm disk-usage.txt missing-file.txt 1> /dev/null 2>&1

8-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Sildiğimiz dosyalardan biri mevcut olmamasına rağmen, terminal penceresine ne standart çıktı (stdout) ne de standart hata (stderr) mesajları yazılmıyor.

Yönlendirme ile kullanabileceğiniz bir diğer yöntem ise dosyayı komutun standart giriş akışına (stdin) okumaktır.

wc < /etc/passwd
14-2 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
Bunu çıktı yönlendirmesiyle birleştirebilirsiniz.
wc < /etc/passwd > results.txt
cat results.txt

15-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Çıktıları yönlendirmek Pipe

Geri dönmek Pipe Bir komutun çıktısını başka bir komutun girdisine yönlendirmek. Akış yönlendirme, komut satırının en güçlü özelliklerinden biridir ve temel Linux komutlarını ve araçlarını kullanma şeklinizi değiştirebilir.

Bir komutun çıktısını başka bir komuta yönlendirmek için boru işareti "|" sembolünü kullanırız. Örneğin, ana dizininizdeki tüm dosyaları ve alt klasörleri tekrar tekrar görüntülemek istiyorsanız, terminal penceresinde `ls` komutunun çıktısının hızlı bir önizlemesini göreceksiniz.

`ls` komutunun çıktısını `less` komutuna yönlendirerek, sonuçları kullanımı kolay bir dosya görüntüleyicide görüntüleyebiliriz.

ls -R ~ | less

9-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Bu yöntem, çıktıyı bir dosyaya göndermeyi ve ardından dosyayı açmayı içeren iki aşamalı manuel işlemden daha verimlidir ve daha az zaman alır.

Çıktıları başka bir komut aracılığıyla yönlendirme
Yönlendirme işleminin faydası, ikinci komutun birinci komutun çıktısını işlemesiyle açıkça ortaya çıkar.

Bilgisayarınızdaki gerçek ve sahte kullanıcı hesaplarının sayısını sayalım. `/etc/passwd` dosyasının içeriğini görüntülemek için `cat` komutunu kullanacağız ve ardından `wc` komutunu bu dosya üzerinden geçireceğiz. `-l(satır sayısı)` seçeneği, bu dosyadaki satır sayısını sayacaktır. Her hesap için bir satır olduğundan, hesapları otomatik olarak sayar.

cat /etc/passwd | wc -l
10-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
Bu çok fazla gibi görünüyor. Şimdi bu hesapların isimlerine bakalım. Bu sefer `awk` komutuyla birlikte `cat` komutunu kullanacağız. `awk` komutuna alanlar arasında ayırıcı olarak iki nokta üst üste `:` kullanması ve ilk alanı yazdırması talimatı verilmiştir.
cat /etc/passwd | awk -F: '{print $1}'
11-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama
Komut eklemeye devam edebiliriz. Listeyi sıralamak için, awk'tan gelen çıktının sıralama komutuna gitmesi için bir sıralama komutu ekleyin.
cat /etc/passwd | awk -F: '{print $1}' | sort

12-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Çıktıları bir dizi komut aracılığıyla yönlendirmek

İşte üçüne bağlı dört komuttan oluşan bir küme. Pipe `ps` komutu çalışan işlemleri listeler. `-e` (tüm) seçeneği tüm işlemleri gösterirken, `-o` (çıktı) seçeneği görüntülenecek bilgileri belirtir. `comm` sembolü ise yalnızca işlem adını görmek istediğimizi gösterir.

İşlem adlarının listesi daha sonra grep komutuna iletilir ve bu komut, adında "chrome" kelimesini içeren işlemleri filtreler. Filtrelenmiş bu liste daha sonra sıralama için sort komutuna iletilir. Sıralanmış liste daha sonra uniq komutuna iletilir. -c (sayım) seçeneği, benzersiz işlem adlarının sayısını sayar. Gösterim amacıyla, aynı işlemi Firefox tarayıcısıyla tekrarlayacağız.

ps -e -o comm | grep chrome | sort | uniq -c
ps -e -o comm | grep firefox | sort | uniq -c
13-1 Linux komutlarında Pipe ve Redirection'ı profesyonelce kullanarak verimliliği artırmanın nasıl yapılacağını açıklama

Sayısız kombinasyon

Birleştirebileceğiniz komut sayısında bir sınır yok, ancak her komutun ayrı bir alt pencerede açıldığını unutmayın. Bu, mütevazı özelliklere sahip modern bilgisayarlarda bile sorun yaratmamalıdır, ancak yavaşlama fark ederseniz, komutlarınızı basitleştirmeyi düşünün. Ya da sabırlı olun.

Linux'ta boru (pipe) ve yönlendirme (redirection) mekanizmalarına hakim olmak, sistem yönetiminde yeni bir kontrol ve verimlilik seviyesinin kilidini açar. Görünüşte basit olan bu araçlar size çok zaman ve emek tasarrufu sağlayabilir.

Örnekleri cihazınızda pratik olarak uygulamayı deneyin ve karmaşık görevleri nasıl özlü ve profesyonel komutlarla gerçekleştirebileceğinizi fark edeceksiniz.

Üst düğmeye git