Notes sur le thème: Qu’est ce que le shell (bash), Notes de Fondements informatiques
Gabrielle89
Gabrielle899 January 2014

Notes sur le thème: Qu’est ce que le shell (bash), Notes de Fondements informatiques

PDF (1 MB)
15 pages
475Numéro de visites
Description
Notes de fondements informatiques sur le thème: Qu’est ce que le shell (bash) les principaux thèmes abordès sont les suivants: langage de programmation, diffèrents types de shell, personnalisation des commandes bash, per...
20points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 15
Ceci c'est un aperçu avant impression
3 shown on 15 pages
Télécharger le document
Ceci c'est un aperçu avant impression
3 shown on 15 pages
Télécharger le document
Ceci c'est un aperçu avant impression
3 shown on 15 pages
Télécharger le document
Ceci c'est un aperçu avant impression
3 shown on 15 pages
Télécharger le document
Qu’est ce que le shell (bash)?

Linux : Guide de survie

BTS I.R.I.S : Formation à Linux

C h a p i t r e 3 : D o m p t e r l e S h e l l

Page 1

IGA Marrakech M. ACHAHOD

 Il s’agit d’une interface texte entre l’utilisateur et le système

 Tout se fait au clavier

 Pas de clic de souris

 L’utilisateur tape des commandes qui sont exécutées par le système

 Le shell est donc un « interpréteur de commandes »

 Chaque commande a une syntaxe particulière

 Il existe des milliers de commandes différentes

 Les commandes peuvent aussi provenir d’un fichier

 Le fichier contient les commandes à exécuter

 L’utilisateur appel le fichier plutôt que de taper toutes les commandes

• Utile pour les tâches répétitives

 Le shell reste le moyen le plus efficace pour contrôler le système

 C’est aussi le plus utilisé sous Linux/Unix

 Le shell est un véritable environnement de programmation

 Variables, boucles, structures de contrôle « if »

 Programmes

 Les programmes écrits pour le shell sont interprétés au moment de l’exécution

 Aucune compilation préalable n’est utile

 Les performances n’égalent pas un programme en C

 Les programmes écrits pour le shell sont des « scripts » :

 Il existe plusieurs types de shell

 Bourne shell

 Korn Shell

 Bash (Bourne again shell)

 Tcsh (Terminal C shell)

 L’interpréteur de commande MS-DOS (Sous Windows)

 PowerShell (Windows 2008 server)

 Sous Linux, on peut choisir son shell

 Le shell bash domine le marché actuellement

/etc/bashrc étant le dernier script d'initialisation du shell bash, root peut y définir des alias globaux pour tous les utilisateurs

# vi /etc/bashrc

 alias lll="ll | less"

 alias x="startx"

 alias m="mc"

:wq (pour écrire dans le fichier et quitter vi)

 Puis se reloguer (exit) pour que ces nouvelles commandes soient prises en compte par le nouveau shell.

Chaque utilisateur peut ajouter des commandes shell au fichier de profil personnel, ~/.bash_profile. Par exemple, voici ce que j'ai mis à la fin de ce fichier :

clear

salut="Bonjour $USER !\nJe te souhaite bon courage ...\n\

 # le dernier \ pour pouvoir continuer la commande sur la ligne

suivante

 # $( ..) pour obtenir le résultat de l'exécution de la commande

incluse

Nous sommes le $(date) "

 # -e option indispensable pour interpréter les \n

echo -e $salut

 Un script est un fichier contenant un ensemble de commandes exécutées séquentiellement

 Sous forme de fichier texte contenant les commandes

 Le script ne peut être exécuté que par un interpréteur

 « /bin/sh » pour le shell bash

 Le langage de script shell est un langage évolué offrant de nombreuses possibilités

 Boucles, variables, tests avec if, création de fonctions, …

 Dans quels cas utilise-t-on les scripts ?

• Pour effectuer un travail répétitif

• Pour des tâches d’administration système

• Pour installer des programmes

• Au démarrage du système pour démarrer les services et applis

• Bref : Tout le temps !!!

 Pour exécuter le script, il faut appeler l’interpréteur

 Possibilité de simplifier l’appel en ajoutant la ligne suivante en tête du script

 L’appel est alors plus simple

 L’utilisateur courant doit posséder le droit « x » pour le fichier

 Exemple : Seul, l’utilisateur « paul » pourra exécuter le script

 Pour autoriser les membres du groupe « compta »

[email protected]:~# sh monscript

#!/bin/sh

[email protected]:~# ./monscript

-rwxr--r-- 1 paul compta 7406 2008-08-15 14:44 script.sh

chmod g+x script.sh

 Ces variables sont définies à l’ouverture de session

 Leurs valeurs dépendent de l’utilisateur connecté

 Exemple : Variable PATH

 Défini les différents chemins où chercher les commandes

 La commande « export » permet de créer/modifier une variable

 Cette modification est temporaire

 Pour rendre l’effet permanent, il faut ajouter « export » au fichier

.bashrc

• .bashrc est un fichier caché

 Pour modifier la variable PATH sans effacer son contenu

[email protected]:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

[email protected]:~# export VAR=VALEUR

[email protected]:~# export PATH=$PATH:/nouveau/repertoire

 Il s’agit d’un fichier texte au format suivant :

 Un script peut accepter des arguments

 Il faut donc vérifier ces arguments avant de commencer le traitement

 Rappeler le fonctionnement du script par un message d’erreur

#! /bin/sh # Commentaires : Fonction du script # Auteur : toto # Version : 1.0 - Oct 2008 # Début du script …

Usage de la commande : script.sh arg1 arg2 arg3 arg1 : 1er argument , arg2 : 2ème argument, arg3 : 3ème argument

 Elles sont définies implicitement et peuvent être utilisées à tout moment dans le script

 Quelques variables utiles

 $0 : Nom du script (Utile lorsqu’on renomme le script)

 $1 à $9 : Argument 1 à 9 passés au script

 $# : Nombre d’arguments passés au script

 $? : Résultat de la commande précédente

 Exemple

 Exécution

#! /bin/sh cp $1 tata.txt echo $?

[email protected]:~/Documents/cours-shell# ./script.sh file.txt cp: ne peut évaluer `file.txt': Aucun fichier ou dossier de ce type 1

 Permet d’effectuer une exécution conditionnelle

 L’expression est constituée d’opérateurs

 Liste des opérateurs numériques

• -eq : Egalité (Equals)

• -ne : Non égalité (Non Equals)

• -lt : Infériorité (Less than)

• -le : Infériorité ou égalité (Less than)

• -gt : Supériorité (Greater then)

• -ge : Supériorité ou égalité (Greater equals)

if [ expression ] then # commandes à exécuter si la cond. est vraie else # commandes à exécuter si la cond. est vraie fi

 Liste des opérateurs sur chaîne de caractère

• -z : Chaîne vide

• -n : Chaîne non vide

• = : Egalité de chaîne

• != : Non égalité de chaîne

 Liste des opérateurs sur fichiers

• -L : Lien symbolique

• -d , -f : Répertoire, Fichier

• -s : Fichier vide

• -r, -w, -x : Droits qui s’appliquent (Lecteur, Ecriture, Exécution)

• -nt : Plus récent (Newer than)

• -ot : Plus vieux (Older than)

 Liste des opérateurs logiques

• ! : Négation

• -a : Et (And)

• -o : Ou (Or)

 Exemples

# Teste si le paramètre $1 est egal à 2 if [ $1 -eq 2 ] then # Commande fi

# Teste si le paramètre $1 est un fichier OU un répertoire if [ -d $1 –o –f $2 ] then # Commande fi

# Teste si le fichier existe if [ ! –f "/etc/toto.conf« ] then # Commande exécutée si le fichier n’existe pas fi

 Tester si le paramètre 2 est un fichier

 Tester si le paramètre 1 égale à toto ET paramètre 2 supérieur à 3

 Tester si le paramètre 1 n’est pas un répertoire ET s’il a le droit d’écriture

 Script capable de créer le répertoire passé en argument et de vérifier que sa création n’a pas provoqué d’erreurs

if [ -f $2 ]; then ; fi

if [ $1="toto" –a $2 –gt 3 ]; then ; fi

if [ ! –d $1 –a –w $1 ]; then ; fi

if [ ! –d $1 ]; then mkdir $1 if [ $? –eq 0 ]; then echo "Erreur lors de la création de $1« exit 1 fi fi

commentaires (0)
Aucun commentaire n'a été pas fait
Écrire ton premier commentaire
Ceci c'est un aperçu avant impression
3 shown on 15 pages
Télécharger le document