Kabuk Komut Dosyası Nedir ve Neden Kullanmalısınız?

Kabuk Komut Dosyası Nedir ve Neden Kullanmalısınız?

Kabuk, Linux veya Unix işletim sistemi içinde, sistem tarafından yürütülecek komutları girmenize izin veren bir programdır. Bir linux bilgisayarda bir terminal penceresi açıldığında, komutları girmek için bir arayüz sunan kabuk programını başlatır. Bu arayüz, komut satırı arayüzü olarak bilinir. Bir komut girildiğinde, kabuk tarafından yürütülür ve çıktı ekranda görüntülenir.





Kabuk, komutları etkileşimli olarak kabul edip yürütebilmenin yanı sıra, bir dosyada depolanan komutları da yürütebilir. Bu yürütme modu olarak bilinir kabuk komut dosyası ve bu makalede kabuk komut dosyası oluşturmanın temellerini ele alıyoruz.





1. Kabuğun Tarihi

1970'lerde Unix ile başlayan bir kabuk programı vardı. V6 Kabuk Ken Thomson tarafından geliştirilmiştir. Etkileşimli bir kabuktu ve komut dosyası oluşturma yeteneğinden yoksundu.





Takip etti bourne kabuğu 1977'de ve bugün için varsayılan kabuk olarak kullanımda kalır. kök hesap. Bu kabuk, yıllar boyunca uygulamada son derece yararlı olduğu kanıtlanan komut dosyası yazma yeteneklerini ekledi.

1980'lerde kabuğun daha da geliştirilmesi birçok popüler kabuk çeşidinin ortaya çıkmasına neden oldu, bunların en popülerleri C-Kabuk ve Korn kabuğu . Bu kabukların her biri, bazı durumlarda orijinal kabuktan büyük ölçüde farklı olan kendi sözdizimini getirdi.



Bugün en popüler kabuklardan biri, Bash Kabuk . Bash'in kısaltması Bourne-Yine-Kabuk ve orijinal Bourne Shell'in büyük ölçüde geliştirilmiş bir çeşididir.

yönetici windows 10 tarafından devre dışı bırakılan görev yöneticisi

Bu makalede, aşağıdakiler için kabuk komut dosyası oluşturmayı açıklıyoruz: Bash Kabuğu .





2. Bir Kabuk Komut Dosyasını Yürütme

Bir kabuk betiğini nasıl yürütürsünüz? Basit. Komut dosyası yolunu kabuğa bir argüman olarak iletmeniz yeterlidir:

Örnek bir kabuk betiği:





echo 'hello world'

Aşağıdaki gibi çalıştırın:

$ bash hello.sh
# prints
hello world

Not: Kabuk, satırların LF karakterleriyle sonlandırılmasını gerektirir (Satır Besleme). Kabuk betiğinizi Windows'a yazar ve doğrudan bir Linux sisteminde çalıştırmayı denerseniz, hatalarla karşılaşabilirsiniz. Windows, satır sonlandırma için CR-LF kombinasyonunu (Satır-Dönüş-Satır-Besleme) kullanır. Bunun yalnızca LF'ye dönüştürülmesi gerekir. Bunu yapmanın yolları için Windows düzenleyicinize bakın.

Bir kabuk betiğini doğrudan komut olarak çalıştırmanın başka bir yolu daha vardır. Aşağıdaki satırı ekleyin ( hashbang bildirim) Shell betiğinizin ilk satırı olarak.

telefonumdaki önbelleği nasıl temizlerim
#!/bin/bash

Bu değişiklikle birlikte basit kabuk betiğimiz artık:

#!/bin/bash
echo 'hello world'

Şimdi, komut dosyasını aşağıdaki gibi yürütülebilir hale getirmeniz gerekir:

$ chmod +x hello.sh

Bu noktada, kabuğa açıkça başvurmak zorunda kalmadan komut dosyasını doğrudan çalıştırabilirsiniz.

$ hello.sh
# prints
hello world

Şimdi kabuk betiklerini kullanmanın bazı avantajlarına bakalım.

3. Görev Otomasyonu

Kabuk komut dosyalarını kullanmanın ilk avantajı, sık yürütülen görevleri otomatikleştirmektir. Diyelim ki her gün yapmanız gereken bir göreviniz var. Linux sisteminizde her gün birden çok komut çalıştırmanız gerekiyorsa, bu komutları bir dosyada saklayabilir ve komut dosyasını çalıştırabilirsiniz. Örnekler şunları içerir:

  • Her gün bir dosya veya klasörü arşivleyin ve bir bulut depolama tesisi S3 gibi.
  • Her gün büyümeye meyilli günlük dosyalarını sıkıştırın.
  • Hisse senedi fiyatlarını alın, alınan verileri ayrıştırın ve belirli koşullar karşılandığında (çok yüksek veya çok düşük fiyatlar) bir e-posta veya SMS tetikleyin.

4. Birden Fazla Komutu Birleştirme

Sık yapılan görevleri otomatikleştirmenin yanı sıra, birden çok komut dizisini tek bir komutta birleştirmeyi de avantajlı bulabilirsiniz. Tek bir komutu hatırlamak, birden çok komuttan çok daha basittir, yürütülmeleri gereken sırayla bahsetmeye gerek bile yok.

Bir örnek, Linux İşletim Sisteminin kendisinin başlatma sırası olabilir. Önyüklemenin bir parçası olarak, işletim sistemi, sistemi uygun bir duruma getirmek için bir dizi komut yürütür. Bu komutlar aslında altında yaşayan kabuk komut dosyalarıdır. /vesaire dizin. Bu kabuk komut dosyalarından birine göz atarsanız, kabuk komut dosyalarının yokluğunda elle gerçekleştirmeniz gerekebilecek bir sistemi başlatmanın karmaşıklığını fark edeceksiniz.

Aşağıdaki örnek bir kabuk betiğidir, /etc/profil , bir kullanıcı her oturum açtığında çalıştırılır. Bu komutları elle yazdığınızı hayal edin!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Geliştirmesi Daha Kolay

C/C++ ile yazılmış normal bir program içinde bir kabuk betiğiyle aynı eylemleri gerçekleştirmek mümkündür. Ancak, bir kabuk betiği yazmak ve hatalarını ayıklamak, bir C/C++ programından çok daha kolaydır. Özellikle harici komutların yürütülmesi, dosya ve dizinlerin oluşturulması ve kaldırılması, çıktının yeniden yönlendirilmesi vb. gibi sistem yönetimi görevleri için.

C/C++ programları, sistem çağrılarını çağırma, veri yapılarını değiştirme vb. gibi çok daha düşük düzeyde bir işlem için daha iyidir.

6. Şeffaflık

Bir kabuk betiği, bir metin dosyası olması nedeniyle, hangi eylemleri gerçekleştirdiğini kontrol etmek için kolayca görüntülenebilir. Buna karşılık, C/C++ gibi bir dilde yazılmış (ve yürütülebilir bir dosyaya derlenmiş) bir programın ne yaptığını bilmenin tek yolu, size söylemeyi seçmesi veya kaynak koduna erişiminiz olup olmadığıdır. Örneğin, bir kabuk komut dosyasının herhangi bir dosyayı silip silmediğini kontrol edebilir ve bu dosyalara ihtiyacınız varsa, bunları farklı bir konuma kopyalayabilirsiniz.

Ayrıca, kaynak koduna bakabileceğiniz için, normal programlardan ziyade kabuk betikleriyle ilgili sorunları teşhis etmek çok daha kolaydır. Bir dizin olmadığı için bu komut dosyası başarısız mı? Komut dosyası koduna bakabilir ve dizini oluşturabilirsiniz (yine de iyi niyetli bir kabuk komut dosyası, bu tür hatalardan kaçınmak için onu kontrol etmeli ve oluşturmalıdır).

7. Taşınabilir

İLE kabuk komut dosyası diğer Unix ve Unix benzeri işletim sistemlerine aktarılabilir ve yürütülebilir (kabuğun kendisi varsa). x86, MIPS, Sparc, vb. gibi farklı mimarilerden bir kabuk komut dosyası aktarılırken bile, kabuk komut dosyaları C/C++ programlarından çok daha taşınabilirdir.

Bir C/C++ programının başka bir sisteme aktarılmasının ve kullanılmasının tek yolu, kaynak kodunu kopyalamak, programı oluşturmak ve çalıştırmayı denemektir. O zaman bile, mimariye özgü kod kullanıyorsa beklendiği gibi çalışmayabilir.

Artık kabuk komut dosyalarının ne olduğu ve birçok avantajı hakkında bir fikriniz olduğuna göre, bunları görevleriniz için kullanmak istemez miydiniz? Bunları kullanırken ne gibi sorunlarla karşılaştınız? Lütfen aşağıdaki yorumlarda bize bildirin.

kromun çok fazla ram kullanmamasını nasıl sağlarım
Paylaş Paylaş Cıvıldamak E-posta VirtualBox Linux Makinelerinizi Güçlendirmek için 5 İpucu

Sanal makinelerin sunduğu düşük performanstan bıktınız mı? İşte VirtualBox performansınızı artırmak için yapmanız gerekenler.

Sonrakini Oku
İlgili konular
  • Programlama
  • Linux Bash Kabuğu
Yazar hakkında Jay Sridhar(17 Makale Yayınlandı) Jay Sridhar'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın