İlk bakışta terminal göz korkutucu görünür: karanlık bir pencere, yanıp sönen bir imleç ve alışık olduğunuz düğmelerin hiçbiri yok. Aslında durum çok daha sıradan. Terminal, bilgisayara ne yapacağını doğrudan söylemenin bir yolu: bir komut dosyaları gösterir, bir diğeri sizi doğru klasöre götürür, üçüncüsü bir programı başlatır.

Ajanla çalışmanın başındaki takılmaların neredeyse hepsi isteğin nasıl yazıldığıyla değil, terminalin yanlış klasörde durmasıyla ilgilidir. Bu yüzden önce klasörleri ve yolları ele alacağız, claude komutuna ise ondan sonra geleceğiz. Sonunda hepsini, her görevin ayrı bir proje olarak yaşadığı codegym-project projesine uygulayacağız.

Terminal - projeyi yönetmenin doğrudan yolu

Terminal, bilgisayarı metin komutlarıyla yönettiğiniz bir penceredir. Menüde doğru düğmeyi aramak yerine eylemin adını tam olarak söylersiniz: dosyaları göster, klasörü aç, programı başlat.

Fare, aynı işi onuncu kez tekrarlamak zorunda kalana kadar daha hızlıdır. Terminal karşılığında şunları verir:

  • bir komut tek ve somut bir iş yapar - sonuç aynı pencerede görünür, tahmin etmeye gerek kalmaz;
  • bir dizi adımı tekrarlamak kolaydır - klasörü kontrol et, dosyalara bak, geç ve başlat;
  • arayüzün gizlediği durum görünür olur - her şeyden önce de mevcut klasör.

Birini seçmek zorunda değilsiniz. IDEA'da dosyaları gözle bulup tıklayarak açmak rahattır, terminalde ise net bir komut çalıştırıp cevabı hemen görmek. Pratikte ikisi sürekli yan yana çalışır.

Claude Code da bir komutla başlatılır

claude yazdığınızda ajan, terminalin mevcut dizininden çalışmaya başlar. Bu yüzden önce terminalin nerede olduğunu anlamak, ajanı ancak ondan sonra başlatmak iyi bir fikirdir.

Günlük iş için beş komut

Beş eylem. Başlangıç için bu gerçekten yeterli. Windows'ta PowerShell, macOS ve Linux'ta ise standart terminal kullanıyoruz. Kısa komutlar üç durumda da aynı görünür.

KomutAçılımıNe yapar
pwdprint working directory - "çalışma dizinini göster"Terminalin şu anda bulunduğu klasörün tam yolunu yazdırır.
lslist - "liste"Mevcut dizindeki dosya ve klasörleri gösterir.
cd demo-projectchange directory - "dizini değiştir"Yandaki demo-project klasörüne geçer.
cd .... üst dizin anlamına gelirTerminali bir klasör yukarı çıkarır.
claudeBaşlatılan programın adıClaude Code'u mevcut dizinden başlatır.

PowerShell'de kısa komutlar sadece kullanışlı takma adlardır: pwd, Get-Location komutunu; ls, Get-ChildItem komutunu; cd ise Set-Location komutunu çağırır. Uzun adlardan çekinmenize gerek yok, şimdilik ezberlemenize de. Ama komutun ne anlama geldiği bu adlardan iyi anlaşılır.

Şimdi macOS veya Linux için kısa bir deneme. Terminal önce projects klasöründe duruyor, sonra demo-project klasörüne geçiyor:

Yolun son kısmına bakın: projects yerini demo-project klasörüne bıraktı. Hiçbir sihir yok. cd komutu yeni bir dosya açmadı, hiçbir şey kopyalamadı, sadece terminalin bulunduğu yeri başka bir klasöre taşıdı.

Zaman kazandıran tuşlar

Burada kısa sürede zaman kazandıran birkaç alışkanlık var. Terminal yazdıklarınızın geçmişini tutar ve uzun adları tamamlamanıza yardım eder:

  • ↑ - önceki komutu gösterir. Geçmişte daha geriye gitmek için birkaç kez basın;
  • ↓ - geçmişte daha yeni komutlara geri götürür;
  • Tab - komut, dosya veya klasör adını tamamlar. Örneğin cd dem yazıp Tab tuşuna basın, cd demo-project elde edersiniz;
  • ← ve → - imleci satır içinde hareket ettirir, böylece komutun tamamını yeniden yazmadan tek bir harfi düzeltebilirsiniz;
  • Ctrl+C - yanlış bir şey başlattıysanız ya da işlem bitmiyorsa, çalışan komutu genellikle durdurur;
  • Ctrl+L - terminalin görünen alanını temizler, ama dosyaları ve komut geçmişini silmez.

En çok işinize yarayacak olanlar yukarı ok ve Tab. İlki daha önce yazılmış komutu geri getirir, ikincisi uzun yollardaki hataları azaltır.

Klasör, dizin ve yol

Bir yolu komuta kopyaladınız, başka bir klasöre geçtiniz ve aynı komut artık çalışmıyor. Sorun yazım hatasında değil: yollar iki türlüdür ve bunlardan biri terminalin şu anda nerede durduğuna bağlıdır. İkisine de bakalım.

Önce adlandırma, burada her şey göründüğünden daha basit. Klasör ve dizin aynı şeyi ifade eder. Arayüzde daha çok "klasör" denir, terminalden söz ederken ise "dizin".

Yol, bir dizinin diskteki adresidir. Windows, macOS ve Linux'ta ayırıcılar farklı görünür, ama mantık aynıdır: yolun her parçası bir kat daha derine götürür. Önce disk veya kök dizin, sonra kullanıcı, projelerin ortak klasörü ve en sonunda belirli bir proje.

Tam yol ve mutlak yol aynı şeydir, sadece iki farklı ad. Böyle bir yol dosya sisteminin en tepesinden başlar: Windows'ta sürücü harfinden, macOS ve Linux'ta / karakterinden. Terminal şu anda hangi dizinde açık olursa olsun, her zaman aynı yere götürür.

Göreli yol ise tam tersi: mevcut dizinden başlayan güzergâhı tarif eder. Daha kısa olur, çünkü adresin baş kısmını tekrarlamanız gerekmez. Ama başka bir klasöre geçtiğinizde yolun anlamı da değişir.

Diyelim ki projenin içinde şöyle bir dosya var:

demo-project/
└── src/
    └── index.html

Terminal demo-project kökünde açık. Aynı index.html dosyasına ulaşmanın iki yolu şunlar:

SistemTam veya mutlak yoldemo-project klasöründen göreli yol
WindowsC:\Users\student\projects\demo-project\src\index.html.\src\index.html
macOS/Users/student/projects/demo-project/src/index.html./src/index.html
Linux/home/student/projects/demo-project/src/index.html./src/index.html

Nokta . "mevcut dizin" anlamına gelir. Bu yüzden .\src\index.html ve ./src/index.html şöyle okunur: "mevcut klasörden src'ye gir ve index.html'i al". Nokta çoğu zaman yazılmaz: src\index.html ve src/index.html aynı anlama gelir.

demo-project klasöründen ortak projects klasörüne çıkarsanız eski göreli yol artık çalışmaz. Yeni konumdan Windows'ta .\demo-project\src\index.html, macOS ve Linux'ta ise ./demo-project/src/index.html gerekir. Tam yol ise bu sırada hiç değişmez.

Boşluk içeren bir yol çift tırnak içine alınır, yoksa terminal boşluktan sonra başka bir argümanın başladığını düşünür:

cd "C:\Users\student\My Projects\demo-project"

Mevcut dizin neden önemli

Terminal, daha ilk komuttan önce bile her zaman bir dizinde bulunur. Buna mevcut dizin ya da çalışma dizini denir. Komutlar dosyaları aramaya ve göreli yolları hesaplamaya buradan başlar.

Fareyle zaten klasör seçiyorsunuz

"Downloads" içindeki bir dosyayı "Documents" altındaki "Muhasebe sırları" klasörüne kopyalamanız gerekiyor. Dosyayı kopyalarsınız, doğru klasöre kadar bütün yolu gidersiniz ve "Yapıştır"a ancak orada basarsınız. Dosya diske tek ve belirli bir adreste yazılır. Kimse bir dosyayı "Documents'ta bir yerlere" yapıştırmaz - her seferinde tam yere kadar gidersiniz, sadece bunu fareyle yapar ve üzerinde düşünmezsiniz.

Terminalde iş aynıdır, yalnızca dosya gezgini penceresinin yerini yol satırı alır. Dizini yine siz seçersiniz ve ajan çalışmaya oradan başlar.

Terminali C:\ sürücüsünün kökünde açmak teknik olarak mümkün. Peki bu iyi bir fikir mi? Hayır. Mesele Claude Code'un diskteki her dosyayı okumaya girişecek olması değil, girişmez. Mesele kötü bir başlangıç noktası seçmiş olmanız:

  • ajanın tek bir proje için net bir sınırı yoktur - hemen yanında sistem dosyaları, kullanıcı klasörleri ve diğer projeleriniz durur;
  • göreli yollar beklediğiniz yerden başlamaz - src birden o bildiğiniz src olmaktan çıkar;
  • yolun kendisine bakarak şu anda hangi projeyle çalıştığınızı anlayamazsınız.

Takılması kolay küçük bir ayrıntı daha var: IDEA'da açık olan dosya ile terminalin mevcut dizini iki ayrı durumdur. Bir projenin dosyasına bakarken terminal hâlâ başka bir projede duruyor olabilir. Düzenleyicide sekme değiştirmek, zaten açık olan terminali taşımaz.

Başlangıç noktası

Proje kökü, tek bir projeye ait birbiriyle ilişkili dosyaların durduğu en üst klasördür: kod, ayarlar, dokümantasyon ve gereken diğer malzemeler. Resmî tanımı ezberlemenize gerek yok. Rolüne bakmak daha kolay: bu klasör tek bir projeyi bütün olarak bir araya toplar.

Örneğin ortak bir projects klasörü birbirinden bağımsız birkaç proje barındırabilir:

projects/
├── demo-project/
│   ├── README.md
│   └── src/
└── calculator/
    ├── README.md
    └── src/

Bu ağaçta projects bir kapsayıcıdır. İlk projenin kökü demo-project, ikincisininki calculator klasörüdür. Ajanı ortak klasörden başlatmak teknik olarak mümkün, ama orada işe yarar bağlam daha azdır: yan yana birbiriyle ilgisiz iki proje durur.

Pratikte kural kısa: değiştirmek istediğiniz projenin kendi en üst klasörünü bulun, terminali orada açın ve araçları oradan başlatın. Böylece komutlar, dosyalar ve proje talimatları tek ve anlaşılır bir alanda toplanır.

Fazla geniş bir klasör görevin sınırlarını bulanıklaştırır

Ajan, bağlamı anlamak için görevin etrafındaki yapıyı ve dosyaları inceler. Onu fazla yukarıda başlatırsanız görüş alanına başka projeler de girer. İstek net değilse ajan bunların da görevle ilgili olduğuna karar verebilir ve iş sırasında değiştirilmesi istenmeyen şeyleri değiştirebilir.

İşe dalmışken beklediğiniz sonucu görüp komşu projedeki ek değişiklikleri gözden kaçırmak kolaydır. Bu yüzden doğru çalışma dizini bir formalite değil, ajan için anlaşılır bir sınırdır.

codegym-project nasıl düzenlenmiş

Şimdi de asıl CodeGym örneğine gelelim. IDEA eklentisi görevleri tek bir büyük codegym-project ağacına indirir. Dışarıdan tek bir proje gibi görünür, ama içeride önemli bir ayrıntı var: her görev ayrı bir projedir.

Ortak bir yığının içindeki tek bir dosya değil, ayrı bir proje: kendi klasörü, kendi dosyaları ve .claude içinde ajan için kendi kuralları var. Kaç görev varsa o kadar proje. kelimenin tam anlamıyla.

Basitleştirilmiş hâliyle ağaç şöyle görünür:

codegym-project/
└── src/tr/codegym/claude/course/level01/
    ├── task05/
    │   ├── .claude/          # task05 için ajan kuralları
    │   └── arkanoid.html     # bu görevin dosyası
    └── task09/
        ├── .claude/          # task09 için ayrı kurallar
        ├── arkanoid.html
        ├── clicker.html
        └── tictactoe.html

Yukarıdaki benzetmedeki odalar bunlar, sadece artık kapılarında numara var: task05 ve task09. Her birinin kendi belgeleri ve kendi kuralları var, codegym-project ise binanın tamamı. Yardımcıyı lobiye çağırmak yetmez, o anki işin durduğu odanın adını söylemeniz gerekir.

Komşu görev, mevcut görevin bağlamını tamamlamaz. task09 görevini çözmek için task05 dosyalarına ihtiyaç yoktur, bir klasördeki kurallar da diğerinin kurallarının yerini tutmaz. Bu yüzden CodeGym'de çalışırken proje kökü ortak codegym-project değil, belirli bir görevin klasörüdür.

Bir görev - bir başlatma

task09 üzerinde mi çalışıyorsunuz? Terminali task09 içinde açın ve claude komutunu orada çalıştırın. Kursun ortak kökü bunun için fazla geniş.

Ajanı görev klasöründe başlatıyoruz

İyi haber: uzun adresi elle yazmanız gerekmeyecek. IDEA, terminali doğrudan seçtiğiniz klasörde açabilir.

Aşağıda anlatılan, tam da elle yapılan yöntem. Evet, Claude Code dizinler arasında kendisi geçebilir ve komutları doğru klasörde çalıştırabilir. Ama bunu bir kez kendiniz çözmeye yine de değer: ajanın yönlendirmesine bağlı kalmazsınız ve mevcut görevin sınırlarını hemen görürsünüz.

  1. Proje ağacında ihtiyacınız olan taskXX klasörünü bulun.
  2. Görev klasörüne sağ tıklayın.
  3. Open In - Terminal seçeneğini seçin.
  4. Mevcut dizini pwd komutuyla kontrol edin.
  5. Dosyaları ls komutuyla kontrol edin.
  6. Yolun doğru taskXX ile bittiğinden emin olun, ardından claude komutunu çalıştırın.

IDEA iç içe package klasörlerini bazen noktalarla ayrılmış tek bir satır olarak gösterir, örneğin tr.codegym.claude.course.level01. Bu satırı diskteki bir yol gibi yeniden yazmayın. Terminali Open In - Terminal ile açmak ya da gerçek yolu Copy Path/Reference ile kopyalamak daha kolay.

Terminal zaten codegym-project içinde açıksa elle de geçebilirsiniz:

cd src/tr/codegym/claude/course/level01/task09
pwd
ls
claude

Yeni görev - yeni çalışma dizini

task05 görevinden task09 görevine mi geçtiniz? Açık ajan oturumu IDEA sekmesinin peşinden kendiliğinden taşınmaz. Oturumu /exit komutuyla kapatın, terminali yeni görevde açın, yolu tekrar kontrol edin ve claude komutunu çalıştırın.

Bir oturum - bir görev

Farklı görevleri aynı oturumda karıştırmayın. Diyalogda önceki dosyalar, kararlar ve varsayımlar kalır, bu yüzden ajan eski bağlamı yeni işe taşıyabilir. Sonuç, iki görevin birbirine girdiği ve sonradan ayıklaması zor bir karmaşa olur.

Oturum bağlamının neden bu kadar önemli olduğunu ve onu nasıl yöneteceğinizi kursun ilerleyen bölümlerinde ele alacağız. Şimdilik basit bir kurala uyun: yeni görev - yeni oturum.

Birkaç terminal sekmesi açık tutabilirsiniz, ama her birinin anlaşılır bir görevi olmalı. Başlangıçta, geçiş yapmadan önce eski oturumu kapatmak daha kolaydır, böylece ajanın şu anda hangi projeyle uğraştığını tahmin etmek zorunda kalmazsınız.

Ajan fazla yukarıda başlatıldıysa

Yol taskXX yerine C:\, ev klasörünüz ya da codegym-project ile mi bitiyor? Oturumu durdurun, görev klasörüne geçin ve ajanı yeniden başlatın. Önce adresi düzeltin, sonra işe devam edin.

Claude Code ile birlikte nasıl çalışır

Her şeyi tek bir resimde birleştirelim. Terminal Claude Code'a yalnızca başlatma komutunu vermez, aynı zamanda proje yapısı, göreli yollar ve yerel talimatlar için başlangıç noktasını belirler. Mevcut dizin işin nereden başladığını gösterir, tek bir projenin kökü de ajana komşu gürültüden arınmış, birbiriyle ilişkili bir dosya kümesi verir.

Bundan, işe dalmışken kolayca unutulan iki sonuç çıkar. IDE'de açık olan sekme, zaten çalışan bir oturumun dizinini değiştirmez; bu yüzden başka bir göreve geçmek hem yeni bir dizin hem de ayrı bir oturum demektir. codegym-project içinde ise tek bir projenin kökü ağacın tepesinde değil, belirli bir taskXX seviyesinde bulunur.

Pratikte claude komutundan önce üç hızlı kontrol yeterlidir:

  1. Yola pwd ile bakın.
  2. Dosyalara ls ile bakın.
  3. İhtiyacınız olan tek projeyi gördüğünüzden emin olun ve ajanı ancak ondan sonra başlatın.

Hepsi bu. Terminal burada işi zorlaştırmıyor, görünmeyen bir ayarı görünür kılıyor: nerede olduğunuzu ve ajana hangi projeyi teslim ettiğinizi tam olarak bilirsiniz.