Unix / Linux - co to są powłoki?

ZA Shellzapewnia interfejs do systemu Unix. Gromadzi dane wejściowe od Ciebie i wykonuje programy na ich podstawie. Gdy program kończy wykonywanie, wyświetla dane wyjściowe tego programu.

Shell to środowisko, w którym możemy uruchamiać nasze polecenia, programy i skrypty powłoki. Istnieją różne odmiany powłoki, podobnie jak różne są wersje systemów operacyjnych. Każdy wariant powłoki ma własny zestaw rozpoznawanych poleceń i funkcji.

Shell Prompt

Monit, $, który nazywa się command prompt, jest wydawany przez powłokę. Gdy wyświetlany jest monit, możesz wpisać polecenie.

Shell odczytuje wprowadzone dane po naciśnięciu Enter. Określa polecenie, które chcesz wykonać, patrząc na pierwsze słowo wprowadzone przez Ciebie. Słowo to nieprzerwany zestaw znaków. Spacje i tabulatory oddzielają słowa.

Poniżej znajduje się prosty przykład date polecenie, które wyświetla aktualną datę i godzinę -

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

Możesz dostosować wiersz polecenia za pomocą zmiennej środowiskowej PS1, wyjaśnionej w samouczku dotyczącym środowiska.

Rodzaje pocisków

W systemie Unix istnieją dwa główne typy powłok -

  • Bourne shell - Jeśli używasz powłoki typu Bourne, rozszerzenie $ znak to domyślna zachęta.

  • C shell - Jeśli używasz powłoki typu C, domyślnym znakiem zachęty jest znak%.

Bourne Shell ma następujące podkategorie -

  • Powłoka Bourne'a (sh)
  • Korn Shell (ksh)
  • Powłoka Bourne Again (bash)
  • Powłoka POSIX (sh)

Następują różne pociski typu C -

  • Powłoka C (csh)
  • Powłoka TENEX / TOPS C (tcsh)

Oryginalna powłoka systemu Unix została napisana w połowie lat siedemdziesiątych przez Stephena R. Bourne'a, kiedy był w AT&T Bell Labs w New Jersey.

Powłoka Bourne'a była pierwszą powłoką, która pojawiła się w systemach uniksowych, dlatego jest nazywana „powłoką”.

Powłoka Bourne jest zwykle instalowana jako /bin/shw większości wersji Uniksa. Z tego powodu jest to powłoka wybierana do pisania skryptów, które mogą być używane w różnych wersjach Uniksa.

W tym rozdziale omówimy większość koncepcji powłoki opartych na powłoce Borne.

Skrypty powłoki

Podstawową koncepcją skryptu powłoki jest lista poleceń, które są wymienione w kolejności wykonywania. Dobry skrypt powłoki będzie miał komentarze poprzedzone znakiem# znak, opisujący kroki.

Istnieją testy warunkowe, takie jak wartość A jest większa niż wartość B, pętle umożliwiające nam przechodzenie przez ogromne ilości danych, pliki do odczytu i przechowywania danych oraz zmienne do odczytu i przechowywania danych, a skrypt może zawierać funkcje.

W następnych sekcjach napiszemy wiele skryptów. Byłby to prosty plik tekstowy, w którym umieścilibyśmy wszystkie nasze polecenia i kilka innych wymaganych konstrukcji, które informowałyby środowisko powłoki, co ma robić i kiedy.

Skrypty i funkcje powłoki są interpretowane. Oznacza to, że nie są kompilowane.

Przykładowy skrypt

Załóżmy, że tworzymy plik test.shscenariusz. Zauważ, że wszystkie skrypty miałyby rozszerzenie.shrozbudowa. Zanim dodasz cokolwiek innego do swojego skryptu, musisz ostrzec system, że skrypt powłoki jest uruchamiany. Odbywa się to za pomocąshebangzbudować. Na przykład -

#!/bin/sh

Informuje to system, że następujące polecenia mają być wykonywane przez powłokę Bourne'a. Nazywa się to shebang, ponieważ#symbol nazywa się hashem, a symbol! symbol nazywa się hukiem .

Aby utworzyć skrypt zawierający te polecenia, najpierw umieść linię shebang, a następnie dodaj polecenia -

#!/bin/bash
pwd
ls

Komentarze powłoki

Możesz umieścić swoje komentarze w swoim skrypcie w następujący sposób -

#!/bin/bash

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

Zapisz powyższą zawartość i spraw, aby skrypt był wykonywalny -

$chmod +x test.sh

Skrypt powłoki jest teraz gotowy do wykonania -

$./test.sh

Po wykonaniu otrzymasz następujący wynik -

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

Note - Aby uruchomić program dostępny w bieżącym katalogu, użyj ./program_name

Rozszerzone skrypty powłoki

Skrypty powłoki mają kilka wymaganych konstrukcji, które mówią środowisku powłoki, co i kiedy ma robić. Oczywiście większość skryptów jest bardziej złożona niż powyższy.

W końcu powłoka jest prawdziwym językiem programowania, zawierającym zmienne, struktury kontrolne i tak dalej. Bez względu na to, jak skomplikowany jest skrypt, nadal jest to tylko lista poleceń wykonywanych sekwencyjnie.

Poniższy skrypt używa read polecenie, które pobiera dane wejściowe z klawiatury i przypisuje je jako wartość zmiennej PERSON i ostatecznie wypisuje je na STDOUT.

#!/bin/sh

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

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

Oto przykładowe uruchomienie skryptu -

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