macOS zsh Kullanımı ve Özelleştirme
macOS'te varsayılan kabuk (shell) olan zsh (Z Shell), Bash'in üzerine inşa edilmiş ancak çok daha güçlü özellikler, özelleştirme seçenekleri ve kullanıcı dostu kısayollar sunan bir araçtır. 2019'da Catalina sürümüyle birlikte Apple, Bash yerine zsh'i varsayılan hale getirmiştir.
1. .zshrc Dosyası: Terminalin Kalbi
zsh ile ilgili yaptığınız tüm ayarlar, kullanıcı ana dizininizde (~) bulunan .zshrc dosyasında saklanır. Bu dosya gizlidir.
Dosyayı Düzenleme:
nano ~/.zshrckomutuyla dosyayı açabilir ve düzenleyebilirsiniz.Ayarları Uygulama: Dosyada yaptığınız değişikliklerin anında aktif olması için şu komutu çalıştırmalısınız:
source ~/.zshrc
2. Takma Adlar (Aliases) ile Hızlanın
Sık kullandığınız uzun komutları tek bir kelimeye indirebilirsiniz. Bu, özellikle geliştirme süreçlerinde büyük zaman kazandırır.
.zshrc dosyanıza ekleyebileceğiniz örnekler:
alias c='clear'
alias masaustu='cd ~/Desktop'
alias goster='ls -la'
alias update='brew update && brew upgrade'
Artık terminale sadece c yazarak ekranı temizleyebilir veya update yazarak Homebrew paketlerinizi güncelleyebilirsiniz.
3. Oh My Zsh: En Popüler Framework
zsh'i tek başına kullanmak yerine, onu Oh My Zsh ile güçlendirmek neredeyse bir standarttır. Binlerce tema ve eklenti desteği sunar.
Kurulum Komutu:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Mutlaka Edinmeniz Gereken 2 Eklenti:
zsh-autosuggestions: Daha önce yazdığınız komutlara bakarak size öneriler sunar (Gri renkte görünür, sağ ok tuşuyla tamamlanır).
zsh-syntax-highlighting: Yazdığınız komut doğruysa yeşil, hatalıysa kırmızı yanarak sizi uyarır.
Tema Değiştirme
ZSH_THEME="agnoster"
Popüler Eklentiler
plugins=(git sudo docker)4. Temel Navigasyon ve İpuçları
zsh, klasik Bash'e göre çok daha akıllı bir dizin tamamlama sistemine sahiptir.
| Özellik | Açıklama |
| Gelişmiş Tab Tamamlama | Bir komut yazarken TAB tuşuna iki kez basarsanız, ok tuşlarıyla seçebileceğiniz bir menü açılır. |
| Otomatik cd | Klasör adını yazmanız yeterlidir; başına cd koymasanız bile o dizine girer (Eğer seçenek aktifse). |
| Kısaltılmış Yollar | cd /u/l/b yazıp TABa basarsanız zsh bunu /usr/local/bin olarak otomatik tamamlar. |
| Geri Dönüş | .. yerine bazen sadece ... veya .... kullanarak birkaç üst dizine çıkacak şekilde yapılandırılabilir. |
5. Terminal Kısayolları (Hız Kesmeyin)
Terminalde metin düzenlemek için mouse kullanmak yerine bu klavye kısayollarına alışmak işinizi çok kolaylaştıracaktır:
Ctrl + A: Satırın en başına gider.
Ctrl + E: Satırın en sonuna gider.
Ctrl + K: İmleçten sonrasını siler.
Ctrl + U: Tüm satırı siler.
Ctrl + R: Komut geçmişinde arama yapar (Çok hayat kurtarıcıdır).
6. Prompt (İmleç) Özelleştirme
Terminalin başında duran user@macbook % ifadesini değiştirebilirsiniz. .zshrc dosyanıza şu satırı ekleyerek başlayabilirsiniz:
PROMPT='%n @ %m: %~ %# '
%n: Kullanıcı adı%m: Makine adı%~: Bulunulan dizin%#→ root / normal kullanıcı
zsh dünyası oldukça geniştir ve kullandıkça kendi iş akışınıza göre özelleştirebilirsiniz. Özellikle Flutter ve Python gibi araçlarla çalışırken terminal hakimiyeti size ciddi bir çeviklik kazandıracaktır.
🍎 macOS Zsh (Z Shell)
1️⃣ Zsh Nedir?
Zsh (Z Shell), Bourne Shell (sh) ve Bash uyumlu, gelişmiş özelliklere sahip bir komut satırı kabuğudur.
📌 macOS Catalina (10.15) ve sonrası sürümlerde varsayılan shell olarak gelir.
Zsh’nin Öne Çıkan Özellikleri
Akıllı otomatik tamamlama
Yazım hatası düzeltme
Gelişmiş globbing
Tema ve eklenti desteği
Bash uyumluluğu
2️⃣ macOS’ta Zsh Durumu
Terminal’i aç ve kontrol et:
echo $SHELL
Beklenen çıktı:
/bin/zsh
Zsh sürümünü öğrenmek için:
zsh --version
3️⃣ Zsh Yapılandırma Dosyaları
macOS’ta Zsh yapılandırması kullanıcı bazlıdır.
| Dosya | Görev |
|---|---|
~/.zshrc | Ana yapılandırma dosyası |
~/.zprofile | Oturum başlangıcı |
~/.zshenv | Her zsh çağrısında çalışır |
~/.zlogin | Login sonrası |
~/.zlogout | Oturum kapanışı |
📌 En sık kullanılan: ~/.zshrc
4️⃣ Temel Zsh Komutları
| Komut | Açıklama |
|---|---|
pwd | Bulunulan dizin |
ls | Dosyaları listele |
cd | Dizin değiştir |
mkdir | Dizin oluştur |
rm | Dosya sil |
cp | Kopyala |
mv | Taşı / yeniden adlandır |
Örnek:
mkdir projeler
cd projeler
touch deneme.txt
ls -l
5️⃣ Zsh Otomatik Tamamlama ve Düzeltme
Zsh, yazım hatalarını otomatik fark eder:
cd /usr/locl
Öneri sunar:
zsh: correct 'locl' to 'local' [y,n,a,e]?
6️⃣ Alias (Kısayol Komutlar)
Alias Tanımlama
alias ll="ls -alF"
alias cls="clear"
Kalıcı yapmak için:
nano ~/.zshrc
Dosyaya ekle:
alias gs="git status"
Yeniden yükle:
source ~/.zshrc
8️⃣ Zsh Değişkenler
isim="Nuri"
echo $isim
Ortam değişkeni:
export PATH="$PATH:/opt/homebrew/bin"
9️⃣ Globbing (Gelişmiş Dosya Seçme)
| Örnek | Açıklama |
|---|---|
*.txt | Tüm txt dosyaları |
**/*.py | Alt dizinler dahil |
file(.oL) | Büyük harfli dosyalar |
^*.log | log hariç |
📌 Zsh globbing, Bash’ten çok daha güçlüdür.
🔟 Zsh Script Yazımı
Basit Script
#!/bin/zsh
echo "Merhaba Zsh"
Çalıştırılabilir yap:
chmod +x script.sh
./script.sh
1️⃣1️⃣ Bash vs Zsh (macOS Özel)
| Özellik | Bash | Zsh |
|---|---|---|
| Varsayılan | ❌ | ✅ |
| Tamamlama | Orta | Çok güçlü |
| Tema/Eklenti | Az | Geniş |
| Öğrenme | Kolay | Orta |
1️⃣3️⃣ macOS Güvenlik Açısından Zsh
SIP →
/bin/zshkorunurKullanıcı alias’ları root yetkisi vermez
Script’ler için
chmodzorunlusudoyetki sınırı belirler
📌 macOS, Linux’a göre daha kapalı ve kontrollüdür
📌 Sonuç
Zsh, macOS’ta:
Güçlü
Güvenli
Özelleştirilebilir
Eğitim ve profesyonel kullanım için ideal
➡️ Linux terminal bilgisi olanlar için geçiş çok kolaydır.
Kısa cevap: Evet, aynı Zsh ama birebir aynı deneyim değil.
Uzun ve net açıklamayı aşağıda maddeler hâlinde veriyorum 👇
macOS Zsh 🆚 Linux Zsh
Aynı mı, Farklı mı?
✅ Temel Gerçek
Zsh, macOS’ta da Linux’ta da aynı kabuktur (shell).
Aynı proje, aynı dil, aynı sözdizimi.
Yani:
Komutlar
Script dili
Alias, fonksiyonlar
Globbing
Zsh scriptleri
👉 %95 oranında aynıdır
🔧 Ama fark nereden geliyor?
Fark Zsh’den değil, işletim sisteminden kaynaklanır.
1️⃣ Zsh Sürümü
| Sistem | Zsh Sürümü |
|---|---|
| macOS | Genelde biraz eski ama stabil |
| Linux | Çoğu dağıtımda daha güncel |
📌 macOS güncellemeleri yavaş verir
📌 Linux dağıtımı paket yöneticisiyle güncel tutar
2️⃣ Varsayılan Ayarlar
macOS Zsh
Apple tarafından ön yapılandırılmış
Bazı
setoptseçenekleri açık gelirKullanıcı dostu davranır
Linux Zsh
Daha çıplak / sade
Davranışlar dağıtıma göre değişir
3️⃣ PATH ve Komutların Kaynağı
| Nokta | macOS | Linux |
|---|---|---|
/bin | Apple tarafından korumalı | Normal dizin |
| GNU araçlar | ❌ (BSD versiyon) | ✅ |
ls, sed, awk | BSD | GNU |
📌 Aynı Zsh → farklı sistem komutları
Örnek:
ls --color
Linux: ✅ çalışır
macOS: ❌ hata verir
4️⃣ Konfigürasyon Dosyaları
| Dosya | macOS Zsh | Linux Zsh |
|---|---|---|
~/.zshrc | ✅ | ✅ |
~/.zprofile | ✅ | ✅ |
/etc/zshrc | Genelde var | Dağıtıma bağlı |
📌 Dosya isimleri aynı, içerik farkı olabilir
5️⃣ Güvenlik Katmanı
macOS
SIP (System Integrity Protection)
Sandbox
Root bile sınırlı
Linux
SELinux / AppArmor (opsiyonel)
Root tam yetkili
📌 Zsh aynı, yetkiler farklı
6️⃣ Script Uyumluluğu
#!/bin/zsh
✔ macOS’ta çalışır
✔ Linux’ta çalışır
Ama script içinde:
sed -i
Linux: ✅
macOS: ❌ (
-i ''ister)
📌 Sorun Zsh değil, GNU vs BSD araç farkı
7️⃣ Oh My Zsh ve Eklentiler
| Konu | macOS | Linux |
|---|---|---|
| Oh My Zsh | Aynı | Aynı |
| Tema | Aynı | Aynı |
| Plugin | Aynı | Aynı |
👉 En taşınabilir kısım burasıdır
8️⃣ Günlük Kullanım Hissi
| Kriter | macOS Zsh | Linux Zsh |
|---|---|---|
| Kullanıcı dostu | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Sunucu uyumu | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| Masaüstü | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
🧠 Net Sonuç (Altı Çizili)
Zsh aynıdır.
Fark, altında çalışan işletim sistemidir.
🎯 Şu cümle doğru kabul edilir:
“Zsh biliyorum” diyen biri, macOS ve Linux’ta da Zsh kullanabilir.
🎯 Ama şu da doğrudur:
“Script’im Linux’ta çalışıyor ama macOS’ta bozuldu”
➡️ Sebep Zsh değil, sistem araçlarıdır
📌 Pratik Tavsiye
Taşınabilirlik istiyorsan:
#!/usr/bin/env zsh
GNU araçlarına ihtiyaç varsa macOS’ta:
brew install coreutils gnu-sed gawk
Yorumlar