Unix / Linux - Kabuklar nedir?

Bir Shellsize Unix sistemine bir arayüz sağlar. Sizden girdi toplar ve bu girdiye göre programları yürütür. Bir program yürütülmeyi bitirdiğinde, o programın çıktısını görüntüler.

Shell, komutlarımızı, programlarımızı ve kabuk komut dosyalarımızı çalıştırabileceğimiz bir ortamdır. Tıpkı işletim sistemlerinin farklı tatları olduğu gibi, bir kabuğun da farklı lezzetleri vardır. Her kabuk çeşidinin kendi tanınmış komutları ve işlevleri vardır.

Kabuk İstemi

İstemi, $, buna denir command prompt, kabuk tarafından verilir. Komut istemi görüntülenirken bir komut yazabilirsiniz.

Shell, tuşuna bastıktan sonra girişinizi okur Enter. Girişinizin ilk kelimesine bakarak yürütülmesini istediğiniz komutu belirler. Sözcük, kesintisiz bir karakter kümesidir. Boşluklar ve sekmeler kelimeleri ayırır.

Aşağıda basit bir örnek verilmiştir. date geçerli tarih ve saati gösteren komut -

$date
Thu Jun 25 08:30:19 MST 2009

Komut isteminizi, Ortam öğreticisinde açıklanan ortam değişkenini PS1 kullanarak özelleştirebilirsiniz.

Kabuk Tipleri

Unix'te iki ana mermi türü vardır -

  • Bourne shell - Bourne tipi bir kabuk kullanıyorsanız, $ karakter varsayılan istemdir.

  • C shell - C tipi bir kabuk kullanıyorsanız,% karakteri varsayılan istemdir.

Bourne Kabuğu aşağıdaki alt kategorilere sahiptir -

  • Bourne kabuğu (sh)
  • Korn kabuğu (ksh)
  • Bourne Again kabuğu (bash)
  • POSIX kabuğu (sh)

Farklı C tipi mermiler takip eder -

  • C kabuğu (csh)
  • TENEX / TOPS C kabuğu (tcsh)

Orijinal Unix kabuğu 1970'lerin ortasında Stephen R. Bourne tarafından New Jersey'deki AT&T Bell Labs'da iken yazılmıştır.

Bourne kabuğu, Unix sistemlerinde ortaya çıkan ilk kabuktur, bu nedenle "kabuk" olarak anılır.

Bourne kabuğu genellikle şu şekilde kurulur: /bin/shUnix'in çoğu sürümünde. Bu nedenle, Unix'in farklı sürümlerinde kullanılabilen komut dosyaları yazmak için tercih edilen kabuktur.

Bu bölümde, Borne Shell'i temel alan Shell konseptlerinin çoğunu ele alacağız.

Kabuk Komut Dosyaları

Bir kabuk betiğinin temel kavramı, yürütme sırasına göre listelenen bir komutlar listesidir. İyi bir kabuk betiğinde açıklamalar bulunur.# adımları açıklayan işaret.

A değerinin B değerinden daha büyük olması gibi koşullu testler, devasa miktarda veriden geçmemize izin veren döngüler, verileri okumak ve depolamak için dosyalar ve verileri okumak ve saklamak için değişkenler vardır ve komut dosyası işlevleri içerebilir.

Sonraki bölümlerde birçok senaryo yazacağız. Tüm komutlarımızı ve kabuk ortamına ne yapacağını ve ne zaman yapacağını söyleyen diğer gerekli yapıları koyacağımız basit bir metin dosyası olurdu.

Kabuk betikleri ve işlevleri yorumlanır. Bu, derlenmedikleri anlamına gelir.

Örnek Komut Dosyası

Bir yarattığımızı varsayalım test.shsenaryo. Tüm komut dosyalarının.shuzantı. Betiğinize başka bir şey eklemeden önce, sistemi bir kabuk betiğinin başlatıldığına dair uyarmanız gerekir. Bu,shebanginşa etmek. Örneğin -

#!/bin/sh

Bu, sisteme aşağıdaki komutların Bourne kabuğu tarafından yürütüleceğini söyler. Buna shebang deniyor çünkü#sembolü karma olarak adlandırılır ve! sembol patlama olarak adlandırılır .

Bu komutları içeren bir komut dosyası oluşturmak için önce shebang satırını ve ardından komutları ekleyin -

#!/bin/bash
pwd
ls

Kabuk Yorumları

Yorumlarınızı senaryonuza aşağıdaki gibi koyabilirsiniz -

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls

Yukarıdaki içeriği kaydedin ve komut dosyasını çalıştırılabilir hale getirin -

$chmod +x test.sh

Kabuk betiği artık çalıştırılmaya hazır -

$./test.sh

Yürütme üzerine, aşağıdaki sonucu alacaksınız -

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

Note - Mevcut dizinde bulunan bir programı çalıştırmak için şunu kullanın: ./program_name

Genişletilmiş Kabuk Komut Dosyaları

Kabuk betikleri, kabuk ortamına ne yapacağını ve ne zaman yapacağını söyleyen birkaç gerekli yapıya sahiptir. Elbette çoğu komut dosyası yukarıdakinden daha karmaşıktır.

Sonuçta kabuk değişkenler, kontrol yapıları vb. İle tamamlanmış gerçek bir programlama dilidir. Bir betik ne kadar karmaşık olursa olsun, yine de sırayla çalıştırılan komutların bir listesidir.

Aşağıdaki komut dosyası, read girişi klavyeden alan ve bunu PERSON değişkeninin değeri olarak atayan ve son olarak STDOUT üzerine yazdıran komut.

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

İşte komut dosyasının örnek bir çalıştırması -

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$