Differences between revisions 5 and 6
Revision 5 as of 2010-07-06 09:05:33
Size: 5571
Comment:
Revision 6 as of 2010-07-06 09:09:45
Size: 5860
Comment:
Deletions are marked like this. Additions are marked like this.
Line 135: Line 135:

=== Variables spéciales ===

Les variables suivantes sont relatives à la gestion des processus :
||'''Variable'''||'''Signification'''||
||$!||PID du dernier processs fils ||
||$$||PID du shell actif ||
||$?|| valeur de sortie de la dernière commande : 0 = succès, 1 sinon ||

État : {traduc}

Retour au document principal

La ligne de commande

Pré-requis

  • Aucun

Objectifs

  • Introduction au shell bash et aux concepts de base comme l'éxécution interactive de programmes
  • Distinguer les variables locales et globales (exportées)
  • Manipuler les données à partir des tubes et des autres opérateurs de redirection
  • Comprendre les caractères de substitution

Présentation

La ligne de commande est un moyen simple d'interagir avec un ordinateur. Le shell interprète les commandes tapées au clavier. Le prompt, ou l'invite de commande, qui se termine par un $ ou un # pour l'administrateur, indique que le shell attend les commandes de l'utilisateur.

Le shell est également un langage de programmation qu'on peut utiliser pour lancer des tâches automatiquement. Les programmes shell sont appelés des scripts.

Shells les plus courants

Le Bourne shell

/bin/sh

Le "Bourne again" shell

/bin/bash

Le Korn shell

/bin/ksh

Le C shell

/bin/csh

Tom's C shell

/bin/tcsh

le programme du LPI se concentre essentiellement sur le Bash, puisque c'est l'un des shells les plus courammant utilisés.

Le shell interactif

Les commandes shell suivent généralement la syntaxe suivante :

commande [options] {paramètres}

Afficher du texte à l'écran

Le bash utilise la commande echo pour afficher du texte à l'écran :

echo “Voici une courte ligne.”

Chemins relatif et absolu

Le shelle interprète le premier "mot" de toute chaîne de caractère donnée comme une commande. Si cette chaîne est un chemin relatif ou absolu vers un fichier exécutable, alors le programme est exécuté. Si ce prmier mot n'est pas précédé de /, alors le shell recherchera dans les répertoires définis dans la vatiable PATH et tentera de lancer la première commande qui correspondra à la chaîne.

Par exemple, si la variable PATH contient les répertoires /bin et /usr/bin, alors le système ne trouvera pas la chaîne xeyes puisque xeyes se trouve dans /usr/X11R6/bin/xeyes. Dans ce cas, vous devez entrer le chemin absolu de la commande :

/usr/X11R6/bin/xeyes

Mais on peut également utiliser le chemin relatif. Par exemple, si l'utilisateur est dans le répertoire où se trouve le programme xeyes, il peut taper :

./xeyes

Variables

Les variables du shell sont équivalentes aux variables utilisées dans les langages de programmation. Les noms de variables ne doivent contenir que des caractères alphanumériques. Par exemple, CREDIT=300 assigne tout simplement la valeur 300 à la variable nommée CREDIT.

Shell variables are similar to variables used in any computing language. Variable names are limited to alphanumeric characters. For example CREDIT=300 simply assigns the value 300 to the variable named CREDIT.

  1. initialiser une variable : Nom_Variable=valeur (sans espace !)

  2. appeler une variable : $Nom_Variable

CREDIT=300
echo $CREDIT

On peut supprimer la valeur d'une variable avec la commande unset.

export, set et env

Il y a deux types de variables : les variables locales et les variables globales (exportées).

Les variables locales ne sont accessibles que sur le shell actif. Les variables exportées ou globales sont accessibles à la fois par le shell actif et par tous les processus fils lancés à partir de ce shell.

Local variables will be accessible only to the current shell. On the other hand, exported variables are accessible by both the shell and any child process started from that shell.

Les commandes set et env listent les variables définies.

Les commandes set et env

set

Liste toutes les variables

env

Liste les variables exportées

Une variable globale est globale dans le sens où elle est accessible par tous les processus fils.

Variable locale

Variable locale

Parent

Fils

Parent

Fils

VAR=val

VAR=?

VAR=val

VAR=val

Exemple : exportez la variable CREDIT puis testez si elle est listée par set ou env.

export CREDIT
env | grep CREDIT

Lancez un nouveau shell (processus fils) (NdT : en tapant bash) et vérifiez que la variable CREDIT est accessible. Peut-on lancer n'importe quel SHELL et être sûr que la variable CREDIT est toujours déclarée ?

Liste de variables courantes pré-définies :

Variable pré-définie

Signification

DISPLAY

Utilisé par X pour identifié iù lancer une application cliente

HISTFILE

Chemin vers le fichier utilisateur .bash_history

HOME

Répertoire personnel de l'utilisateur

LOGNAME

Identifiant de connexion de l'utilisateur

PATH

Liste des répertoires utilisés par le shell pour exécuter des programmes quand une commande est entrée dans chemin

PWD

Répertoire de travail actuel

SHELL

Shell utilisé (bash dans la plupart des distributions Linux

TERM

 Émulation de terminal utilisée

Variables spéciales

Les variables suivantes sont relatives à la gestion des processus :

Variable

Signification

$!

PID du dernier processs fils

$$

PID du shell actif

$?

valeur de sortie de la dernière commande : 0 = succès, 1 sinon

Heberge par Ikoula