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.1 MB)
15 pages
452Numé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
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du 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 »

root@fredon:~# sh monscript

#!/bin/sh

root@fredon:~# ./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

root@fredon:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

root@fredon:~# export VAR=VALEUR

root@fredon:~# 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 $?

root@fredon:~/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
Chercher dans l'extrait du document
Docsity n'est pas optimisée pour le navigateur que vous utilisez. Passez à Google Chrome, Firefox, Internet Explorer ou Safari 9+! Téléchargez Google Chrome