Co to jest shell?

Autor: Opublikowano

W skrócie: Shell, czyli powłoka systemowa, to program, który przyjmuje polecenia użytkownika i pozwala uruchamiać programy oraz wykonywać operacje w systemie. Najczęściej chodzi o powłokę tekstową, taką jak Bash, Zsh czy PowerShell. Shell nie jest tym samym co terminal: terminal udostępnia miejsce do wpisywania poleceń, a powłoka je interpretuje.

Do czego służy powłoka systemowa?

Powłoka pozwala obsługiwać komputer za pomocą poleceń zamiast klikania przycisków i ikon. Możesz dzięki niej przeglądać katalogi, kopiować pliki, uruchamiać aplikacje, sprawdzać działające procesy czy zarządzać serwerem. Dostępne działania zależą od systemu, zainstalowanych programów oraz uprawnień konta.

Gdy wpisujesz polecenie, shell rozpoznaje jego nazwę i dodatkowe argumenty, czyli informacje określające sposób wykonania zadania. Następnie wykonuje własną funkcję albo uruchamia zewnętrzny program. Przykładowo w poleceniu python skrypt.py powłoka uruchamia interpreter Pythona i przekazuje mu nazwę pliku do wykonania — nie interpretuje samodzielnie kodu Pythona.

Powłoki przydają się szczególnie przy powtarzalnych zadaniach. Zamiast ręcznie zmieniać nazwy kilkudziesięciu plików, można przygotować zestaw poleceń wykonujący tę operację według jednej reguły. Taki zapis poleceń w pliku nazywa się skryptem powłoki.

Termin „powłoka” ma też szersze znaczenie: może oznaczać graficzny interfejs obsługi systemu. W dokumentacji programistycznej i administracji serwerami słowo „shell” zwykle odnosi się jednak do powłoki tekstowej.

Shell, terminal, konsola i SSH — czym się różnią?

Te określenia bywają używane zamiennie, ale opisują różne elementy pracy z komputerem:

PojęcieCo oznacza
ShellProgram interpretujący polecenia, np. Bash lub PowerShell.
TerminalAplikacja zapewniająca tekstowe wejście i wyjście, w której może działać shell, np. Windows Terminal.
KonsolaOkreślenie zależne od kontekstu; może oznaczać terminal systemowy lub potocznie okno poleceń.
SSHProtokół służący do bezpiecznego łączenia się z innym komputerem, często w celu pracy w jego powłoce.

Możesz więc otworzyć Windows Terminal, uruchomić w nim PowerShell, a następnie połączyć się przez SSH z serwerem Linux. Po zalogowaniu polecenia może obsługiwać Bash działający na serwerze. Okno pozostaje to samo, lecz zmieniają się komputer wykonujący polecenia i używana powłoka.

Rozróżnienie ma praktyczne znaczenie przy czytaniu instrukcji. Polecenie opisane jako „wklej do terminala” może wymagać konkretnej powłoki, systemu lub dodatkowego programu. Samo otwarcie dowolnego okna tekstowego nie zapewnia zgodności.

Najpopularniejsze powłoki i ich zastosowania

Bash jest szeroko używany w systemach Linux oraz skryptach administracyjnych. Zsh to domyślna powłoka interaktywna w nowych kontach użytkowników współczesnych wersji macOS; spotkasz ją również w Linuksie. Obie mają wiele podobnych poleceń i konstrukcji, ale nie każdy skrypt będzie działał identycznie w obu.

PowerShell jest rozwijany przede wszystkim z myślą o automatyzacji i administracji. Działa w Windows, a jego współczesne wydania są też dostępne dla Linuksa i macOS. W odróżnieniu od typowych potoków tekstowych w Bashu potoki PowerShell mogą przekazywać uporządkowane obiekty, np. informacje o procesach z osobnymi polami na nazwę i identyfikator.

cmd.exe, czyli klasyczny interpreter poleceń Windows, nadal występuje w starszych instrukcjach i skryptach wsadowych. Nie jest inną nazwą PowerShella. Polecenia i składnia tych dwóch powłok różnią się, mimo że obie mogą działać w Windows Terminal.

Na początek nie musisz instalować nowej powłoki. Korzystaj z dostępnej w swoim środowisku i sprawdzaj, dla jakiego systemu oraz shella przygotowano wykonywaną instrukcję.

Pierwsze polecenia: prosty przykład

Bezpieczny początek to sprawdzenie bieżącego katalogu i wyświetlenie jego zawartości. Bieżący katalog jest miejscem, względem którego powłoka rozpatruje ścieżki niepodane w pełnej postaci.

W Bashu lub Zsh wpisz kolejno:

pwd
ls
mkdir nauka-shell
cd nauka-shell
pwd

Polecenie pwd pokazuje bieżący katalog, ls wyświetla jego zawartość, a mkdir tworzy nowy katalog. Polecenie cd przenosi do wskazanego katalogu. Ten przykład nie usuwa plików; tworzy folder nauka-shell, o ile masz odpowiednie uprawnienia i taki folder jeszcze nie istnieje.

W PowerShellu analogiczna sekwencja z pełnymi nazwami poleceń wygląda tak:

Get-Location
Get-ChildItem
New-Item -ItemType Directory -Name nauka-shell
Set-Location nauka-shell
Get-Location

Jeśli ścieżka zawiera spacje, obejmij ją cudzysłowami, np. cd "Moje dokumenty". Bez nich powłoka może potraktować fragmenty ścieżki jako osobne argumenty.

Jak korzystać z shella bezpiecznie?

Powłoka nie jest z definicji niebezpieczna, ale pozwala szybko wykonywać operacje na wielu plikach. Szczególnej uwagi wymagają polecenia usuwające dane, zmieniające uprawnienia oraz uruchamiane jako administrator. Usunięcie pliku poleceniem nie musi oznaczać przeniesienia go do kosza.

Przed wykonaniem nieznanej komendy sprawdź jej znaczenie i bieżący katalog. Nie kopiuj bez zrozumienia konstrukcji, które pobierają skrypt z internetu i natychmiast go uruchamiają. Na serwerze połączonym przez SSH upewnij się też, czy pracujesz na środowisku testowym, czy produkcyjnym.

Pierwsze ćwiczenia wykonuj w osobnym katalogu z kopiami nieistotnych plików. Następnym krokiem może być poznanie pomocy dla jednego polecenia: w Bashu użyj help cd, a w PowerShellu Get-Help Set-Location.

Zobacz też: Co to jest AGI?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.