Shell Unix![]() Un shell Unix est un interpréteur de commandes destiné aux systèmes d'exploitation Unix et de type Unix qui permet d'accéder aux fonctionnalités internes du système d'exploitation. C'est l'interface utilisateur du système d'exploitation, il permet entre autres de se déplacer dans l'arborescence du système, créer, éditer ou supprimer des répertoires et des fichiers. Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. L'utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell. Les commandes sont des fichiers exécutables, située dans certains répertoires du système. Le shell est donc un programme qui peut exécuter ces commandes ; il se trouve dans le répertoire Les systèmes d'exploitation de type Unix disposent le plus souvent d'un shell. Il existe une trentaine de shell différents. À l'origine, l'interpréteur de commandes par défaut était sh. Aujourd'hui bash est le shell le plus répandu. Historique des shells UnixLe premier shell est le Thompson shell (en) apparu en 1971 avec la première version d’Unix et écrit par Ken Thompson, l'un des créateurs d'Unix. Il est remplacé par le Bourne shell, écrit par Stephen Bourne, en 1977 pour la version 7 d'Unix. En 1978, Bill Joy, alors étudiant à l'Université de Californie à Berkeley, crée csh (C shell), une évolution du shell dont la syntaxe s'inspire de celle du langage C. Il permet notamment la réutilisation de l'historique des commandes. Une version plus moderne du csh est ensuite publiée sous le nom tcsh. Le Korn shell (ksh) est publié en 1983 par David Korn. Il est compatible avec le Bourne shell, reprend certaines fonctionnalités de csh et ajoute des fonctions de scripts avancées disponibles dans des langages plus évolués tels que le Perl. Le Bourne-Again shell (bash) apparait quant à lui en 1988. Il est écrit par Brian Fox pour la Free Software Foundation dans le cadre du projet GNU. C'est le shell de nombreuses implémentations libres d'Unix, telles que les systèmes GNU/Linux. Il est compatible avec le Bourne shell dont il se veut une implémentation libre. Paul Falstad crée zsh en 1990 alors qu'il est étudiant à l'université de Princeton. Ce shell reprend les fonctions les plus pratiques de bash, csh, tcsh. ShellsÀ l'origine, l'interpréteur de commandes par défaut était sh, qui donna naissance à de nombreuses variantes, dont csh, étendu en tcsh, ou ksh, ou encore rc. Aujourd'hui bash, s'inspirant de sh, ksh, et csh, est le shell le plus répandu, bien qu'il existe d'autres interpréteurs de commandes, comme zsh, ou ash.
UtilisationLe shell est un programme, exécutable en mode terminal, qui se trouve dans le répertoire ExempleUne session avec l'interpréteur tcsh : [ske:~] ske% cd /usr/
[ske:/usr] ske% ls
bin lib local share
include libexec sbin standalone
[ske:/usr] ske% top
[ske:/usr] ske% cd /tmp
[ske:/tmp] ske% ls -l
total 152
-rw-r--r-- 1 ske admin 68328 15 Apr 10:54 93633C68062E855100FCE70A
-rw-r--r-- 1 ske admin 0 19 Apr 09:28 cs_cache_lock_501
-rw-r--r-- 1 root admin 644 23 Apr 09:05 mcx_compositor
drwxr-xr-x 3 ske admin 102 19 Apr 11:39 pb-man
-rw-r--r-- 1 ske admin 74 15 Apr 10:54 reload-stub.s
srwxrw-rw- 1 root admin 0 23 Apr 09:04 slp_ipc
[ske:/tmp] ske% echo Hello World >test.tmp
[ske:/tmp] ske% cat test.tmp
Hello World
[ske:/tmp] ske% rm test.tmp
[ske:/tmp] ske%
Si on regarde la première ligne de cet exemple :
Entre crochets, Sur la deuxième ligne, on voit que l'on s'est effectivement déplacé : on se trouve maintenant dans le répertoire usr, comme l'indique le début de la ligne : Gestion des entrées/sorties et redirectionLes shells permettent de réaliser des redirections. Une redirection consiste à rediriger l'entrée ou la sortie d'une commande vers une autre commande ou un fichier. Redirection droite simpleSyntaxe : commande > fichier
Le résultat de l'invocation de la commande Exemple : $: cat file
Welcome
$: echo "Hello world" > file
$: cat file
Hello world
Redirection droite doubleSyntaxe : commande >> fichier
Le résultat de l'invocation de la commande Exemple : $: cat file
Welcome
$: echo "Hello world" >> file
$: cat file
Welcome
Hello world
Redirection gauche simpleSyntaxe : commande < fichier
La commande Exemple : $: cat < file
Welcome
Redirection gauche doubleSyntaxe : commande << END
La commande Exemple : $: cat << TOTO
? foo
? bar
? moomoo
? TOTO
foo
bar
moomoo
PipeSyntaxe : commande_1 | commande_2
Le résultat de la commande Exemple : $: echo "Hello world" | grep -o "Hello"
Hello
Fichier de configuration
Analogie chez d'autres système d'exploitationDans les différents systèmes d'exploitation Microsoft Windows, le programme analogue est command.com, ou cmd.exe. Notes et référencesNotes
Références
Voir aussiArticles connexesInformation related to Shell Unix |
Portal di Ensiklopedia Dunia