Po zalogowaniu się, każdy użytkownik współpracuje z systemem operacyjnym przy pomocy poleceń, które zanim zostaną wyegzekwowane są interpretowane przez tzw. interpretator poleceń, który w wypadku Linuxa nazywa się bash.

Interpretator poleceń jest pośrednikiem (nazwa informatyczna interfejs) między użytkownikiem i systemem operacyjnym i jego rolą jest tłumaczenie poleceń wystukiwanych przez użytkownika tak aby system operacyjny je zrozumiał. Bash posiada do swojej dyspozycji język programowania, którego zasady będziemy stopniowo poznawali, i który różni się zasadniczo od klasycznych języków informatycznych takich jak Pascal, Java czy C++. Na czym ta różnica polega? Fazy powstawania programu informatycznego pisanego w klasycznych językach programowania (wymienionych powyżej) można przedstawić w następujący sposób:

  • Algorytm jest precyzyjnym opisem operacji, które tworzą program, pisany jest w języku macierzystym twórcy programu np. polskim, francuskim. Algorytm można porównać do scenariusza lub treści książki.
  • Kod źródłowy jest zapisem algorytmu w języku zrozumiałym przez komputer, kod źródłowy jest formą w jakiej wyrażono algorytm.
  • Kompilacja jest automatycznym tłumaczeniem kodu źródłowego na język macierzysty komputera, który składa się tylko z dwóch znaków,  0  1 . Tylko program skompilowany może być egzekwowany przez system operacyjny komputera.
  • Dekompilacja polega na odtworzeniu kodu źródłowego – lub algorytmu – na podstawie kodu bitowego.

 

W bashu mamy do czynienia tylko z dwoma fazami:

1. Pisanie algorytmu

2. Pisanie kodu źródłowego

Czyli program pisany w bashu nie podlega fazie kompilacji i dlatego bash nazywamy interpretacyjnym językiem programowania. Programy napisane w bashu nazywamy skryptami. W tym momencie naszego wykładu wprowadzimy – centralne do zrozumieniu funkcjonowania systemu Linux – pojecie procesu.

Proces powstaje w momencie egzekucji programu (ale nie każdego o czym ponżej). Powstanie procesu odpowiada egzekucji pliku umieszczonego w pamieci centralnej. Każdy użytkownik w momencie logowania się do systemu prowokuje powstanie procesu. Ten proces, zdefiniowany w pliku /etc/passwd, jest interpretatorem poleceń basha.

Każdy proces ma przypisany sobie numer, nazywany PID (Process Identifier). Proces interpretatora poleceń będąc wylansowany w momencie zalogowania się użytkownika umożliwia wykonywanie innych  poleceń. W tym wypadku, proces odpowiadający egzekucji polecenia X nazywamy procesem syna, natomiast proces interpretatora poleceń, procesem rodzicielskim.

 

Polecenia w Linuxie dzielą się na:

1. polecenia wewnętrzne: które są częścią integralną basha → egzekucja polecenia wewnętrznego nie prowokuje powstania procesu w pamięci komputera.

2. polecenia zewnętrzne: które są niezależne od basha i które znajdują się w różnych katalogach (/usr/sbin, /sbin,...) → egzekucja każdego polecenia zewnętrznego prowokuje powstanie procesu w pamięci komputera.

 

Bash używa tzw. znaków specjalnych, których znaczenie użytkownik systemu operacyjnego musi rozumieć , a które służą do generowania nazw plików  (*, ?, []) lub do modyfikacji postępowania danego polecenia (<,>, |).

W momencie logowania bash interpretuje pliki inicjalizujące sesje : /etc/profile.bash_profile, ten ostatni plik każdy użytkownik – pod warunkiem, że opanował wystarczająco Linuxa – może zmodyfikowąć, dorzućić do niego nowe funkcje itd.

 

kurs Linux - Bash i polecenia Linux