Açık Kaynak İşletim Sistemleri

4 - Komut Satırı ve Temel Komutlar

Emre Can Yılmaz

Ondokuz Mayıs Üniversitesi

2026

İçerik

  • Terminal (Konsol) Uygulaması
  • Kabuk (Shell)
  • Komut Yapısı ve Yardım Alma
  • Dosya Sistemi İçinde Gezinme
  • Temel Komutlar
  • Ortam Değişkenleri ve Bağlantılar
  • Bilgi Alma Komutları

Kabuk (Shell)

Kullanıcıların işletim sistemi ile etkileşebileceği iki temel ortam vardır:

  • Grafik masaüstü
  • Komut satırı

Komut satırında, yazdığımız komutları yorumlayıp çalıştıran programa kabuk (shell) denir.

Kabuk, komutları yorumlar; işletim sisteminin çalıştırma mekanizmasına iletir ve sonucu bize gösterir.

Kabuk Programı

En yaygın kabuk programı Bash (Bourne Again Shell) olmakla birlikte farklı kabuklar da vardır:

  • sh, ksh, csh, zsh, fish

Araştırma sorusu: Kabuk programı nasıl değiştirilir?

  • İpucu: Mevcut kabuğu görmek için echo $SHELL deneyin.
  • İpucu: Bazı sistemlerde chsh komutu kullanılır (ayrıntı araştırma konusu).

Terminal (Konsol)

Terminal, komutları yazdığımız arayüzdür.

  • Terminal uygulaması (çoğu zaman bir terminal emülatörü) bir oturum açar.
  • Bu oturum içinde bir shell çalışır.
  • Sonuçlar terminal ekranına yansır.

Örnek terminal uygulamaları: gnome-terminal, alacritty, konsole, xterm, ghostty

Komut Satırı Örneği (bash kabuğu)

emrecan@ubuntu:~$
  • emrecan: Kullanıcı adı
  • @: ayraç
  • ubuntu: Bilgisayar adı
  • :~ : Bulunduğu dizin (burada ev dizini)
  • $: Yetki işareti

Not

  • $ genellikle normal kullanıcıyı, # genellikle yönetici kullanıcıyı ifade eder.
  • Komut satırı görünümü özelleştirilebilir; her sistemde aynı görünmeyebilir.

Araştırma sorusu: Komut satırı (prompt) nasıl özelleştirilebilir?

  • İpucu: PS1 değişkeni ve ~/.bashrc dosyası araştırılabilir.

Terminal Neden Kullanılır?

Terminalin güçlü olduğu tipik durumlar:

  • Tekrarlayan işleri hızlı yapmak
  • Uzaktan bağlanıp yönetmek (grafik arayüz olmadan)
  • Sorun giderme (grafik arayüz açılmasa bile)
  • Komutları birleştirerek daha fazla iş yapmak
  • Otomatikleştirme (komutları dosyaya yazıp çalıştırma)

Ubuntu’da Terminal Nasıl Açılır?

  • Ctrl+Alt+T
  • Uygulamalar menüsünde “Terminal” araması
  • GNOME aktiviteler ekranında “terminal” araması
  • Bazı masaüstlerinde sağ tık → “Terminal’i aç”

Terminalde Hızlı Alışkanlıklar

Bu küçük alışkanlıklar, ilk haftalarda hataları azaltır ve çalışmayı kolaylaştırır:

  • Tab: komut / dosya adını tamamlama
  • Ctrl + C: çalışan komutu durdurma (komut “takıldıysa” ilk denenecek şeylerden biridir)
  • Ctrl + L: ekranı temizleme (alternatif: clear)
  • Ctrl + R: geçmişte komut arama

Komut Yapısı

Genel biçim:

komut_ismi seçenekler argümanlar

Örnek:

ls -al /etc
  • ls: komut
  • -al: seçenekler (parametreler)
  • /etc: argüman (hedef)

Seçenekler genellikle - veya -- ile başlar:

  • Kısa seçenek: -a, -l (birleştirilebilir: -la)
  • Uzun seçenek: --all, --long

Yardım Alma

Komutların nasıl kullanıldığını öğrenmenin en güvenilir yolu yardım sayfalarıdır.

  • man komut: detaylı yardım
  • komut --help: hızlı özet
  • Bazı durumlarda help komut (özellikle kabuk içi komutlarda)

Örnekler:

man ls
ls --help
help cd

Komut Geçmişi

  • Yazdığınız komutlar kabuk tarafından geçmişe kaydedilir.
  • Yukarı/aşağı ok tuşları ile geçmişteki komutlara erişebilirsiniz.
  • Ctrl + R ile geçmişte arama yapabilirsiniz.

Dene:

history

Not

Geçmiş dosyası kullandığınız kabuğa göre değişebilir.

  • Bash: ~/.bash_history
  • Zsh: ~/.zsh_history

Bu hafta için önemli olan: geçmişe erişmeyi ve Ctrl + R ile aramayı öğrenmek.

Temel Komutlar

Bu bölümde amaç: terminalde dosya sistemi içinde gezinebilmek ve temel işlemleri yapabilmek.

pwd (print working directory)

Bulunulan dizinin yolunu verir.

pwd

Örnek çıktı:

/home/emrecan

cd (change directory)

Dizinler arasında geçiş yapmak için kullanılır.

cd /var/log
pwd

Örnek çıktı:

/var/log

Mutlak Yol

Yol / ile başlıyorsa, kökten itibaren yazılmıştır.

Örnek:

/etc
/home/emrecan
/usr/local/bin
cd /usr
cd /etc

Göreceli Yol (Bağıl Yol)

Yol / ile başlamıyorsa, bulunulan dizine göre yorumlanır.

cd /usr
cd local/bin
pwd

Örnek çıktı:

/usr/local/bin

Özel Dizin Gösterimleri

Gösterim Temsil ettiği
. Mevcut dizin
.. Üst dizin
~ Ev dizini
- Bir önceki dizin

Özel Gösterimleri Deneyelim

cd /usr/local/bin
pwd
/usr/local/bin

cd ..
pwd
/usr/local

cd .
pwd
/usr/local

cd ~
pwd
/home/emrecan

Not

cd . dizin değiştirmez; bu yüzden pwd çıktısı aynı kalır.

Diğer Kullanıcıların Ev Dizinleri

  • Başka bir kullanıcının ev dizinine gitmek için ~kullanıcı gösterimi kullanılabilir.
cd ~emrecan
pwd
/home/emrecan

Ortam Değişkenleri

Bazı bilgiler kabuk tarafından “değişken” olarak taşınır.

Örnek:

echo $SHELL
echo $HOME
echo $USER

Tüm ortam değişkenlerini görmek için:

env

PATH

PATH, bir komut yazınca sistemin komutu hangi dizinlerde arayacağını belirleyen listedir.

Örnek:

echo $PATH

Not

Bu konuyu ilerleyen haftalarda genişleteceğiz. Şimdilik hedef: “komut bulunamazsa nerelerde arıyor?” sorusunu PATH ile ilişkilendirmek.

Çalışma Sorusu

  • .bashrc dosyası ne işe yarar?
  • PATH’e yeni bir dizin nasıl eklenir ve bu değişiklik nasıl kalıcı hale getirilir?

(İpucu: önce dosyayı sadece görüntüleyin)

cat ~/.bashrc

Alıştırmalar

Aşağıdaki her alıştırmada şu sırayı izleyin:

  1. Çıktıyı tahmin edin.
  2. Terminalde komutları çalıştırın.
  3. pwd çıktısını not alın ve tahmininizle karşılaştırın.
  1.    cd /usr/local/bin
       cd ../../local
       pwd
  2.    cd /bin
       cd ../usr/share/zoneinfo
       pwd
  3.    cd ~/../../usr/local
       pwd

ls

Dizin içeriğini listeler.

  • ls -a: gizli dosyaları da gösterir (adı . ile başlayanlar)
  • ls -l: detaylı liste (izinler, sahip, boyut, tarih)
  • ls -h: boyutları daha okunaklı gösterir (genellikle -l ile birlikte)

Örnek:

ls -alh

Not

ls -a çıktısında . ve .. görünür. ls -l çıktısındaki izin alanını ilerleyen haftalarda ayrıntılı ele alacağız.

Dosya Türleri

ls -l çıktısında en soldaki karakter dosya türünü gösterir.

d  dizin
-  normal dosya
l  kısayol (sembolik bağlantı)

Ek bilgi (şimdilik yeterli)

Bazı sistemlerde p (pipe) ve s gibi türler de görülebilir. Detayları gerektiğinde ele alırız.

mkdir

Dizin oluşturur.

mkdir foo
mkdir bar baz
mkdir -p dizin1/dizin2/dizin3

touch

  • Boş bir dosya oluşturur.
  • Var olan dosyanın erişim ve değiştirme zamanlarını güncelleyebilir (atime / mtime).
touch /tmp/benioku

echo

Metin yazdırır.

echo Selam

Çıktıyı Dosyaya Yazma (Ön Bilgi)

> işareti, komutun standart çıktısını bir dosyaya yazar.

echo Selam > selam.txt
cat selam.txt

>> aynı dosyanın sonuna ekler.

echo Tekrar >> selam.txt
cat selam.txt

Not

Bu hafta hedef: çıktıyı dosyaya yazma fikrini tanımak. Yönlendirme konusunu ilerleyen haftalarda daha sistematik ele alacağız.

cat

Dosya içeriğini ekrana yazar.

cat selam.txt

Birden fazla dosyayı da okuyabilir:

cat selam1.txt selam2.txt

less (Önerilir)

cat kısa dosyalarda iyidir. Uzun dosyalarda less daha kullanışlıdır.

less /etc/passwd

Çıkış: q

head / tail

Dosyanın başını veya sonunu hızlıca görmek için kullanılır.

head /etc/passwd
tail /etc/passwd

İlk/son 5 satır gibi:

head -n 5 /etc/passwd
tail -n 5 /etc/passwd

cp

Dosya ve dizin kopyalar.

Biçim:

cp kaynak hedef
  • Üzerine yazma riski vardır.
  • -i ile sorarak kopyalar (önerilir).
cp -i eski_dosya yeni_dosya

Dizin kopyalamak için:

cp -r eski_dizin /tmp/yeni_dizin

mv

Dosya veya dizin taşır / adını değiştirir.

mv eski_ad yeni_ad
mv dosya /tmp

Üzerine yazma riski için:

mv -i dosya hedef

Çalışma sorusu: mv ile dosya adını değiştirince inode numarası değişir mi?

rm (Dikkat)

Dosya/dizin siler.

Uyarı

Bu komut “çöp kutusuna” göndermez; doğrudan siler.

Önemli seçenekler:

  • -i: silmeden önce sorar
  • -r: dizinleri silmek için gerekir
  • -f: zorlar (çok dikkatli)

Örnek:

rm -i silinecek_dosya.txt
rm -r silinecek_dizin

Çok kritik not

Aşağıdaki gibi komutlar sistemi kullanılmaz hale getirebilir (ÇALIŞTIRMAYIN!):

rm -rf /

Terminalde Sık Görülen Hata Mesajları

Bu mesajlar “bir şey bozuldu” anlamına gelmez; çoğu zaman teşhis için ipucu verir.

  • No such file or directory Dosya/dizin yok, yol yanlış yazılmış olabilir.

  • Permission denied Yetki/izin problemi. (İzinleri ilerleyen haftalarda detaylandıracağız.)

  • command not found Komut yok, kurulu değil ya da PATH içinde bulunmuyor olabilir.

find (Temel)

Dosya/dizin aramak için kullanılır.

Biçim:

find dizin seçenekler

En çok kullanılanlar:

  • -name: isimle arama
  • -type: tür (f dosya, d dizin)
  • -size: boyuta göre arama

Örnekler:

find /etc -name "local*" -type f
find /etc -name "local*" -type d

find Örnekleri

  • /bin altında 1 MB’tan büyük dosyaları bul:
find /bin -type f -size +1M
  • Ev dizininde son 1 gün içinde değişen dosyaları bul:
find ~ -type f -mtime -1

Bağlantılar Nerede İşe Yarar?

Bir veriyi başka yere taşıyıp eski yolu korumak istediğinizde işe yarar.

Örnek fikir:

ln -s /mnt/yeni_disk/data /var/lib/data

Böylece programlar /var/lib/data yolunu kullanmaya devam edebilir.

Bilgi Alma Komutları

Bu komutlar “sistem hakkında hızlı bilgi” verir. Çıktılar sistemden sisteme değişebilir; bu normaldir.

whoami / hostname

Bu iki komut, “ben kimim ve bu makine hangisi?” sorularına hızlı cevap verir.

  • whoami: Terminal oturumunun hangi kullanıcıyla açıldığını gösterir.
  • hostname: Sistemin ağ üzerindeki bilgisayar adını (host adını) gösterir.
whoami
hostname

uname

Çekirdek hakkında bilgi verir (özellikle kernel adı/sürümü gibi).

uname -a

Dağıtım Bilgisi

Bazı sistemlerde:

lsb_release -a

Eğer lsb_release yoksa, genelde şu dosya vardır:

cat /etc/os-release

date / uptime

Zaman ve çalışma süresiyle ilgili hızlı bilgi verir.

  • date: Sistemin tarih ve saat bilgisini yazdırır.
  • uptime: Sistemin en son açılışından beri ne kadar süredir çalıştığını ve genel yük bilgisini özetler.
date
uptime

Alıştırma: Bugünün tarihini GG.AA.YYYY formatında yazdırmayı deneyin (man date).

which (Komut Nereden Geliyor?)

Bir komutun tam yolunu gösterir.

which date
which ls

Alıştırma:

  1. ls komutunun yolunu bulun.
  2. O yolun gerçekten bir dosya olduğunu doğrulayın.
which ls
ls -l "$(which ls)"

Not

Bazı durumlarda which yerine command -v komut da kullanılabilir. Bu hafta için hedef: “komut hangi dosyadan çalışıyor?” sorusunu yanıtlayabilmek.

Bilgi Alma Komutları

Komut 1 cümlede ne yapar?
df Disk bölümlerinin doluluk durumunu gösterir.
du Dosya ve dizinlerin diskte kapladığı alanı gösterir.
free RAM ve swap kullanımının özetini verir.
lspci PCI aygıtlarını listeler (ekran kartı, ağ kartı gibi).
dmidecode BIOS/anakart gibi donanım bilgilerini gösterir (çoğu zaman sudo gerekir).

Komut Referansları

  • explainshell.com — Komutları parça parça açıklar
  • cheat.sh — Hızlı kopya kağıtları

Terminalden örnek:

curl cheat.sh/ls
curl cheat.sh/find

Ek (İsteğe Bağlı): fzf

Komut geçmişinde ve dosyalarda arama işini kolaylaştıran bir araçtır.

Sorular?