Bash : généralités
Les shells
Un shell est un interpréteur de commandes, permettant d'accéder aux fonctionnalités internes de l'OS. Un shell est également un langage de programmation qui se présente sous la forme d'une ligne de commande depuis une console ou un terminal.
Sur les systèmes de type Unix nous trouvons entre autres :
- sh : Bourne Shell, l'ancêtre
- bash : Bourne Again Shell; une amélioration du Bourne Shell, disponible par défaut sous Linux, Mac OS X et est porté sous Windows par le projet Cygwin. Depuis Windows 10 et Windows Server 2019, l'interface WSL fournit un noyau compatible Linux avec un shell BASH.
- ksh : Korn Shell, un shell puissant dispo sur les Unix propriétaires, mais aussi en version libre compatible avec bash.
- csh : C shell : il utilise une syntaxe proche du C
- tcsh : Tenex C Shell : Amélioration du C shell.
- zsh : Z shell : shell récent reprenant les meilleurs idées de bash, ksh, tcsh.
On se concentrera ici sur Bash.
Scripts
Pour automatiser plusieurs commandes, il suffit de les écrire dans un fichiers ASCII d'extension .sh. Quelques points essentiels :
- Un éditeur de texte suffit
- Il faut donner les droits d'exécution au fichier
- Le lancement du script se fait par son nom : ./hello.sh
- Un script commence toujours par #!<shell>, qui permet de définir le chemin du shell utilisé
- ! Le shabang indique que c'est un script
- Un commentaire bash se fait avec #