Du shell au Script shell .. Exo 2 #bigboss
Caractéristiques d’un interpréteur de commandes
Les interpréteurs de commandes disponibles en environnement Unix ont en commun les fonctionnalités suivantes :
- Ils proposent un jeu de caractères spéciaux permettant de déclencher des actions particulières.
- Ils possèdent des commandes internes et des mots clés parmi lesquels certains sont utilisés pour faire de la programmation.
- Ils utilisent des fichiers d’initialisation permettant à un utilisateur de paramétrer son environnement de travail.
Chaque shell propose ses propres caractères spéciaux, commandes internes, mots clés et fichiers de paramétrage. Heureusement, les interpréteurs les plus utilisés actuellement dérivent tous du shell Bourne et ont, par conséquent, un certain nombre de fonctionnalités en commun.
Principaux interpréteurs de commandes
/usr/bin/sh
Cet exécutable correspond au shell POSIX sur certaines plates-formes (AIX, HP-UX), au Bourne Shell sur d’autres (Solaris). La page de manuel “sh” de chaque plate-forme indique la localisation des exécutables correspondant aux shells BOURNE et POSIX. Le shell POSIX possède, à quelques exceptions près, les fonctionnalités du ksh.
/usr/bin/ksh
Cet exécutable correspond au Korn Shell 88. Le programme “ksh” sait interpréter les scripts utilisant les fonctionnalités des shells Bourne, POSIX et Korn.
/usr/bin/ksh93
Cet exécutable correspond au ksh 93. Il s’agit d’un sur-ensemble du ksh 88. Ce shell n’est pas disponible sur toutes les plates-formes Unix.
/usr/bin/bash ou /bin/bash
Cet exécutable correspond au Bourne Again Shell. Le programme “bash” sait interpréter les scripts utilisant les fonctionnalités des shells Bourne, POSIX et Bourne Again. Le bash est disponible au téléchargement pour de nombreuses plates-formes UNIX qui ne possèdent pas ce shell en standard.
/usr/bin/csh
Cet exécutable correspond au C-shell. Le C-shell ne sait pas interpréter les scripts utilisant les fonctionnalités des shells Bourne, POSIX, Korn et Bourne Again. Il comprend uniquement la syntaxe C-shell.
Installer un nouveau shell
Pour le moment, vous devriez avoir sh et bash installés sur votre système. Si vous voulez essayer un autre shell, comme ksh par exemple, vous pouvez le télécharger comme n’importe quel paquet :
# apt-get install ksh |
Une fois installé, il faut demander à l’utiliser pour votre compte utilisateur. Pour cela, tapez :
$ chsh |
chsh signifie Change Shell.
On vous demandera où se trouve le programme qui gère le shell. Vous devrez indiquer /bin/ksh pour ksh, /bin/sh pour sh, /bin/bash pour bash, etc.
Création d’un premier Script
On passe par la commande touch ou par un éditeur pour créer le script
touch monscript.sh ou nano monscript.sh
J’ai donné ici l’extension .sh à monscript. On le fait souvent par convention pour indiquer que c’est un script shell, mais ce n’est pas obligatoire. Certains scripts shell n’ont d’ailleurs pas d’extension du tout.Il pourrait s’appeler monscript
La première ligne du script commence par le “sha-bang.”Il sert à dire quel shell on va utiliser .il permet de charger le bon shell mais il n’est pas obligatoire..si il n’est pas présent le shell de l’utilisateur courant sera utilisé.
#! <---Ca c'est le sha-bang on aura donc en début de script bash:
#!/bin/bash
Par convention et bon sens on va ajouter des commentaires dans le script. Ce sont des lignes qui ne seront pas exécutées mais qui permettent d’expliquer ce que fait votre script.
Tous les commentaires commencent par un #
#!/bin/bash # Affichage du répertoire courant pwd
Ensuite il faut enregistrer le script et lui donner des droits d’execution. Avec la commande :
chmod +x monscript.sh
il passera donc en – rwx r-x r-x au niveau de la permission
Et enfin on l’exécute avec ./
./monscript.sh
Lire PDF commandes interne et externe
EXO Commandes internes et externes
- Connectez-vous avec votre nom de login et ouvrez une console
- Dites si echo est une commande interne ou externe
- Quel est le résultat des commandes suivantes:
- help
- help echo
- help cd
- help ls cd –help
- ls –help
Que pouvez-vous en déduire ?
4. Quel est le type de données contenu dans les fichiers suivants ?
- /bin/bash
- /etc/init.d
- /sbin/poweroff
Exo Affichage à l’écran
1. Exécutez la commande echo qui permet d’afficher le texte suivant à l’écran :
Les RARE C3 sont les meilleurs
oui, je le pense aussi
2. A l’aide de la commande echo, affichez la liste de caractères suivants:
& ~ # ( ) | \ ^@ $ * ! ;
3. Quel est le résultat affiché par les lignes de commandes suivantes:
echo pwd
echo `pwd`
echo "il ya `ls | wc -l` fichiers dans `pwd`"
echo "`whoami`, nous sommes le `date '+%d/%m/%y'`"
echo "$(whoami), nous sommes le $(date) "
Caractères spéciaux du shell
Caractères | sh (Bourne) | ksh 88 | bash | Signification |
espacetabulationsaut de ligne | oui | oui | oui | Séparateurs de mots sur la ligne de commande. |
& | oui | oui | oui | Arrière-plan. |
| < << > >> | oui | oui | oui | Tube et redirections. |
>| | non | oui | oui | Écrasement d’un fichier (option noclobber). |
(cmde1;cmde2){cmde1;cmde2} | oui | oui | oui | Regroupement de commandes. |
; | oui | oui | oui | Séparateur de commandes. |
* ? [ ] | oui | oui | oui | Expressions pour noms de fichier et case. |
* ? [ ] | non | oui | oui | Expressions pour la commande de test [[…]]. |
?() +() *()!() @() | non | oui | oui | Expressions pour noms de fichier [[ ]] et case. |
$ et ${ } | oui | oui | oui | Valeur d’une variable. |
`…` | oui | oui | oui | Substitution de commandes. |
$() | non | oui | oui | Substitution de commandes. |
’…’”…”\ | oui | oui | oui | Caractères de protection. |
$(( )) | non | oui | oui | Substitution d’expression arithmétique. |
cmde1 && cmde2cmde1 || cmde2 | oui | oui | oui | Opérateurs logiques du shell. |
# | oui | oui | oui | Commentaire. |
~ | non | oui | oui | Répertoire d’accueil de l’utilisateur. |
Lire PDF tubes de communications
Lire PDF Regroupement de commandes
Lire PDF Processus en arrière plan
L’environnement SHELL
EXO Pré-Requis