Powłoka unix
Powłoka uniksowa to termin używany w informatyce w odniesieniu do interpretera poleceń systemów operacyjnych opartych na systemie Unix i podobnych , takich jak GNU/Linux , i który jest ich tradycyjnym interfejsem użytkownika . Za pomocą instrukcji dostarczonych przez tłumacza użytkownik może komunikować się z jądrem , a co za tym idzie, wykonywać te rozkazy, a także narzędzia , które pozwalają mu sterować pracą komputera. Z tego powodu w języku angielskim nazwano ją tak shell , co można przetłumaczyć jako „shell”, ponieważ jest to widoczna powłoka systemu komputerowego.
Polecenia dostarczane przez interpretery mogą być użyte jako skrypt, jeśli są zapisane w plikach wykonywalnych zwanych skryptami powłoki, w ten sposób, gdy użytkownik potrzebuje użyć kilku poleceń lub poleceń połączonych z narzędziami, zapisz w pliku tekstowym, oznaczonym jako wykonywalny, operacje, które później, wiersz po wierszu, interpreter przetłumaczy na jądro, aby mogło je wykonać. Nie będąc skryptem powłoki ściśle językiem programowania, proces tworzenia skryptów powłoki nazywa się programowaniem powłoki lub w języku angielskim programowaniem powłoki lub skryptami powłoki .
W najbardziej ogólnym znaczeniu tego słowa powłoka oznacza dowolny interpreter, którego użytkownicy używają do wpisywania poleceń. Jego etymologia wywodzi się z naturalnego używania konsol w komputerach działających pod kontrolą systemu Unix w przeszłości, kiedy użytkownicy podłączali się do komputera centralnego, robili to poprzez konsole (powłoki), za pomocą których, poprzez interpreter, logowali się i zarządzali głównym komputerem. Później, wraz z rozpowszechnianiem się komputerów osobistych i ich filozofią jednego użytkownika, jeden komputer na użytkownika (rozumiany jako przeciwieństwo początkowej filozofii Uniksa, jeden komputer, wielu użytkowników połączonych terminalami), opracowano oprogramowanie emulujące główne cechy konsole fizyczne, tak aby nadal mogły być używane jako klienci na komputerze lub jądrze, które rozumieją standardową konwencję używaną do konfigurowania i wykonywania zadań zarządzania awaryjnego na serwerach opartych na systemie Unix.
Unix i podobni użytkownicy mogą wybierać między różnymi powłokami (program, który powinien zostać uruchomiony po zalogowaniu, zobacz bash , ash , csh , Zsh , ksh , tcsh ). Graficzne interfejsy użytkownika dla Uniksa, takie jak GNOME , KDE i Xfce , można nazwać powłokami wizualnymi lub powłokami graficznymi . Sam termin powłoka jest zwykle związany z wierszem poleceń. W systemie Unix każdy program może być powłoką użytkownika. Użytkownicy, którzy chcą używać innej składni do tworzenia poleceń, mogą określić inny interpreter jako powłokę użytkownika.
Termin powłoka odnosi się również do konkretnego programu, takiego jak powłoka Bourne'a , sh . Powłoka Bourne'a była powłoką używaną we wczesnych wersjach Uniksa i stała się de facto standardem ; wszystkie systemy uniksopodobne mają co najmniej jedną powłokę kompatybilną z powłoką Bourne'a. Program powłoki Bourne'a znajduje się w hierarchii plików systemu Unix w /bin/sh . W niektórych systemach, takich jak BSD , /bin/sh jest powłoką Bourne'a lub jej odpowiednikiem, ale w innych systemach, takich jak wiele dystrybucji Linuksa , /bin/sh jest dowiązaniem symbolicznym do powłoki obsługującej więcej funkcji (takich jak Bash ). POSIX określa swoją standardową powłokę jako ścisły podzbiór powłoki Korn .
Kategorie powłok
Można je podzielić na cztery kategorie: typ Bourne'a, typ konsoli C, nietradycyjny i historyczny.
Kompatybilny z powłoką Bourne'a
- Bourne shell (sh) - Napisany przez Steve'a Bourne'a , kiedy był w Bell Labs . Został po raz pierwszy rozprowadzony z wersją 7 Unix w 1978 roku i był ulepszany przez lata.
- Powłoka Almquist (ash) — napisana jako zamiennik powłoki Bourne'a na licencji BSD ; sh z FreeBSD , NetBSD (i jego pochodne) są oparte na ash i zostały z tej okazji wzbogacone o POSIX .
- Powłoka Bourne-Again (bash) — została napisana jako część projektu GNU , aby zapewnić nadzbiór funkcjonalności w powłoce Bourne'a.
- Debian Almquist Shell (dash) — Dash jest nowoczesnym zamiennikiem dla ash w Debianie .
- Powłoka Korna (ksh) — napisana przez Davida Korna podczas pracy w Bell Labs .
- Powłoka Z (zsh) - uważana za najbardziej kompletną: jest to najbliższa rzecz obejmująca nadzbiór sh, ash, bash, csh, ksh i tcsh.
Kompatybilny z powłoką C
- Powłoka C (csh) napisana przez Billa Joy'a podczas pobytu na Uniwersytecie Kalifornijskim w Berkeley . Po raz pierwszy został rozprowadzony z BSD w 1979 roku.
- Powłoka TENEX C (tcsh).
Inne lub egzotyczne
- fish , przyjazna i interaktywna powłoka, wydana po raz pierwszy w 2005 roku.
- mudsh , inteligentna powłoka w stylu gry, która działa jak MUD .
- zoidberg, modułowa powłoka napisana w Perlu, skonfigurowana i działająca w całości w Perlu .
- rc , domyślna powłoka dla Planu 9 z Bell Labs i wersji 10 Uniksa napisana przez Toma Duffa . Zostały stworzone porty dla Inferno i systemów operacyjnych opartych na Uniksie.
- to powłoka (s), powłoka kompatybilna z RC napisana w połowie lat 90-tych.
- scsh (powłoka schematu)
Pliki konfiguracyjne dla powłok
Powłoka odczytuje pliki konfiguracyjne w wielu okolicznościach w różnych zależnościach powłoki. Poniższa tabela przedstawia pliki konfiguracyjne dla najpopularniejszych powłok:
| cii | ksz | cszi | tcsz | grzmotnąć | zsh | |
|---|---|---|---|---|---|---|
/etc/.login
|
Nie | Nie | Zaloguj sie | Zaloguj sie | Nie | Nie |
/etc/csh.cshrc
|
Nie | Nie | Nie | TAk | Nie | Nie |
/etc/csh.login
|
Nie | Nie | Nie | Zaloguj sie | Nie | TAk |
~/.tcshrc
|
Nie | Nie | Nie | TAk | Nie | Nie |
~/.cshrc
|
Nie | Nie | TAk | TAk | Nie | Nie |
~/.login
|
Nie | Nie | Zaloguj sie | Zaloguj sie | Nie | Nie |
~/.logout
|
Nie | Nie | Zaloguj sie | Zaloguj sie | Nie | Nie |
/etc/profile
|
Zaloguj sie | Zaloguj sie | Nie | Nie | Zaloguj się | Nie |
~/.profile
|
Zaloguj sie | Zaloguj sie | Nie | Nie | Zaloguj sie | Nie |
~/.bash_profile
|
Zaloguj sie | Nie | Nie | Nie | Zaloguj sie | Nie |
~/.bash_login
|
Nie | Nie | Nie | Nie | Zaloguj sie | Nie |
~/.bashrc
|
Nie | Nie | Nie | Nie | Zaloguj sie | Nie |
/etc/zshenv
|
Nie | Nie | Nie | Nie | Nie | TAk |
/etc/zprofile
|
Nie | Nie | Nie | Nie | Nie | Zaloguj sie |
/etc/zshrc
|
Nie | Nie | Nie | Nie | Nie | wewn. |
/etc/zlogin
|
Nie | Nie | Nie | Nie | Nie | Zaloguj sie |
/etc/zlogout
|
Nie | Nie | Nie | Nie | Nie | Zaloguj sie |
~/.zshenv
|
Nie | Nie | Nie | Nie | Nie | TAk |
~/.zprofile
|
Nie | Nie | Nie | Nie | Nie | Zaloguj sie |
~/.zshrc
|
Nie | Nie | Nie | Nie | Nie | wewn. |
~/.zlogin
|
Nie | Nie | Nie | Nie | Nie | Zaloguj sie |
~/.zlogout
|
Nie | Nie | Nie | Nie | Nie | Zaloguj sie |
Wyjaśnienie:
- "nie" oznacza, że powłoka w ogóle nie odczyta pliku.
- „tak” oznacza, że plik jest zawsze odczytywany przez powłokę.
- „login” oznacza, że plik jest odczytywany, jeśli powłoka jest powłoką rejestrującą.
- "n/login" oznacza, że plik jest odczytywany, jeśli powłoka nie jest powłoką sesji.
- „wew.” oznacza, że plik jest czytany, jeśli jest interaktywną powłoką.
- „i.login” oznacza, że plik jest odczytywany, jeśli powłoka jest sesją interaktywną.
Historyczny
- Powłoka Thompsona (sh) — Pierwsza powłoka uniksowa została napisana przez Kena Thompsona w Bell Labs . Dystrybuowany w wersjach Unix od 1 do 6, od 1971 do 1975. Jest uważany za bardzo szczątkowy według współczesnych standardów i nie jest używany w obecnych systemach. Dostępnych jest kilka jego części: Ancient UNIX Systems .
- Powłoka PWB lub powłoka Mashey (sh) — wersja powłoki Thompsona, stworzona przez Johna Masheya i innych w Bell Labs . Dystrybuowany z Programmer's Workbench UNIX , w 1976 roku.
Powłoki nieuniksowe
W pakiecie systemów operacyjnych Microsoft Windows odpowiednikiem są programy command.com lub cmd.exe dla systemów operacyjnych opartych na Windows NT oraz Windows PowerShell wprowadzony w systemie Windows Server 2008 .
Zobacz także
- Skrypt powłoki
- Dodatek: Programy dla Uniksa
- Rdzeń (informatyka)
Bibliografia
- Ellie Quigley (2001). „Wprowadzenie do powłok UNIX”. Powłoki uniksowe według przykładu . Sala Uczniowska PTR. ISBN 0-13-066538-X . — Historia różnych powłok, zastosowania i obowiązki powłoki w systemie Unix.