Gel komutu, Unix ve Unix benzeri sistemler (örneğin Linux) üzerinde kullanılan, dosyaları ve dizinleri yönetmek için temel bir komuttur. Temel işlevi, kullanıcının geçerli çalışma dizinini değiştirmesini sağlamaktır. "Gel" kelimesi, İngilizce'deki "change directory" (dizin değiştir) ifadesinin kısaltmasıdır.
cd
komutunun kökleri, Bell Laboratuvarları'nda geliştirilen ilk Unix sistemlerine kadar uzanır. Basit ve etkili bir dizin navigasyonu aracı olarak tasarlanmıştır. Zaman içinde, farklı Unix varyantlarında ve POSIX standartlarında uyumluluğu sağlamak için evrim geçirmiştir.
cd
komutunun temel sözdizimi şöyledir:
cd [seçenekler] [dizin]
Dizin Değiştirme: En temel işlevi, kullanıcının geçerli çalışma dizinini belirtilen dizine değiştirmektir.
cd /home/kullanici/belgeler
Bu komut, geçerli dizini /home/kullanici/belgeler
olarak değiştirir.
Mutlak ve Göreceli Yollar: cd
komutu, hem mutlak (kök dizinden başlayan) hem de göreceli (geçerli dizine göre) yolları kabul eder.
# Mutlak yol
cd /var/log
# Göreceli yol (bir üst dizine gitmek)
cd ..
# Göreceli yol (bir alt dizine gitmek)
cd belgeler
Ana Dizin: Hiçbir argüman belirtilmeden cd
komutu kullanıldığında, kullanıcıyı kendi ana dizinine götürür.
cd
Bu komut, kullanıcıyı genellikle /home/kullanici
gibi bir dizine götürür (kullanıcının adının "kullanici" olduğu varsayılarak).
Önceki Dizin: cd -
komutu, kullanıcının en son bulunduğu dizine geri dönmesini sağlar. Bu, iki dizin arasında hızlıca geçiş yapmak için kullanışlıdır.
cd -
cd
komutunun seçenekleri, işletim sistemine ve kabuğa bağlı olarak değişebilir. Ancak, bazı yaygın seçenekler şunlardır:
-L: Sembolik bağlantıları takip eder. Bu, cd
komutunun, sembolik bağlantının işaret ettiği gerçek dizine gitmesini sağlar. Bu, bazı sistemlerde varsayılan davranıştır.
-P: Sembolik bağlantıları takip etmez. cd
komutu, sembolik bağlantının kendisini dizin olarak kabul eder ve oraya gider.
-e: Bazı sistemlerde (örneğin bash) kullanılan bu seçenek, dizin bulunamazsa veya erişim izni yoksa hata mesajı gösterir ve komutun başarısız olmasına neden olur.
Aşağıda cd
komutunun farklı kullanımlarına ilişkin bazı örnekler verilmiştir:
Ana dizine gitme:
cd
Bir alt dizine gitme:
cd belgeler
Bir üst dizine gitme:
cd ..
İki üst dizine gitme:
cd ../..
Önceki dizine gitme:
cd -
Mutlak bir yola gitme:
cd /var/log/apache2
Sembolik bağlantıyı takip etme: (Varsayılan davranış)
cd /usr/local/bin/python3 # eğer python3 bir sembolik bağlantıysa hedef dizine gider.
cd
komutu, çoğu Unix kabuğu ile sıkı bir şekilde entegredir. Örneğin, Bash gibi kabuklar, cd
komutunun davranışını özelleştirmek ve geliştirmek için çeşitli mekanizmalar sunar.
CDPATH: Bu ortam değişkeni, cd
komutu için arama yollarını tanımlar. Eğer belirtilen dizin göreceli bir yol ise ve geçerli dizinde bulunamazsa, kabuk CDPATH
içindeki dizinlerde arama yapar.
export CDPATH=".:/home/kullanici/belgeler:/opt/projeler"
Bu örnekte, kabuk önce geçerli dizinde, sonra /home/kullanici/belgeler
ve son olarak /opt/projeler
dizinlerinde arama yapar.
pushd ve popd: Bu komutlar, dizin yığınını kullanarak daha karmaşık dizin navigasyonu senaryolarını yönetmeye yardımcı olur. pushd
bir dizini yığına ekler ve o dizine giderken, popd
yığından bir dizini çıkarır ve o dizine geri döner.
cd
komutu, bazı durumlarda hata verebilir:
Dizin Bulunamadı: Belirtilen dizin mevcut değilse.
cd /var/log/olmayan_dizin
# Çıktı: cd: /var/log/olmayan_dizin: Böyle bir dosya ya da dizin yok
Erişim İzni Yok: Kullanıcının belirtilen dizine erişim izni yoksa.
cd /root
# Çıktı: cd: /root: İzin reddedildi
Dizin Değil: Belirtilen yol bir dosya ise ve bir dizin değilse.
cd /var/log/syslog
# Çıktı: cd: /var/log/syslog: Dizin değil
cd
komutu genellikle güvenli bir komuttur, ancak dikkat edilmesi gereken bazı durumlar vardır:
Sembolik Bağlantılar: Güvenilmeyen kaynaklardan gelen sembolik bağlantılar, beklenmedik dizinlere yönlendirebilir ve güvenlik açıklarına yol açabilir. Bu nedenle, bilinmeyen sembolik bağlantıları takip ederken dikkatli olunmalıdır.
CDPATH: CDPATH
değişkeni, beklenmedik dizinlere geçişe neden olabileceğinden dikkatli kullanılmalıdır. Özellikle, genel olarak yazılabilir bir dizinin CDPATH
içinde yer alması güvenlik riski oluşturabilir.
cd
komutuna alternatif olarak kullanılabilecek bazı araçlar ve teknikler şunlardır:
cd
komutu, Unix ve Linux sistemlerinde dizinler arasında gezinmek için temel bir araçtır. Basit sözdizimi ve güçlü özellikleri, onu sistem yöneticileri ve geliştiriciler için vazgeçilmez kılar. Doğru kullanıldığında, dosya sistemi üzerinde hızlı ve etkili bir şekilde gezinmeyi sağlar. Kabuk bilgisi ile birlikte kullanıldığında daha da güçlü bir araç haline gelir.