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 ~/.zshrc komutuyla 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:

Bash
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:

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

Mutlaka Edinmeniz Gereken 2 Eklenti:

  1. zsh-autosuggestions: Daha önce yazdığınız komutlara bakarak size öneriler sunar (Gri renkte görünür, sağ ok tuşuyla tamamlanır).

  2. 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.

ÖzellikAçıklama
Gelişmiş Tab TamamlamaBir komut yazarken TAB tuşuna iki kez basarsanız, ok tuşlarıyla seçebileceğiniz bir menü açılır.
Otomatik cdKlasör adını yazmanız yeterlidir; başına cd koymasanız bile o dizine girer (Eğer seçenek aktifse).
Kısaltılmış Yollarcd /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.

DosyaGörev
~/.zshrcAna yapılandırma dosyası
~/.zprofileOturum başlangıcı
~/.zshenvHer zsh çağrısında çalışır
~/.zloginLogin sonrası
~/.zlogoutOturum kapanışı

📌 En sık kullanılan: ~/.zshrc


4️⃣ Temel Zsh Komutları

KomutAçıklama
pwdBulunulan dizin
lsDosyaları listele
cdDizin değiştir
mkdirDizin oluştur
rmDosya sil
cpKopyala
mvTaşı / 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)

ÖrnekAçıklama
*.txtTüm txt dosyaları
**/*.pyAlt dizinler dahil
file(.oL)Büyük harfli dosyalar
^*.loglog 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)

ÖzellikBashZsh
Varsayılan
TamamlamaOrtaÇok güçlü
Tema/EklentiAzGeniş
ÖğrenmeKolayOrta



1️⃣3️⃣ macOS Güvenlik Açısından Zsh

  • SIP/bin/zsh korunur

  • Kullanıcı alias’ları root yetkisi vermez

  • Script’ler için chmod zorunlu

  • sudo yetki 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ü

SistemZsh Sürümü
macOSGenelde 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ı setopt seçenekleri açık gelir

  • Kullanı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ğı

NoktamacOSLinux
/binApple tarafından korumalıNormal dizin
GNU araçlar❌ (BSD versiyon)
ls, sed, awkBSDGNU

📌 Aynı Zsh → farklı sistem komutları

Örnek:

ls --color
  • Linux: ✅ çalışır

  • macOS: ❌ hata verir


4️⃣ Konfigürasyon Dosyaları

DosyamacOS ZshLinux Zsh
~/.zshrc
~/.zprofile
/etc/zshrcGenelde varDağı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

KonumacOSLinux
Oh My ZshAynıAynı
TemaAynıAynı
PluginAynıAynı

👉 En taşınabilir kısım burasıdır


8️⃣ Günlük Kullanım Hissi

KritermacOS ZshLinux 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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Başlangıç Onarma