Shelle bash i tcsh – różnice

1. Kilka słów wprowadzenia

Krótko mówiąc, nie można pracować bezpośrednio z podstawową częścią systemu linuksowego, jaką jest jego jądro (określa się je też często nazwą kernel) – niezbędny jest do tego program pośredniczący, czyli właśnie powłoka systemu operacyjnego (inaczej interpreter poleceń powłoki lub po prostu shell). Powłoka systemu Linux pełni taką samą funkcję, jak plik command.com w systemie DOS, tyle tylko, że użytkownik Linuksa może wybrać jedną spośród kilku dostępnych powłok. Powłoka systemu operacyjnego to program, który udostępnia interfejs pomiędzy użytkownikiem a jądrem systemu; ma on postać wiersza poleceń. Jądro systemu zawiera wszelkie podprogramy potrzebne do przeprowadzania operacji wejścia i wyjścia, zarządzania plikami itp. Powłoka pozwala korzystać z tych podprogramów za pomocą wiersza poleceń. Poza tym, powłoki obsługują również język programowania. Programy napisane w języku powłoki nazywane są zwykle skryptami lub skryptami powłoki.

Ogólnie powłoki używane są na trzy sposoby:

  • interaktywnie, kiedy użytkownik wydaje polecenia
  • do dostosowania sesji linuksowej do potrzeb użytkownika
  • do programowania w języku powłoki

Najczęściej używane powłoki to:

/bin/sh – jest to przodek wszystkich innych powłok systemów UNIX-owych, ale brakuje jej wielu przydatnych możliwości

/bin/bash – domyślna powłoka systemów linuxowych

/bin/csh – składnia i konstrukcje używane w tej powłoce są bardzo podobne do znanych z języka C

/bin/tcsh – Jest to bardziej rozbudowana wersja powłoki C Shell

/bin/ksh – Jest to jedna z najpopularniejszych powłok UNIX-owych, ale nie jest ona zwykle używana w systemach linuxowych

Aby sprawdzić, jakiej powłoki używasz, w wierszu poleceń wpisz echo $SHELL
Aby tymczasowo skorzystać z innej powłoki, w wierszu poleceń wprowadź ścieżkę dostępu i nazwę pliku zawierającego program powłoki, której chcesz użyć. Jeśli na przykład chcesz skorzystać z możliwości powłoki C Shell, wpisz /bin/csh.
Aby powrócić do pierwotnej powłoki, w wierszu poleceń wpisz exit.
Aby na stałe zmienić używaną powłokę, w wierszu poleceń wpisz chsh, po wyświetleniu pytania wprowadź hasło, po znaku zachęty wprowadź ścieżkę dostępu i nazwę pliku programu powłoki, której chcesz używać (na przykład /bin/tcsh).
Aby uaktywnić wprowadzone zmiany, wyloguj się i zaloguj ponownie.

2. Różnice w powłokach bash i tcsh

BASH – skrót od wyrazów Bourne Again SHell. Powłoka ta jest dostępna za darmo i rozprowadzana zgodnie z warunkami licencji GNU. Jej nazwa odzwierciedla fakt, że początkowo była wzbogaconą wersją powłoki Bourne Shell. Bash jest domyślną powłoką systemu Red Hat. Powłoka ta jest łatwa w obsłudze. Zgodnie z informacjami podawanymi przez Free Software Foundation “bash jest powłoką kompatybilną z powłoką sh, łączącą w sobie rozwiązania znane z powłok Korn (ksh) oraz C (csh)”. Zdaniem wielu użytkowników jest to najpopularniejszy i najlepszy interpreter poleceń Unix-owych. Swoją popularność zawdzięcza łatwej obsłudze i przyjazności wobec użytkownika. Występuje w każdej Linux-owej dystrybucji, są również wersje dla BSD oraz Solarisa.

TCSH – rozszerzona wersja powłoki C SHell (kompatybilna ze swoim przodkiem), może działać jako interaktywna powłoka, jak również służy do uruchamiania skryptów shellowych. Składnia skryptów tej powłoki przypomina język programowania C. Powłoka ta jest drugą jeśli chodzi o popularność powłoką UNIX’ową.

Zmienne środowiskowe używane są do przekazywania pewnych informacji powłoce oraz programom uruchamianym pod jej kontrolą. Inaczej mówiąc, informacje zapisane w zmiennych środowiskowych są wykorzystywane do określenia parametrów interakcji pomiędzy użytkownikiem, powłoką, systemem operacyjnym i programami. Zgodnie z konwencją, nazwy zmiennych środowiskowych składają się tylko z wielkich liter. Trzeba również zdawać sobie sprawę z faktu, że znak $ jest symbolem specjalnym, wykorzystywanym do oznaczania wartości zmiennej (w przeciwieństwie do jej nazwy). Często zdarza się, że zmienne środowiskowe zawierają informacje o lokalizacji jakichś plików czy katalogów. Dla przykładu, zmienna środowiskowa HOME zawiera ścieżkę dostępu do katalogu domowego użytkownika. Niektóre zmienne środowiskowe używane są do przekazywania poszczególnym programom informacji o położeniu potrzebnych im plików. Wiele zmiennych środowiskowych definiowanych jest w globalnych plikach konfiguracyjnych (pliki konfiguracyjne opisane zostaną w dalszej części). Takie zmienne środowiskowe mają tę samą wartość dla wszystkich użytkowników, chyba że dla któregoś z nich zostaną zmienione. Inne zmienne środowiskowe mogą być specyficzne dla poszczególnych użytkowników. Takie zmienne można definiować za pomocą plików konfigurujących sesję użytkownika.

Polecenie echo służy do wyświetlenia wiersza tekstu. Aby sprawdzić bieżącą wartość zmiennej środowiskowej, w wierszu poleceń wpisz polecenie echo, a po nim nazwę zmiennej.
Oto kilka przykładów:
echo $HOME (katalog domowy użytkownika)
echo $LOGNAME (identyfikator użytkownika)
echo $SHELL (nazwa bieżącej powłoki)
echo $PATH (ścieżka przeszukiwania)

Aby wyświetlić wartości wszystkich zmiennych środowiskowych, w wierszu poleceń należy wpisać set.
Zmiennym środowiskowym można nadawać wartości interaktywnie, korzystając z wiersza poleceń. Ten sposób nadaje się do tworzenia zmiennych na bieżąco, jeśli na przykład wymaga tego jakiś program, lub do modyfikowania wartości zmiennych skonfigurowanych wcześniej – choć do tego należy podchodzić dość ostrożnie. Pamiętać należy o tym, że zmienna środowiskowa, której wartość została ustalona podczas pracy, istnieje tylko do chwili zakończenia pracy powłoki. Takie rozwiązanie jest przydatne na przykład przy wyszukiwaniu błędów konfiguracyjnych. Aby zmienna zachowała swą wartość po następnym zalogowaniu się, należy umieścić jej definicję w pliku konfiguracyjnym.
Aby ustawić wartość zmiennej środowiskowej w powłoce bash, należy posłużyć się poleceniem export MYENV=nowa_wartosc.
W powłoce tcsh służy do tego polecenie setenv MYENV nowa_wartosc(nie występuje tu znak równości!).

Jedną z bardziej szczególnych zmiennych środowiskowych jest zmienna PATH. Przechowuje ona listę katalogów, w których znajdują się pliki wykonywalne. W przypadku gdy nie podaje się pełnej ścieżki dostępu do danego pliku, system (a właściwie powłoka) szuka pliku o takiej nazwie w katalogach podanych w zmiennej PATH.
Aby dodać katalog do zmiennej PATH, w wierszu poleceń należy wpisać export PATH=$PATH:nowy_katalog(w przypadku powłoki bash), lub setenv PATH $PATH”:katalog2″ (w przypadku powłoki tcsh).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Poprzedni post

DNS – działanie i konfiguracja usługi

Następny post
Pingwiny Królewskie

Powszechna Licencja Publiczna GNU

Powiązane posty