Du shell au Script shell .. Exo 2 #bigboss

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

  1. Connectez-vous avec votre nom de login et ouvrez une console
  2. Dites si echo est une commande interne ou externe
  3. 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

 

LIRE PDF AFFICHAGE A L’ECRAN

 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 sur les redirections

Lire PDF tubes de communications

20150204_094112(1)

 

20150204_094125

 

Lire PDF Regroupement de commandes

Lire PDF Processus en arrière plan

L’environnement SHELL

EXO Pré-Requis

www.pdf24.org    Envoyer l'article en PDF   
Posted on: 3 novembre 2015tontonfred