Takip et

Linux Navigasyon ve Dosya Yönetimi: Komut Satırı Temelleri

Linux Navigasyon ve Dosya Yönetimi: Komut Satırı Temelleri Linux işletim sistemi, gücünü ve esnekliğini büyük ölçüde dosya sistemi ve

Linux Navigasyon ve Dosya Yönetimi: Komut Satırı Temelleri

Linux işletim sistemi, gücünü ve esnekliğini büyük ölçüde dosya sistemi ve komut satırı arayüzünden (CLI) alır. Bu rehber, Linux’ta dosya ve dizinler arasında gezinme, oluşturma, kopyalama, taşıma, silme ve izinleri yönetme gibi temel işlemleri komut satırı üzerinden gerçekleştirmek için gerekli bilgileri ve pratik örnekleri sunmaktadır.

1. Linux Dosya Sistemi ve Temelleri

Linux’un dosya sistemi, tek bir kök dizin (/) altında hiyerarşik bir yapıda düzenlenmiştir. Windows’taki sürücü harfleri (C:, D:) gibi bir kavram yerine, her şey bu kök dizininin altındadır. Bu yapı, sistemin düzenli ve yönetilebilir olmasını sağlar.

Önemli Dizinler:

  • /: Kök dizin. Tüm dosya sisteminin başlangıç noktası.
  • /bin: Temel kullanıcı komutlarını (binary’leri) içerir (örn. ls, cp, mv).
  • /sbin: Sistem yönetimi için gerekli komutları içerir (örn. fdisk, reboot).
  • /etc: Sistem genelindeki yapılandırma dosyalarını içerir (örn. passwd, fstab).
  • /home: Kullanıcıların kişisel dizinlerini içerir (örn. /home/kullaniciadi).
  • /var: Değişken verileri içerir (örn. log dosyaları, e-posta kuyrukları).
  • /tmp: Geçici dosyalar için bir dizindir. Sistem yeniden başlatıldığında içeriği genellikle silinir.
  • /usr: Kullanıcı programları ve kütüphaneleri içerir (Unix System Resources).
  • /opt: İsteğe bağlı, üçüncü taraf yazılımların kurulum yeri.
  • /dev: Cihaz dosyalarını içerir (örn. /dev/sda sabit disk).
  • /proc: Çalışan süreçler hakkında bilgi içeren sanal bir dosya sistemidir.
  • /mnt ve /media: Harici cihazların (USB bellek, CD/DVD) bağlanma noktalarıdır.

2. Dizinler Arasında Gezinme

Komut satırında etkili bir şekilde çalışmak için mevcut konumunuzu bilmek ve dizinler arasında rahatça hareket edebilmek çok önemlidir.

2.1. Mevcut Dizini Görüntüleme: pwd

pwd (Print Working Directory) komutu, o an hangi dizinde bulunduğunuzu gösterir.

pwd

Örnek çıktı:

/home/kullaniciadi/belgeler

2.2. Dizin İçeriğini Listeleme: ls

ls komutu, bir dizinin içeriğini (dosyalar ve alt dizinler) listeler.

ls

Bazı yaygın ls seçenekleri:

  • -l (long listing format): Dosya izinleri, sahip, boyut, tarih gibi detaylı bilgileri gösterir.
  • -a (all): Gizli dosyalar ve dizinler dahil tüm içeriği gösterir (gizli dosyalar nokta ile başlar, örn. .bashrc).
  • -h (human readable): Dosya boyutlarını insanlar tarafından okunabilir formatta (örn. KB, MB, GB) gösterir. Genellikle -l ile birlikte kullanılır.
  • -R (recursive): Alt dizinlerin içeriklerini de listeler.
  • -t: Dosyaları en son değiştirilme tarihine göre sıralar.
  • -S: Dosyaları boyutlarına göre sıralar.
ls -l
ls -lah
ls -R /etc

2.3. Dizin Değiştirme: cd

cd (Change Directory) komutu, dizinler arasında geçiş yapmanızı sağlar.

  • Mutlak Yol: Kök dizinden (/) başlayarak tam yolu belirtir.
  • Göreli Yol: Mevcut dizine göre yolu belirtir.
cd /home/kullaniciadi/belgeler      # Mutlak yol
cd belgeler                         # Mevcut dizinde "belgeler" alt dizinine git
cd ..                               # Bir üst dizine git
cd .                                # Mevcut dizinde kal (genellikle gerekmez)
cd ~                                # Kullanıcının ana dizinine git (örn. /home/kullaniciadi)
cd                                  # cd ~ ile aynı işlevi görür
cd -                                # Bir önceki çalışma dizinine geri dön

Pratik Bilgi: Tab Tamamlama

Komut satırında yazarken, dosya veya dizin adının ilk birkaç harfini yazıp Tab tuşuna basmak, komutu otomatik olarak tamamlar veya olası seçenekleri gösterir. Bu, yazım hatalarını azaltır ve zaman kazandırır.

3. Dosya ve Dizin Yönetimi

Linux’ta dosya ve dizinleri oluşturmak, kopyalamak, taşımak ve silmek için kullanılan temel komutlar şunlardır:

3.1. Dizin Oluşturma: mkdir

mkdir (Make Directory) komutu yeni bir dizin oluşturur.

mkdir yeni_dizin
mkdir -p proje/src/main # Üst dizinler yoksa bile oluşturur

3.2. Dizin Silme: rmdir

rmdir (Remove Directory) komutu boş bir dizini siler.

rmdir bos_dizin

Uyarı: Boş olmayan bir dizini silmek için rmdir kullanamazsınız. Bunun yerine rm -r komutunu kullanmanız gerekir (aşağıya bakınız).

3.3. Boş Dosya Oluşturma veya Zaman Damgasını Güncelleme: touch

touch komutu, belirtilen adla yeni, boş bir dosya oluşturur. Eğer dosya zaten varsa, erişim ve değiştirme zaman damgasını günceller.

touch yeni_dosya.txt
touch log.txt # log.txt varsa zaman damgasını günceller

3.4. Dosya ve Dizin Kopyalama: cp

cp (Copy) komutu dosya ve dizinleri kopyalar.

cp dosya.txt yeni_dosya.txt         # dosya.txt'yi yeni_dosya.txt olarak kopyala
cp dosya.txt /yedekler              # dosya.txt'yi /yedekler dizinine kopyala
cp -r dizin1 dizin2                 # dizin1'i tüm içeriğiyle birlikte dizin2 olarak kopyala
cp -p dosya.txt yedek_dosya.txt     # Dosyanın izinlerini, sahipliğini ve zaman damgalarını koruyarak kopyala

3.5. Dosya ve Dizin Taşıma/Yeniden Adlandırma: mv

mv (Move) komutu, dosya ve dizinleri taşımak veya yeniden adlandırmak için kullanılır.

mv eski_ad.txt yeni_ad.txt          # dosya.txt'yi yeniden adlandır
mv dosya.txt /hedef_dizin           # dosya.txt'yi hedef_dizin'e taşı
mv dizin1 /yedekler                 # dizin1'i tüm içeriğiyle birlikte /yedekler dizinine taşı

3.6. Dosya ve Dizin Silme: rm

rm (Remove) komutu dosya ve dizinleri siler.

rm dosya.txt                        # dosya.txt'yi sil
rm -r dizin_adi                     # dizin_adi'nı ve tüm içeriğini sil (dizin boş olmasa bile)
rm -f dosya.txt                     # Silme onayı istemeden dosyayı sil (force)
rm -rf tehlikeli_dizin              # Onay istemeden dizini ve tüm içeriğini sil. DİKKAT!

UYARI: rm -rf komutu çok güçlüdür ve geri alınamaz. Yanlış kullanıldığında önemli verileri kalıcı olarak silebilir. Bu komutu kullanırken son derece dikkatli olun.

3.7. Bağlantı Oluşturma: ln

ln (Link) komutu, dosya ve dizinlere bağlantılar oluşturur. İki tür bağlantı vardır:

  • Hard Link (Sabit Bağlantı): Aynı inode numarasına sahip birden fazla dosya adı oluşturur. Orijinal dosya silinse bile veri, tüm hard linkler silinene kadar kalır. Farklı dosya sistemlerinde çalışmaz.
  • Soft Link (Sembolik Bağlantı / Symlink): Orijinal dosyaya işaret eden bir kısayol gibidir. Orijinal dosya silinirse, sembolik bağlantı bozulur. Farklı dosya sistemlerinde çalışabilir.
ln orijinal_dosya.txt hard_link.txt         # Hard link oluştur
ln -s orijinal_dosya.txt sembolik_link.txt  # Sembolik link oluştur

4. Dosya İçeriklerini Görüntüleme ve Düzenleme

Dosya içeriklerini hızlıca gözden geçirmek veya temel düzenlemeler yapmak için çeşitli komutlar mevcuttur.

4.1. Dosya İçeriğini Görüntüleme: cat

cat (Concatenate) komutu, bir dosyanın içeriğini standart çıktıya (terminale) basar.

cat dosya.txt
cat dosya1.txt dosya2.txt > birlesik.txt # İki dosyayı birleştirip yeni bir dosyaya yaz

4.2. Sayfalı Görüntüleme: less ve more

Büyük dosyaları terminalde sayfa sayfa görüntülemek için kullanılır. less, more‘dan daha gelişmiştir (geri kaydırma, arama vb. özellikler sunar).

less buyuk_log_dosyasi.log
more metin_dosyasi.txt

less içinde gezinmek için: Space (ileri), b (geri), /arama_kelimesi (arama), q (çıkış).

4.3. Dosyanın Başını/Sonunu Görüntüleme: head ve tail

head bir dosyanın ilk satırlarını, tail ise son satırlarını gösterir. Varsayılan olarak 10 satır gösterirler.

head dosya.txt
tail -n 5 dosya.txt                 # Son 5 satırı göster
tail -f /var/log/syslog             # Dosyaya yeni eklenen satırları gerçek zamanlı izle (log takibi için ideal)

4.4. Dosya İçinde Arama: grep

grep komutu, bir veya daha fazla dosyada belirli bir metin kalıbını (pattern) aramak için kullanılır.

grep "hata" /var/log/syslog         # syslog dosyasında "hata" kelimesini ara
grep -i "warning" config.txt        # Büyük/küçük harf duyarsız "warning" kelimesini ara
grep -r "kullanici" /etc            # /etc dizininde ve alt dizinlerinde "kullanici" kelimesini ara

4.5. Metin Düzenleyiciler: nano ve vi

Komut satırında dosya düzenlemek için çeşitli metin düzenleyiciler bulunur. Yeni başlayanlar için nano daha kullanıcı dostu bir arayüze sahiptir. vi (veya vim) ise daha güçlü ve yaygın bir editördür ancak öğrenme eğrisi daha diktir.

nano dosya.txt
vi dosya.txt

5. Dosya İzinleri ve Sahiplik

Linux’ta güvenlik, dosya izinleri ve sahiplik mekanizmasıyla sağlanır. Her dosya ve dizin için kimin ne yapabileceği belirlenir.

5.1. İzinleri Anlama: ls -l Çıktısı

ls -l komutunun çıktısı, dosya izinleri hakkında bilgi verir:

-rw-r--r-- 1 kullanici grup 1024 May 15 10:30 dosya.txt

İlk karakter (- veya d), dosya türünü belirtir: - normal dosya, d dizin.

Sonraki 9 karakter üçlü gruplara ayrılır:

  • İlk üçlü: Dosyanın sahibi için izinler.
  • İkinci üçlü: Dosyanın grubu için izinler.
  • Üçüncü üçlü: Diğer herkes için izinler.

Her üçlüde r (okuma), w (yazma) ve x (çalıştırma/yürütme) izinleri bulunur. İzin yoksa - karakteri gösterilir.

  • r (read): Okuma izni (dizinler için içeriğini listeleme).
  • w (write): Yazma izni (dizinler için dosya oluşturma/silme).
  • x (execute): Çalıştırma izni (dizinler için içine girme).

Örnekteki -rw-r--r-- şu anlama gelir:

  • Sahip: Okuma, Yazma (rw-)
  • Grup: Okuma (r--)
  • Diğerleri: Okuma (r--)

5.2. İzinleri Değiştirme: chmod

chmod (Change Mode) komutu, dosya ve dizin izinlerini değiştirir. İzinler sembolik veya oktal (sayısal) modda belirtilebilir.

Sembolik Mod:

  • u (user – sahip), g (group – grup), o (others – diğerleri), a (all – hepsi)
  • + (izin ekle), - (izin kaldır), = (izinleri tam olarak ata)
chmod u+x script.sh                 # Sahibe çalıştırma izni ekle
chmod g-w dosya.txt                 # Grubun yazma iznini kaldır
chmod o=r dizin                     # Diğerleri için sadece okuma izni ata
chmod a+rw dosya.txt                # Herkese okuma ve yazma izni ekle

Oktal (Sayısal) Mod:

Her izin bir sayıya karşılık gelir:

  • r (read) = 4
  • w (write) = 2
  • x (execute) = 1
  • - (no permission) = 0

Bir üçlüdeki izinler toplanarak tek bir sayı elde edilir. Örneğin, rwx = 4+2+1 = 7, rw- = 4+2+0 = 6, r-x = 4+0+1 = 5, r-- = 4+0+0 = 4.

chmod komutuna üç basamaklı bir sayı veririz: Sahip, Grup, Diğerleri.

chmod 755 script.sh                 # Sahip: rwx (7), Grup: r-x (5), Diğerleri: r-x (5)
chmod 644 dosya.txt                 # Sahip: rw- (6), Grup: r-- (4), Diğerleri: r-- (4)

5.3. Sahipliği Değiştirme: chown ve chgrp

chown (Change Owner) komutu, bir dosya veya dizinin sahibini değiştirir. chgrp (Change Group) komutu ise grubunu değiştirir.

chown yeni_kullanici dosya.txt          # dosya.txt'nin sahibini değiştir
chown yeni_kullanici:yeni_grup dosya.txt # Hem sahip hem de grubu değiştir
chown -R yeni_kullanici dizin_adi       # Dizinin ve altındaki tüm dosyaların sahibini özyinelemeli olarak değiştir
chgrp yeni_grup dosya.txt               # dosya.txt'nin grubunu değiştir

Pratik Bilgi: sudo

Dosya izinlerini veya sahipliğini değiştirmek gibi sistem düzeyinde işlemler genellikle root yetkileri gerektirir. Bu durumlarda komutun başına sudo (Superuser Do) eklemeniz gerekir.

sudo chown root:root /etc/nginx/nginx.conf
sudo chmod 600 /etc/ssh/sshd_config

Sonuç ve Sıkça Sorulan Sorular (SSS)

Linux komut satırı, dosya ve dizin yönetimi için güçlü ve esnek bir araçtır. Bu rehberde ele alınan temel komutlar, Linux ortamında verimli bir şekilde çalışmak için bir başlangıç noktasıdır. Pratik yaparak ve man sayfalarını (örneğin, man ls) kullanarak bilginizi derinleştirebilirsiniz.

Sıkça Sorulan Sorular (SSS)

~ (tilde) ne anlama geliyor?
~ sembolü, o anki kullanıcının ana dizinini (home directory) temsil eder. Örneğin, cd ~ sizi /home/kullaniciadi dizinine götürür.
rmdir ve rm -r arasındaki fark nedir?
rmdir sadece boş dizinleri siler. Eğer bir dizin içinde dosya veya başka dizinler varsa, rmdir hata verir. rm -r ise dizinin boş olup olmadığına bakmaksızın, içindeki her şeyle birlikte dizini siler. Bu nedenle rm -r daha dikkatli kullanılmalıdır.
Hard link ve soft link arasındaki temel fark nedir?
Hard link’ler, aynı dosya verisine birden fazla isim veren işaretçiler gibidir. Orijinal dosya silinse bile veri, tüm hard linkler silinene kadar diskte kalır. Soft link’ler (sembolik linkler) ise bir dosyanın veya dizinin yolunu işaret eden kısayollardır. Orijinal dosya silinirse soft link bozulur.
Bir komut hakkında nasıl yardım alabilirim?
Çoğu Linux komutu için man (manual) sayfaları mevcuttur. Örneğin, man ls komutu ls komutunun tüm seçeneklerini ve kullanımını gösterir. Çıkmak için q tuşuna basabilirsiniz.
. (tek nokta) ve .. (çift nokta) ne anlama gelir?
. (tek nokta), mevcut dizini temsil eder. Örneğin, ls . mevcut dizinin içeriğini listeler. .. (çift nokta) ise bir üst dizini (parent directory) temsil eder. Örneğin, cd .. sizi mevcut dizinin bir üstündeki dizine taşır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version