AFAIK

Z Shell ve Oh My Zsh

Güncelleme:
Certbot ile nasıl SSL sertifikası oluşturabileceğimize değindiğim yazıda “komut satırı arayüzüne ve kullanımına aşina iseniz…” şeklinde bir ifadeye yer vermiştim. Özellikle kapsamı önemli olmaksızın, sunucu ...
GÖRSEL

Certbot ile nasıl SSL sertifikası oluşturabileceğimize değindiğim yazıda “komut satırı arayüzüne ve kullanımına aşina iseniz…” şeklinde bir ifadeye yer vermiştim. Özellikle kapsamı önemli olmaksızın, sunucu yapılandırmalarında ve elbette yazılım geliştirme süreçlerinde komut satırı arayüzünün yeri yadsınamaz. Bu sebeple, kullanım aşinalığı kazanmak, pratik araçları edinmek ve elbette özelleştirmeler ile çalışma biçimimize en uygun ortamı yaratmamız gerekir. Standart olarak çoğu terminal ve terminal emulator Bash (Bourne-again shell) komut dili yorumlayıcısını (veya kabuğunu) ön tanımlı olarak kullanmaktadır. Ancak, elbette Bash dışında da çeşitli seçenekler mevcut. Bunlardan biri de Z Shell (Zsh).

Zsh Nedir?

Zsh veya Z Shell, Paul Falstad tarafından Princeton Üniversitesi’nde öğrenciyken geliştirilmiş ve ilk olarak 1990 yılında yayınlanmıştır. Z Shell, Unix-like işletim sistemlerinde (GNU/Linux ve macOS dahil) rahatlıkla kullanılabilmektedir. Bash’e çok benzeyen Z Shell, Bourne kabuğunun genişletilmiş bir sürümü olarak da nitelendirilebilir. Dolayısıyla, Bash’in sahip olduğu özelliklerin çoğunu içermektedir. Ek olarak, Zsh bir diğer alternatif olan KornShell (ksh) ile de benzerlikler taşımaktadır. Zsh tarafından sunulan özellikler ve kullanım detayları için Awesome Zsh sayfasını inceleyebilirsiniz. Ek olarak, A User’s Guide to the Z-Shell, Zsh-Lovers ve Cheatsheet sayfaları üzerinden Z Shell ile ilgili tüm detaylara ulaşabilirsiniz.

Benim özellikle beğendiğim özelliklere kısaca değinmek gerekirse;

  • Autocomplete: cd /u/lo/sh yazıp [TAB] tuşuna basarsanız tanım /usr/local/share olarak güncellenir. TAB tuşu detaylandırma / tamamlama gibi işlemler gerçekleştirmektedir. Tamamlama işlemi sadece kesin ifadeler için değil, yaklaşık ifadeler için de geçerlidir.
  • History: Ctrl + R tuşlarını kullanarak geçmiş komutlarda arama yapabilirsiniz.
  • Globbing: * (asterisk) ile gemiş tanımlamalar yapılabilir. Örneğin, rm *.txt komutu ile text dökümanlarını silmek isteyelim. rm *.txt komutu ardından [TAB] tuşuna bastığımızda komuttan etkilenecek tüm dosyalar bize iletilecektir. Ya da *(.) ile klasörleri hariç tutup sadece dosyaları tanımlayabiliriz. İletilen dosyalar arasında [TAB] tuşu vasıtasıyla gezinmemiz de mümkün. Bir dizin ve alt dizin içeriğini bu şekilde görüntülemek için **/* yazıp [TAB] ile listeleme işlemleri yapabiliriz.
  • Kolaylıkla alias (kısayol) oluşturabiliriz.

Zsh Kurulumu

Kurulum işlemini Homebrew aracılığıyla kolaylıkla gerçekleştirebiliriz.

brew install zsh zsh-completions

Diğer indirme işlemleri için Installing ZSH sayfasını inceleyebilirsiniz. İndirme işleminin tamamlanmasının ardından versiyon kontrolü yapıp kurulumun sorunsuz bir şekilde gerçekleştirildiğinden emin olabilir ve ardından zsh’i varsayılan kabuk olarak tanımlayabiliriz.

zsh --version
chsh -s /bin/zsh

Oh-My-Zsh Nedir?

Oh-My-Zsh, zsh (Z Shell) için geliştirilmiş olan en popüler eklenti framework’üdür ve bünyesinde pek çok yerleşik eklenti ve tema barındırmaktadır. Elbette benzer amaçla geliştirilen Antigen gibi alternatif seçenekler de söz konusudur.

Oh My Zsh sizi 10x developer yapmaz…ama öyle hissettirir.

Oh-My-Zsh Kurulumu

Oh-My-Zsh‘i aşağıdaki basit install script ile hızlıca kurabilir ve kullanmaya başlayabiliriz.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Kurulumun ardından, ihtiyaç duyduğumuz eklenti işlemlerini ~ dizininde bulunan .zshrc dosyası aracılığıyla gerçekleştirebiliriz.

nano ~/.zshrc

Zsh Eklentileri ve Temaları

İlgili eklentilerin listesine Oh-My-Zsh repository üzerinden ulaşmak mümkün. Aşağıda, liste halinde bazı eklentileri listeledim. Eklenti ismini tıklayarak kullanım detaylarına ulaşabilirsiniz.

Unutmadan, bilgisayarda kurulu olan eklenti ve temaları da ayrıca listeleyebilirsiniz.
# themes
cd ~/.oh-my-zsh/themes/
ls -a
# plugins
cd ~/.oh-my-zsh/plugins/
ls -a

nano ile ~/.zshrc dosyası içeriğinde plugins=(...) satırına ulaşabilir ve ihtiyaç duyduğunuz eklentileri bu satırda tanımlayarak yüklenmelerini sağlayabilirsiniz.

plugins=(git bower brew composer common-aliases dirhistory encode64 golang gulp grunt httpie last-working-dir mysql-macports npm node osx ssh-agent sudo thefuck vscode web-search wp-cli yarn)

Yapmanız gereken, ilgili eklemeleri yaptıktan sonra dosyayı kaydetmek ve source ile işleme almak.

source ~/.zshrc

Zsh ön tanımlı olarak robbyrussell teması ile gelmekte. Yine, theme tanımını ~/.zshrc dosya içeriğinde görmek mümkün.

ZSH_THEME="robbyrussell"

Kullanılabilecek temalara ise Themes sayfasından ulaşabilir ve detaylarını inceleyerek size en uygun seçeneği ZSH_THEME değeri olarak belirtebilirsiniz.

Her session için rastgele tema seçilmesini isterseniz aşağıdaki gibi bir tanımlama yapabilirsiniz.

ZSH_THEME_RANDOM_CANDIDATES=(
  "robbyrussell"
  "agnoster"
)

Unutmadan, çoğu tema Powerline Fonts kurulumu gerektirmektedir.

Kaynakça

Ceyhun Enki Aksan

Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.

HABERDAR OL

Yeni eklenen projeler, eğitimler, içerikler ve yayınlanan videolar e-posta adresine gelsin.