Zsh ve Oh My Zsh: Farklar Nelerdir?

Bu eğitim, aralarındaki farkları inceleyecek, yaygın soruları yanıtlayacak ve her birinin iş akışınıza getirdiği güçlü özellikleri vurgulayacak.

Efe Demir

Efe Demir

5 June 2025

Zsh ve Oh My Zsh: Farklar Nelerdir?

Giriş

Komut satırı arayüzleri dünyasına dalarken, kaçınılmaz olarak "zsh" ve "Oh My Zsh" terimleriyle karşılaşacaksınız. Genellikle aynı nefeste anılsalar da, terminal deneyiminizi geliştirmek için farklı amaçlara hizmet ederler. Bu kapsamlı eğitim, aralarındaki farkları inceleyecek, sık sorulan soruları yanıtlayacak ve her birinin iş akışınıza getirdiği güçlü özellikleri vurgulayacaktır. İster deneyimli bir geliştirici olun, ister komut satırıyla yeni tanışıyor olun, bu araçları anlamak üretkenliğinizi önemli ölçüde artırabilir ve terminal deneyiminizi daha keyifli hale getirebilir.

💡
API Geliştirme için Neden Apidog'u Düşünmelisiniz?

Terminal özelleştirmesine daha derinlemesine dalmadan önce, API geliştirme iş akışınızı temelden değiştirecek bir araç var.

Postman'in sınırlamalarından yorulduysanız, Apidog, API dokümantasyonu, tasarımı, test etme ve mock hizmetlerini tek bir kesintisiz platformda birleştiren ferahlatıcı bir alternatif sunar.

Sezgisel arayüzü, işbirliğine dayalı özellikleri ve güçlü otomasyon yetenekleriyle Apidog, geleneksel araçları kasıp kavuran bağlam değiştirme sorununu ortadan kaldırırken tüm API yaşam döngüsünü kolaylaştırır.

Geliştiriciler, geçiş yaptıktan sonra %60'a varan oranda daha hızlı API geliştirme döngüleri bildirmektedir. RESTful hizmetler, GraphQL uç noktaları veya WebSockets oluşturuyor olsanız da, Apidog'un kapsamlı araç seti ve üstün performansı, onu modern geliştirme ekipleri için akıllı bir seçim haline getirir. API iş akışınızı geliştirmeye hazır mısınız? Apidog tam da aradığınız şey olabilir.

button

Temelleri Anlamak

Zsh Nedir?

Zsh (Z Shell), Bourne Shell'in (sh) geliştirilmiş bir sürümü olarak işlev gören, çok sayıda iyileştirme ve ek özellik içeren güçlü bir komut satırı yorumlayıcısı veya kabuğudur. Paul Falstad tarafından 1990 yılında Princeton Üniversitesi'nde öğrenciyken oluşturulan zsh, günümüzde mevcut olan en zengin özelliklere sahip kabuklardan biri haline geldi.

Zsh'nin temel teknik özellikleri şunlardır:

Oh My Zsh Nedir?

Oh My Zsh, bir kabuğun kendisi değil, zsh yapılandırmanızı yönetmek için açık kaynaklı, topluluk odaklı bir çerçevedir. Robby Russell tarafından 2009 yılında oluşturulan, kapsamlı manuel yapılandırma gerektirmeden daha kullanıcı dostu ve zengin özelliklere sahip bir deneyim sağlamak için zsh üzerine kurulmuştur.

Teknik olarak konuşursak, Oh My Zsh şunlardan oluşur:

Zsh ve Oh My Zsh Aynı mı?

Hayır, zsh ve Oh My Zsh aynı değildir. Aralarındaki ilişki, bir işletim sistemi ile bir yazılım uygulaması arasındaki ilişkiye benzer. Zsh, temel işlevselliği ve komut yorumlamayı sağlayan temel kabuktur (işletim sistemi gibi). Oh My Zsh, zsh'nin üzerine inşa edilmiş bir çerçevedir (bir uygulama gibi), kullanışlı yapılandırmalar, eklentiler ve temalarla yeteneklerini genişletir.

Teknik açıdan:

zsh = Kabuk yürütülebilir dosyası (/bin/zsh)
Oh My Zsh = ~/.oh-my-zsh/ içinde bir dizi yapılandırma dosyası ve komut dosyası

Oh My Zsh, çerçeve kodunu kaynaklamak için ~/.zshrc dosyanızı değiştirir ve bu daha sonra yapılandırmanıza göre çeşitli özellikleri yükler. Zsh ikili dosyasının kendisini değiştirmez veya değiştirmez.

Oh My Zsh'den Önce Zsh'yi Yüklemem Gerekir mi?

Evet, Oh My Zsh'den önce kesinlikle zsh'yi yüklemeniz gerekir. Oh My Zsh, zsh'nin işlevselliğini genişleten bir çerçeve olduğundan, zsh olmadan Oh My Zsh'yi yüklemeye çalışmak, tarayıcının kendisi olmadan bir tarayıcı uzantısı yüklemeye çalışmak gibi olur.

Yükleme süreci şu özel sırayı izler:

Zsh Nasıl Yüklenir

Ubuntu/Debian'da:

sudo apt update
sudo apt install zsh

CentOS/RHEL'de:

sudo yum install zsh

macOS'ta (Homebrew kullanarak):

brew install zsh

Not: macOS Catalina ve daha yeni sürümleri zsh ile önceden yüklenmiş olarak gelir.

Zsh'yi Varsayılan Kabuğunuz Olarak Nasıl Ayarlarsınız

Yükledikten sonra, zsh'yi varsayılan kabuğunuz yapmanız gerekir:

chsh -s $(which zsh)

Değişikliğin etkili olması için oturumu kapatıp tekrar açmanız gerekebilir. Zsh'nin varsayılan kabuğunuz olarak ayarlandığını doğrulamak için:

echo $SHELL

Çıktı, sisteminize bağlı olarak /bin/zsh veya /usr/bin/zsh olmalıdır.

Oh My Zsh Nasıl Yüklenir

Zsh yüklendikten ve varsayılan kabuğunuz olarak ayarlandıktan sonra, Oh My Zsh'yi curl veya wget kullanarak yükleyebilirsiniz:

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

# Wget kullanarak
sh -c "$(wget <https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh> -O -)"

Yükleme komut dosyası çeşitli eylemler gerçekleştirir:

  1. Zsh'nin yüklü olup olmadığını kontrol eder
  2. Zsh'nin varsayılan kabuk olarak ayarlanıp ayarlanmadığını doğrular
  3. Mevcut herhangi bir .zshrc dosyasının yedeğini oluşturur
  4. Oh My Zsh deposunu ~/.oh-my-zsh içine klonlar
  5. Oh My Zsh'yi kullanacak şekilde yapılandırılmış yeni bir .zshrc dosyası oluşturur
  6. Zaten ayarlanmamışsa, varsayılan kabuğunuzu isteğe bağlı olarak zsh olarak değiştirir

Oh My Zsh Tam Olarak Nedir?

Oh My Zsh, zsh yapılandırmanızı yönetmeyi daha kolay ve daha güçlü hale getirmek için tasarlanmış, açık kaynaklı, topluluk odaklı bir çerçevedir. Proje deposu, dünya çapında binlerce geliştiricinin katkılarıyla 300'den fazla eklenti ve 150 tema içerir.

Oh My Zsh'nin Teknik Yapısı

Yüklendiğinde, Oh My Zsh aşağıdaki dizin yapısını oluşturur:

~/.oh-my-zsh/
├── cache/              # Eklentiler için önbellek dosyaları
├── custom/             # Kullanıcı özelleştirmeleri
│   ├── plugins/        # Özel eklentiler
│   └── themes/         # Özel temalar
├── lib/                # Çekirdek çerçeve işlevleri
├── log/                # Hata ayıklama için günlükler
├── plugins/            # Yerleşik eklentiler
├── templates/          # Yapılandırma için şablonlar
├── themes/             # Yerleşik temalar
└── tools/              # Yardımcı komut dosyaları

Oh My Zsh tarafından oluşturulan .zshrc dosyası bu çerçeveyi yükler ve kullanıcı tercihlerine göre yapılandırmalar uygular. Dosya tipik olarak şunları içerir:

# Oh My Zsh yükleme yolu
export ZSH="$HOME/.oh-my-zsh"

# Tema seçimi
ZSH_THEME="robbyrussell"

# Eklenti yapılandırması
plugins=(git docker python)

# Oh My Zsh'yi yükle
source $ZSH/oh-my-zsh.sh

# Kullanıcı özelleştirmeleri
# ...

Oh My Zsh'nin Temel Özellikleri

  1. Otomatik Güncellemeler: Çerçeve, düzenli olarak güncellemeleri kontrol eder ve bunları yüklemenizi ister.
  2. Eklenti Yönetimi: plugins dizisi aracılığıyla işlevselliği etkinleştirmek/devre dışı bırakmak için basit mekanizma.
  3. Tema Sistemi: ZSH_THEME değişkenini değiştirerek görsel stiller arasında kolay geçiş.
  4. Özel Takma Adlar: Özellikle Git işlemleri için çok sayıda yerleşik takma ad.
  5. Özel İşlevler: Tekrarlayan görevleri kolaylaştırmak için yardımcı işlevler.
  6. Komut Tamamlama: Çeşitli araçlar ve komutlar için geliştirilmiş tamamlama komut dosyaları.

Oh My Zsh, Bash'ten Daha mı İyi?

Bu soru tam olarak doğru değil, çünkü farklı türde araçları karşılaştırıyor. Daha uygun karşılaştırma, zsh ve bash (her iki kabuk) veya Oh My Zsh ve bash için bash-it gibi diğer çerçeveler arasında olacaktır.

Teknik Karşılaştırma: Zsh vs. Bash

Özellik Zsh Bash
Sekme tamamlama Gelişmiş, bağlam farkındalığına sahip Temel, dosya/komut tamamlama
Komut dosyası uyumluluğu Bash komut dosyalarıyla oldukça uyumlu Standart komut dosyası sözdizimi
Özelleştirilebilirlik Oldukça özelleştirilebilir Daha az özelleştirilebilir
Yazım düzeltme Yerleşik Harici araçlar gerektirir
Yol genişletme Gelişmiş globbing (örneğin, **/*.txt) Temel globbing
Temalandırma yeteneği Kapsamlı Sınırlı
Eklenti ekosistemi Büyük Daha küçük
macOS'ta varsayılan Evet (Catalina'dan beri) Hayır (Catalina'dan önce varsayılandı)
POSIX uyumluluğu İsteğe bağlı Çoğunlukla POSIX uyumlu
Performans Çoğu işlem için bash'e benzer Temel performans

Bash, Unix benzeri sistemlerde en yaygın olarak bulunan kabuk olsa da, zsh etkileşimli kullanım için daha modern özellikler sunar. Öncelikle komut dosyası oluşturmak için kabuğu kullanıyorsanız, uyumluluk nedenleriyle bash hala tercih edilebilir.

Oh My Zsh vs. Düz Zsh

Oh My Zsh ile zsh kullanmak şunları ekler:

  1. Önceden yapılandırılmış ayarlar: Birçok zsh seçeneği için makul varsayılanlar.
  2. Kullanıma hazır eklentiler: Manuel yapılandırma olmadan yüzlerce eklentiye erişim.
  3. Profesyonel temalar: Faydalı bilgilerle görsel olarak çekici istemler.
  4. Topluluk desteği: Yapılandırmaları ve sorun gidermeyi paylaşan büyük bir kullanıcı tabanı.
  5. Basitleştirilmiş yönetim: Yapılandırmanızı güncellemek ve yönetmek için araçlar.

Taviz, Oh My Zsh'nin, minimal bir zsh yapılandırmasından biraz daha yavaş başlaması olabilir, ancak bu genellikle modern sistemlerde ihmal edilebilir.

Oh My Zsh Temalarını Nasıl Özelleştirilir

Oh My Zsh'nin temalandırma sistemi, terminalinizin görünümünü ve isteminizde görüntülenen bilgileri önemli ölçüde değiştirir.

Temanızı Nasıl Değiştirirsiniz

Temaları değiştirmek, ~/.zshrc dosyanızdaki ZSH_THEME değişkenini düzenlemek kadar basittir:

# Temayı agnoster olarak ayarla
ZSH_THEME="agnoster"

Dosyayı kaydettikten sonra, değişiklikleri terminalinizi yeniden başlatarak veya çalıştırarak uygulayın:

source ~/.zshrc

Popüler Oh My Zsh Temaları ve Özellikleri

1. Robbyrussell (Varsayılan)

Oh My Zsh'nin kurucusu tarafından oluşturulan varsayılan tema şunları sağlar:

➜ ~/projects/website git:(master) ✗

2. Agnoster

Şunları gösteren bir powerline tabanlı tema:

username@hostname ~/projects/website master ✗ $

Agnoster'ı etkili bir şekilde kullanmak için, Fira Code veya Meslo gibi powerline uyumlu bir yazı tipi yüklemeniz gerekir.

3. Powerlevel10k

Varsayılan olarak Oh My Zsh ile birlikte gelmese de, bu popüler tema ayrı olarak yüklenebilir:

git clone --depth=1 <https://github.com/romkatv/powerlevel10k.git> ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Ardından ~/.zshrc dosyanızda ZSH_THEME="powerlevel10k/powerlevel10k" ayarlayın.

Powerlevel10k şunları sunar:

Özel Bir Tema Nasıl Oluşturulur

Kendi temanızı oluşturmak istiyorsanız:

  1. ~/.oh-my-zsh/custom/themes/mytheme.zsh-theme içinde bir dosya oluşturun
  2. Zsh'nin istem sözdizimini kullanarak veya mevcut bir temayı değiştirerek isteminizi tanımlayın
  3. ~/.zshrc dosyanızda ZSH_THEME="mytheme" ayarlayın

Minimal bir özel temaya örnek:

# ~/.oh-my-zsh/custom/themes/mytheme.zsh-theme
PROMPT='%{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)➜ '
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}["
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""

Oh My Zsh Eklentileri Nasıl Kullanılır

Eklentiler, Oh My Zsh'nin gerçekten parladığı yerdir ve çeşitli diller, çerçeveler ve iş akışları için özel araçlarla zsh işlevselliğini genişletir.

Eklentiler Nasıl Etkinleştirilir

Eklentiler, ~/.zshrc dosyanızdaki eklentiler dizisinde listelenerek etkinleştirilir:

plugins=(git docker npm python vscode)

Eklentiler ekledikten veya kaldırdıktan sonra, yapılandırmanızı yeniden yükleyin:

source ~/.zshrc

Eklentilerin Nasıl Çalıştığına Dair Teknik Genel Bakış

Oh My Zsh yüklendiğinde, eklentiler listenizi işler ve her eklenti için:

  1. $ZSH/plugins/ veya $ZSH_CUSTOM/plugins/ içinde eklenti dizinini arar
  2. pluginname.plugin.zsh dosyası varsa onu kaynaklar
  3. Aksi takdirde, eklenti dizinindeki herhangi bir .zsh dosyasını kaynaklar
  4. functions/ alt dizininde tanımlanan herhangi bir işlevi yükler

Eklentiler şunları tanımlayabilir:

Temel Eklentiler ve Teknik Özellikleri

1. Git Eklentisi

Varsayılan olarak etkinleştirilen Git eklentisi, yaygın Git işlemleri için 150'den fazla takma ad sağlar:

# Örnekler
gst       # git status
ga        # git add
gcmsg     # git commit -m
gp        # git push
gl        # git pull
glog      # git log --oneline --decorate --graph

Ayrıca, dalları yeniden adlandırmak için grename ve eski dalları temizlemek için gclean gibi işlevler de içerir.

2. Docker Eklentisi

Özellikler:

3. Z Eklentisi

Bu eklenti, en sık ve en son eriştiğiniz dizinlerin bir veritabanını tutar:

z project    # 'project' ile eşleşen en sık dizine atla
z -l project # Atlamak yerine tüm eşleşmeleri listele
z -c project # Geçerli dizinin alt dizinleriyle sınırla

Uygulama, sıklığı ve yakınlığı dikkate alan ağırlıklı bir sıralama algoritması kullanır.

4. Sözdizimi Vurgulama

Bu ayrı olarak yüklenmelidir:

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

Ardından eklentilere ekleyin: plugins=(... zsh-syntax-highlighting)

Şunlar için gerçek zamanlı sözdizimi vurgulama sağlar:

5. Otomatik Öneriler

Ayrıca ayrı bir kurulum gerektirir:

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

Ardından eklentilere ekleyin: plugins=(... zsh-autosuggestions)

Teknik detaylar:

Özel Bir Eklenti Nasıl Oluşturulur

Kendi eklentinizi oluşturmak basittir:

Eklentiniz için bir dizin oluşturun:

mkdir -p ~/.oh-my-zsh/custom/plugins/myplugin

Ana eklenti dosyasını oluşturun:

touch ~/.oh-my-zsh/custom/plugins/myplugin/myplugin.plugin.zsh

İşlevselliğinizi dosyaya ekleyin:

# ~/.oh-my-zsh/custom/plugins/myplugin/myplugin.plugin.zsh

# Takma adları tanımla
alias myalias='complex command with options'

# İşlevleri tanımla
function myfunc() {
  echo "Executing complex operation..."
  # Kodunuz buraya
}

# Tamamlamalar ekle
compdef _gnu_generic myfunc

Eklentinizi .zshrc içindeki eklentiler listesine ekleyin:

plugins=(... myplugin)

Yaygın Sorunları Giderme

Yavaş Başlangıç Süreleri

Oh My Zsh yavaş yükleniyorsa:

Başlangıç süresini ölçün:

time zsh -i -c exit

Yavaş eklentileri belirleyin:

# .zshrc'nin en üstüne ekleyin
zmodload zsh/zprof

# .zshrc'nin en altına ekleyin
zprof

Yaygın çözümler:

Eklenti Çakışmaları

Eklentiler birbiriyle çakışıyorsa:

  1. Sorunlu eklentileri eklentiler dizisinde yeniden düzenleyerek belirli bir sırada yükleyin
  2. Takma adlarda ve işlevlerde ad alanı çakışmalarını kontrol edin
  3. Takma ad önceliğini yönetmek için aliases eklentisini kullanmayı düşünün

Tema Görüntüleme Sorunları

Temanız doğru görüntülenmiyorsa:

  1. Uyumlu bir yazı tipinin yüklü olduğundan emin olun (özellikle Powerline temaları için)
  2. Terminal renk desteğini kontrol edin (çoğu tema 256 renk gerektirir)
  3. echo $LANG ile yerel ayar ayarlarını doğrulayın (UTF-8 olmalıdır)

Gelişmiş Özelleştirme

Oh My Zsh'nin Ötesine Nasıl Genişletilir

Oh My Zsh mükemmel varsayılanlar sağlarken, kurulumunuzu daha da özelleştirebilirsiniz:

  1. source $ZSH/oh-my-zsh.sh satırından sonra ~/.zshrc içinde kişisel yapılandırmalar ekleyin
  2. Otomatik olarak kaynaklanacak ~/.oh-my-zsh/custom/ içinde özel dosyalar oluşturun
  3. Şablon olarak ~/.oh-my-zsh/custom/example.zsh dosyasını kullanın

Diğer Araçlarla Birleştirme

Oh My Zsh, diğer terminal üretkenlik araçlarıyla iyi çalışır:

  1. Terminal çoklama ve oturum yönetimi için Tmux
  2. Komutları düzenlemek için vi-mode eklentisiyle Neovim/Vim
  3. Bulanık arama için FZF (fzf eklentisi aracılığıyla Oh My Zsh ile entegre edilebilir)
  4. Starship istemi, eklenti sistemini korurken Oh My Zsh temalarının yerini alabilir

Sonuç

Terminal deneyiminizi en üst düzeye çıkarmak için zsh ve Oh My Zsh arasındaki farkı anlamak çok önemlidir. Zsh, bash'in sunduğunun ötesinde gelişmiş özelliklere sahip güçlü bir kabuk olan temeli sağlar; Oh My Zsh ise bu temel üzerine temalar, eklentiler ve yapılandırmalardan oluşan kapsamlı bir çerçeve oluşturur.

Temel sorularımızın cevaplarını özetlemek gerekirse:

İster üretkenliği artırmak isteyen bir geliştirici, ister sunucuları yöneten bir sistem yöneticisi, isterse sadece terminalde zaman geçiren biri olun, zsh ve Oh My Zsh'nin kombinasyonu, iş akışınızı önemli ölçüde iyileştirebilecek güçlü, özelleştirilebilir ve keyifli bir komut satırı deneyimi sunar.

En iyi yaklaşım, temellerle başlamaktır; zsh ve Oh My Zsh'yi yükleyin, birkaç tema ve eklenti deneyin ve belirli ihtiyaçlarınız için en iyi neyin işe yaradığını öğrendikçe yapılandırmanızı kademeli olarak genişletin. Oh My Zsh'nin modüler yapısı, tüm kurulumunuzu bozmadan denemeler yapmayı kolaylaştırır ve terminal ortamınızı becerileriniz ve gereksinimlerinizle birlikte geliştirmenize olanak tanır.

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin