İsminin manası Türkçe'de balık olan bir kabuk kuralım

İsminin manası Türkçe'de balık olan bir kabuk kuralım

Giriş

Linux sistemlerin en güçlü taraflarından bir tanesi kullandığı kabuktur.

Komutları yazdığımız siyah beyaz ekranın arka planında çalışan yazılıma kabuk ismi veriliyor.

Archlinux ile Manjaro'nun kabuğunu Zsh kullanıyorduk.

Geçenlerde sistemi tekrar kurduk.

Ama Zsh kabuğunun ayarlanması o kadar kolay değil.

Bunun yerine kendiliğinden otomatik tamamlama, renklendirme gibi özelliklere sahip bir kabuk olan fish isimli kabuğu kuracağız.

Balık isimli kabuğun kurulumu

Hangi kabuğun kurulu olduğuna bakmak için :

chsh -ls

komutu verebilirsiniz.

sudo pacman -S fish

ile balık isimli kabuğu kurabilirsiniz.

Eğer balık isimli kabuğu varsayılan kabuk yapmak isterseniz

chsh -s /usr/bin/fish

komutunu veriniz ve bilgisayarı tekrar başlatınız.

Kabuk kendiliğinden açılsın

Kabuğun kendiliğinden başlaması için ~/.bashrc kütüğüne aşağıdaki bilgileri giriniz.

if [[ $- = *i* ]]; then
   exec fish
fi

Kabuk kullanımı

Kullanımı oldukça kolay, alt ve üst ok tuşları daha önce girilen komutları gösteriyor.

Yazmaya başladığınızda kendisi otomatik tamamlama önerilerini gösteriyor.

Tab tuşuna basarak seçeneklerden istediğinizi seçebilirsiniz.

Kabuk selam versin

Açılışta kabuğun selam vermesi için ayar kütüğüne ekleme yapabiliriz.

echo set fish_greeting 'Selamun Âleykûm' >> ~/.config/fish/config.fish

Komut satırının ise bulunduğumuz dizini göstermesi için gene ev dizininde .config/fish/functions/fish_prompt.fish isimli bir kütük oluşturunuz.

İçine aşağıdakileri giriniz.

function fish_prompt
 echo (pwd) '> '
end

Kabuğu tekrar başlattığınızda, komut satırında içinde bulunduğumuz dizinin gösterildiğini görebilirsiniz.

Takma isimler

Önceki derste bash ve zsh için takma isim kullanımından bahsetmiştik.

Bu kabuğun işlev ve takma isim yazım şekli biraz farklıdır.

Tüm takma isimleri ev dizininizde bulunan ~/.config/fish/config.fish kütüğüne yazıyorsunuz.

Aşağıda bazılarını paylaşıyoruz.

set fish_greeting Selamun Âleykûm

alias açıkmı='ping -c 1 192.168.0.10 &> /dev/null && echo açık || echo kapalı'

function kabuk
    echo $SHELL
end

function tara
    nmap -sn 192.168.0.0/24
end

function uçur
    sudo killall -9 $argv[1]
end

function tazele
    sudo pacman -Syy
end

function güncelle
    sudo pacman -Syu
end

function kur
    sudo pacman -S $argv[1]
end

function kaldır
    sudo pacman -R $argv[1]
end

function ara
   sudo pacman -Ss $argv[1]
end

function yenidenbaşlat
    sudo reboot
end

function kapat
    sudo shutdown -h now
end

Değişken tanımlarken set anahtar kelimesi kullanılıyor.

tara işlevi yerel ağı tarayarak açık cihazların IP adreslerini getiriyor.

uçur isimli işlevi yanıt vermeyen bir uygulamayı sonlandırmak için kullanıyoruz.

açıkmı işlevi ise ağ üzerinde bulunan bir bilgisayar ya da cihazın açık olup olmadığını gösteriyor.

Bir işleve geçilen parametreler $argv[1] özel yazım biçimi kullanılıyor.

Örneğin ara işlevini kullanırken ara emacs yazarsak ilk parametre emacs oluyor.

İşleve birden fazla parametre gönderilirse bu numara artabilir.

Bunun dışında Beaglebone dersinde bahsettiğimiz güvenli kabuk, SSH kullanımı ile ilgili takma isim ve işlevler var.

Ancak bunu ayrı bir konu olarak ele almak yerinde olacaktır.

Kabuk geçmişini silmek

Aşağıdaki gibi geçmişisil.fish isminde bir kütük oluşturalım.

 nano ~/.config/fish/functions/geçmişisil.fish

İçerisine şu bilgileri girelim.

function geçmişisil
   history clear
   bash
   history -c && history -w;
end

Artık fish kabuğunu çalıştırdığınızda geçmişisil yazarak kabuk geçmişini silebilirsiniz.

İşlev kullanımı

İşlevleri ~/.config/fish/functions dizininde oluşturuyoruz.

Bu kütükler uzantı olarak fish alıyor.

Örneğin oldukça ayrıntılı bir derleme için bir işlev yazabiliriz.

Kütüğü derle.fish olarak kaydedebilirsiniz.

function derle
   set kutuk (string join '' $argv[1] .c)
   gcc $kutuk -o $argv[1] (pkg-config --cflags --libs gstreamer-1.0 | string split -n " ")
end

Şeffaf rize çayı uygulamasının süresini ayarlayan bir işlev yazabiliriz.

Kütüğü süre.fish olarak kaydediniz.

function süre
    set uzunluk (string length $argv[1])
    if [ $uzunluk -eq 2 ]
        set sonuc 00:"$argv[1]":00
    else if [ $uzunluk -eq 1 ]
        set sonuc 00:0"$argv[1]":00
    end
    echo $sonuc > ~/.rize/süre.txt
end

Yorumlar

yorum yaz

Yorum yaz

Henüz yorum yok.