Utilisation du shell Bash
Dr. Yahia Benmoussa
[email protected]Plan
●
Édition de la ligne de commande
●
Les variables shell
●
Les variables d'environnement
●
Expansion de la ligne de commande
●
Les scripts
Édition de la ligne de commande
●
Ctrl-a → déplacement au début de la ligne de commande
●
Ctrl-e → déplacement à la fin de la ligne de commande
●
Ctrl-u → suppression jusqu'au début de la ligne de
commande
●
Ctrl-k → suppression jusqu'à la fin de la ligne de
commande
●
Ctrl-flèche → Déplacent mot par mot
Les variables shell
●
Utilisées pour stocker des valeurs ou des sortie de
commandes
●
Initialiser une variable
– NOM_VARIABLE=VALEUR
●
Référencer une variable
– $NOM_VARIABLE
●
Ex.
– MESSAGE= Bonjour
– echo $MESSAGE
Les variables d'environnement
●
Les variable bash sont locales
– Initialisé avec NOM_VARIABLE=VALEUR
●
Les variable d'environnement sont globale
– Initialisé avec export NOM_VARIABLE=VALEUR
– Hérité par tous les processus fils du shell
Les variables d'environnement (II)
●
Exemples :
– Variable de configuration
●
PATH
●
HISTFILESIZE
– Variable d'information
●
HOME
●
BASH
●
EUID
Alias
●
Les alias permettent de créer un raccourcis vers des
commandes
– alias setip='sudo ifconfig eth0 192.168.0.1'
●
alias (sans aucun arguments) → lister tous les alias
Expansion de la ligne de commande
●
Bash offre la possibilité d'écrire des
commandes de façon compacte.
●
Expansion de la ligne de commande →
substitution d'une partie de la ligne de
commande (écrite de façon compacte) par une
autre.
Expansion de la ligne de commande
●
Types d'expansion
– Métacaractères (noms de fichier)
– Tilde (~)
– Substitution de commandes
– Alias
– Variables
– Arithmétique
Expansion des métacaractères
●
Appliquée aux noms de fichiers
– * → zéro ou plusieurs caractère
– ? → un caractère quelconque
– [0-9] → un nombre dans l'intervalle
– [abc] → un caractère présent dans la liste
– [^abc] - un caractère absent de la liste
Tilde ( ~ )
●
~ → répertoire personnel
●
~X → répertoire personnel de l'utilisateur X
Substitution de commande
●
$(commande) ↔ `commande`
– Ex.
●
chgrp $(id -g) file.txt
●
chgrp `id -g` file.txt
Expansion d'accolades
●
Appliqué a des nom de fichier
●
Éviter de réécrire les chaînes de caractères répétitives.
– Ex.
●
touch file{1,2,3}.txt ↔ touch file1.txt file2.txt file3.txt
●
Différence avec expansion des caractères spéciaux → Les
noms de fichiers peuvent ne pas pas exister.
Désactivation des expansion
●
Backslash (\)
– Ex.
ls file\*.txt
●
●
echo \$HOME
●
Quottes
– ' ' → désactive toutes les expansions
– '' '' → désactive toutes les expansions sauf :
●
Expansion de variables
●
Substitution de commandes ``
●
Les scripts shell
●
Les scripts shell sont des fichiers textes qui contiennent
des commandes à exécuter
●
Les scripts sont utiles pour
– Automatiser des tâche
– Exécuter des tâche d'administration
– Manipulation des fichier texte.
Création d'un script bash
●
Créer d'un fichier contenant des commande
– La première ligne doit être #!/bin/bash
– Les ligne précédées par # sont des commentaires
●
Rendre le fichier script exécutable
– Ex. chmod u+x myscript.sh
●
L'exécution d'un script se fait en spécifiant le chemin
absolue ou un chemin relatif vers le fichiers de ce script.
Shell login vs non-login
●
Les shell login
– Les shell créé à la connextion
– Commande su -
●
Les shell non-login
– Exécution de scripts
– Commande su
Script d’initialisation
●
Exécutés avant l'exécution su shell
●
Deux types de script de démarrage
Script de démarrage pour les login shell
●
Enregistré dans
– /etc/profile (global)
– ~/.bash_profile (utilisateur)
●
Utilisé pour :
– Initialiser les variable d’environnement
– Exécution des commandes.
Script de démarrage pour tous les shell
●
Enregistré dans
– /etc/bashrc (global)
– ~/.bashrc (user)
●
Exécuté pour tous les shel
●
Utilisé pour
– Initialisation de variables locale
– Définition des alias
Script de déconnection
●
Enregistré dans in ~/.bash_logout (user)
●
Exécuté quand un login-shell se termine
●
Utilisé pour :
– Création des sauvegardes
– Suppression des fichier temporaire