Linux'ta alias ve fonksiyon tanımlama
Bildiğiniz gibi Linux’ta onlarca komut bulunmakta ve kimi zaman kullanılan işletim sistemine göre komutlar değişmekte.
Örneğin CentOs’ta bir programı yum install şeklinde kurarken Ubuntu’da apt-get install komutunu kullanıyorsunuz veya zaman zaman komutların syntax’ını unutabiliyor, yazdığınız uzun betikleri hatırlayamayabiliyorsunuz.
Bu durum için Linux sizi hafızanızla başbaşa bırakmıyor.
Alias yapısı altında yazdığınız uzun betikleri veya kısa komutlara bir kestirme oluşturmanızı sağlıyor.
Nasıl yani diyecek olursanız;
Örneğin hard diskinizin doluluk oranını öğrenmek istiyorsunuz. Bunu normalde
df -h
komutu yardımıyla yapabiliyorsunuz ama sürekli unutuyorsanız terminalde;
alias doluluk='df -h'
yazarak bir alias tanımlayıp, bundan sonra doluluk komutuyla harddiskin doluluğunu öğrenebilirsiniz.
İşletim sisteminin sürümünü öğrenmek istiyorsunuz normalde yazmanız gereken komut;
cat /etc/issue
Bunun yerine surum komutu ile direk sürümü öğrenmek daha kolay olmaz mı ?
alias surum='cat /etc/issue'
diye tanım yapmanız yeterli, artık terminale surum yazmanız yeterli.
Peki tanımlı olan bir alias’ı silmek istersem ?
Yapmanız gereken tek işlem terminalde;
unalias aliasİsmi
komutunu çalıştırmak.
surum aliasını kaldırmak mı istiyorsunuz ? Terminalde;
unalias surum
komutunu çalıştırmanız yeterli.
İşleri isterseniz biraz daha kızıştıralım.
Şöyle ki;
Normalde aliasın sonuna komutun devamını yazıp çalıştırabiliyorsunuz. Yani rm -rf komutuna sil diye bir alias tanımladınız. sil /home/root/temp diyerek temelde rm -rf /home/root/temp komutunun çalışmasını sağlayabiliyorsunuz ama araya parametre gerekirse işlerin rengi biraz değişiyor.
Örneğin bildiğiniz gibi Iptables’tan sunucunuza herhangi bir IP adresinin erişimini engellemek için kullanmanız gereken komut;
iptables -A INPUT -s IpAdresi -j DROP
Bu betiği her zaman hatırlayamayabilirsiniz. Bu durumda buna banla diye bir alias oluşturup, terminalde direk banla diyerek sonuna IP adresini yazıp banlamak isteyebilirsiniz. Bu durumda fonksiyon yazmalısınız.
Fonksiyonu ise komut satırına;
function banla() { iptables -A INPUT -s $1 -j DROP ;}
yazarak kolaylıkla ekleyebilirsiniz.
$1 birinci parametre anlamını taşımaktadır, birden fazla parametreli bir fonksiyon yazabileceğiniz gibi fonksiyonun içinde değişkenler de kullanabilirsiniz.
Artık banla IP adresi diyerek bir IP’yi çok kısa bir sürede engelleyebilirsiniz.
Peki yazdığınız bir fonksiyonu nasıl sileceksiniz ?
unset banla
Komutunu çalıştırdığınız anda tanımlamış olduğunuz fonksiyon sunucunuzdan temelli uzaklaşmış olacaktır.
Takıldığınız bir soru olması durumunda yorumlardan sorarasanız yardımcı olmaya çalışırım.