Mac'te Terminal Nasıl Renklendirilir? Zsh ile Prompt ve Dosya Renklerini Özelleştirme Rehberi
macOS Terminal uygulamasını daha okunabilir ve kişisel bir görünüme kavuşturmak için Zsh yapılandırmasını kullanabilirsiniz.
Unix kabuğu (shell), siz ile macOS işletim sisteminin XNU ("X is Not Unix") isimli çekirdeği yani kernel olarak bilinen temel bileşeni arasında bir arayüz görevi gören bir komut satırı programıdır.
Zsh (Z Shell), Unix ve Unix benzeri işletim sistemlerinde kullanılan, gelişmiş özelliklere ve genişletilebilirliğe sahip bir komut yorumlayıcısıdır. Bash gibi diğer sh (shell/kabuk) tiplerine göre daha gelişmiş fonksiyonlara sahiptir ve 2019 yılından beri macOS'un varsayılan shell uygulamasıdır.
Maalesef yapılandırılmamış olarak geldiği için renkler mevcut değildir. Kullanıcı adını, bilgisayar adını, çalışma dizinini ve dosya listesindeki renkleri birbirinden bağımsız şekilde özelleştirmek mümkündür.
1. İhtiyacımız Olan Uygulamalar
Birçok uygulamayı daha rahat şekilde yüklemenizi sağlayan Homebrew yüklü değilse, tek komutla yükleyebilirsiniz:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Sonrasında şu komutlarla gerekli olabilecek (isteğe bağlı) uygulamaları yükleyin.
brew trust epk/epk brew install --cask epk/epk/font-sf-mono-nerd-font sublime-text brew install lsd fastfetch
2. Terminalde Dosya Renklerini Etkinleştirme
macOS'te ls komutunun renkli çıktı vermesini sağlamak için ~/.zshrc dosyanıza aşağıdaki satırları ekleyebilirsiniz:
export CLICOLOR=1
export LSCOLORS=ExGxFxdxCxDxDxxbaDecacCLICOLOR=1:lskomutunda renkli çıktıyı etkinleştirir.LSCOLORS: Dosya türlerinin ve dosya özelliklerinin hangi renklerle gösterileceğini belirler.
LSCOLORS değişkeni, dosya türleri için arka plan ve yazı rengi kombinasyonlarını tanımlar. Her iki karakterlik grup, ilgili kategori için bir renk kombinasyonunu temsil eder. Örneğin, ExGxFxdxCxDxDxxbaDecac farklı dosya türleri için renk atamaları içerir.
Ama benim önerim bunun yerine "lsd" isimli uygulamadır. Bu proje, renkler, simgeler, ağaç görünümü, daha fazla biçimlendirme seçeneği vb. gibi pek çok ek özelliğe sahip, GNU ls komutunun yeniden yazılmış bir sürümüdür. lsd'yi ls yerine kullanmak için gerekli tek şey alias ls=lsd bilgisini terminal her açıldığı zaman çalıştırılan .zshrc dosyasına Sublime Text (veya herhangi bir text editor) ile yüklemektir.
Dosya/Klasör ikonları için şu adımları izleyin:
Sonrasında ikonlara sahip ve renkli çıktı verebilen bir terminale sahip olacaksınız.
2. Terminal Prompt Renklerini Değiştirme
Terminalde komut yazdığınız satıra prompt denir. Kullanıcı adı, bilgisayar adı ve mevcut dizin bu satırda gösterilebilir.
Zsh'de %F{renk} ifadesi metnin rengini belirler; %f ise varsayılan renge dönüş yapar.
Örneğin:
PROMPT='%F{red}%n@%m%f %F{blue}%~%f %# 'Bu yapılandırmada:
%n: Kullanıcı adı%m: Bilgisayar adı%~: Mevcut dizin#: Kök erişim izinli root kullanıcı%:Kök erişim izni olmayan kullanıcı%F{red}ve%F{blue}: İlgili metinlerin renkleri%f: Renk biçimlendirmesini sonlandırır
Böylece kullanıcı adı ve bilgisayar adı kırmızı, çalışma dizini (path) ise mavi görünür.
3. ANSI Renk Kodlarıyla Daha Fazla Seçenek
Zsh, standart renk isimlerinin yanı sıra 0–255 arasındaki renk kodlarını da destekler. Bu sayede pembe, turuncu, mor ve turkuaz gibi daha fazla renk seçeneği kullanılabilir.
Örneğin:
PROMPT='%F{205}%n@%m%f:%F{blue}%~%f %# 'Burada 205 pembe tonlarından birini temsil eder. Benzer şekilde aşağıdaki renk kodlarını deneyebilirsiniz:
| Renk | Kod |
|---|---|
| Turuncu | 208 |
| Altın sarısı | 220 |
| Mor | 141 |
| Pembe | 205 |
| Aqua | 45 |
| Gökyüzü mavisi | 39 |
| Turkuaz | 44 |
| Lime | 118 |
| Mercan | 209 |
| Lavanta | 183 |
Terminal temasına ve renk paletine bağlı olarak aynı kod farklı görünebilir.
3. Prompt Renklerini Değişkenlerle Yönetme
Her renk değişikliğinde uzun bir PROMPT satırını düzenlemek yerine renkleri değişkenlerde tanımlayabilirsiniz.
Örneğin, kendi .zshrc dosyamdaki yapılandırma şu şekildedir:
# ile başlayan yorumlara izin ver
setopt interactivecomments
# Takma ad ekle
alias ls=lsd
# Terminal prompt renklendirme
PROMPT_USER_COLOR=205 # pembe
PROMPT_PATH_COLOR=blue
PROMPT="%F{$PROMPT_USER_COLOR}%n@%m%f:%F{$PROMPT_PATH_COLOR}%~%f %# "Siz de .zshrc dosyasına bu komutları eklemek isterseniz terminalde şunu çalıştırın.
subl .zshrc
Bu yapılandırmada kullanıcı adı ve bilgisayar adı pembe, mevcut dizin ise mavi görünür.
Değişken kullanmanın avantajı, renkleri tek bir noktadan yönetebilmenizdir. Örneğin kullanıcı adını turuncu yapmak için yalnızca PROMPT_USER_COLOR=208 yapmanız yeterlidir.
Bonus: Zsh Eklentileriyle Syntax Highlighting ve Otomatik Yükleme
Bonus: Zsh Eklentileriyle Syntax Highlighting ve Otomatik Yükleme
Terminalin renklerini özelleştirmenin bir başka yolu da Zsh eklentileri kullanmaktır. Örneğin, fast-syntax-highlighting yazdığınız komutları renklendirerek komutun geçerli olup olmadığını ve farklı bileşenlerini daha kolay ayırt etmenizi sağlar.
1. Eklenti ve completions dizinlerini oluşturma
Öncelikle Zsh yapılandırma dosyalarınızı ve eklentilerinizi düzenli tutmak için gerekli dizinleri oluşturabilirsiniz:
mkdir -p ~/.zsh/completions && mkdir -p ~/.zsh/plugins~/.zsh/completions: Özel komut tamamlama tanımlarını saklamak için kullanılır.~/.zsh/plugins: Üçüncü taraf Zsh eklentilerini saklamak için kullanılır.mkdir -p: Dizinin kendisi veya üst dizinleri yoksa oluşturur; mevcut dizinler için hata vermez.
2. fast-syntax-highlighting kurulumu
fast-syntax-highlighting, terminalde yazdığınız komutların farklı bölümlerini renklendirir. Böylece komutları çalıştırmadan önce yazım hatalarını veya geçersiz ifadeleri fark etmek kolaylaşabilir.
Eklentiyi GitHub üzerinden klonlamak için:
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting ~/.zsh/plugins/fast-syntax-highlightingBu komut eklentinin kaynak kodunu belirttiğiniz dizine indirir. Komutun çalışması için Git'in kurulu olması ve internet bağlantınızın bulunması gerekir.
3. Prompt renkleri ile syntax highlighting arasındaki fark
Prompt renkleri ile syntax highlighting aynı şey değildir:
Prompt renklendirme: Kullanıcı adı, bilgisayar adı ve çalışma dizini gibi bilgilerin rengini belirler.
Dosya renklendirme:
CLICOLORveLSCOLORSgibi değişkenlerlelsçıktısındaki dosya ve dizinlerin görünümünü değiştirir.Syntax highlighting: Komut satırına yazdığınız komutları, argümanları ve diğer ifadeleri renklendirir. Örneğin ls komutunun kendisi, git gibi komutlar.
Bu özellikleri birlikte kullanarak hem daha okunabilir hem de hataları daha kolay fark edebileceğiniz bir terminal ortamı oluşturabilirsiniz. Aşağıda gördüğünüz gibi bulunmayan komutlar kırmızı renk gösterirken, bulunan komutlarsa yeşil rengi gösteriyor.

4. Eklentileri otomatik yükleme
İleride farklı eklenti ekleme ihtimaline karşı eklentileri .zshrc dosyasına ayrı ayrı eklemek yerine, uygun eklenti dosyalarını otomatik yükleyebilirsiniz: Aşağıdaki bilgileri .zshrc dosyasının sonuna ekleyin.
##### Third-party plugins #####
# Load all third-party Zsh plugins automatically
# e.g. fzf-tab interactive auto-completion menu, syntax highlighting..
for plugin in $ZSH_CONFIG_DIR/plugins/*/*.plugin.zsh(N); do
source "$plugin"
doneBu döngünün çalışma mantığı belirtilen dizinde bulunan bütün .zsh uzantılı dosyaları terminal açıldığı zaman yüklemektir.
5. Değişiklikleri Uygulama
~/.zshrc dosyasını düzenledikten sonra Terminal'i kapatıp açmanız gerekmez. Aşağıdaki komutla yapılandırmayı yeniden yükleyebilirsiniz:
source ~/.zshrcAlternatif olarak, değişikliklerinizi denemek için doğrudan terminalde yeni bir PROMPT tanımlayabilirsiniz. Bu şekilde kalıcı yapılandırmanızı değiştirmeden farklı renk kombinasyonlarını test edebilirsiniz.
Örnek olması açısından:
Sonuç
macOS Terminal'i renklendirmek aslında sanıldığı kadar karmaşık değildir. Zsh'nin ve Brew'in özellikleriyle komut satırının görünümünü özelleştirebilirsiniz. Renkleri üzerinden yönetmek, farklı temaları denemeyi ve yapılandırmayı daha kolay hale getirir. Eğer macOS'u veya terminali daha fazla yapılandırma hakkında bilgilenmek istiyorsanız https://sglbl.notion.site/mac adresinde bulunan komut ve bilgilendirmeleri inceleyebilirsiniz.




