Vous êtes sur la page 1sur 31

Abderazak Chaouche

Formateur Linux
Systeme & administration
a.chaouche@laposte.net
Les variables d'environnements

Principales caractéristiques:
Sont toutes définies en majuscules
Initialisées dans les scripts de connexions
Leurs noms ont une signification pour le SE, donc
ne pas utiliser comme noms de variables utilisateurs
IFS
● #echo $IFS
● #read a b c
Alger Oran Constantine
● #echo $a ------> Alger
● #echo $b ------> Oran
● #echo $c ------> Constantine
IFS: separateur occurrences
● IFS=”:”
● #read a b c
Alger Oran :Constantine: Tipaza Skikda Dellys
● #echo $a ------> Alger Oran
● #echo $b ------> Constantine
● #echo $c ------> Tipaza Skikda Dellys
● declare |grep IFS
Separateurs

|
;
,
:
PATH: Chemin
● Définit le chemin que le script doit parcourir pour
aller chercher une commande.
● # echo $PATH
● #PATH=/bin
● #echo $PATH
● (Peut être exit pour relancer vi)
PATH
● #mkdir -p /root/rep1/rep2/rep3
● #cd rep3 (Non)
● #CDPATH=/root/rep1/rep2
● cd rep3 (Oui)
● declare |grep CDPATH
HOME
● #echo $HOME
● #pwd
● #cd /var/log
● #cd /HOME
● #HOME=/var/log
● #cd $HOME
● declare|grep HOME
PS1
● C'est le prompt du 1er niveau = prompt du shell
● #echo $PS1 (#declare|grep PS1)
● PS1='[\u@\h \W]\$ ' ---> [root@Zeus ~]# _
● PS1='Merzak ' ---> Merzak _
● Se définit dans bashrc pour prise effet a chaque
démarrage.
PS2
● Prompt du 2eme niveau.

● #echo $PS2

● #cat >f1 << fin


>_

● #PS2= Text:

● #cat >f1 <<fin


Text: _
Les variables de positions
● Associées aux paramètres de positions: a chaque
paramètre correspond une variable de position.
● P1 P2 P3 - - - - - P10 - - - - P99
● $1 $2 $3 - - - - - -${10} - - ${99)
● $# : Nombre de parametres definis
● $*: Tous les paramètres ($@)
● $$ : Numéro du processus de la procédure
Exemple
● #set $(find /home -type f -maxdepth 1)
● #echo $*
● #echo $#
● #echo $1
● #echo ${12}
● #echo $$
La commande echo

#echo [-ne] [message]


Écrit chaque message sur la sortie standard
-n : Ne pas effectuer le saut de ligne final
-e : interpréter les séquences de caractères precedees
d'un backslash “\”
\a : alerte (Sonnerie ou bip)
\b : retour en arrière d'un caractère
\c : supprimer le saut de ligne final
\f : saut de page
\n : saut de ligne
\r : retour chariot
\t : tabulation horizontale
\v : tabulation verticale
\\ : backslash
\nnn : le caractere de code ascii nnn (en octal)
Exemples

#echo -e “ \a\n\t\t\bCoursLinux\\Unix \n\n”

#echo -e “\n\t Administration \tSysteme\tLinux \n\n”

#echo -e “\123i Mohamed”


Execution sequentielle

#who;date;ls;more fiche
fiche fichier existant
Groupement de liste de commandes

Deux formes d'utilisations:


Utilisation des accolades {}
Utilisation des parenthèses ()
Accolades

{ cde1;cde2;cde3; ........;}
Cette forme d'utilisation ne crée
pas de processus fils.
#{ ls -l;who;date;}
Laisser un espace avant ls
Autre exemple:
#{ who;date;ls;}>fiche
Accolades ....

#{who;exit; }
Ce regroupement met fin a la session : le SE
considère la liste de commandes comme un
enchaînement.

#pwd
#{ cd /etc; ls -l passwd; }
#pwd
Parentheses

( cde1;cde2;cde3; ........;)
Cette forme d'utilisation crée
un processus fils.
#( ls -l;who;date;)
Laisser un espace avant ls
Autre exemple:
#( who;date;ls;) >fiche
Parentheses

#( who;exit; )
Ce regroupement ne met pas fin a la session

#pwd
#( cd /etc; ls -l passwd; )
#pwd
Les fonctions

Sont des facilitées pour définir des groupes de


commandes a l'intérieur du shell. En effet
l'exécution d'une fonction est plus rapide qu'une
procédure.
Comme une variable, la fonction a une durée de vie
de session, sauf si elle est définie dans un script de
démarrage
Syntaxe de déclaration

#nom() {blanc liste;}


Exemple:

#mafonction() { ls -l|less;}
#mafonction
#cherchef() { find / -type f -maxdepth 1;}
#cherched() { find / -type d -maxdepth 1;}

#cherchef
#cherched
Gestion de fonctions

Afficher les fonctions actives : #declare -f


#declare -f > .mes-fonctions
#vim .mes-fonctions
Gestion de fonctions

Supprimer une fonction de l'environnement:


#unset nom-fonction

#declare -f
#unset cherchef
#declare -f
Relancer une fonction

#declare -f
#exit
#. .mes-fonctions
#declare -f
La rendre permanente

Inclure la fonction dans ~/.bashrc


Exercice 1

Écris une fonction qui permet de déterminer si un


fichier donné en format absolu existe ou pas.
fonc ()
{
read -p "Nom complet du fichier: " x;
cat $x >/dev/nul 2>&1 && echo "Le
fichier $x existe" || echo "Le fichier $x
n'existe pas";
}
Exercice 2