Ce este un Shell?
Un shell este un program care oferă o interfață între un utilizator și nucleul unui sistem de operare (OS). Un sistem de operare pornește un shell pentru fiecare utilizator atunci când utilizatorul se conectează sau deschide un terminal sau o fereastră de consolă.
Un nucleu este un program care:
- Controlează toate operațiile calculatorului.
- Coordonează toate utilitarele care se execută
- Se asigură că utilitarele care se execută nu interferează unele cu altele sau nu consumă toate resursele sistemului.
- Programează și gestionează toate procesele sistemului.
Prin interfațarea cu un nucleu, un shell oferă o modalitate pentru un utilizator de a executa utilități și programe.
Mediul utilizatorului
De asemenea, shell-ul oferă un mediu de utilizator pe care îl puteți personaliza folosind fișiere de inițializare. Aceste fișiere conțin setări pentru caracteristicile mediului utilizatorului, cum ar fi:
- Cale de căutare pentru găsirea comenzilor.
- Permisiuni implicite pentru fișierele noi.
- Valori pentru variabilele pe care le folosesc alte programe.
- Valori pe care le puteți personaliza.
Ce sunt diferitele shell-uri?
Secțiunile următoare descriu shell-urile OS disponibile în principal pe sistemul de operare UNIX/Linux. Sunt descrise, de asemenea, caracteristicile shell-urilor și solicitările lor implicite.
Shell-ul Bourne
Shell-ul Bourne (sh), scris de Steve Bourne la AT&T Bell Labs, este shell-ul original UNIX. Este shell-ul preferat pentru programarea shell-ului datorită compactității și vitezei sale. Un dezavantaj al shell-ului Bourne este că îi lipsesc caracteristicile pentru utilizarea interactivă, cum ar fi posibilitatea de a reaminti comenzile anterioare (history). De asemenea, în shell-ul Bourne lipsește manipularea aritmetică și a expresiilor logice încorporate.
Shell-ul Bourne este shell-ul implicit al sistemului de operare Solaris. Este shell-ul standard pentru scripturile de administrare a sistemului Solaris. Pentru shell-ul Bourne:
- Numele de cale completă a comenzii este /bin/sh și /sbin/sh.
- Indicatorul implicit al utilizatorului non-rădăcinat este $.
- Indicatorul implicit al utilizatorului rădăcinat este #.
Shell-ul C
Shell-ul C (csh):
- Este o îmbunătățire UNIX scrisă de Bill Joy la Universitatea din California la Berkeley.
- A încorporează caracteristici pentru utilizare interactivă, cum ar fi aliasurile și istoricul comenzilor.
- Include caracteristici convenabile de programare, cum aritmetica încorporată și o sintaxă de expresie asemănătoare cu C.
Pentru shell-ul C:
- Numele de cale completă a comenzii este /bin/csh.
- Indicația implicită a utilizatorului non-root este hostname %.
- Indemnul implicit al utilizatorului root este hostname #.
The Korn Shell
The Korn shell (ksh):
- A fost scris de David Korn la AT&T Bell Labs
- Este un superset al shell-ului Bourne.
- Suportă tot ce există în shell-ul Bourne.
- Are caracteristici interactive comparabile cu cele din shell-ul C.
- Include caracteristici convenabile de programare, cum aritmetica încorporată și array-uri, funcții și facilități de manipulare a șirurilor de caractere de tip C.
- Este mai rapid decât shell-ul C.
- Execută scripturi scrise pentru shell-ul Bourne.
Pentru shell-ul Korn:
- Numele de cale completă a comenzii este /bin/ksh.
- Indicația implicită a utilizatorului non-root este $.
- Indicația implicită a utilizatorului root este #.
Shell-ul GNU Bourne-Again
Shell-ul GNU Bourne-Again (bash):
- Este compatibil cu shell-ul Bourne.
- Încorporează caracteristici utile din shell-urile Korn și C.
- Dispune de taste săgeată care sunt mapate automat pentru rechemarea și editarea comenzilor.
Pentru shell-ul GNU Bourne-Again:
- Numele de cale completă a comenzii este /bin/bash.
- Indicatorul implicit pentru un utilizator non-root este bash-x.xx$. (Unde x.xx indică numărul versiunii de shell. De exemplu, bash-3.50$)
- Interpelarea implicită pentru un utilizator rădăcină este bash-x.xx#. (Unde x.xx indică numărul versiunii de shell. De exemplu, bash-3.50$#)
Iată o scurtă comparație a tuturor celor 4 shell-uri și a proprietăților acestora.
Shell | Path | Default Prompt (non-root user) | Default Prompt (Root user) | |
---|---|---|---|---|
The Bourne Shell (sh) | /bin/sh și /sbin/sh | $ | # | |
The C Shell (csh) | /bin/csh | % | # | |
The Korn Shell (ksh) | /bin/ksh | $ | # | |
The GNU Bourne-Again Shell (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |
.