0% ont trouvé ce document utile (0 vote)
29 vues10 pages

Revision Scripting 1

Le document compare Unix et Linux, en soulignant que Linux est un système d'exploitation libre basé sur Unix. Il présente également des caractéristiques de Linux, des commandes de base pour interagir avec le système, ainsi que des concepts de scripting comme les tableaux, les expressions, les tests, les structures conditionnelles et itératives. Enfin, il aborde la création de menus et l'utilisation de la commande getopts pour gérer les options dans les scripts.

Transféré par

emmna Makknii
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues10 pages

Revision Scripting 1

Le document compare Unix et Linux, en soulignant que Linux est un système d'exploitation libre basé sur Unix. Il présente également des caractéristiques de Linux, des commandes de base pour interagir avec le système, ainsi que des concepts de scripting comme les tableaux, les expressions, les tests, les structures conditionnelles et itératives. Enfin, il aborde la création de menus et l'utilisation de la commande getopts pour gérer les options dans les scripts.

Transféré par

emmna Makknii
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Scripting

Unix VS Linux:
• Unix:
o Payant
o Système propriétaire
• Linux
o S.E Libre basé sur le system Unix

Caractéristique du OS Linux :
• Gratuité du noyau et de certaines application utilisateurs.
• Diffusion ouverte permettant un enrichissement constant.
• Multi-utilisateurs.
• Multitâches.

Shell :
Shell présente une interface entre l'utilisateur et le système d’exploitation.
Ainsi, le Shell est un programme qui permet à l'utilisateur de dialoguer avec le
cœur du système (le noyau).

Commande de base :
date : affiche la date,
cal : affiche le calendrier,
who : affiche les utilisateurs connectés,
whoami : affiche votre nom d'utilisateur,
uname -a : affiche toutes les informations sur le système,
whatis : affiche une description de la commande,
hostname: afficher le nom de la machine,
ls : -l : Lister les information relatives à un fichier ou un répertoire.
-a : Afficher tous les fichiers, y compris les fichiers cachés.
-R : Pour assurer un affichage récursif (le contenu du répertoire et de ses
sous répertoires).
-i : Afficher le numéro d’i-node des fichiers et des répertoires (certaines
informations concernant le fichier)
head -n nbre fichier : afficher les nbre premières lignes du fichier
head -c nbre fichier : afficher les nbre premiers caractères du fichier.
tail -n nbre fichier : afficher les nbre dernières lignes du fichier
tail -c nbre fichier : afficher les nbre derniers caractères du fichier
wc -l fichier : Afficher le nombre de lignes du fichier.
wc -w fichier : Afficher le nombre de mots du fichier.
wc -c fichier : Afficher le nombre d’octets du fichier.
wc -m fichier : Afficher le nombre de caractères du fichier.
paste –d « délimiteur» fichier1 fichier2 : concatène horizontalement chaque
ligne du fichier1 avec la ligne correspondante du fichier2 séparé par « délimiteur
».
paste –s fichier1 fichier2 : concatène verticalement les lignes du fichier 1 avec
les lignes du fichier 2 .
join fichier1 fichier2 : permet du fusionner les lignes de deux fichiers ayant des
champs communs.
grep "pomme" file.txt : Rechercher un mot spécifique
grep -i "bonjour" fichier.txt : Rechercher un motif sans tenir compte de la casse
grep "^Le" fichier.txt : Rechercher des lignes commençant par un mot spécifique
grep "fin$" fichier.txt : Rechercher des lignes se terminant par un mot spécifique
grep -v "erreur" fichier.txt : Rechercher des lignes ne correspondant pas à un
motif
grep "[0-9]" fichier.txt : Rechercher des lignes contenant des chiffres
$# Nombre d’arguments reçus par le script
$0 Le nom du script lui-même (./script.sh)
$1 $2 … $9 ${10} $1 est la valeur du premier argument, $2
la valeur du second…
$* Liste des arguments

Tableau :
• Créer un tableau :
declare -a tab=(valeur0 valeur1 valeur2 ...)
tab(valeur0 valeur1 ...)
tab=([indice0]=valeur0 [indice1]=valeur1 ...)
• Assigner un élément
tab[indice]=valeur
• Affichage des éléments
echo ${tab[indice]}
echo ${tab[*]}
echo ${tab[@]}
• Nombre des indices
echo ${!tab[*]}
• Nombre des éléments
echo ${#tab[*]}
echo ${#tab[@]}
• Ajout au début
tab=( NouvElem ${tab[*]} )
• Ajout à la fin
tab[${#tab[*]}]=NouvElem

Expression :
• Operateurs :
`expr $u + $v`
`expr $u \* $v`
• Longueur d’une chaine :
${#chaine}
`expr length $chaine`
• Longueur de sous-chaînes correspondant à un motif au début
d'une chaîne :
`expr match $chaine $souschaine`
`expr $chaine : $souschaine`
• Position numérique dans $chaine du premier caractère dans
$souschaine qui correspond :
`expr index $chaine $souschaine`

• Extraction d’une sous chaine :


${chaine:position:longueur}
`expr substr $chaine $position $longueur`

• Supprime la correspondance la plus petite de $souschaine à


partir du début de $chaine:
${chaine#souschaine}
• Supprime la correspondance la plus grande de $souschaine à
partir du début de $chaine:
${chaine##souschaine}

• Supprime la correspondance la plus grande de $souschaine à


partir du début de $chaine:
${chaine%souschaine}
• Supprime la plus grande correspondance de $souschaine à
partir de la fin de $chaine:
${chaine%%souschaine}

• Remplace la première correspondance de $souschaine par


$remplacement :
${chaine/souschaine/remplacement}
• Remplace toutes les correspondances de $souschaine avec
$remplacement :
${chaine//souschaine/remplacement}
Test :
• Test sur les fichiers :
test -e <nom_fichier> : vrai si l’argument existe
test -f <nom_fichier> : vrai si l’argument est un fichier
test -d <nom_fichier> : vrai si l’argument est un répertoire
test -r <nom_fichier> : vrai si on a le droit de lire le fichier
test -x <nom_fichier> : vrai si on a le droit d’exécuter le fichier
test -w <nom_fichier> : vrai si on a le droit d’écrire dans le fichier
test -s <nom_fichier> : vrai si l’argument existe et non vide
• Test sur les nombres :
test "i1" -eq "i2": Teste si i1 est égal à i2
test "i1" -ne "i2": Teste si i1 n'est pas égal à i2
test "i1" -gt "i2": Teste si i1 est plus grand que i2
test "i1" -lt "i2": Teste si i1 est inférieur à i2
test "i1" -ge "i2": Teste si i1 est plus grand ou égal à i2
test "i1" -le "i2": Teste si i1 est inférieur ou égal à i2
• Test sur les chaines :
test -n "string" : Teste si la longueur de la chaîne string est différente de
zéro
test -z "string": Teste si la chaîne string est égale à zéro
test "s1" = "s2": Teste si la chaîne s1 est égale à s2
test "s1" != "s2": Teste si la chaîne s1 n'est pas égale à s2
• Test vs []
test –e fichier OR [ –e fichier ]
test $v1 –eq $v2 OR [ $v1 –eq $v2 ]
test $chaine1 = $chaine2 OR [ $chaine1 = $chaine2 ]

• Combinaisons des options


! : Condition Not [ ! –d /etc/group ]
-a : Condition AND [ -f script.sh -a -x script.sh ]
-o : Condition OR [ -d script.sh -o -x script.sh ]
\( \) : pour traiter un groupe d’expressions
[ -w script.sh -a \( -e fich -o -e fich7 \) ]
• Conditionnelles IF

• Conditionnelles Case
• Structure Itérative
• Fonctions :
function nom_fonction { OR nom_fonction() {
Commande... Commande...
} }

• Example Retour d’une fonction:


Max 33 34 #appel de la fonction.
return_val=$?

• Menu :
PS3="Votre choix : "
select item in "- Sauvegarde -" "- Restauration -" "- Fin -"; do
echo "Vous avez choisi l'item $REPLY : $item"
case $REPLY in #vérifier de manière multiple le contenu de REPLAY
1)
echo "Lancement de la sauvegarde";;
2)
echo "Lancement de la restauration";;
3)
echo "Fin du script"
exit ;;
*)
echo "Choix incorrect";;
esac
done
• Menu getops :
while getopts "ab:e:" option; do
echo "getopts a trouvé l'option $option"
case $option in
a)
echo "Exécution des commandes de l'option a"
echo "Indice de la prochaine option à traiter : $OPTIND"
;;
b)
echo "Exécution des commandes de l'option b"
echo "Liste des arguments à traiter : $OPTARG"
echo "Indice de la prochaine option à traiter : $OPTIND"
;;
e)
echo "Exécution des commandes de l'option e"
echo "Liste des arguments à traiter : $OPTARG"
echo "Indice de la prochaine option à traiter : $OPTIND"
;;
esac
done

• La liste des options utilisables avec ce script sont définies à la ligne (getopts
"ab:e:" option).
Il s'agit des options -a, -b et -e.

• Le caractère ":" inscrit après les options " b" et "e" (getopts "ab:e:" option)
indique que
ces options doivent être suivies obligatoirement d'un argument.

• La variable "option" (getopts "ab:e:" option) permet de récupérer la valeur de


l'option en
cours de traitement par la boucle while.

• La variable réservée "$OPTIND" contient l'indice de la prochaine option à traiter.

• La variable réservée "$OPTARG" contient l'argument associé à l'option

Vous aimerez peut-être aussi