Linux işletim sistemi ailesinde ve Unix tabanlı sunucu altyapılarında grafik arayüzler (GUI) pratik çözümler sunsa da, gerçek güç ve verimlilik komut satırı arayüzünde (CLI) yatar. İster uzaktaki bir bulut sunucusunu yönetin, ister yerel sisteminizde dosya ve süreç optimizasyonu yapın; Bash (Bourne Again SHell) üzerinde hakimiyet kurmak zaman kazandırır ve sistem üzerindeki kontrolünüzü en üst seviyeye çıkarır.
Bu kapsamlı kılavuzda, hem günlük operasyonlarınızda işlerinizi hızlandıracak hem de kriz anlarında hayat kurtaracak 25 temel Bash komutunu; dosya yönetimi, metin işleme, ağ denetimi, sistem analizi ve süreç yönetimi olmak üzere kategorize ederek pratik parametreleriyle birlikte inceliyoruz.
Hızlı Bakış: 25 Temel Bash Komutu ve Görevleri
Aşağıdaki tablo, sık kullanılan temel komutları ve sistemdeki ana işlevlerini özetlemektedir:
| Komut | İşlev Kategorisi | Temel Görevi | Örnek Kullanım |
|---|---|---|---|
| ls | Dosya ve Dizin | Dizin içeriğini listeleme | ls -la |
| cd | Dosya ve Dizin | Çalışma dizinini değiştirme | cd /var/log |
| pwd | Dosya ve Dizin | Aktif dizin yolunu yazdırma | pwd |
| cp | Dosya ve Dizin | Dosya veya dizin kopyalama | cp -r dir1 dir2 |
| mv | Dosya ve Dizin | Dosya taşıma veya yeniden adlandırma | mv eski.txt yeni.txt |
| rm | Dosya ve Dizin | Dosya veya dizin silme | rm -rf /gecici |
| mkdir | Dosya ve Dizin | Yeni dizin oluşturma | mkdir -p a/b/c |
| find | Arama | Dosya sisteminde kriter bazlı arama | find . -name "*.log" |
| cat | Metin İnceleme | Dosya içeriğini terminale basma | cat config.ini |
| less | Metin İnceleme | Büyük dosyaları sayfalı okuma | less access.log |
| head / tail | Metin İnceleme | Dosyanın başını veya sonunu okuma | tail -f error.log |
| grep | Metin Arama | Düzenli ifadelerle desen arama | grep -rn "ERROR" . |
| sed | Akış Düzenleyici | Metin değiştirme ve filtreleme | sed -i 's/eski/yeni/g' f.txt |
| awk | Veri Çıkarma | Sütun bazlı metin işleme | awk '{print $1}' log.txt |
| tar | Arşivleme | Arşiv oluşturma ve açma | tar -czvf yedek.tar.gz . |
| chmod | Yetkilendirme | Erişim izinlerini düzenleme | chmod 755 script.sh |
| chown | Yetkilendirme | Dosya sahibini değiştirme | chown www-data:www-data dosya |
| ps | Süreç Yönetimi | Aktif süreçleri listeleme | ps aux | grep nginx |
| top / htop | Süreç Yönetimi | Gerçek zamanlı kaynak izleme | htop |
| kill | Süreç Yönetimi | Süreçlere sinyal gönderip durdurma | kill -9 1234 |
| df | Disk ve Bellek | Disk alanı kullanımını denetleme | df -h |
| du | Disk ve Bellek | Dizin ve dosya boyutunu ölçme | du -sh * |
| free | Disk ve Bellek | RAM ve Takas (Swap) durumunu görme | free -m |
| curl | Ağ ve Veri Transferi | URL üzerinden veri aktarımı | curl -I https://site.com |
| ssh | Ağ ve Erişim | Güvenli uzak kabuk bağlantısı | ssh user@host -p 22 |
1. Dosya ve Dizin Gezintisi Komutları
Linux ortamında dizinler arasında rahatça hareket edebilmek ve dosya işlemlerini güvenle yürütmek sistem yöneticiliğinin temel adımıdır:
- ls (List): Dizin içeriğini listeler. Gizli dosyaları ve detaylı izinleri görmek için
ls -lakullanılır.-hparametresi ise dosya boyutlarını okunabilir formatta (KB, MB, GB) sunar. - cd (Change Directory): Dizinler arası geçiş sağlar. Doğrudan ana dizine (home) dönmek için
cd ~, bir üst klasöre çıkmak içincd .., bir önceki bulunulan konuma geri dönmek içincd -komutu tercih edilir. - pwd (Print Working Directory): Hangi dosya yolu (absolute path) üzerinde çalıştığınızı gösterir. Özellikle göreceli yollarla komut çalıştırırken tam konumu doğrulamak için kritiktir.
- mkdir (Make Directory): Yeni klasör oluşturur. İç içe geçmiş klasör ağaçlarını tek seferde inşa etmek için
mkdir -p proje/src/componentsyapısı kullanılır. - cp (Copy): Dosyaları ve klasörleri kopyalar. Klasörleri içindeki tüm alt bileşenlerle kopyalamak için özyinelemeli (recursive) çalışan
cp -r kaynak hedefparametresi gereklidir. - mv (Move): Dosyayı bir yerden başka bir yere taşır veya adını değiştirir. Dosya sisteminde isim değiştirme işlemi aslında bir taşıma işlemidir.
- rm (Remove): Dosya siler. Boş olmayan klasörleri zorla ve kalıcı olarak silmek için
rm -rf dizin_adikullanılır; bu komut geri dönüşsüz olduğu için dikkatle çalıştırılmalıdır.
2. Dosya Arama ve Metin İnceleme Komutları
Log dosyalarını ayıklamak, konfigürasyon parametrelerini bulmak ve diskteki dağınıklığı tespit etmek için kullanılan komutlar:
- find: Dosya sisteminde dosya adı, boyutu, tipi veya değiştirilme tarihine göre dinamik tarama yapar. Örneğin son 7 günde değiştirilen dosyaları bulmak için
find /var/www -mtime -7çalıştırılır. - cat (Concatenate): Dosya içeriğini doğrudan terminal çıktısına basar. Kısa dosyaları hızlıca okumak için idealdir.
- less: Binlerce satırlık dosyaları terminal belleğini tüketmeden sayfalandırarak açar.
/tuşu ile dosya içinde ileriye doğru hızlı arama yapılabilir. - head ve tail:
head -n 20bir dosyanın ilk 20 satırını gösterirken;tail -f error.logparametresi bir log dosyasına yazılan yeni satırları gerçek zamanlı olarak terminale akıtır. - grep (Global Regular Expression Print): Metin blokları içinde düzenli ifade (regex) desenleri arar. Belirli bir klasör altındaki tüm dosyalarda büyük-küçük harf duyarsız arama yapmak için
grep -rni "veritabani_hatasi" /var/log/kullanılır. - sed (Stream Editor): Dosyaları açmadan metin üzerinde satır bazlı arama-değiştirme yapar. Örneğin bir konfigürasyondaki IP adresini değiştirmek için
sed -i 's/127.0.0.1/192.168.1.10/g' ayar.confkomutu kullanılır. - awk: Metin dosyalarını sütunlara bölerek ayrıştıran güçlü bir betik aracıdır. Web sunucusu loglarındaki yalnızca IP adreslerini (1. sütun) listelemek için
awk '{print $1}' access.logkomutundan yararlanılır.
3. Arşivleme ve Dosya İzin Yönetimi
Güvenlik politikalarını uygulamak ve veri taşınabilirliğini sağlamak için kullanılan araçlar:
- tar (Tape Archive): Dosyaları sıkıştırmak ve arşivlemek için kullanılır. Klasörü gzip ile paketlemek için
tar -czvf arsiv.tar.gz /hedef/klasor; arşivi açmak içinsetar -xzvf arsiv.tar.gzsözdizimi uygulanır. - chmod (Change Mode): Dosya ve dizinlerin okuma (r), yazma (w) ve çalıştırma (x) izinlerini düzenler. Örneğin bir betiğe çalıştırma izni vermek için
chmod +x script.shya da web dizini içinchmod 755 dizinverilir. - chown (Change Owner): Dosyanın kullanıcı ve grup sahipliğini değiştirir. Örneğin Nginx sunucusunun dosyaları okuyabilmesi için
chown -R www-data:www-data /var/www/htmluygulanır.
4. Sistem Kaynakları ve Süreç (Process) Yönetimi
Sunucunun kilitlendiği veya belleğin tükendiği durumlarda darboğazı saptamak için bu araçlar kullanılır:
- ps (Process Status): Sistemde koşan süreçlerin anlık fotoğrafını çeker. Arka plandaki tüm süreçleri kullanıcı bilgisiyle görmek için
ps auxyaygın olarak boru hattı (pipeline) ilegrepkomutuna bağlanır. - top ve htop: İşlemci (CPU), bellek (RAM) ve süreçlerin anlık yükünü etkileşimli bir ekranda gösterir.
htop, renkli arayüzü ve işlem sonlandırma kolaylığı iletopkomutunun gelişmiş bir alternatifidir. - kill: Yanıt vermeyen veya kilitlenen süreçleri PID (Process ID) numarası üzerinden durdurur. Normal sinyale yanıt vermeyen kilitlenmiş bir süreci zorla kapatmak için
kill -9 <PID>sinyali gönderilir. - df (Disk Free): Bağlı disk bölümlerinin toplam boyutunu ve doluluk oranını görüntüler. Okunabilir megabayt/gigabayt değerleri için
df -hkullanılır. - du (Disk Usage): Dizinlerin disk üzerinde ne kadar alan kapladığını hesaplar. Bulunulan dizindeki en büyük klasörleri görmek için
du -sh * | sort -hkomut dizisi kullanılır. - free: Sistemin kullanılabilir fiziksel bellek ve takas (swap) alanı miktarını raporlar. Megabayt cinsinden net tablo için
free -mtercih edilir.
5. Ağ Denetimi ve Uzak Bağlantı Araçları
Sunucular arası iletişim ve veri aktarımının omurgasını oluşturan komutlar:
- curl (Client URL): Ağ üzerinden HTTP, HTTPS veya FTP protokolleriyle veri çekmek ve göndermek için kullanılır. Yalnızca yanıt başlıklarını kontrol etmek için
curl -I https://api.ornek.com; bir dosyayı indirmek içincurl -O URLkullanılır. - ssh (Secure Shell): Uzaktaki bir Linux makinesine şifreli bir tünel üzerinden güvenli terminal erişimi sağlar. Standart port dışındaki bir sunucuya bağlanmak için
ssh -p 2222 kullanici@sunucu_ipkomutu çalıştırılır.
Sıkça Sorulan Sorular (SSS)
Bash komutlarında pipe (|) karakteri ne işe yarar?
Pipe (boru hattı), bir komutun standart çıktısını (stdout) doğrudan bir sonraki komutun standart girdisi (stdin) haline getirir. Örneğin cat access.log | grep "404" | wc -l zinciri, log dosyasındaki 404 hatalarını bularak kaç adet olduğunu sayar.
Komutların detaylı parametre kılavuzlarına terminalden nasıl ulaşılır?
Sistemde yüklü olan hemen hemen her komutun resmi kılavuzuna man <komut_adi> (örneğin: man find) yazılarak ulaşılabilir. Daha kısa yardım çıktıları için genellikle komut --help parametresi yeterlidir.
Kaynakça
- Free Software Foundation. (2024). Bash Reference Manual. GNU Operating System. https://www.gnu.org/software/bash/manual/
- IEEE & The Open Group. (2018). The Open Group Base Specifications Issue 7 (POSIX.1-2017) - Shell & Utilities. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html
- Kerrisk, M. (2010). The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press.
- Shotts, W. (2019). The Linux Command Line: A Complete Introduction (2nd ed.). No Starch Press.
- Canonical Ltd. (2024). Ubuntu Server Documentation: Command Line Basics. https://ubuntu.com/server/docs