Shell, Bash ve Scripts: Shell Scripting hakkında her şey.

Bu yeni fırsatta (Giriş # 8) üzerinde "Kabuk Komut Dosyası Oluşturmayı Öğrenin" Uygulamadan çok teoriye odaklanacağız. yani, bir kod yüklemeyeceğiz veya üzerinde çalışmayacağız veya belirli bir yazılımı (paketi) kurmayacağız, ancak dünyanın ne olduğunu araştıracağız. Kabuk Betiği Doğru bir şekilde, programlanmış dahili koda doğrudan atıfta bulunmayan, öğretilenlerin çoğunu açıklığa kavuşturmak için aşağıda gösterilen küçük ama doğrudan soruların cevapları yoluyla:

Kabuk Betiği

Bir GNU / Linux İşletim Sistemindeki Kabuk nedir?

İspanyolca'da CONCHA (kabuk, kapak, koruma) anlamına gelen kabuk. İşletim Sistemlerinde uygulanan bu terim, İşletim Sisteminin komut yorumlayıcısını ifade eder. Genel olarak, bir Terminal (Konsol) şeklinde tezahür eden ve esasen 3 önemli çalışma alanı için kullanılan yüksek performanslı bir metin arayüzüdür:

1. - İşletim Sistemini Yönetin,
2.- Uygulamaları çalıştırın ve onlarla etkileşim kurun ve
3.- Temel bir programlama ortamı olarak hizmet edin.

Birçok SO, GNU / Linux konfigürasyon dosyalarını Terminal aracılığıyla düzenleyerek hala daha verimli bir şekilde yönetiliyorlar. Genel bir kural olarak, bunlar hedef yolda bulunur: «/vb"ve her uygulama için belirli dizinler içinde. Örneğin, program Lilo (Linux Yükleyici anlamına gelir), bulunan ve adı verilen metin dosyası düzenlenerek yapılandırılır. "/Etc/lilo/lilo.conf". Programlar (uygulamalar) söz konusu olduğunda, bunlar, normalde olduğu gibi, tüm yürütülebilir dosyalar için yolda (varsayılan yol) bulunuyorsa, yürütülebilir dosyanın adı yazılarak başlatılır (yürütülür / etkinleştirilir). "/ Usr / bin" veya çalıştırılabilir dosyanın adını öncesinde yazarak: ./, bulundukları dizinden.

Bütün bunlar, herhangi bir Shell kullanıcısı tarafından iyi bilinir. Ancak, bir programlama ortamı olarak yetenekleri daha az bilinir ve takdir edilir. Kabukta oluşturulan komut dosyalarının (programların) derlenmesine gerek yoktur. Kabuk bunları satır satır yorumlar. Bu nedenle, bunlar Shells Scripts olarak bilinir veya adlandırılır ve basit komutlardan işletim sisteminin kendisini başlatmak için karmaşık talimat dizilerine kadar değişebilir. Genel olarak, oldukça temiz (açık) bir sözdizimine sahip (yapım, sipariş), onları programlama dünyasına başlamak için iyi bir başlangıç ​​noktası haline getiriyor.

Kabuk Komut Dosyası nedir?

Bir İşletim Sisteminin bir Kabuğunu (tercihen) veya bir Metin Düzenleyicisini (Grafik veya Terminal) kullanarak Komut Dosyası (görev otomasyon dosyası) tasarlama ve oluşturma tekniğidir (beceri / el becerisi). Bu, genellikle yorumlanan bir tür programlama dilidir. Diğer bir deyişle, çoğu program derlenirken (kodlanırken), çalıştırılmadan önce (derleme işlemi) kalıcı olarak belirli bir (özel) koda dönüştürüldüğünden, bir kabuk betiği orijinal biçiminde (kod metni kaynağı) kalır ve her çalıştırıldıklarında komuta göre yorumlanır. Her ne kadar olağan olmasa da betiklerin de derlenmesi mümkün olsa da.

Shell Scripting altında programlamaya dayalı programların özellikleri nelerdir?

1.- Yazmaları (programlamaları) daha kolaydır, ancak çalıştırıldıklarında daha yüksek işlem maliyeti vardır.

2.- Çalıştırmak için derleyiciler yerine yorumlayıcılar kullanırlar

3.- Diğer programlama dillerinde yazılmış bileşenlerle iletişim ilişkisi vardır.

4.- Bunları içeren dosyalar düz metin olarak saklanır.

5.- Nihai tasarım (kod) genellikle derlenmiş bir programlama dilindeki eşdeğer olandan daha küçüktür.

Shell Scripting altındaki en popüler dil türleri nelerdir?

1.- Görev ve kabuk kontrol dili:

a) cmd.exe (Windows NT, Windows CE, OS / 2),
b) COMMAND.COM (DOS, Windows 9x),
c) csh, Bash, AppleScript, sh,
d) Windows Script Host aracılığıyla JScript,
e) Windows Script Host aracılığıyla VBScript,
f) REXX, diğerleri arasında.

2.- GUI Komut Dosyası (Makro Dilleri):

a) OtomatikHotkey,
b) OtoIt,
c) Bekleyin,
d) Diğerlerinin yanı sıra Automator.

3.- Belirli uygulamaların betik dili:

a) Flash'ta ActionScript,
b)MATLAB,
c) mIRC betiği,
d) Diğerlerinin yanı sıra QuakeC.

4.- Web programlama (dinamik sayfalar için):

a) Sunucu tarafında:

- PHP,
- ASP (Aktif Sunucu Sayfaları),
- JavaServer Sayfaları,
- Soğuk füzyon,
- IPTSCRAE,
- Kement,
- MIVA Komut Dosyası,
- SMX,
- XSLT ve diğerleri.

b) Müşteri tarafında:

- JavaScript,
- JScript,
- VBScript,
- Tcl, diğerleri arasında.

5.- Kelime işlem dilleri:

- AWK,
- Perl,
- Susuzluk,
- XSLT,
- Bash, diğerleri arasında.

6.- Genel amaçlı dinamik diller:

- APL,
- Boo,
- Dylan,
- Ferit,
- Harika,
- IO,
- Lisp,
- Lua,
- KABAKULAK (M),
- NewLISP,
- Nuva,
- Perl,
- PHP,
- Python,
- Ruby,
- Şema,
- Smalltalk,
- SuperCard,
- Tcl,
- Devrim, diğerleri arasında.

GNU / Linux'ta Bash nedir?

İşlevi emirleri yorumlamak olan bir bilgisayar programıdır. Dayanmaktadır Unix kabuğu ve destekliyor POSIX. GNU projesi için yazılmıştır ve çoğu Linux dağıtımı için varsayılan kabuktur.

GNU / Linux'ta Kabuk Betiği nedir?

Kabuk Komut Dosyaları son derece faydalıdırlar. Sahip olduğumuz ihtiyaçları yazmak ve sonra bu işi bizim için yapan komut dosyalarını düzenlemek iyi bir fikirdir. Artık kendinize bir senaryonun tam olarak ne olduğunu sormanın zamanı geldi. Sistemin yukarıdan aşağıya düzenli bir şekilde yürüttüğü bir dizi kabuk komutunu içeren bir metin dosyasıdır. Bunları düzenlemek için, mevcut olanların yanı sıra sadece Emacs, Vi, Nano gibi bir metin düzenleyicisine ihtiyacınız var. Bir “.sh” uzantısıyla (veya bazı durumlarda o olmadan) kaydedilirler ve şu komutu kullanarak Kabuktan çalıştırılırlar: sh script name.sh. Komut dosyaları, kabuk komutlarıyla aynı şekilde davranır.

Şahsen kullandığım öğretim yaklaşımı "Kabuk Komut Dosyası Oluşturmayı Öğrenin" Her bir öğenin ayrı ayrı nasıl çalıştığını ve nasıl etkileşime girdiğini anlayana kadar, tamamen işlevsel bir Komut Dosyasını incelemek, ayrıştırmak, cümle cümle, satır satır, komuta göre, değişkene göre değişkenlik göstermek çok pratik ve doğrudandır. genel kodda. Birazcık Tersine Mühendislik veya Yazılım Yeniden Yapılandırma. Tüm bunlar, bilgiyi uygun hale getirmek, iyileştirmek (optimize etmek) ve paylaşmak için, toplu fayda ve ücretsiz İşletim Sistemlerinin daha iyi yönetimi ve optimizasyonu için.

Bir GNU / Linux Kabuğunda nasıl çalışır ve çalışır?

Bir Kabuk ile çalışmanın ilk adımı bir kabuk çalıştırmaktır. Gerçeklik gibi görünen şeyin var olma nedeni vardır. Bazı son kullanıcı odaklı GNU / Linux dağıtımlarında, kabuk oldukça gizlidir. Genellikle adı: Konsole, Terminal, X Terminal veya benzeri bir şey. Diğer bir seçenek de sanal konsol kullanmaktır. Kullanım: Kullandığınız GNU / Linux dağıtımına bağlı olarak Ctrl + Alt + f1 veya f2 veya f3 ila f7 veya f8. GNU / Linux'ta en çok kullanılan Kabuk Bash'tir, ancak ksh veya C Kabuğu gibi başkaları da vardır. Benim durumumda, özellikle yayınlarım için Bash Shell kullanıyorum.

Bash Shell'de oluşturulan bir Komut Dosyası verildiğinde hello_world.sh aşağıdakiler açıklanabilir:

İçerik:

#! / Bin / bash
echo merhaba dünya

Yıkmak:

Komut dosyasının ilk satırı
#! / Bin / bash

Komut dosyasının çalıştırması gereken programı gösterir. Program bulunamazsa, bir hata meydana gelir.

Komut dosyasının ikinci satırı
echo merhaba dünya

Echo komutunu Hello World argümanlarıyla yürütün ve ekranda görüntülenmelerini sağlayın.

Yürütme: Komut dosyasını iki şekilde çalıştırabiliriz

Yorumlayıcıyı komut dosyasını çalıştırması için çağırmak:
# bash hello_world.sh

Ayrıca şu şekilde çalıştırılabilir:
# sh hello_world.sh

Ancak doğru Kabuğunuz çağrılmadığından yarı yarıya çalışabilir. İdeal olarak, ilk satırda çağrılan Kabuk, onu yürütmek için kullanılandır.

Komut dosyasını doğrudan şu şekilde de çalıştırabilirsiniz:
# ./hello_world.sh

Not: ./ geçerli dizinden çalıştırmayı belirtir.

Geriye kalan analiz edilmeyi bekleyen, içine eklediğiniz koddur. Umarım her zamanki gibi bu seriyi beğenirsiniz (bazıları diğerlerinden daha fazla, öğrenme ve bilgi ihtiyaçlarına göre) Kabuk Betiği.

Web'de bu konu hakkında birçok iyi bağlantı var, ancak size bu küçük kılavuzu tam burada, DesdeLinux. Net Ve bu diğeri Harici Kılavuz.

Bir sonraki gönderiye kadar!


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   d4ny dijo

    Lilo .. Linux Loader .. geri kalanı çok iyi bilgi .. teşekkürler .. salu2 d4ny.-

  2.   Jose Albert dijo

    Çevrimiçi "Kabuk Komut Dosyası Öğrenin" Kursu'nu takip eden herkese selamlar, yakında diğer temel komut dosyalarıyla bilgi edinmeye ve herkesle sosyalleşmeye devam edeceğiz.

    Umarım bizi izlemeye devam edersiniz çünkü yakında daha gelişmiş kodlarla başlayacağım, ancak karmaşıklığına rağmen görsel olarak anlaşılır bir şekilde açığa çıkacağım.

    Kabuk Komut Dosyası ile çok küçük dosyalar kullanarak platformlar arası (Farklı Dağıtım) birçok karmaşık şey yapabileceğinizi unutmayın. Size yakında öğreteceğim bir şeyin bu küçük ekran görüntüsünü kursu izlemeye devam edenlere ve sadece 50Kb ile çok şey vaat edenlere bırakacağım! Ve bu, Shell Scripting ile yapılabileceklerin sadece yarısıdır.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Ekran video kaydına bakın: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    Alberto Cardona dijo

      Merhaba, katkınız inanılmaz, gerçekten çok teşekkür ederim !!
      Biraz şüphem var, bash ile bir derleyici programlayabilir miyim?
      Ya da en azından sözcüksel bir analizci?
      bu güce sahip mi?

  3.   Jose Albert dijo

    Çevrimiçi "Kabuk Komut Dosyası Öğrenin" Kursu'nu takip eden herkese selamlar, yakında diğer temel komut dosyalarıyla bilgi edinmeye ve herkesle sosyalleşmeye devam edeceğiz. Umarım bizi izlemeye devam edersiniz çünkü yakında daha gelişmiş kodlarla başlayacağım, ancak karmaşıklığına rağmen görsel olarak anlaşılır bir şekilde açığa çıkacağım.

    Kabuk Komut Dosyası ile çok küçük dosyalar kullanarak platformlar arası (Farklı Dağıtım) birçok karmaşık şey yapabileceğinizi unutmayın. Size yakında öğreteceğim bir şeyin bu küçük ekran görüntüsünü kursu izlemeye devam edenlere ve sadece 50Kb ile çok şey vaat edenlere bırakacağım! Ve bu, Shell Scripting ile yapılabileceklerin sadece yarısıdır.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Ekran video kaydına bakın: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   Alberto dijo

    Merhaba Jose,
    Öncelikle bilginizi paylaştığınız için teşekkür ederiz. Yazılarınız çok ilginç.

    İki şey, "Merhaba Dünya" çift tırnaklarını kullanmanın ve 0 çıkışlı betiğimizin temiz bir çıktısını almanın çok önemli olduğunu düşünüyorum

  5.   Jose Albert dijo

    Katkılarınız için teşekkürler, bir sonraki Komut Dosyasında 0 çıkışının, kesintinin ve diğerlerinin kullanıldığını göreceksiniz!

  6.   willarmand dijo

    Selamlar.
    Çok ilginç, basit görünmesini sağlıyorsunuz; Şimdi, Linux'ta cron veya at, shutdown / suspend / hibernate ile programlayamadığıma rastladım, bunun sonucunda rtc wake komutunu kullanarak otomatik başlatma ile, bu komuta sahip bir komut dosyasının yardımcı olup olmayacağını bilmiyorum, yoksa cron'u takip edecekler mi? ve hiçbir şey yapmadan, ya da sadece yapılamaz, ya da başka bir şekilde yapılır ya da çok hırslıyım, ancak Windows'ta bunu yapmak nispeten kolaydır. Linux'a geçmek istiyorum, ancak kapatmayı / askıya almayı / hazırda bekletmeyi programlamak ve bilgisayarın kendi kendine başlatılmasını sağlamak benim için önemli. Saygılarımızla.

  7.   willarmand dijo

    Teşekkür ederim, iyice okuyacağım, bir şey bana yardımcı olacak. Saygılarımızla.

  8.   Edward Cuomo dijo

    Bir süre önce türünün tek örneği olduğunu düşündüğüm bir projeye başladım. Framewok Bash için bir prototiptir. Yalnızca sistemde Bash gerektirir.
    İlgilenen başka biri varsa, denemeye ve işbirliği yapmaya davet edilir!

    https://github.com/reduardo7/bashx

    Selamlar!

    1.    Lagarto dijo

      Sevgili Eduardo, bence harika bir proje, belki bunu tüm Türkiye topluluğuyla paylaşabilirsin. desdelinux, web sitemizde projenizle ilgili bir makale yayınlayabileceğinizi unutmayın, nasıl yapılacağını bilmiyorsanız okumanızı tavsiye ederim https://blog.desdelinux.net/guia-redactores-editores/ makale oluşturmaya yönelik en iyi uygulamalar nerede? desdelinux ve yapılacak prosedür. Muhtemelen topluluk için öncelikle projenizin faydalarını bilmek, ikinci olarak da bu tür şeylerin nasıl yapılacağını öğrenmek oldukça iyidir. Sizi ve başkalarını projelerini bizimle ve etrafımızı saran büyük toplulukla paylaşmaya davet ediyoruz.

  9.   Miguel Urosa Ruiz yer tutucu resmi dijo

    Merhaba, günaydın.
    Linux makine yönetimi dünyasında yeniyim ve bunun için ne önerdiğinizi bilmek istedim: ksh, bash, perl, php, python….
    size çok ve tebrik ederiz.
    Michael.