====== Linux ====== ===== Shells principaux ===== ==== sh ==== |**sh ** | Bourne Shell | [[https://www.shellunix.com/sh.html|Documentation FR]] | | | - Il est possible de lancer un script en tapant en ligne de commande le nom de fichier contenant le script\\ - Le shell peut être utilisé en arrière-plan\\ - Les commandes peuvent fonctionner en mode synchrone comme asynchrone\\ - Prise en charge des redirections d'entrée/sortie et du tube, ou pipe\\ - mise à disposition d'un jeu de commandes natives au shell\\ - existence de structures de contrôle, de l'adressage indirect, et de la notion de fonction\\ - variables non-typées\\ - variables à portée globale\\ - bannissement de l’instruction de branchement inconditionnel goto, afin d’imposer une programmation structurée\\ - mécanisme de substitution de commande avec syntaxe en back quotes : `command`.\\ - redirection d'entrée de type document « ici-même » avec la syntaxe << pour substituer des arguments d'entrée dans un script\\ - boucles for ~ do ~ done, avec en particulier le métacaractère $* pour balayer les arguments\\ - structure de contrôle case ~ in ~ esac, pour faciliter le tri des arguments d'une commande\\ - Des possibilités d'extension pour le contrôle et les tests de comparaisons sur les flux d'entrée/sortie. || ==== ksh ==== |**ksh** | Korn Shell | [[https://www.shellunix.com/ksh.html|Documentation FR]]\\ [[http://www.kornshell.com/doc/|Doc officielle]] | | | Compatible avec le Bourne shell, le Korn shell inclut également un grand nombre de fonctionnalités du C shell ; il permet également des fonctions de scripting avancées utilisées dans des langages de programmation plus évolués comme awk, sed, TCL et Perl. || ==== bash ==== |**bash**| Bourne Again Shell | [[http://tiswww.case.edu/php/chet/bash/bashref.html|Bash Reference Manual]]\\ [[https://www.gnu.org/software/bash/manual/|GNU Bash Manual]] | | | Fondé sur le Bourne shell, Bash lui apporte de nombreuses améliorations, provenant notamment du Korn shell et du C shell. Bash est un logiciel libre publié sous licence publique générale GNU. Il est l'interprète par défaut sur de nombreux Unix libres, notamment sur les systèmes GNU/Linux. || ==== csh ==== |**csh** | C Shell | [[https://www.shellunix.com/csh.html|Documentation FR]] | | | Le C shell ou csh est un interpréteur de commandes informatique pour le système Unix. Abrégé csh, c'est une évolution du shell sh utilisant une syntaxe plus proche du langage C. Un de ses avantages est la possibilité de ré-utilisation de l'historique des commandes. Le C shell a eu également son extension avec tcsh, permettant l'édition directe de la ligne de commande. || ==== zsh ==== |**zsh** | Z Shell | [[https://doc.ubuntu-fr.org/zsh|Wiki zsh (Ubunutu)]]\\ [[https://zsh.sourceforge.io/Doc/|Doc zsh officielle]] | | | **zsh** peut être vu comme un « Bourne shell » étendu avec beaucoup d'améliorations. Il reprend en plus la plupart des fonctions les plus pratiques de bash, ksh et tcsh :\\ \\ * Complétion des commandes, * des options et des arguments de la plupart des commandes,\\ * Des fonctions de "Globbing" ou "Expansion" très avancées,\\ * Partage de l'historique des commandes entre tous les shells zsh actifs,\\ * Utilisation améliorée des variables et des tableaux,\\ * Édition des commandes multi-lignes dans un seul buffer,\\ Correction « orthographique » des commandes tapées,\\ * Plusieurs modes de compatibilité (zsh peut par exemple être vu comme un shell bourne quand il est exécuté en tant que /bin/sh),\\ * Invite de commande personnalisable. ||