Un shell Unix este un shell conceput pentru sistemele de operare Unix și Unix care permite accesul la caracteristicile sistemului de operare intern. Acesta ia forma unei interfețe de linie de comandă accesibilă din consolă sau terminal . Utilizatorul emite comenzi ca o intrare text care este apoi executată de către shell. În diferite sisteme de operare Microsoft Windows , programul analogic este command.com sau cmd.exe .
Sistemele de operare de tip Unix au cel mai adesea un shell. Inițial, interpretul implicit al comenzii era sh , care a dat naștere la numeroase variații, inclusiv csh , extins în tcsh , sau ksh , sau rc ... Dar astăzi bash , inspirat de sh , ksh și csh , este cel mai popular shell, deși există și alți interpreți de shell, cum ar fi zsh sau ash .
Primul shell este shell-ul Thompson (în) apărut în 1971 cu prima versiune a Unix și scris de Ken Thompson , unul dintre creatorii Unix . A fost înlocuit de shell Bourne , scris de Stephen Bourne , în 1977 pentru versiunea 7 a Unix .
În 1978, Bill Joy , pe atunci student la Universitatea din California la Berkeley , a creat csh (C shell), o evoluție a shell-ului a cărei sintaxă a fost inspirată de cea a limbajului C. ordine. O versiune mai modernă a csh este apoi lansată sub numele tcsh .
Korn shell (KSH) a fost publicată în 1983 de către David Korn . Este compatibil cu shell-ul Bourne , preia unele caracteristici ale csh și adaugă funcții avansate de scriptare disponibile în limbi mai avansate, cum ar fi Perl .
Bourne Again Shell (bash) a apărut în 1988. A fost scris de Brian Fox pentru Free Software Foundation , ca parte a GNU proiectului . Este shell-ul pentru multe implementări gratuite ale Unix , cum ar fi sistemele GNU / Linux . Este compatibil cu shell-ul Bourne, al cărui scop este să fie o implementare gratuită.
Paul Falstad a fondat zsh în 1990 în timp ce era student la Universitatea Princeton . Acest shell preia cele mai practice funcții de bash , csh , tcsh .
Shells vă permit să efectuați redirecționări. O redirecționare redirecționează intrarea sau ieșirea unei comenzi către o altă comandă sau fișier.
Sintaxă:
commande > fichierRezultatul invocării comenzii commandeva fi scris în fișier fichier, suprascriind conținutul anterior.
Exemplu:
$: cat file Welcome $: echo "Hello world" > file $: cat file Hello worldSintaxă:
commande >> fichierRezultatul invocării comenzii commandeva fi scris în fișier fichier, urmând datele deja prezente.
Exemplu:
$: cat file Welcome $: echo "Hello world" >> file $: cat file Welcome Hello worldSintaxă:
commande < fichierComanda commandeva citi conținutul fișierului fichierîn loc să citească pe intrarea standard (tastatură).
Exemplu:
$: cat < file WelcomeSintaxă:
commande << ENDComanda commandeva fi citită pe intrarea standard până când va fi întâlnit cuvântul care urmează redirecționării duble.
Exemplu:
$: cat << TOTO ? foo ? bar ? moomoo ? TOTO foo bar moomooSintaxă:
commande_1 | commande_2Rezultatul comenzii commande_1va fi redirecționat către intrarea celei de-a doua comenzi commande_2.
Exemplu:
$: echo "Hello world" | grep -o "Hello" HelloSH | ksh | csh | tcsh | bash | zsh | |
---|---|---|---|---|---|---|
/etc/.login | Autentificare | Autentificare | ||||
/etc/csh.cshrc | da | da | ||||
/etc/csh.login | Autentificare | Autentificare | ||||
~ / .tcshrc | da | |||||
~ / .cshrc | da | da | ||||
~ / etc / ksh.kshrc | int. | |||||
/etc/sh.shrc | int. | |||||
$ ENV (de obicei ~ / .kshrc) | int. | int. | int. | |||
~ / .login | Autentificare | Autentificare | ||||
~ / .logout | Autentificare | Autentificare | ||||
/ etc / profile | Autentificare | Autentificare | Autentificare | Autentificare | ||
~ / .profil | Autentificare | Autentificare | Autentificare | Autentificare | ||
~ / .bash_profile | Autentificare | |||||
~ / .bash_login | Autentificare | |||||
~ / .bash_logout | Autentificare | |||||
~ / .bashrc | int. + n / autentificare | |||||
/ etc / zshenv | da | |||||
/ etc / zprofile | Autentificare | |||||
/ etc / zshrc | int. | |||||
/ etc / zlogin | Autentificare | |||||
/ etc / zlogout | Autentificare | |||||
~ / .zshenv | da | |||||
~ / .zprofil | Autentificare | |||||
~ / .zshrc | int. | |||||
~ / .zlogin | Autentificare |