Komut Satırında Gezinme: cd Komutu Rehberi

Active Directory ortamında çalışan bir sistem yöneticisi olarak günün büyük bölümünü komut satırında geçiriyorsanız, cd komutunun ne kadar kritik bir araç olduğunu zaten biliyorsunuzdur. Ama “ne var ki bunda, dizin değiştiriyorsun işte” diye düşünmeyin. Bu yazıda hem Windows hem de Linux tarafında cd komutunun tüm inceliklerini, Active Directory yönetimi bağlamında gerçek dünya senaryolarıyla ele alacağız.

cd Komutu Nedir ve Neden Önemlidir?

cd (Change Directory), işletim sistemlerinin komut satırı arayüzlerinde çalışma dizinini değiştirmek için kullanılan temel komuttur. Windows’ta cmd.exe ve PowerShell, Linux/Unix sistemlerde ise bash, zsh gibi kabuklar üzerinde çalışır. Adı basit, işlevi basit gibi görünse de doğru kullanmak ciddi zaman tasarrufu sağlar.

Active Directory yönetiminde neden cd bu kadar önemli? Çünkü AD ortamında log dosyaları, SYSVOL paylaşımı, Group Policy şablonları, script dizinleri ve araç klasörleri arasında sürekli geçiş yaparsınız. Dizin navigasyonunda hızlı ve hatasız olmak, özellikle kritik bir sorun anında dakikaları kurtarabilir.

Windows Komut Satırında cd Kullanımı

Temel Kullanım

Windows’ta cmd.exe üzerinde cd komutunun sözdizimi oldukça sezgiseldir.

cd C:WindowsSystem32

Bu komut sizi doğrudan System32 klasörüne götürür. Ama dikkat: Windows’ta varsayılan davranış olarak, farklı bir sürücüye geçmek için sadece cd yetmez. Örneğin C: sürücüsünde çalışırken D: sürücüsüne geçmek istiyorsanız:

cd /d D:ScriptsAD_Tools

/d parametresi olmadan sadece cd D:ScriptsAD_Tools yazarsanız, komut bir hata vermez ama sizi D: sürücüsüne de götürmez. Klasik Windows tuzağı. Bu yüzden farklı sürücüler arasında geçiş yaparken /d parametresini alışkanlık haline getirin.

Parametre Listesi

  • /d: Sürücü değişikliğiyle birlikte dizin değiştirir
  • ..: Bir üst dizine çıkar
  • \: Sürücünün kök dizinine gider
  • ~: PowerShell’de kullanıcının home dizinine döner (cmd.exe’de çalışmaz)

Üst Dizine Çıkmak ve Kök Dizine Gitmek

cd ..

Bir üst klasöre çıkar. Örneğin C:WindowsSystem32 içindeyken bu komutu çalıştırırsanız C:Windows dizinine geçersiniz.

İki üst dizine çıkmak için:

cd ....

Kök dizine hızlıca gitmek için:

cd 

Bu komut sizi C: dizinine götürür. Özellikle derinlemesine iç içe dizinlerde kaybolduğunuzda kurtarıcı olur.

PowerShell’de cd Kullanımı

PowerShell’de cd, aslında Set-Location cmdlet’inin bir takma adıdır (alias). Bu önemli bir ayrım çünkü PowerShell’de cd ile yapabileceğiniz her şeyi Set-Location ile de yapabilirsiniz ve scripting tarafında Set-Location kullanmak daha okunabilir kod üretir.

Set-Location -Path "C:WindowsSYSVOLsysvol"

Veya kısaca:

cd C:WindowsSYSVOLsysvol

PowerShell’de Özel Kullanımlar

PowerShell’de cd sadece dosya sistemiyle sınırlı kalmaz. Bu, PowerShell’i cmd.exe’den köklü biçimde ayıran özelliktir. Registry, Active Directory, sertifika deposu gibi farklı “sağlayıcılara” da cd ile gezebilirsiniz.

Registry içinde gezinmek için:

cd HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion

Active Directory sağlayıcısı yüklüyse (RSAT araçları kurulu ve AD modülü import edilmişse):

Import-Module ActiveDirectory
cd AD:

Bu sayede AD yapısını bir dosya sistemi gibi gezebilirsiniz:

cd "AD:DC=contoso,DC=com"

Bu özellik, AD objelerini hızlıca keşfetmek ve script geliştirmek için son derece kullanışlıdır.

Push-Location ve Pop-Location: Gelişmiş Navigasyon

Active Directory yönetiminde sık karşılaşılan senaryo: bir log klasöründen çalışırken, hızlıca başka bir dizine gidip iş yapmanız gerekir ve sonra geri dönmeniz lazım. İşte tam burada Push-Location ve Pop-Location devreye girer.

Push-Location "C:WindowsSYSVOLsysvolcontoso.comPolicies"
# Burada işlerini yap
ls
# Sonra önceki konuma dön
Pop-Location

Push-Location, mevcut konumunuzu bir yığına (stack) kaydeder ve sizi yeni konuma götürür. Pop-Location ise yığından son kaydedilen konumu alarak sizi oraya geri döndürür. Bu mekanizma, karmaşık scriptlerde çok değerli bir araçtır.

Active Directory Yönetiminde Pratik Senaryolar

Senaryo 1: SYSVOL Dizininde GPO Şablonlarını Kontrol Etmek

Bir sabah işe geldiniz ve kullanıcıların GPO’ların uygulanmadığından şikayet ettiğini gördünüz. İlk adım SYSVOL dizinine gidip kontrol yapmak:

cd C:WindowsSYSVOLsysvolcontoso.comPolicies
dir

Burada GPO GUID klasörlerini görürsünüz. Belirli bir GPO’nun içine girmek ve script klasörünü kontrol etmek için:

cd "{31B2F340-016D-11D2-945F-00C04FB984F9}MachineScriptsStartup"
dir

Bu GUID, varsayılan Domain Policy’ye aittir. Kendi ortamınızdaki GUID’leri Get-GPO -All komutuyla öğrenebilirsiniz.

Senaryo 2: DC Log Dosyalarını Analiz Etmek

Domain Controller üzerinde problem ayıklama yapıyorsunuz. Windows Event logları dışında, özellikle DC Promotion/Demotion süreçlerine ait log dosyaları farklı konumlarda bulunur:

cd C:Windowsdebug
dir netlogon*

Netlogon log dosyaları burada bulunur ve Kerberos, authentication, DC bulma süreçleriyle ilgili kritik bilgiler içerir.

DCDIAG ve benzeri araçların çıktı dosyaları için script dizinine gitmek:

cd D:AdminScriptsLogs
notepad dcdiag_$(Get-Date -Format "yyyyMMdd").txt

Senaryo 3: NTDS Veritabanı Bakım Operasyonları

Active Directory veritabanı (ntds.dit) ile ilgili bakım işlemleri yaparken, örneğin offline defragmentation veya veritabanı taşıma işlemlerinde, doğru dizinde olmanız kritiktir. Bu işlemleri her zaman dikkatli ve planlı yapın:

cd C:WindowsNTDS
dir

Bu komutla NTDS dizininde ntds.dit, edb.log ve diğer transaction log dosyalarını görebilirsiniz. ntdsutil aracını bu dizinde çalıştırmadan önce doğru konumda olduğunuzu doğrulayın.

Senaryo 4: RSAT Araçları ve Script Yönetimi

Bir sistem yöneticisi olarak muhtemelen onlarca PowerShell scripti biriktirdiniz. Bu scriptleri organize bir şekilde çalıştırmak için:

cd D:ScriptsAD_Management
ls *.ps1

Belirli bir script kategorisine geçmek:

cd .UserManagement
.New-BulkUsers.ps1 -InputFile "C:HRnew_employees.csv"

Senaryo 5: Active Directory Sağlayıcısıyla Gelişmiş Navigasyon

PowerShell’in AD sağlayıcısını kullanarak AD yapısını gezebilirsiniz. Bu özellik, özellikle OU yapısını keşfetmek ve nesneleri hızlıca listelemek için işe yarar:

Import-Module ActiveDirectory
cd "AD:DC=contoso,DC=com"
ls

Belirli bir OU’ya inmek:

cd "OU=Istanbul,OU=Turkey,DC=contoso,DC=com"
ls | Where-Object {$_.ObjectClass -eq "user"}

Bu yöntem, karmaşık OU hiyerarşilerinde hızlı keşif yapmak için oldukça pratiktir. Özellikle ortama yeni dahil olduğunuzda ve OU yapısını anlamaya çalıştığınızda zaman kazandırır.

Linux/Unix Tarafında cd Kullanımı

Active Directory ortamları artık sadece Windows sistemlerden oluşmuyor. Samba DC’leri, Linux tabanlı kimlik doğrulama sunucuları, Azure AD Connect makineleri gibi Linux sistemler de AD ekosisteminin parçası haline geldi. Bu nedenle Linux’ta cd kullanımını da iyi bilmeniz gerekiyor.

Temel Linux cd Kullanımı

cd /etc/samba

Samba konfigürasyon dosyasına gitmek için kullanılan bu komut, Linux ortamında Samba tabanlı AD yönetimi yapanların sık ziyaret ettiği bir yoldur.

Home dizinine hızlıca dönmek:

cd ~
# veya sadece
cd

Parametresiz çalıştırılan cd komutu Linux’ta sizi her zaman home dizinine götürür. Bu davranış Windows’ta yoktur.

Önceki dizine geri dönmek (son kullanılan dizine):

cd -

Bu özellik inanılmaz derecede kullanışlıdır. İki dizin arasında sürekli gidip geliyorsanız:

cd /var/log/samba
# bir şeyler baktın
cd /etc/krb5.conf
# hayır dosya dizini değil
cd /etc
# tekrar samba loglarına dön
cd -

cd - sizi bir önceki dizine anında götürür. Bu kısa ama çok etkili bir özellik.

Samba ve Kerberos Konfigürasyon Dizinleri

Linux üzerinde AD entegrasyonu yaparken sık ziyaret ettiğiniz dizinler:

cd /etc/samba
ls -la

Kerberos konfigürasyonu:

cd /etc/krb5.conf.d
cat *.conf

SSSD (System Security Services Daemon) konfigürasyonu:

cd /etc/sssd
cat sssd.conf

Mutlak ve Göreli Yollar

Linux’ta (ve Windows’ta) iki tür yol vardır: mutlak (absolute) ve göreli (relative). Bu ayrımı iyi anlamak, hem hata yapmamak hem de daha hızlı çalışmak açısından kritiktir.

Mutlak yol her zaman kök dizinden başlar:

cd /var/log/samba

Göreli yol ise bulunduğunuz konuma göre çalışır:

# /var/log içindeyken
cd samba
# artık /var/log/samba içindesiniz

Tab Tamamlama: cd’nin Gizli Silahı

cd komutunu gerçek anlamda hızlandıran şey, Tab tamamlama özelliğidir. Bu özelliği aktif kullanmak, dizin gezintisini dramatik biçimde hızlandırır.

Windows cmd.exe’de: Tab tuşuna basarak dizin adlarını tamamlayabilirsiniz. Birden fazla eşleşme varsa, Tab’a tekrar basarak diğer seçeneklere geçersiniz.

PowerShell’de: Tab tamamlama çok daha güçlüdür. Kısmi isim yazıp Tab’a bastığınızda eşleşen tüm seçenekler arasında gezebilirsiniz. Ayrıca Ctrl+Space ile seçeneklerin listesini görebilirsiniz.

Linux bash’te: cd /etc/sa yazıp Tab’a bastığınızda samba gibi eşleşen dizinler otomatik tamamlanır veya listelenir.

Tab tamamlamayı alışkanlık haline getirin. Özellikle GUID içeren GPO klasörleri veya uzun Unix yolları gibi durumlarda bu özellik olmadan çalışmak çok yorucu olur.

Ortam Değişkenleri ile Akıllı Navigasyon

Sık kullandığınız dizinleri ortam değişkenlerine atayarak cd kullanımını daha da verimli hale getirebilirsiniz.

Windows PowerShell’de profil dosyanıza ekleyebileceğiniz kısayollar:

# PowerShell profil dosyasına ekle: $PROFILE
function scripts { cd D:ScriptsAD_Management }
function sysvol { cd C:WindowsSYSVOLsysvol }
function ntds { cd C:WindowsNTDS }
function adlogs { cd C:Windowsdebug }

Artık sadece sysvol yazarak o dizine gidebilirsiniz.

Linux bash’te benzer yaklaşım:

# ~/.bashrc dosyasına ekle
export ADSCRIPTS="/opt/scripts/ad_management"
export SAMBALOGS="/var/log/samba"
alias goad="cd $ADSCRIPTS"
alias golog="cd $SAMBALOGS"

Bu tür kısayollar, özellikle gece yarısı bir incident sırasında sinir bozucu uzun yolları yazmak zorunda kalmamak için büyük fark yaratır.

Sık Yapılan Hatalar ve Çözümleri

Boşluk İçeren Dizin Adları

Windows’ta “Program Files” gibi boşluk içeren dizin adlarına giderken tırnak işareti kullanmayı unutmak klasik bir hatadır:

# Hatalı
cd C:Program FilesMicrosoft

# Doğru
cd "C:Program FilesMicrosoft"

Linux’ta aynı kural geçerlidir:

cd "/opt/AD Tools/scripts"

Windows’ta Sürücü Değiştirme Hatası

Daha önce bahsettiğimiz /d parametresi meselesi:

# Sadece dizin değişir, sürücü değişmez
cd D:Scripts

# Hem sürücü hem dizin değişir
cd /d D:Scripts

PowerShell’de UNC Yolları

PowerShell’de cd komutuyla doğrudan UNC yoluna (\servershare) gitmek bazen sorun çıkarabilir. Bunun için Set-Location ile FileSystem sağlayıcısını açıkça belirtebilirsiniz:

cd "\DC01SYSVOLcontoso.comPolicies"

Bu genellikle çalışır, ancak network paylaşımlarında sorun yaşarsanız PSDrive oluşturmayı düşünün:

New-PSDrive -Name SYSVOL -PSProvider FileSystem -Root "\DC01SYSVOL"
cd SYSVOL:contoso.comPolicies

Günlük AD Yönetimi için cd Workflow’u

Sabah işe geldiğinizde yapmanız gereken kontrolleri hızlandırmak için tipik bir workflow:

# Domain Controller sağlık kontrolü için log dizinine git
cd C:Windowsdebug
# Netlogon hatalarına bak
Select-String -Path netlogon.log -Pattern "ERROR" | Select-Object -Last 20

# SYSVOL replikasyon durumu için
cd C:WindowsSYSVOLsysvolcontoso.com
dir

# Sonra admin scriptlerine dön
cd D:ScriptsDailyChecks
.Run-MorningChecks.ps1

Bu tür bir sabah rutini oluşturmak, özellikle birden fazla DC yönetiyorsanız işleri standartlaştırır ve gözden kaçan sorunları azaltır.

Sonuç

cd komutu, görünürde en basit araçlardan biri. Ama bir sistem yöneticisi için bu komutun tüm inceliklerini, platform farklarını ve gelişmiş kullanım senaryolarını bilmek; iş verimliliğini, hata oranını ve özellikle kriz anlarındaki tepki süresini doğrudan etkiler.

Windows tarafında /d parametresini, PowerShell’de Push-Location/Pop-Location ikilisini ve AD sağlayıcısı üzerinden gezinmeyi öğrenmek; Linux tarafında cd - ile cd ~ kısayollarını ve Tab tamamlamayı alışkanlık haline getirmek, sizi ortalama bir sysadmin’den ayıran küçük ama etkili detaylardır.

Active Directory ortamı büyüdükçe, SYSVOL, NTDS, Group Policy şablonları, log dosyaları ve script dizinleri arasındaki geçişler daha da sık hale gelir. Bu yüzden dizin navigasyonunu otomatikleştiren profil fonksiyonları ve alias’lar oluşturmak, hem zamandan tasarruf ettirir hem de kritik anlarda sizi doğru konuma hızla taşır.

Temelleri iyi bilmek, her zaman işe yarar. cd gibi “basit” araçları gerçekten ustalıkla kullanmak, iyi bir sistem yöneticisinin ayırt edici özelliklerinden biridir.

Yorum yapın