Sunucu Yönetimi & Linux

    Zsh ve Oh My Zsh Kurulumu

    Bash yerine Zsh ve Oh My Zsh kurup tema, eklenti ve otomatik tamamlamayla terminali güçlendirmenin rehberi.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir sunucuya SSH ile bağlandığınızda sizi karşılayan siyah ekranın büyük çoğunluğunda varsayılan kabuk Bash'tir. Bash yıllardır güvenilir bir iş görür, ama uzun komutları elle yazmaktan, geçmişte çalıştırdığınız komutu aramaktan ya da yazım hatalarını fark etmeden Enter'a basmaktan yorulan herkes bir noktada daha akıllı bir alternatif arar. İşte Zsh (Z Shell) tam da bu boşluğu doldurur: Bash ile büyük ölçüde uyumlu, fakat otomatik tamamlama, akıllı geçmiş araması ve zengin bir yapılandırma imkânı sunan güçlü bir kabuktur. Üstüne Oh My Zsh çatısını kurduğunuzda ise dakikalar içinde onlarca hazır tema ve eklentiyle donatılmış, gerçekten keyif veren bir terminal deneyimine kavuşursunuz.

    Bu rehberde Zsh'i sıfırdan kurmayı, chsh ile varsayılan kabuk yapmayı, Oh My Zsh'i yüklemeyi, agnoster gibi popüler temaları seçmeyi ve zsh-autosuggestions ile zsh-syntax-highlighting eklentilerini devreye almayı adım adım göstereceğiz. Aynı zamanda üretim sunucularında kabuk değiştirmenin fayda ve risklerine, root ile normal kullanıcı ayrımına ve bir aksilik durumunda kendinizi kilitlememek için almanız gereken önlemlere de değineceğiz. Örnekler Ubuntu ve Debian tabanlı sistemler baz alınarak yazıldı; komutların büyük bölümü AlmaLinux, Rocky Linux ve CentOS'ta paket adları dışında birebir aynıdır.

    Zsh Nedir ve Bash'ten Farkı Ne?#

    Zsh, 1990'ların başında geliştirilen, Bash ile aynı POSIX kabuk ailesine mensup bir komut satırı yorumlayıcısıdır. "Bash uyumlu" olması pratikte şu anlama gelir: Bash için yazdığınız çoğu komut, takma ad (alias) ve hatta betik, Zsh içinde de sorunsuz çalışır. Dolayısıyla Zsh'e geçmek yeni bir dil öğrenmek değil, aynı dili daha rahat konuşmaktır.

    Aradaki farkı en iyi günlük kullanımda hissedersiniz. Zsh, bir dizin adının birkaç harfini yazıp Tab'a bastığınızda yalnızca tamamlamakla kalmaz; menü halinde seçenekleri gösterir, aralarında ok tuşlarıyla gezinmenize izin verir. Geçmiş araması daha akıllıdır, yazım hatalarını "şunu mu demek istediniz?" diye düzeltmeyi önerir ve genişleme (globbing) kuralları çok daha güçlüdür. Aşağıdaki tablo iki kabuğu öne çıkan başlıklarda karşılaştırıyor:

    ÖzellikBashZsh
    Tab ile tamamlamaTemel, düz listeMenü halinde, gezinilebilir
    Yazım hatası düzeltmeYokVar (öneri sunar)
    Dizin geçişiTam yol gerekircd kısaltmaları, otomatik cd
    Eklenti ekosistemiSınırlıOh My Zsh ile çok geniş
    Yapılandırma.bashrc.zshrc
    Varsayılan olduğu sistemlerÇoğu LinuxmacOS (Catalina sonrası)

    Bir örnekle somutlaştıralım. Zsh'te sadece dizin adını yazarak (başına cd koymadan) klasör değiştirebilirsiniz:

    # Zsh'te setopt AUTO_CD açıksa:
    /var/www/site        # doğrudan bu dizine geçer
    ..                   # bir üst dizine çıkar
    

    Terminalde henüz çok yeniyseniz, önce temel komut setini oturtmanızı öneririz; Linux temel komutlar rehberimiz ls, cd, cp, chmod gibi hayati komutları örneklerle anlatıyor. Zsh bunların hepsini aynen çalıştırır, sadece deneyimi daha akıcı hale getirir.

    Kuruluma Başlamadan Önce: Riskler ve Hazırlık#

    Kişisel bilgisayarınızda kabuk değiştirmek zararsız bir denemedir, ama bir üretim sunucusunda aynı işlemi yaparken iki noktaya dikkat etmek gerekir. Birincisi, varsayılan kabuğu yanlış bir yola ayarlamak sizi sunucudan kilitleyebilir. chsh ile geçersiz bir kabuk yolu verirseniz, bir sonraki SSH oturumunda giriş başarısız olabilir. İkincisi, otomasyon betikleri ve cron görevleri çoğunlukla #!/bin/bash ile başlar; kullanıcının varsayılan kabuğunu değiştirmek bu betikleri etkilemez, çünkü onlar kendi yorumlayıcısını satır başında belirtir. Yine de ~/.bashrc içine gömülü ortam değişkenleri varsa, bunları ~/.zshrc'ye taşımayı unutmayın.

    En güvenli yaklaşım, işleme başlamadan ikinci bir SSH oturumu açık tutmaktır. Ana oturumda değişiklikleri yapar, ikinci oturumdan yeni bir bağlantı deneyerek her şeyin çalıştığını doğrularsınız. Bir sorun çıkarsa hâlâ açık olan ilk oturumdan geri alabilirsiniz. Ayrıca kabuk değiştirmeyi genellikle root yerine sıradan bir kullanıcıda yapmanız önerilir; root hesabının kabuğunu değiştirmek, kurtarma senaryolarında beklenmedik davranışlara yol açabilir.

    Kuruluma geçmeden paket listenizi güncelleyin ve git ile curl araçlarının kurulu olduğundan emin olun; Oh My Zsh kurulum betiği bunlara ihtiyaç duyar:

    sudo apt update
    sudo apt install -y git curl
    

    Kendi ayrılmış kaynaklara sahip, root yetkisiyle özgürce deneme yapabileceğiniz bir ortam istiyorsanız, paylaşımlı hosting yerine bir VDS sunucu ya da sanal sunucu daha uygundur. Paylaşımlı hosting hesaplarında kabuk erişimi çoğu zaman kısıtlıdır ve varsayılan kabuğu değiştirme yetkiniz olmayabilir.

    Zsh'i Kurma ve Sürümü Doğrulama#

    Zsh, neredeyse tüm dağıtımların depolarında hazır bulunur. Ubuntu ve Debian'da kurulum tek satırdır:

    sudo apt install -y zsh
    

    AlmaLinux, Rocky Linux veya CentOS kullanıyorsanız paket yöneticisi dnf olur:

    sudo dnf install -y zsh
    

    Kurulumun başarılı olduğunu ve hangi sürümün geldiğini görmek için:

    zsh --version
    # Örnek çıktı: zsh 5.9 (x86_64-ubuntu-linux-gnu)
    

    Bu noktada Zsh kuruldu ama henüz varsayılan kabuğunuz değil. Onu geçici olarak denemek için sadece zsh yazıp Enter'a basın. İlk kez çalıştırdığınızda Zsh sizi bir yapılandırma sihirbazıyla karşılar; bu sihirbaz .zshrc dosyanızı oluşturmayı önerir. Oh My Zsh kuracaksanız bu adımı atlayabilirsiniz (klavyeden q ile çıkın), çünkü Oh My Zsh kendi yapılandırmasını getirecek. Zsh oturumundan Bash'e geri dönmek için sadece exit yazmanız yeterli:

    zsh          # Zsh oturumunu başlat (deneme amaçlı)
    exit         # tekrar önceki kabuğa dön
    

    Kurulu kabukların tam listesini /etc/shells dosyasında görebilirsiniz; birazdan chsh bu listeyi denetleyecek:

    cat /etc/shells
    # /bin/bash
    # /usr/bin/zsh
    # ...
    

    chsh ile Varsayılan Kabuğu Zsh Yapma#

    Her yeni oturumda elle zsh yazmak yerine, kullanıcınızın varsayılan kabuğunu Zsh yapmak istersiniz. Bunun için chsh (change shell) komutu kullanılır. Önce Zsh'in tam yolunu öğrenin:

    which zsh
    # /usr/bin/zsh
    

    Ardından mevcut kullanıcınız için varsayılan kabuğu değiştirin:

    chsh -s $(which zsh)
    

    chsh sizden parolanızı isteyecek, sonra kabuğu değiştirecektir. Önemli nokta: bu değişiklik anında geçerli olmaz; yürürlüğe girmesi için oturumu kapatıp yeniden giriş yapmanız (SSH'de bağlantıyı kesip yeniden bağlanmanız) gerekir. İşte bu yüzden ikinci bir oturumu açık tutmayı önerdik.

    Belirli bir kullanıcının kabuğunu root olarak değiştirmek isterseniz kullanıcı adını sona ekleyin:

    sudo chsh -s /usr/bin/zsh deploy
    

    Değişikliğin gerçekleşip gerçekleşmediğini /etc/passwd dosyasındaki ilgili satırdan doğrulayabilirsiniz:

    grep "^$USER:" /etc/passwd
    # deploy:x:1001:1001::/home/deploy:/usr/bin/zsh
    

    Satırın sonundaki /usr/bin/zsh artık varsayılan kabuğunuzun Zsh olduğunu gösterir. Eğer chsh size "chsh: /usr/bin/zsh is an invalid shell" gibi bir hata verirse, bunun nedeni Zsh yolunun /etc/shells içinde listelenmemiş olmasıdır; o dosyaya ilgili satırı ekleyerek sorunu çözersiniz:

    echo "/usr/bin/zsh" | sudo tee -a /etc/shells
    

    Oh My Zsh Çatısını Yükleme#

    Ham Zsh zaten Bash'ten iyidir, ama gerçek güç Oh My Zsh ile açığa çıkar. Oh My Zsh, Zsh yapılandırmasını yönetmek için topluluk tarafından geliştirilen açık kaynak bir çatıdır; 300'den fazla eklenti ve 140'tan fazla hazır tema ile birlikte gelir. Kurulumu resmî betikle tek komuttur:

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    

    Bu betik ~/.oh-my-zsh klasörünü oluşturur, mevcut ~/.zshrc dosyanızı ~/.zshrc.pre-oh-my-zsh adıyla yedekler ve yerine Oh My Zsh varsayılanlarını içeren yeni bir .zshrc yazar. Kurulum bittiğinde, eğer varsayılan kabuğunuz henüz Zsh değilse betik bunu değiştirmeyi de teklif eder.

    İnternetten indirdiğiniz bir betiği doğrudan çalıştırmaktan çekiniyorsanız, ki üretim sunucularında bu sağlıklı bir refleks, önce betiği bir dosyaya indirip içeriğini okuyun, sonra çalıştırın:

    curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -o omz-install.sh
    less omz-install.sh      # içeriği inceleyin
    sh omz-install.sh        # ikna olduysanız çalıştırın
    

    Kurulumdan sonra terminaliniz belirgin biçimde değişir; renkli, bilgilendirici bir komut istemiyle karşılaşırsınız. Bundan sonraki tüm ayarlar ~/.zshrc dosyasını düzenleyerek yapılır. Bu dosyayı düzenlemek için bir metin editörüne ihtiyacınız olacak; henüz alışkın değilseniz nano ve vim metin düzenleyici rehberimiz ikisini de sıfırdan anlatıyor. Yaptığınız değişikliklerin devreye girmesi için dosyayı kaydettikten sonra yapılandırmayı yeniden yükleyin:

    source ~/.zshrc
    

    Tema Seçimi: agnoster ve Diğer Popüler Temalar#

    Oh My Zsh'in en görünür özelliği temalarıdır. Tema, komut isteminizin (prompt) nasıl göründüğünü belirler; Git dalınızı, çıkış kodunu, kullanıcı adını, dizin yolunu renk ve simgelerle gösterir. Temayı ~/.zshrc dosyasındaki ZSH_THEME satırından değiştirirsiniz. Varsayılan tema robbyrussell'dır:

    # ~/.zshrc içinde
    ZSH_THEME="robbyrussell"
    

    En popüler temalardan biri agnoster'dır; ok biçimli "powerline" bölmeleriyle şık, profesyonel bir görünüm sunar ve Git durumunu net gösterir. Kullanmak için satırı şöyle değiştirin:

    ZSH_THEME="agnoster"
    

    Değişiklikten sonra source ~/.zshrc çalıştırın. agnoster'ın bir önemli gereksinimi vardır: özel köşe simgelerini doğru göstermek için terminalinizin bir Powerline / Nerd Font yazı tipi kullanması gerekir (örneğin "MesloLGS NF" veya "Fira Code Nerd Font"). Bu yazı tipini yerel terminal uygulamanıza kurup seçmezseniz, oklar yerine bozuk kutucuklar görürsünüz. Yazı tipi bilgisayarınızda kuruludur; sunucuya bir şey kurmanız gerekmez, çünkü render işlemi sizin terminalinizde olur.

    Aşağıda sık tercih edilen birkaç tema ve öne çıkan yanları var:

    TemaGörünümNot
    robbyrussellSade, tek satırVarsayılan, özel yazı tipi gerektirmez
    agnosterPowerline bölmeliNerd Font gerekir, Git odaklı
    af-magicRenkli, genişYatay çizgiyle bölümler
    bureauİki satırlı, detaylıGit ve durum bilgisi zengin
    randomHer açılışta farklıDenemek için ideal

    ZSH_THEME="random" yaparsanız her yeni terminal farklı bir tema açar; hangisini beğendiğinizi bu şekilde kolayca keşfeder, sonra sabitlersiniz. Temalar ~/.oh-my-zsh/themes/ klasöründedir; hepsinin listesini görmek için o dizini listeleyebilirsiniz.

    Vazgeçilmez İki Eklenti: Otomatik Öneri ve Sözdizimi Renklendirme#

    Oh My Zsh'in gerçek verimlilik sıçraması eklentilerle gelir. İkisi neredeyse herkesin ilk kurduğu, olmazsa olmaz eklentilerdir: zsh-autosuggestions ve zsh-syntax-highlighting. Bunlar Oh My Zsh ile birlikte gelmez, ayrıca indirilmeleri gerekir.

    zsh-autosuggestions, siz yazarken geçmiş komutlarınıza dayanarak soluk gri renkte bir tamamlama önerisi gösterir; öneriyi kabul etmek için sağ ok tuşuna basmanız yeterlidir. Bu, sık kullandığınız uzun komutları yeniden yazma zahmetini ortadan kaldırır. zsh-syntax-highlighting ise komutunuzu yazarken gerçek zamanlı renklendirir: geçerli bir komut yeşil, hatalı ya da bulunamayan bir komut kırmızı görünür; böylece Enter'a basmadan önce yazım hatasını fark edersiniz.

    Her iki eklentiyi de Oh My Zsh'in özel eklenti dizinine git clone ile indirin:

    git clone https://github.com/zsh-users/zsh-autosuggestions \
      ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
    git clone https://github.com/zsh-users/zsh-syntax-highlighting \
      ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    

    Ardından ~/.zshrc dosyasındaki plugins satırını bulun ve iki eklentiyi ekleyin. Önemli: zsh-syntax-highlighting listenin en sonunda olmalıdır, aksi halde renklendirme düzgün çalışmaz:

    # ~/.zshrc içinde
    plugins=(
      git
      zsh-autosuggestions
      zsh-syntax-highlighting
    )
    

    Değişikliği kaydedip yapılandırmayı yeniden yükleyin:

    source ~/.zshrc
    

    Artık terminalde yazmaya başlayın; geçmişten gelen öneriler soluk gri belirecek, geçerli komutlar renklenecektir. Buradaki git eklentisi zaten Oh My Zsh ile geldiği için ekstra bir kurulum istemez; size gst (git status), gco (git checkout), gp (git push) gibi onlarca kısa takma ad kazandırır. Eklenti kataloğunun tamamını ~/.oh-my-zsh/plugins/ altında bulabilir, ilgilendiklerinizi aynı plugins listesine ekleyerek etkinleştirebilirsiniz.

    Kendi Takma Ad ve Ayarlarınızı Ekleme#

    Zsh ve Oh My Zsh'in getirdiği asıl kazanç, terminali kendinize göre şekillendirmenizdir. ~/.zshrc dosyasının sonuna kendi takma adlarınızı ve fonksiyonlarınızı ekleyerek sık yaptığınız işleri tek kelimeye indirebilirsiniz. Örneğin:

    # ~/.zshrc sonuna
    alias ll="ls -lah"
    alias gs="git status"
    alias ..="cd .."
    alias reload="source ~/.zshrc"
    
    # Nginx'i hızlı test edip yeniden yükleyen fonksiyon
    nginx-reload() {
      sudo nginx -t && sudo systemctl reload nginx
    }
    

    Zsh'in davranışını setopt ile ince ayar yapabilirsiniz. En sık kullanılan birkaç seçenek şunlardır:

    setopt AUTO_CD              # dizin adını yazınca otomatik cd yap
    setopt HIST_IGNORE_DUPS     # geçmişte ardışık tekrarları saklama
    setopt SHARE_HISTORY        # tüm oturumlar aynı geçmişi paylaşsın
    setopt CORRECT              # yazım hatası düzeltme önerisi sun
    

    Bu satırları da ~/.zshrc içine ekleyip source ~/.zshrc ile yükleyin. Zaman içinde biriktirdiğiniz bu ayarlar, sunucudan sunucuya taşınabilir kişisel bir yapılandırmaya dönüşür; .zshrc dosyanızı özel bir Git deposunda saklayıp her yeni sunucuda tek komutla geri yükleyebilirsiniz. Sunucularınızın güvenliği ve yönetim yükü sizi zorluyorsa, uzman ekibimizin devreye girdiği sunucu yönetimi hizmetimiz kabuk yapılandırmasından güvenlik güncellemelerine kadar tüm bakımı üstlenir.

    Bash'e Geri Dönmek ve Sorun Giderme#

    Zsh'i denediniz ama alışamadınız ya da bir betik uyumsuzluğu yaşadınız diyelim. Bash'e geri dönmek son derece kolaydır; aynı chsh komutunu bu kez Bash yolu ile çalıştırırsınız:

    chsh -s /bin/bash
    

    Oturumu kapatıp yeniden açtığınızda tekrar Bash ile karşılaşırsınız. Oh My Zsh'i tamamen kaldırmak isterseniz, kurulumla birlikte gelen kaldırma betiği vardır:

    uninstall_oh_my_zsh
    

    Bu komut Oh My Zsh dosyalarını siler ve kurulum sırasında yedeklenen orijinal .zshrc dosyanızı geri yükler. En sık karşılaşılan sorun, agnoster gibi temalarda görülen "bozuk simge / kutucuk" görünümüdür; bunun çözümü sunucuda değil, kendi terminal uygulamanızda bir Nerd Font yazı tipi seçmektir. İkinci sık sorun, eklentileri plugins listesine eklemenize rağmen çalışmamasıdır ki bu genellikle git clone yolunun yanlış girilmesinden ya da source ~/.zshrc çalıştırmayı unutmaktan kaynaklanır. Son olarak, chsh çalışmıyorsa kullanıcının kabuk değiştirme yetkisinin kısıtlı olduğu (bazı yönetilen ortamlar bunu engeller) ihtimalini kontrol edin.

    Sıkça Sorulan Sorular#

    Zsh, Bash'ten daha mı yavaş çalışır?#

    Günlük kullanımda hissedilir bir fark yoktur; Zsh interaktif terminal deneyiminde son derece akıcıdır. Yalnızca çok sayıda eklenti ve ağır bir tema yüklediğinizde terminalin açılışı milisaniyeler mertebesinde uzayabilir, bu da normal kullanımda gözle görülür değildir. Yüksek performans gerektiren betikleri yine #!/bin/bash ile yazmaya devam edebilirsiniz; kabuğunuzu Zsh yapmak bu betikleri etkilemez.

    Zsh'e geçince mevcut Bash betiklerim bozulur mu?#

    Hayır, çünkü betikler kendi yorumlayıcısını ilk satırdaki shebang (#!/bin/bash) ile belirler ve o yorumlayıcıyla çalışır. Kullanıcınızın varsayılan interaktif kabuğunu Zsh yapmak, disk üzerindeki .sh betiklerinin nasıl çalıştığını değiştirmez. Yalnızca ~/.bashrc içine gömdüğünüz ortam değişkenleri ve takma adlar varsa, bunların interaktif oturumda çalışması için ~/.zshrc dosyasına da taşımanız gerekir.

    Root kullanıcısının kabuğunu da Zsh yapmalı mıyım?#

    Genellikle önerilmez. Kurtarma ve tek kullanıcılı mod senaryolarında root hesabının öngörülebilir, sade bir Bash kabuğuyla kalması daha güvenlidir. Günlük çalışmanızı zaten sıradan bir kullanıcıyla yapıp gerektiğinde sudo kullanmanız en sağlıklı yaklaşımdır; kabuk kişiselleştirmesini de o normal kullanıcıda uygularsınız. Böylece bir yapılandırma hatası, sistemin kurtarma yeteneğini riske atmaz.

    agnoster temasında oklar yerine bozuk kutucuklar çıkıyor, neden?#

    Bu bir sunucu hatası değil, yazı tipi eksikliğidir. agnoster ve benzeri powerline temaları, standart yazı tiplerinde bulunmayan özel köşe ve simge karakterleri kullanır. Çözüm, kendi bilgisayarınızdaki terminal uygulamasına bir Nerd Font (örneğin MesloLGS NF veya Fira Code Nerd Font) kurup terminal ayarlarından yazı tipi olarak onu seçmektir. Render işlemi sizin ekranınızda gerçekleştiği için sunucuya herhangi bir yazı tipi kurmanıza gerek yoktur.

    Paylaşımlı hosting hesabımda Zsh kurabilir miyim?#

    Çoğu paylaşımlı hosting ortamında kabuk (SSH) erişimi kısıtlıdır ve varsayılan kabuğu değiştirme yetkiniz olmaz. Bazı sağlayıcılar chsh yerine kontrol panelinden kısıtlı bir kabuk seçimi sunar. Zsh ve Oh My Zsh'i tam özgürlükle kurup yapılandırmak istiyorsanız kök (root) erişimi veren bir VDS ya da sanal sunucu tercih etmelisiniz; bu ortamlarda paket kurulumundan varsayılan kabuk değişimine kadar her şey sizin kontrolünüzdedir.

    Kapanış#

    Zsh ve Oh My Zsh, terminalde geçirdiğiniz zamanı hem daha hızlı hem de gözle görülür biçimde daha keyifli hale getirir. Birkaç dakikalık kurulumun ardından otomatik öneriler, sözdizimi renklendirme, akıllı tamamlama ve Git durumunu anında gösteren şık bir komut istemiyle çalışmaya başlarsınız. En güzeli, .zshrc dosyanızı bir kez şekillendirdiğinizde bu yapılandırmayı bütün sunucularınıza taşıyıp tutarlı bir çalışma ortamı kurabilmenizdir. İşe temel komutları oturtarak başlayıp adım adım eklenti ve tema ekleyerek kendi ideal terminalinizi inşa edin.

    Bu deneyimi denemek için root erişimli, hızlı ve güvenilir bir sunucuya ihtiyacınız varsa Clou.TR'nin VDS ve sanal sunucu çözümlerine göz atabilir, tüm sunucu ailesini sunucu sayfamızdan inceleyebilirsiniz. Kurulum, güvenlik ve bakımı bizim üstlenmemizi isterseniz sunucu yönetimi hizmetimiz; performanslı web projeleri için ise hosting paketlerimiz sizi bekliyor. Doğru altyapı üzerinde güçlü bir terminal, işinizi baştan sona kolaylaştırır.

    ZshTerminalLinux

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.