Index du Forum

communauté marocaine des utilisateurs de backtrack
 
 Index du ForumFAQRechercherS’enregistrerConnexion
:: [Tuto]Le schell bash Linux ::

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Outils, codes et astuces -> Tutos et Howto
Sujet précédent :: Sujet suivant  
Auteur Message
Alien
Administrateur

Hors ligne

Inscrit le: 10 Mai 2012
Messages: 173

MessagePosté le: Jeu 30 Aoû - 21:41 (2012)    Sujet du message: [Tuto]Le schell bash Linux Répondre en citant

Présentation et installation

Bonjour, je vais vous présenter un langage de scipting qui se nomme le shell bash.

Un langage de scripting vous le savez probablement est un langage de programmation qui permet d'automatiser des tâche sans avoir besoin d'être compilé, le scripting est aussi appelé shell qui veux dire coquille en anglais.
Bash quand à lui veux dire Bourne-again shell qui veux dire en gros renaissance du shell UNIX.
Bash est un logiciel libre publié sous GNU GPL et c'est aussi le couteau suisse de l'administrateur GNU/Linux.

Utilisation de base

Mon premier script

Sous Linux il est installé par défaut, sous Windows il faut passer par Cigwin sinon c'est mort et encore ce n'est jamais aussi performant que sous Linux.

Pour écrire son premier script il faut naturellement connaître un minimum de commande Linux.
chaque application console rajoute des commande au système Linux donc des possibilité au bash ce qui n'est pas le cas par défaut du batch de windows.

Le shebang

Avant d'écrire son premier script bash il faut savoir que celui-ci devra impérativement débuter par un shebang, dans le cas contraire il faudra faire appel à l'application bash avant de lancer votre script.

Avec shebang

Code:
./script.sh


Si le script est dans le path (le chemin des exécutable).

Code:
script.sh


Sans shebang

Code:
bash script.sh


Maintenant notre premier script

Code:
#!/bin/bash
sudo apt-get update
sudo apt-get upgrade


Ce script sert à mettre à jour un système Linux basé sur debian (ubuntu, Mint, debian, backtrack)

La ligne 1 est le shebang.
La ligne 2 est la première commande.
La ligne 3 est la seconde commande.

Maintenant comme ça, il est pas plus élaboré qu'un script batch nous allons donc rajouter une condition if, la condition sert à exécuter une commande que si une ou plusieurs condition sont remplie.

Notre premier script mis en condition.

Code:
#!/bin/bash

if [ `whoami` != root ]
then
echo "Erreur: Vous devez être root pour pouvoir exécuter ce script !"
exit 1
fi

apt-get update
apt-get upgrade


if démarre la condition
[] contient la formule de condition
then fait suivre les commandes si les conditions sont fausse
fi indique la fin des conditions.

On peux naturellement indiquer des variable à notre script, et aussi lui ajouter de la couleur, ce qui est impossible sous Windows.

Notre script en couleur avec les variable

Une variable est une donnée qui peut être changée au cours du déroulement du script, elle se présente sous cette forme.

ma_var="attribut"

Le signe = doit être collé pour prendre en compte le status de variable dans le script.

la variable s'utilise par son nom précédé du signe $ collé au nom de celle-ci.

$ma_var

Pour prendre en compte une variable avec la commande echo il faut lui ajouter l'option -e

Code:
#! /bin/bash

red='\e[0;31m'
NC='\e[0m'

if [ `whoami` != root ]
then
echo -e "$red Error:$NC Vous devez être root pour pouvoir exécuter ce script !"
exit 1
fi

apt-get update
apt-get upgrade


Les option et arguments.

Maintenant nous allons lui indiquer des options par exemple -y forcera le oui pour accepter les installations des mises à jours.

Code:
#! /bin/bash

red='\e[0;31m'
NC='\e[0m'

if [ `whoami` != root ]
then
echo -e "$red Error:$NC Vous devez être root pour pouvoir exécuter ce script !"
exit 1
fi

apt-get update
apt-get upgrade -y


On peux aussi mettre une vérification pour vérifier que la première commande s'est déroulée sans erreur avant de lancer la seconde.
On ajoutera les arguments && ainsi la seconde commande ne se lancera qu'une fois la première finie sans erreur.

Code:
#! /bin/bash

red='\e[0;31m'
NC='\e[0m'

if [ `whoami` != root ]
then
echo -e "$red Error:$NC Vous devez être root pour pouvoir exécuter ce script !"
exit 1
fi

apt-get update && apt-get upgrade -y


Il est possible de créer un fichier de log à l'exécution du script avec cette syntaxe derrière chaque commande.

Code:
2>> erreur.log


de cette façon il est possible de visualiser les éventuelles erreur en cas d'échec du script.

Les boucles while, for et until

La boucle while

La boucle while est une commande qui signifie que tan qu'une condition n'est pas terminée, execute la commande.

Par exemple ici la variable vaut 0 et la boucle à comme condition tant que la variable est inférieure à 10 incrémente la variable de 1.

Code:
#!/bin/bash

a=0

while [ $a -le 10 ]
do
   echo "$a"
   a=$(( $a + 1))
done


La boucle for

La boucle for est pas une boucle ordinaire car elle prend en compte une variable, par exemple.

pour 60 minutes dans une heure enlève une minute ou pour chaque ligne dans une texte affiche la ligne, c'est un peu difficile à comprendre sans pratiquer.

Ici un exemple de compte à rebours sur 10 minutes

Code:
MIN=10;for ((i=MIN*60;i>=0;i--));do echo -ne "\r$(date -d"0+$i sec" +%H:%M:%S)";sleep 1;done


Et un compteur sur 10 minutes

Code:
MAX=60;for ((i=0*60;i<=MAX;i++));do echo -ne "\r$(date -d"0+$i sec" +%H:%M:%S)";sleep 1;done


until

L'until fonctionne comme while à la différence qu'elle veux dire non pas "tant que" mais "jusqu'a"

Code:
#!/bin/bash
COUNTER=20
until [  $COUNTER -lt 10 ]; do
    echo COUNTER $COUNTER
    let COUNTER-=1
done


Les fonctions

Les fonctions permette de créer une routine sous forme d'un nom simple, par exemple une portion de code réutilisé plusieurs fois sera appelé sous la forme d'un nom

Exemple de routine pour un décompte.

Code:
#!/bin/bash

function decount
{
COUNTER=20
until [  $COUNTER -lt 10 ]; do
    echo COUNTER $COUNTER
    let COUNTER-=1
done
}

decount

Je continue demain il est tard.
Les membres suivants remercient Alien pour ce message :
skyme (31/08/12), Littlefic (31/08/12), orion (01/09/12)


Revenir en haut
Publicité






MessagePosté le: Jeu 30 Aoû - 21:41 (2012)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Tittannia


Hors ligne

Inscrit le: 30 Aoû 2012
Messages: 6

MessagePosté le: Dim 2 Sep - 22:06 (2012)    Sujet du message: [Tuto]Le schell bash Linux Répondre en citant

Excellent tuto, très bien expliqué t'as fait du bon boulot Okay

Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 20:20 (2017)    Sujet du message: [Tuto]Le schell bash Linux

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Outils, codes et astuces -> Tutos et Howto Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation

© Alien 2012