Linux Komut Satırı Rehberi: Başlangıç Seviyesi İçin
Linux işletim sistemleri, gelişmiş kontrol ve esneklik sunan güçlü araçlardır. Bu gücün kalbi ise komut satırı arayüzünde (Command Line Interface – CLI) yatar. Grafiksel kullanıcı arayüzleri (GUI) günlük görevler için harika olsa da, komut satırı, otomasyon, sunucu yönetimi, sistem sorun giderme ve karmaşık görevleri hızlıca gerçekleştirme konusunda eşsiz avantajlar sunar. Bu rehber, Linux komut satırı dünyasına adım atmak isteyen herkes için temel bir başlangıç noktası olmayı hedeflemektedir. En sık kullanılan komutları, dosya sistemi navigasyonunu ve pratik ipuçlarını öğrenerek Linux ortamında daha yetkin hale geleceksiniz.
Giriş: Neden Komut Satırı?
Komut satırı, bilgisayarınızla metin tabanlı komutlar aracılığıyla etkileşim kurduğunuz bir arayüzdür. Bir terminal emülatörü (örneğin, GNOME Terminal, Konsole, xterm) açtığınızda karşınıza çıkan siyah veya koyu renkli pencere, işte bu komut satırıdır. Peki, neden klavye komutlarıyla uğraşmalıyız? İşte başlıca nedenler:
- Hız ve Verimlilik: Doğru komutlarla, GUI’de birden fazla tıklama gerektiren işlemleri tek bir satırda tamamlayabilirsiniz.
- Otomasyon: Tekrarlayan görevleri otomatikleştirmek için betikler (scriptler) yazabilirsiniz. Bu, sunucu yönetimi ve büyük veri işleme gibi alanlarda vazgeçilmezdir.
- Uzaktan Yönetim: Sunucular genellikle GUI’siz çalışır. SSH (Secure Shell) aracılığıyla komut satırı üzerinden uzaktan erişim ve yönetim sağlamak standart bir uygulamadır.
- Esneklik ve Güç: Komutlar birbirine zincirlenebilir, çıktıları başka komutlara girdi olarak verilebilir. Bu, sonsuz kombinasyon ve karmaşık işlemler yapma yeteneği sağlar.
- Daha Az Kaynak Tüketimi: GUI’ye göre daha az sistem kaynağı kullanır, bu da eski donanımlarda veya kaynak kısıtlı ortamlarda avantaj sağlar.
Terminale Erişim: Çoğu Linux dağıtımında, genellikle Ctrl + Alt + T tuş kombinasyonu ile veya uygulama menüsünden “Terminal” veya “Uçbirim” aratarak terminali açabilirsiniz.
Komut Yapısı: Linux komutları genellikle şu yapıya sahiptir:
komut [seçenekler] [argümanlar]
- Komut: Yapılacak eylemi belirler (örneğin,
ls,cd,cp). - Seçenekler (Options/Flags): Komutun davranışını değiştiren parametrelerdir (örneğin,
-llisteleme formatını değiştirir,-agizli dosyaları gösterir). Genellikle tek tire (-) veya çift tire (--) ile başlarlar (örneğin,-lveya--long). - Argümanlar (Arguments): Komutun üzerinde işlem yapacağı nesnelerdir (örneğin, dosya adları, dizin yolları).
Yardım Alma: Bir komutun ne işe yaradığını ve hangi seçenekleri olduğunu öğrenmek için man (manual) komutunu kullanabilirsiniz. Örneğin:
man ls
Bu komut, ls komutunun detaylı kullanım kılavuzunu açar. Kılavuz içinde gezinmek için ok tuşlarını, çıkmak için q tuşunu kullanın.
Temel Komutlar ve Dosya Sistemi Navigasyonu
Linux dosya sistemi hiyerarşiktir ve her şey kök dizin (/) altında başlar. Dosya sistemi içinde gezinmek ve temel işlemler yapmak için aşağıdaki komutları kullanırız:
pwd (Print Working Directory): Mevcut çalışma dizininizi (yani o an hangi klasörde olduğunuzu) gösterir.
pwd
/home/kullaniciadi/Belgeler
ls (List): Mevcut dizinin içeriğini listeler. Çok sayıda seçeneği vardır:
-l(long listing): Detaylı listeleme (izinler, sahip, boyut, tarih vb.).-a(all): Gizli dosyaları ve dizinleri (nokta ile başlayanlar) gösterir.-h(human readable): Dosya boyutlarını insanlar tarafından okunabilir formatta (KB, MB, GB) gösterir.
ls
dosya1.txt resimler/ yazilar/
ls -l
-rw-r--r-- 1 kullanici kullanici 1234 May 15 10:30 dosya1.txt
drwxr-xr-x 2 kullanici kullanici 4096 May 14 09:00 resimler/
ls -lah
total 20K
drwxr-xr-x 5 kullanici kullanici 4.0K May 15 11:00 .
drwxr-xr-x 20 kullanici kullanici 4.0K May 14 08:00 ..
-rw------- 1 kullanici kullanici 20K May 15 10:00 .bash_history
-rw-r--r-- 1 kullanici kullanici 1.2K May 15 10:30 dosya1.txt
drwxr-xr-x 2 kullanici kullanici 4.0K May 14 09:00 resimler/
cd (Change Directory): Dizin değiştirmenizi sağlar. En temel navigasyon komutudur.
cd Belgeler: “Belgeler” dizinine gider.cd ..: Bir üst dizine gider.cd .: Mevcut dizin (hiçbir şey yapmaz).cd ~veya sadececd: Ana dizininize (home directory) döner.cd /: Kök dizine gider.cd /var/log: Mutlak bir yola (kök dizinden başlayan) gider.
cd Belgeler
pwd
/home/kullaniciadi/Belgeler
cd ..
pwd
/home/kullaniciadi
mkdir (Make Directory): Yeni bir dizin oluşturur.
mkdir YeniDizin
ls
YeniDizin dosya1.txt resimler/
touch: Yeni, boş bir dosya oluşturur veya mevcut bir dosyanın erişim/değiştirme zaman damgasını günceller.
touch yeni_dosya.txt
ls
YeniDizin dosya1.txt resimler/ yeni_dosya.txt
Pratik İpucu: Komut satırında yazarken Tab tuşuna basarak komutları, dosya adlarını ve dizinleri otomatik tamamlayabilirsiniz. Bu, yazım hatalarını azaltır ve hızı artırır.
Dosya İşlemleri ve İçerik Görüntüleme
Dosyalarla çalışmak, komut satırının en temel görevlerinden biridir. İşte bazı önemli komutlar:
cp (Copy): Dosyaları veya dizinleri kopyalar.
cp kaynak_dosya hedef_dosya: Bir dosyayı kopyalar.cp kaynak_dosya hedef_dizin/: Bir dosyayı bir dizine kopyalar.cp -r kaynak_dizin/ hedef_dizin/: Dizinleri ve içindeki tüm içeriği kopyalamak için-r(recursive) seçeneği kullanılır.
cp yeni_dosya.txt yedek_dosya.txt
cp yedek_dosya.txt Belgeler/
cp -r YeniDizin/ Yedekler/
mv (Move): Dosyaları veya dizinleri taşır veya yeniden adlandırır.
mv kaynak_dosya hedef_dosya: Bir dosyayı yeniden adlandırır.mv kaynak_dosya hedef_dizin/: Bir dosyayı bir dizine taşır.
mv yedek_dosya.txt eski_yedek.txt
mv eski_yedek.txt Belgeler/
rm (Remove): Dosyaları veya dizinleri siler. Dikkatli olun, silinen dosyalar genellikle geri alınamaz!
rm dosya.txt: Bir dosyayı siler.rm -r dizin/: Bir dizini ve içindeki tüm içeriği silmek için-r(recursive) seçeneği kullanılır.rm -f dosya.txt: Zorla silme (onay istemeden, “force”).rm -rf dizin/: Bir dizini ve içindeki her şeyi zorla ve onay istemeden siler. Bu komutu kullanırken son derece dikkatli olun, yanlış bir dizinle sisteminize kalıcı zarar verebilirsiniz. Özelliklerm -rf /komutu tüm sistemi siler!
rm yeni_dosya.txt
rm -r Yedekler/
cat (Concatenate): Bir dosyanın içeriğini terminale yazdırır. Küçük dosyaları hızlıca görüntülemek için kullanışlıdır.
cat /etc/os-release
less ve more: Büyük dosyaların içeriğini sayfa sayfa görüntülemek için kullanılır. less, more‘a göre daha gelişmiştir (ileri ve geri gidebilirsiniz). Çıkmak için q tuşuna basın.
less /var/log/syslog
head ve tail: Bir dosyanın sırasıyla ilk veya son 10 satırını gösterir. -n seçeneği ile satır sayısını belirleyebilirsiniz.
head -n 5 logfile.txt # Dosyanın ilk 5 satırını gösterir
tail -n 20 logfile.txt # Dosyanın son 20 satırını gösterir
tail -f logfile.txt # Dosyaya yeni eklenen satırları canlı olarak izler (log dosyaları için ideal)
grep (Global Regular Expression Print): Dosyalar içinde belirli bir metin kalıbını arar.
grep "hata" /var/log/syslog # syslog dosyasında "hata" kelimesini arar
grep -i "warning" log.txt # Büyük/küçük harf duyarlılığı olmadan "warning" arar
grep -r "root" /etc # /etc dizini içinde ve alt dizinlerde "root" arar
Girdi/Çıktı Yönlendirme ve Zincirleme (Piping)
Linux’ta her komutun standart bir çıktısı (stdout), standart bir girdisi (stdin) ve standart bir hata çıktısı (stderr) vardır. Bu akışları yönlendirmek ve komutları birbirine bağlamak, komut satırının gücünü ortaya çıkarır.
> (Çıktıyı Dosyaya Yazma): Bir komutun standart çıktısını bir dosyaya yazar. Eğer dosya yoksa oluşturur, varsa içeriğini tamamen siler ve üzerine yazar.
ls -l > dosya_listesi.txt # ls çıktısını dosya_listesi.txt'ye yazar
Şimdi cat dosya_listesi.txt yazarak çıktıyı görebilirsiniz.
>> (Çıktıyı Dosyaya Ekleme): Bir komutun standart çıktısını bir dosyanın sonuna ekler. Dosya yoksa oluşturur.
echo "Yeni bir satır ekliyorum." >> dosya_listesi.txt # Metni dosyanın sonuna ekler
| (Pipe/Boru Hattı): Bir komutun standart çıktısını, başka bir komutun standart girdisi olarak kullanır. Bu, komutları birleştirerek karmaşık işlemler yapmanızı sağlar.
ls -l | less # ls çıktısını less'e gönderir, böylece sayfa sayfa gezinebilirsiniz
cat /var/log/syslog | grep "error" | head -n 10 # syslog'daki hataları bul, ilk 10'unu göster
ps aux | grep "firefox" # Tüm çalışan süreçler arasında firefox'u arar
Sistem Bilgileri ve Süreç Yönetimi
Sistem kaynaklarını izlemek ve çalışan uygulamaları yönetmek için bazı temel komutlar:
df (Disk Free): Dosya sistemi disk alanı kullanımını gösterir.
df -h: Disk alanını insanlar tarafından okunabilir formatta (GB, MB) gösterir.
df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 797M 1.7M 795M 1% /run
/dev/sda1 235G 56G 167G 26% /
tmpfs 3.9G 68M 3.9G 2% /dev/shm
du (Disk Usage): Dosya veya dizinlerin disk kullanımını gösterir.
du -sh dizin_adi/: Belirli bir dizinin toplam boyutunu insanlar tarafından okunabilir formatta özetler.du -h: Mevcut dizindeki tüm dosya ve alt dizinlerin boyutlarını gösterir.
du -sh Belgeler/
4.5G Belgeler/
free: Sistemdeki bellek (RAM) kullanımını gösterir.
free -h: Bellek kullanımını insanlar tarafından okunabilir formatta gösterir.
free -h
total used free shared buff/cache available
Mem: 7.8Gi 2.5Gi 3.1Gi 1.7Gi 2.2Gi 3.4Gi
Swap: 2.0Gi 0B 2.0Gi
ps (Process Status): Çalışan süreçleri (programları) gösterir.
ps aux: Tüm kullanıcıların tüm süreçlerini detaylı bir şekilde listeler.ps -ef: Süreçleri hiyerarşik bir görünümde listeler.
ps aux | head -n 5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 168128 11624 ? Ss May14 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S May14 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< May14 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< May14 0:00 [rcu_par_gp]
top: Süreçleri dinamik ve gerçek zamanlı olarak izler. CPU, bellek kullanımı ve çalışan süreçler hakkında sürekli güncellenen bilgi sağlar. Çıkmak için q tuşuna basın.
top
kill: Bir süreci (programı) sonlandırmak için kullanılır. Süreç ID'sini (PID) argüman olarak alır. PID'yi ps veya top komutlarından alabilirsiniz.
kill PID: Sürece nazikçe sonlandırma sinyali gönderir.kill -9 PID: Süreci zorla sonlandırır (acil durumlarda kullanılır).
kill 12345 # 12345 PID'li süreci sonlandırır
Not: Bazı komutlar (örneğin sistem dosyalarını düzenleme, kullanıcı ekleme) için yönetici ayrıcalıklarına ihtiyacınız olabilir. Bu durumda komutun başına sudo (superuser do) eklemeniz gerekir. Örneğin: sudo apt update.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Linux komut satırı, ilk başta göz korkutucu gelebilir, ancak bu rehberde ele alınan temel komutlar ve konseptler, bu güçlü aracı etkili bir şekilde kullanmaya başlamanız için sağlam bir zemin oluşturacaktır. Pratik yaparak, komutları birleştirerek ve man sayfalarını keşfederek bilginizi sürekli genişletebilirsiniz. Unutmayın, Linux komut satırı bir öğrenme yolculuğudur ve her yeni komut, size yeni bir kapı açacaktır. Terminali açmaktan çekinmeyin ve denemeye başlayın!
Sıkça Sorulan Sorular (SSS)
- Komut satırını öğrenmek ne kadar sürer?
Temel komutları öğrenmek birkaç gün veya hafta sürebilirken, uzmanlaşmak ve ileri düzey betikler yazmak aylar, hatta yıllar alabilir. Önemli olan düzenli pratik yapmak ve yeni şeyler denemekten çekinmemektir.
- GUI varken neden CLI kullanmalıyım?
CLI, otomasyon, uzaktan yönetim, hız ve kaynak verimliliği gibi GUI'nin sunamadığı avantajlar sağlar. Özellikle sunucu yönetimi, yazılım geliştirme ve sistem sorun giderme gibi profesyonel alanlarda CLI bilgisi vazgeçilmezdir.
- Hangi Linux dağıtımını seçmeliyim?
Başlangıç seviyesi için Ubuntu, Linux Mint veya Fedora gibi kullanıcı dostu dağıtımlar önerilir. Bu dağıtımlar geniş topluluk desteği ve bol miktarda kaynak sunar.
- Komutları unutursam ne yapmalıyım?
Bu çok doğaldır!
man komut_adiile yardım alabilir, internette arama yapabilir veyahistorykomutu ile daha önce kullandığınız komutları görebilirsiniz. AyrıcaCtrl+Rtuşlarına basarak geçmiş komutlar arasında arama yapabilirsiniz. - En sık kullanılan komutlar hangileri?
Bu rehberde bahsettiğimiz
ls,cd,pwd,cp,mv,rm,cat,grep,man,sudo,topgibi komutlar en sık kullanılanlar arasındadır. Bunlara ek olarak,ssh,wget,apt/dnf/pacman(paket yöneticileri) ve çeşitli metin düzenleyicileri (nano,vim) de önemlidir.
