• 6. L'interpréteur de commande : BASH• 6.1 Les fichiers d'initialisation• 6.2 Les variables du Bash• 6.3 Les alias• 6.4 La fonction shell • 6.5 L'édition de la ligne de commandes• 6.6 Les utilitaires (history, complétion...)• 6.7 Quelques commandes internes• 6.8 Ecriture et exécution d'un script• 6.9 Exercices Olivier HUBERT - LGEP/CNRS 1• 6. L'interpréteur de commande : BASH• Le plus répandu dans le monde Linux• Compatible avec le Bourne Shell ( sh)• Interface entre l'utilisateur et le système• En mode console• Langage interprété• Écriture des cripts• Utilisation de vi oue macs pour les écrire• Lancement d'un programme à un instant donné• processus Olivier HUBERT - LGEP/CNRS 2• 6. L'interpréteur de commande : BASH• Lors de la connexion, le processus /bin/bash défini dans /etc/passwd estla ncé• Processus• PID (Process Identifier)• Processus père• Processus fils• Types de processus• Les commandes définies (fonction ou alias)• Les commandes internes (shell)• Les commandes externes (/usr/bin, /sbin..) Olivier HUBERT - LGEP/CNRS 3• 6. L'interpréteur de commande : BASH• Exemple d'alias :• alias ld= ''ls -ld ''• alias freebox='lftp -u freebox,passwd hd1.freebox.fr'• Les variables shell• VAR_SHELL='VALEUR'• Variables internes (shell)• Variables d'environnement (shell et processus fils)• Le caractère _ (souligné) est le seul caractère non alphanumérique utilisable Olivier HUBERT - LGEP/CNRS 4• 6. L'interpréteur de commande : ...
• Écriture de scripts • Utilisation de vi ou emacs pour les écrire Lancement d'un programme à un instant donné
• processus
Olivier HUBERT - LGEP/CNRS
2
•
•
•
• 6. L'interpréteur de commande : BASH
Lors de la connexion, le processus /bin/bash défini dans /etc/passwd est lancé
Processus
• PID (Process Identifier)
• Processus père
• Processus fils
Types de processus
• Les commandes définies (fonction ou alias)
• Les commandes internes (shell)
• Les commandes externes (/usr/bin, /sbin..)
Olivier HUBERT - LGEP/CNRS
3
•
•
• 6. L'interpréteur de commande : BASH
Exemple d'alias :
• alias ld= ''ls -ld '' • alias freebox='lftp u freebox,passwd hd1.freebox.fr' -Les variables shell
• VAR SHELL='VALEUR' _ • Variables internes (shell) • Variables d'environnement (shell et processus fils) • Le caractère _ (souligné) est le seul caractère non alphanumérique utilisable
Olivier HUBERT - LGEP/CNRS
4
•
• 6. L'interpréteur de commande : BASH
6.1 Les fichiers d'initialisation :
•
•
•
•
•
•
/etc/profile géré par l'administrateur
.bash_profile géré par l'utilisateur
_ VAR SHELL='VALEUR'
Variables internes (shell)
Variables d'environnement (shell et processus fils)
. bashrc exécuté par .bash_profile à la connexion sinon en mode intéractif
➔ Fichier commun
Olivier HUBERT - LGEP/CNRS
5
•
• 6. L'interpréteur de commande : BASH
6.1 Les fichiers d'initialisation :
•
•
_ BASH ENV si variable initialisée et lancement d'un script shell, le script contenu _ dans BASH ENV est exécuté avant.
Lors de la déconnexion
• exit ou <ctrl-d> ➔ Exécution de .bash_logout
Olivier HUBERT - LGEP/CNRS
6
•
• 6. L'interpréteur de commande : BASH
6.3 Les variables du BASH :
•
•
Les variables bouléennes • echo $SHELL OPTS _ • Modifie le comportement de l'interpréteur Les variables ordinaires • set liste les variables et leur valeur • nom variable=valeur _ ➔ Variables exportées (d'environnement) • port n _ ex om variable=valeur • declare -x nom variable _
Olivier HUBERT - LGEP/CNRS
7
•
• 6. L'interpréteur de commande : BASH
6.2 Les variables du BASH :
➔ Exemples de variables bouléennes • history historique des commandes • noclobber redirection interdite vers un fichier existant • notify le Bash indique immédiatement la fin d'un travail en arrière plan (background job) permet de suivre l'exécution en détail d'un programme
•
xtrace
Olivier HUBERT - LGEP/CNRS
8
•
• 6. L'interpréteur de commande : BASH
6.2 Les variables du BASH :
➔ Variables ordinaires
• set liste les variables et leur valeur
• unset supprime une variable ➔ Les principales variables du shell
• ENV
• HISTSIZE • HISTFILE
• HOME • HOSTNAME
IFS
OLDPWD PATH
PS1 PS2
Olivier HUBERT - LGEP/CNRS
PWD
TERM TMOUT
...
9
•
• 6. L'interpréteur de commande : BASH
6.2 Les variables du BASH :
➔ Variables ordinaires • PS1 valeur du prompt (par défaut ‘‘\s-\v\$ ’’) • \h nom de l'ordinateur, • \u nom du login • \t heure courante • \w chemin du répertoire de travail • \W nom du répertoire de travail • \! numéro de la commande dans l'historique • \$ # pour l'administrateur sinon $
Olivier HUBERT - LGEP/CNRS
10
•
• 6. L'interpréteur de commande : BASH
6.3 Les alias :
➢ alias nom alias='commandes' _ ➔ Permet de définir des commandes personnalisées ➢ ualias nom alias _ ➔ Permet de supprimer l'alias ➢ Exemples : ➔ alias md='mkdir' ➔ alias vdir='ls –color=auto –format=long' ➔ alias sshroot='ssh -X root@localhost ' ➔ Alias tidy2html='tidy -utf8 -indent $1 -file errors.log >output.log 2>warnings.log'