Bash nedir?

Biwkan

Decipat
Katılım
20 Eylül 2020
Mesajlar
734
Çözümler
10
Merhaba, bazı programcıların bilgisayarlarında geliştirme ortamlarını oluşturdukları videoları izliyorum ve genelinin yaptığı bir şey var: Bash değiştirmek(?). Bash'in ne olduğunu bu arkadaşların bu değiştirme işlemini yaptıktan sonra neyin değiştiğini merak ediyorum. Kısa bir araştırma sonucu GNU sistemlerde olduğunu öğrendim. Örnek olarak aşağıdaki videoda dakika 15:25'de yaptığı şey.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
MacOS hakkında bir bilgim yok ama hem GNU/Linux'ta hem de MacOS'te Bash, kabuk(shell) olarak geçer. GNU/Linux'ta Bash yerine Fish, ZSH gibi kabukları da kullanabilirsiniz. Değişiklik olarak ise otomatik tamamlama, temalama gibi değişiklikler olabilir.

Bash'in Ubuntu'daki stok görünüşü şu şekilde(Başka dağıtımlarda farklı gözükebilir.):

1602879136999.png

Bash'te yarım bırakılmış komut:

1602879216652.png

Fish'in stok görünümü:

1602879283197.png

Fish'te yarım bırakılmış komut:

1602879305915.png

Fish'te tamamlanmış komut:

1602879357472.png
 
Uçbirime "sudo apt update" komutuyla "depo listesini güncelle" dediğimde hiç bir şey yapmaz, çünkü o komutu sisteme bildirecek aklı başında kimse yoktur.
İşte burada devreye bash girer, komutu gerekli yerlere göndererek işlevin yürütülmesini sağlar.

Bu birinci işlemdi, bir de ikinci işlemi var.
Eğer salt sudo apt update gibi bilinen komutlarla yetinecek olursak gelişim sağlayamayız, mevcut sistemin gelişimi nötr pozisyonda kalır.
O zaman bash ile komut üretmek ve geliştirmek gibi bir durumla karşı karşıyayız.
Örneğin birileri Ubuntu'da eski çekirdeği silmek için alttaki komutu geliştirmiş.
apt-get --purge remove $(dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print $2}' | egrep -v "$i")
Bir başkası da bash ile aynı işlevi yapan bu komutu geliştirmiş.
sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | grep -v "linux-libc"| xargs sudo apt-get -y purge

Anlaşılacağı gibi bash bir yandan komut yürütme işini yaparken bir yandan da sınırsız gelişime müsait bir yazılım.
Kendim yazılım bilmem ama bash ile gayet güzel oynayabiliyor, uyarlama yapabiliyor ve yenilik katabiliyorum. Örneğin kendi dağıtımımda 250'nin üzerindeki aktiviteyi bash ile yaptım ve hiç biri alıntı veya kopya değil, kendi deneme-yanılma metoduyla yaptım ve geliştirmeye devam ediyorum.
 

Geri
Yukarı