İçeriğe Atla
Mustafa Erbay
Rehberler · 6 dk okuma · görüntülenme Read in English

En Sevdiğim Linux Komutları: Konsoldaki Sessiz Kahramanlarım

20 yıllık sistem mimarı olarak, bana en çok zaman kazandıran, en derin sorunları çözdüren ve her zaman elimin altında olan Linux komutlarını paylaşıyorum.…

100%

Yirmi yıldır bu sistemlerin içinde, konsolun başında, o siyah ekrana bakarak sorun çözüp bir şeyler inşa ediyorum. Bu süreçte yüzlerce komut kullandım, bazıları sadece görevini yaptı geçti, bazıları ise benim için adeta birer kurtarıcı oldu. “En Sevdiğim Linux Komutları” dediğimde aklıma gelenler, sadece basit araçlar değil, aynı zamanda geçmişteki zorlu anların, uykusuz gecelerin ve sonunda gelen zaferlerin sembolleri.

Bu yazıda, sadece bir komut listesi sunmak yerine, bu konsol kahramanlarının benim için ne anlama geldiğini ve onları neden bu kadar çok sevdiğimi anlatacağım. Her biriyle ilgili mutlaka bir anım, bir kurtarma operasyonum var. Benim için favori bir komut, en çok kullandığım değil, en çok kriz anında yanımda olan ve bana “işte bu!” dedirten komuttur.

Metin İşlemedeki Sihirbazlarım: awk ve sed

Bir üretim ERP’sinde çalışırken, bazen öyle log dosyalarıyla karşılaşırsınız ki, terabaytlarca verinin içinden iğne aramak gibi bir şeydir. Hatta daha da beteri, belirli bir formatta gelen ama içinde tutarsızlıklar olan veri setlerini işlemek zorunda kalırsınız. İşte tam da bu anlarda awk ve sed benim için birer sihirbaza dönüşür.

Bir keresinde, bir tedarik zinciri entegrasyonu sırasında gelen binlerce satırlık CSV dosyasında belirli bir ürün kodunun formatı sürekli yanlış geliyordu. Gelen sistemden düzeltmek mümkün değildi, manuel yapmak ise günler sürerdi. sed ile saniyeler içinde o dosyadaki tüm yanlış formatları doğruya çevirip, awk ile sadece istediğim alanları çekip yeni bir çıktı oluşturduğumu hatırlıyorum. O an, bu iki komutun bana kazandırdığı zaman ve efor paha biçilemezdi.

# Bir dosyada belirli bir desenin tüm geçişlerini değiştirmek
sed -i 's/YANLIS_KOD_FORMATI/DOGRU_KOD_FORMATI/g' input.csv

# Bir CSV dosyasından sadece 1. ve 3. sütunları çekmek
awk -F',' '{print $1 "," $3}' input.csv > output.csv

Bu komutlar, sadece metin işlemekten öte, veri manipülasyonu ve otomasyonun temel taşlarıdır benim için. Karmaşık veri setlerini saniyeler içinde anlamlı bilgilere dönüştürmek, problem çözme sürecimi inanılmaz hızlandırıyor.

Görünmeyeni Ortaya Çıkarmak: strace ve lsof

Bir sistem yöneticisi olarak en sevmediğim şey “çalışmıyor” demek. Çünkü her şeyin bir sebebi vardır ve bu sebebi bulmak benim işim. İşte bu noktada strace ve lsof gibi komutlar devreye giriyor. Bir uygulamanın neden başlamadığını, neden belirli bir dosyayı açamadığını veya neden bir network bağlantısı kuramadığını anlamanın en hızlı yolu, sistem çağrılarını izlemektir.

Bir keresinde, Java tabanlı bir uygulama beklenmedik bir şekilde “Permission Denied” hatası veriyordu. Dosya izinlerini, kullanıcı haklarını defalarca kontrol etmeme rağmen sorunu bulamıyordum. En sonunda strace ile uygulamayı çalıştırdım ve gördüm ki, uygulama aslında log dosyasını yazmak istediği dizine değil, başka bir yere yazmaya çalışıyordu ve o dizinde gerçekten de yazma izni yoktu. strace, dosya katmanında saatlerce sürecek bir baş ağrısını kısa sürede çözen araç oldu. lsof ise, bir portun neden meşgul olduğunu veya bir dosyanın hangi uygulama tarafından açık tutulduğunu anlamak için vazgeçilmez bir dostumdur.

# Bir uygulamanın sistem çağrılarını izlemek
strace -f -o output.log /path/to/my_application

# Bir portu veya dosyayı kullanan süreçleri görmek
lsof -i :8080
lsof /var/log/syslog

Bu komutlar, bana sistemin iç işleyişine bir röntgen çekme imkanı sunar. Görünmeyen katmanlardaki problemleri net bir şekilde ortaya çıkarır ve çözüme giden yolu aydınlatır.

Sistem Davranışını Anlamak: journalctl ve systemd-analyze

Modern Linux sistemlerinde systemd hayatımızın vazgeçilmez bir parçası. Servislerin durumunu, boot sürecini ve sistemdeki olayları anlamak için journalctl ve systemd-analyze olmadan bir adım bile atamıyorum. Özellikle journald rate limit’lerini ayarlarken veya belirli bir servisin neden sürekli yeniden başladığını anlamaya çalışırken bu komutlar kritik önem taşıyor.

Bir servis hiçbir hata vermeden, sessizce kapanıyorsa cevap çoğu zaman loglardadır: journalctl ile servisin loglarını detaylıca incelediğinizde, çoğu kez bir OOM-killed mesajıyla karşılaşırsınız — yani servis bellek yetersizliğinden sonlandırılmıştır. systemd-analyze kullanarak boot sürecindeki gecikmeleri analiz etmek veya cgroup limitlerini kontrol etmek de rutin işlerim arasında. Bu sayede, performans sorunlarının kökenine inmek çok daha kolaylaşıyor.

# Belirli bir servisin loglarını takip etmek
journalctl -u my_service.service -f

# En yavaş açılan systemd birimlerini listelemek
systemd-analyze blame

Bu iki komut, sistemdeki “neden böyle oldu?” sorularına cevap bulmamı sağlayan, güçlü diagnostik araçlardır. Sistemimin nabzını tutmamı ve potansiyel sorunları erkenden tespit etmemi sağlarlar.

Ağ Katmanındaki Gözüm Kulağım: tcpdump ve ss

Ağ sorunları, bazen en inatçı problemlerden biri olabilir. Paketlerin kaybolduğu, bağlantıların anlamsızca kesildiği veya performansın beklentinin altında kaldığı durumlarda tcpdump ve ss benim için vazgeçilmezdir. Örneğin birden çok ISP’nin kullanıldığı bir çıkışta DSCP marking doğru yapılmadığında ses paketlerinin bozulması gibi senaryolarda, tcpdump ile anlık paket akışını izleyerek hangi paketlerin yanlış işaretlendiğini ve nerede düştüğünü tespit edebilirsiniz.

ss (socket statistics) ise, netstat’ın modern ve daha güçlü bir alternatifi olarak, aktif bağlantıları, dinlenen portları ve ağ istatistiklerini hızlıca görmemi sağlar. Bir sunucuda beklenmedik bağlantı yoğunluğu olduğunda veya bir uygulama bağlantı havuzunu doğru yönetemediğinde, ss bana anında görsel bir teşhis sunar.

# Belirli bir interface'ten geçen HTTP trafiğini izlemek
sudo tcpdump -i eth0 'port 80 and host 192.168.1.1'

# Tüm TCP bağlantılarını ve durumlarını görmek
ss -tuna

Bu komutlar, ağ trafiğinin derinliklerine inmemi ve soyut görünen ağ problemlerini somut verilere dönüştürmemi sağlar. Görünmeyen ağ katmanında adeta birer dedektif gibi çalışmama yardımcı olurlar.

Üretkenliğimin Sırrı: tmux ve htop

Son olarak, belki de en basit ama günlük iş akışımı en çok kolaylaştıran iki komut: tmux ve htop. tmux, birden fazla terminal oturumunu tek bir pencerede yönetmeme, hatta oturumlarımı kapatıp sonra tekrar açtığımda kaldığım yerden devam etmeme olanak tanıyor. Bir sunucuda uzun süreli bir işlem başlattığımda, SSH bağlantım kesilse bile işlemin çalışmaya devam ettiğini bilmek büyük bir rahatlık.

htop ise, klasik top komutunun çok daha kullanıcı dostu ve görsel bir alternatifi. Sunucudaki kaynak kullanımını, süreçleri ve bellek durumunu anlık olarak izlemek için sürekli elim altında. Özellikle bir uygulamanın CPU veya bellek tüketiminde anormal bir artış gördüğümde, htop bana ilk ipucunu veren araç oluyor.

# Yeni bir tmux oturumu başlatmak
tmux new -s my_session

# htop ile sistem kaynaklarını izlemek
htop

Bu komutlar, doğrudan bir problemi çözmekten ziyade, benim problem çözme ve sistem yönetimi sürecimi daha verimli hale getiren, konfor alanımı genişleten araçlardır.

Sonuç: Komutlar Sadece Başlangıç

Benim için “En Sevdiğim Linux Komutları” listesi, sadece teknik bir tercih değil, aynı zamanda yılların birikiminin, sayısız olayın ve sürekli öğrenme sürecinin bir yansımasıdır. Her bir komut, bana bir şeyler öğretmiş, bir sorunu çözdürmüş veya işimi kolaylaştırmıştır. Konsoldaki bu sessiz kahramanlar, bana sadece birer araç değil, aynı zamanda birer problem çözme felsefesi sunuyor.

Peki ya senin favori Linux komutların neler? Hangi komutlar seni en zor anlarda kurtardı veya iş akışını baştan aşağı değiştirdi? Yorumlarda benimle paylaşmanı çok isterim.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

Sıkça Sorulanlar

Bu makale ile ilgili okurların sorduğu yaygın sorular.

Bir sistem mimarı olarak, Linux komutlarını öğrenmeye yeni başlayanlar için önerileriniz nelerdir?
Benim için Linux komutlarını öğrenmek, her şeyden önce pratik yapmakla başladı. Kendi projelerimde ve günlük işlerimde bunları kullanmaya çalıştım. Özellikle `awk` ve `sed` gibi komutları, büyük veri setlerini işlerken çok faydalı buldum. Yeni başlayanların, bu komutları basit örneklerle başlamaları ve yavaş yavaş komplex işlemlere geçmeleri öneririm.
Veri işleme komutları arasında `awk` ve `sed` arasında bir seçim yapmak necesario olsa, hangisini seçerdiniz ve neden?
Her iki komut da benim için çok değerli, ancak farklı durumda farklı tercihlerim var. `Sed` özellikle dosya içindeki desenleri değiştirme işlemlerinde çok hızlı ve etkili. `Awk` ise veri işleme ve analiz için daha esnek ve güçlü. Hangisini seçeceğim, işin doğasına bağlı. Örneğin, büyük bir CSV dosyasından belirli alanları çıkarmam gerektiğinde `awk` daha uygun olurken, bir dosyadaki tüm geçişleri değiştirmem gerektiğinde `sed` daha hızlı olur.
Linux komutlarını öğrenirken karşılaşılabilecek en büyük zorluklar nelerdir ve bunları nasıl aşabilirsiniz?
Benim deneyimime göre, en büyük zorluklardan biri, komutların syntax ve parametrelerini öğrenmektir. Ayrıca, özellikle büyük veri setleriyle çalışırken, hataların hızlı bir şekilde tespit edilmesi ve düzeltilmesi de zor olabilir. Bunları aşmak için, her komutu ayrı ayrı öğrenmeye çalışmak, basit örneklerle başlayıp yavaş yavaş kompleks işlemlere geçmek ve hata ayıklama araçlarını etkili bir şekilde kullanmak önemlidir.
Sistem mimarları için Linux komutlarının önemi nedir ve neden her sistem mimarının bunları öğrenmesi gerekir?
Linux komutları, bir sistem mimarı için, sistemleri yönetmek, sorunları teşhis etmek ve çözmek, ve genel olarak iş verimliliğini artırmak için temel araçlardır. Bir sistem mimarının, hangi komutları ne zaman ve nasıl kullanacağını bilmesi, onun işini çok daha efektif bir şekilde yapmasını sağlar. Özellikle, günümüzde çoğu sistem ve sunucu Linux tabanlı olduğu için, bu komutları bilmemek, bir sistem mimarının işini ciddi şekilde kısıtlar.
ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

✉️ Ücretsiz · Spam yok · İstediğin an çık

Yeni yazılardan haberdar olun

Yeni içerikler ve teknik notlar e-postanıza gelsin.

  • 📌
    Haftanın en iyisi Sadece okumaya değer tek yazı
  • 🔧
    Alet çantası Bu hafta kullandığım araçlar
  • 🧠
    Perde arkası Blog'a girmeyen notlar

Spam yapmıyoruz. İstediğiniz zaman ayrılabilirsiniz. · Sadece Umami (self-hosted, Google yok) ile takip.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar