Terminali açtığınızda karşınıza çıkan boş satır, Linux'un sunduğu en hızlı kontrol panelidir. Fare ile menüler arasında dolaşmak yerine, komut satırından bir dosyayı saniyeler içinde bulup silebilir, yüzlerce satırlık logu tek komutla tarayabilirsiniz. Bu rehberde günlük kullanımda gerçekten işe yarayan komutları, gerçek örneklerle ele alıyoruz.
Öğrenme eğrisi ilk günlerde dik gibi görünür; komut isimleri ezbere değil alışkanlıkla akılda kalır. On, on beş temel komutu öğrendikten sonra kabuk, fareyle dolaşmaktan çok daha hızlı çalışan doğal bir araca dönüşür.
Terminal Nasıl Çalışır
Terminali açtığınızda gördüğünüz satırın adı prompt'tur; genellikle kullanıcı adını, makine adını ve bulunduğunuz dizini gösterir. Bir komut yazıp Enter'a bastığınızda kabuk (shell) komutu okur, gerekiyorsa parçalarına ayırır ve çalıştırır. Komutların büyük kısmı şu kalıbı izler:
komut -seçenek argüman
Seçenekler (-l, --help gibi) komutun davranışını değiştirir; argüman ise komutun üzerinde çalışacağı hedefi belirtir. Bir komutun kullanımını unuttuğunuzda başvurulacak iki kaynak vardır:
ls --help
man ls
--help kısa bir özet verir, man ise komutun ayrıntılı kılavuz sayfasını açar. Kılavuz sayfasında yön tuşlarıyla gezinir, q tuşuyla çıkarsınız. Bu iki komutu öğrenmek yüzlerce komutu ezbere bilmeye gerek bırakmaz; ihtiyaç anında doğru kullanımı kendiniz bulursunuz.
Farklı kabuklar (bash, zsh, fish) küçük sözdizimi farklarıyla çalışır ama temel mantık aynı kalır. Ubuntu ve Debian gibi dağıtımların çoğu varsayılan olarak bash kullanır; bu rehberdeki örnekler bu yüzden doğrudan çalışır. Hangi kabuğu kullandığınızı görmek için echo $SHELL komutunu yazmanız yeterlidir.
Bir komutu çalıştırmadan önce ne yapacağını görmek yararlı bir alışkanlıktır. Özellikle find komutunu -delete ile kullanmadan önce aynı komutu -delete olmadan çalıştırıp sonucu kontrol etmek, istenmeyen dosya kayıplarının önüne geçer.
Dosya ve Dizinlerle Çalışmak
Günlük kullanımın büyük bölümü dosya ve dizin komutlarından oluşur. Bulunduğunuz dizindeki dosyaları listelemek için:

ls -la
-l seçeneği ayrıntılı listeyi, -a seçeneği gizli dosyalar dahil tüm listeyi gösterir; nokta ile başlayan dosyalar normalde gizli kalır. Dizinler arasında gezinmek için cd, bulunduğunuz konumu görmek için pwd kullanılır:
cd /var/log
pwd
cd ..
cd .. bir üst dizine çıkarır, cd - ise bir önceki dizine geri döndürür; iki klasör arasında sık gidip geliyorsanız bu ikinci komut zaman kazandırır. Dosya ve dizin oluşturmak, kopyalamak ve taşımak için şu komutlar yeterlidir:
mkdir yeni-klasor
touch not.txt
cp kaynak.txt hedef.txt
mv eski-ad.txt yeni-ad.txt
rm gereksiz.txt
rm komutunun sildiği dosya çöp kutusuna gitmez, doğrudan ve kalıcı olarak silinir. rm -rf klasor yazmadan önce hangi dizinde olduğunuzu bir kez daha kontrol etmek, kaybedilen bir günden çok daha ucuza gelir.
Dosya içeriğini görmek için birkaç komut kullanılır. cat dosya.txt tüm içeriği ekrana döker, uzun dosyalarda less dosya.txt sayfa sayfa gezinmeyi sağlar. Log dosyalarının son satırlarını canlı izlemek için tail -f /var/log/syslog günlük yönetiminde en sık kullanılan komutlardan biridir; head -n 20 dosya.txt ise bir dosyanın ilk yirmi satırını gösterir.
Sistemi ve Süreçleri İzlemek
Sistem yavaşladığında ilk bakılacak yer çalışan süreçlerdir. top komutu, hangi programın ne kadar işlemci ve bellek kullandığını gerçek zamanlı gösterir:
top
htop
htop aynı işi renkli ve kaydırılabilir bir arayüzle yapar; çoğu dağıtımda ayrıca kurulması gerekir. Belirli bir süreci sonlandırmak için önce PID numarasını bulup kill komutuna verirsiniz:
ps aux | grep firefox
kill 4821
kill -9 4821
kill -9 süreci kapanış istemi göndermeden anında sonlandırır; normal kill ise önce programa "kendini kapat" sinyali gönderir, işe yaramazsa -9 seçeneğine geçersiniz. Disk ve bellek durumunu görmek için de birkaç hızlı komut vardır:
df -h— disk bölümlerinin doluluk oranıdu -sh klasor/— bir dizinin toplam boyutufree -h— bellek kullanımı
Bu üç komutu haftada bir kez çalıştırmak bile, disk dolmadan veya bellek tükenmeden önce sorunu fark etmenizi sağlar. Sunucu yönetiminde bu izleme alışkanlığı, sorun büyümeden erken uyarı almanın en ucuz yoludur.
İzinler ve sudo Kullanımı
Linux çok kullanıcılı bir sistem olduğu için her dosyanın sahibi, grubu ve diğer kullanıcılar için ayrı izinleri vardır. ls -l çıktısındaki rwxr-xr-- gibi harfler bu izinleri gösterir; okuma, yazma ve çalıştırma yetkisi sırasıyla sahip, grup ve diğerleri için tekrar eder. İzinleri değiştirmek için chmod, sahipliği değiştirmek için chown kullanılır:

chmod 755 script.sh
chown kullanici:grup dosya.txt
Yönetici yetkisi gerektiren işlemlerde sudo devreye girer. sudo apt update gibi bir komut, yalnızca o işlemi geçici olarak root yetkisiyle çalıştırır; sürekli root oturumu açmak yerine bu yaklaşım, sistem dosyalarını yanlışlıkla bozma riskini büyük ölçüde azaltır. sudo isteyen bir komutu çalıştırmadan önce ne yaptığını anlamak önemlidir; bu yetki seviyesinde yapılan hatalar geri alınamayabilir.
Yeni bir kullanıcı eklemek veya parola değiştirmek gibi işlemler de aynı yetki seviyesini gerektirir:
sudo adduser yenikullanici
passwd
Bu komutlar, özellikle birden fazla kişinin ortak kullandığı sunucularda düzenli olarak devreye girer.
Metin Arama ve Boru Hattı
Linux'un asıl gücü, küçük komutları birbirine bağlayarak birleştirme yeteneğinde yatar. grep komutu, bir dosya veya çıktı içinde belirli bir deseni arar:

grep "error" /var/log/syslog
grep -r "TODO" ~/projeler/
find komutu ise dosya sisteminde ada, boyuta veya değiştirilme tarihine göre arama yapar:
find /home -name "*.pdf"
find . -mtime -7
Boru işareti (|), bir komutun çıktısını başka bir komuta girdi olarak aktarır. Örneğin çalışan süreçler listesini filtrelemek için:
ps aux | grep nginx | wc -l
Bu tek satır üç komutu art arda çalıştırır. Önce çalışan süreçleri listeler, ardından yalnızca nginx geçen satırları filtreler, son olarak kaç satır kaldığını sayar. Çıktıyı ekrana değil bir dosyaya yazmak isterseniz > yönlendirme işaretini kullanırsınız; örneğin ls -la > liste.txt. Var olan bir dosyanın sonuna eklemek için ise çift işaret >> kullanılır. Bu birleştirme mantığı Linux felsefesinin özünü yansıtır: küçük araçlar, tek işi iyi yaparak birbirine bağlanır.
Paket Yönetimi
Yazılım kurmak, Windows'ta olduğu gibi tek tek kurulum dosyası indirmek yerine merkezi bir depo üzerinden yapılır. Debian tabanlı dağıtımlarda (Ubuntu, Debian) apt, Red Hat ailesinde dnf, Arch'ta pacman kullanılır:
sudo apt update && sudo apt upgrade
sudo apt install htop
apt update paket listesini tazeler, apt upgrade ise mevcut paketleri günceller; bu ikisini birlikte çalıştırmak alışkanlık hâline getirilmelidir. Paket yöneticisi, kurduğunuz programın ihtiyaç duyduğu bağımlılıkları da otomatik indirir; bu yüzden manuel .deb dosyası indirip kurmaktan çok daha az sorun çıkarır.
Bir paketi kaldırmak için sudo apt remove paket-adi, bir yazılımı aramak için apt search anahtar-kelime yeterlidir. Düzenli güncelleme aynı zamanda güvenlik açıklarını kapatmanın da tek yoludur; sunucularda bu adımı atlamak zamanla ciddi risk biriktirir. Komutları çalıştıran kabuğun tüm özelliklerini merak edenler Bash'in resmi kılavuzuna bakabilir.
Sürüm numarasını kontrol etmek isterseniz apt list --installed | grep paket-adi komutu hangi sürümün kurulu olduğunu gösterir; bu bilgi, bir hata raporu yazarken veya belgelerle karşılaştırma yaparken ilk sorulan sorudur.
Verimliliği Artıran Küçük Alışkanlıklar
Tab tuşuyla otomatik tamamlama, öğrenilmesi gereken en değerli alışkanlıktır. Bir dosya adının veya komutun ilk birkaç harfini yazıp Tab'a bastığınızda kabuk geri kalanını tamamlar; iki kez art arda basarsanız olası seçenekleri listeler. Bu tek özellik bile yazım hatalarının büyük kısmını ortadan kaldırır.
Yukarı ok tuşu önceki komutlarda gezinmenizi sağlar; uzun bir komutu yeniden yazmak yerine geçmişten çağırıp düzenlersiniz. history komutu tüm geçmişi listeler, Ctrl+R ise geçmişte anlık arama yapmanızı sağlar. Sık kullandığınız uzun komutlar için de kısayol tanımlayabilirsiniz:
alias gs="git status"
alias ll="ls -la"
Bu takma adları ~/.bashrc dosyasına eklerseniz her terminal açılışında otomatik yüklenir. Küçük görünen bu ayarlar, günde onlarca kez tekrarladığınız işlemleri saniyelere indirir.
Sıkıştırma ve arşivleme de günlük işlerin bir parçasıdır. tar birden fazla dosyayı tek arşivde toplar; genellikle gzip sıkıştırmasıyla birlikte kullanılır:
tar -czvf yedek.tar.gz klasor/
tar -xzvf yedek.tar.gz
Buradaki harfler kısaltmadır: c arşiv oluşturur, x arşivi açar, z gzip sıkıştırması uygular, v ayrıntılı çıktı verir, f ise arşiv dosyasının adını belirtir. Bu komutu bir kez öğrendiğinizde yedekleme betiklerinin temelini de atmış olursunuz. Uzak bir sunucuya dosya kopyalamak için ise scp yedek.tar.gz kullanici@sunucu:/hedef/ komutu yeterlidir.
Komutları öğrenmenin en hızlı yolu, onları gerçek görevlerde kullanmaktır. Bir sonraki adım, bu komutları && ile birbirine bağlayıp basit kabuk betikleri yazmaktır; tekrar eden görevleri otomatikleştirmek, komut satırının asıl zaman kazandırdığı yerdir.
Henüz yorum yok.
Sohbete katıl. Yorumlar yayınlanmadan önce moderasyondan geçer.