Terminal ile takma ad ve fonksiyon kullanımı

Terminal ile takma ad ve fonksiyon kullanımı

Merhaba,

Bu yazımda terminal kullanırken işimizi kolaylaştıracak ve bize zaman kazandıracak kolaylıklar olan alias ve function kullanımından bahsedeceğim. Alias terminalde yazdığımız komutlara kolay ve daha akılda kalıcı kısaltmalar yani takma adlar vermemize yardımcı olur. Fonksiyonlar ise yazdığımız komutlarda parametre kullanmamız gerektiği durumlarda ya da birden fazla komut ile işlem yaptığımızda işimize yarar.

Bu örnekler için benim işime yarayan ve hızlıca sonuç aldığım macOS ortamında hızlıca gizli dosyaları ve klasörüleri gösterip veya gizlememe yaran komutları çalıştırdığım bir fonksiyonu ve git işlemleri için yazdım komutları kısaltmama yarayan takma adları göstereceğim.

Komutlarımızı aktif edebilmek için ilk olarak sistemimizde kullandığımız bash veya zsh için gerekli olan config dosyasını açıp içerisinde tanımlamalarımızı yapmamız gerekiyor. Bu işlem için terminalde aşağıdaki komutu çalıştırıp ilgili config dosyasına erişebilirsiniz. Benim aktif kullandığım zsh olduğu için aşağıdaki komutu kullanıyorum.

code .zshrc

Bu komut sonrasında config dosyamız VSCode ile açılacak ve bizim gerekli düzenlemeleri yapmamız için hazır durumda olacaktır. Açılan config dosyamızın en sonuna aşağıdaki gibi komutlarımızı ekleyebiliriz.

# Functions
showAll() {
  if [ -z "$1" ];
  then
    echo "Function needs an argument true/false to show/hide hidden file(s) and folder(s)"
    echo "I.E: showAll true --> show hidden file(s) and folder(s)"
    echo "I.E: showAll false --> hide hidden file(s) and folder(s)"
  else
    defaults write com.apple.finder AppleShowAllFiles -boolean "$1";killall Finder
    if [ "$1" = true ];
    then
      echo "Hiden file(s) and folder(s) were shown"
    else
      echo "Hiden file(s) and folder(s) were hidden"
    fi  
  fi
}


# Aliases
alias gs='git status'
alias ga.='git add .'
alias gc='git commit'
alias gl='git log'

alias ~='cd ~'
alias .='cd ..'
alias ..='cd ../..'

Bu komutları ekledikten sonra terminalimiz açıksa bir kere kapatmamız gerekiyor ve ilk açılışta config dosyamızdaki komutları tanıyabilmesi için. Terminalimizi yeniden açtığımızda artık config dosyasında tanımladığımız alias ve function bilgilerini rahatlıkla kullanabilir duruma gelmiş oluyoruz. Şimdi sıra geldi bu komutları kullanmaya. Test için hem normal hemde gizli olan bir klasör ve dosya oluşturalım ve burada hem gizli dosyalarını gösterip gizleme işlemini hemde git işlemlerimizi yapalım. Sırasıyla aşağıdaki komutlar ile ortamımızı oluşturalım.

Test isimli bir klasör oluşturalım

mkdir Test

Oluşturduğumuz Test isimli klasör içerisine konumlanalım.

cd Test

Burada git init işlemini yapalım.

git init

Normal isimli bir klasör oluşturalım.

mkdir Normal

normal.txt isimli bir dosya oluşturalım.

touch normal.txt

Hidden isimli bir klasör oluşturalım.

mkdir Hidden

hidden.txt isimli bir dosya oluşturalım.

touch hidden.txt

Hidden klasörümüzü gizli durumuna alalım.

chflags hidden Hidden

hidden.txt dosyamızı gizli durumuna alalım.

chflags hidden hidden.txt

Tüm bu komutlar çalıştıktan sonra terminalimizde aşağıdaki gibi bir görüntü olacaktır.

image.png Daha sonra Finder a oluşturduğumuz Test klasörünü açıp baktığımızda aşağıdaki gibi sadece Normal klasörü ve normal.txt dosyasının olduğunu diğerlerinin görünmediğini görebilirsiniz.

image.png Şimdi geldik artık yazdığımız fonksiyon ve takma adların çalışıp çalışmadığını test etmeye. İlk olarak showAll fonksiyonunu test edelim. Yukarıdaki kodlarda göreceğiniz gibi fonksiyon içerisinde $1 şeklinde kullanılan bir parametre bilgisi var, biz terminalde ilgili fonksiyonu çağırdığımızda parametre olarak true veya false bilgisini vereceğiniz ve kodumuzun içinde $1 ile kullanılan alanda komut bizim için gerekli işlemi yapacak.

showAll true

Komut çalıştırdıktan sonra ekran görüntüsünde belli olduğu gibi artık gizli dosya ve klasörler bizim için görünür duruma geldi ve fonksiyon içinde yazdığımız bilgilendirme mesajıda terminalde komutumuzdan sonra göründü.

image.png Şimdi aynı komutu görünen gizli dosyalarımı saklamak için kullanalım ve sonucuna bakalım.

showAll false

image.png Eğer showAll fonksiyonunu çağırırken parametre kullanmazsak bize yine fonksiyon içinde yazdığımız uyarı mesajını verecektir.

image.png

Fonksiyon kullanımızı anladığımıza göre şimdi git ve ayrıca dizin değiştirmek için hazırladığımız takma ad kullanım örneklerine geçebiliriz. İlk olarak gs komutu ile başlayalım ve bu komut bizim için git status komutunu çalıştırıp sonucunu gösterecektir.

gs

image.png Yaptığımız değişiklikleri commit etmeden önce stage ortamına almak için ga. komutunu kullanalım ve config içinde göreceğiniz gibi bu bize git add . komutunu çalıştıracak ve dosyalarımızı stage ortamına alacak, hemen sonrasında yeniden gs komutu ile değişimi görebiliriz.

image.png Yaptığımız değişiklikler artık commit yapmaya hazır ve şimdide bu işlem için hazırladığımız gc takma adını kullanalım. Ben commit işlemlerinde mesaj kısmı için Vim kullandığımdan git commit -m"Commit mesajı" kullanımı yerine git commit kullanılıyorum ve açılan Vim ekranından commit mesajımı giriyorum. gc takma adını çalıştırdığımızda bizim için git commit komutu çalışacak ve commit mesajı için Vim ekranı açılacak, mesajımızı girdikten sonra Vim ekranından :wq komutları ile çıkış yapıp yeniden terminal ekranımıza döneceğiz.

gc

Komut çalışıp commit mesajımızı girdikten sonra terminal ekranımız aşağıdaki gibi görünüyor.

image.png Git işlemleri için son olarakta yaptığımız commitlerin kayıtlarına bakalım ve bu işlem için hazırladığımız gl takma adını kullanalım.

gl

gl takma ad kullanımı bizim için git log komutunu çalıştırdı ve sonucunu aşağıda görebiliriz.

image.png Tüm bunlara ilave olarak birde konum değiştirmeyi kolaylaştırmak için hazırladığım takma adlara bakalım ve bir örnek yapalım. Yukarıdaki config tanımlarında göreceğiniz gibi . ile bir üst konuma ya da ~ ile kök konuda gidebilirsiniz. Hemen denemesini yapalım ve sonuçlarına bakalım.

image.png Görüldüğü gibi bu şekilde kısa takma ad(Alias) ya da fonksiyon(Function) tanımları ile işlerimizi kolaylaştırıp zaman kazanabiliriz. Benim hazırladığım örnekler haricinde sizde kendi ihtiyaçlarınıza göre gerekli alias veya function tanımlarını yapabilirsiniz.