Linux part 4 – Le shell

Sous Linux, il existe 2 environnements :

  • l’environnement console

  • l’environnement graphique

On a tendance à utiliser l’environnement graphique, qui est plus intuitif. Cependant, la console est aussi très puissante et permet d’effectuer des actions habituellement difficiles à réaliser dans un environnement graphique.

Il existe plusieurs environnements console sous Linux:  les shells

  • sh : Bourne Shell. L’ancêtre de tous les shells.
  • bash : Bourne Again Shell. Une amélioration du Bourne Shell, disponible par défaut sous Linux et Mac OS X.
  • ksh : Korn Shell. Un shell puissant assez présent sur les Unix propriétaires, mais aussi disponible en version libre, compatible avec bash.
  • csh : C Shell. Un shell utilisant une syntaxe proche du langage C.
  • tcsh : Tenex C Shell. Amélioration du C Shell.
  • zsh : Z Shell. Shell assez récent reprenant les meilleures idées de bash, ksh et tcsh.

Voici dans les grandes lignes comment ont évolué les Shells.

Chacun hérite de la plupart des fonctionnalités de son ancêtre (figure suivante).

Shells

sh reste toujours plus répandu que bash. En fait, vous pouvez être sûrs que tous les OS basés sur Unix possèdent sh, mais ils n’ont pas tous forcément bash.

Afin de se familiariser avec le Shell, il est important de connaitre les différents caractères spéciaux, les variables d’environnement, les scripts de démarrage ainsi que les différents paramètres « positionnels » et « spéciaux ».

Les caractères spéciaux:

– La redirection de fichier:                             >,>>,<,|
– Les jokers:                                                       *,?,[…]
– La protection des caractères spéciaux:      ‘…’, »… »,\
– Le référencement de variable:                     $
– L’interprétation de commandes:                ... (anti quote)
– La séparation des commandes:                   saut_de_lignes, ;
– Début de commentaire:                                #
– Le répertoire courant:                                   ~

Les variables d’environnement:

– HOME:      Le répertorie de travail
– PATH:        Les chemins des répertoires ou sont recherchés les commandes
– ENV:          Le chemin d’un script déclenché pour toute instance de Shell
– PS1:           Le prompt
– LANG:        La langue

Les scripts de démarrage:

/etc/profile         Script de démarrage à l’ensemble des utilisateurs
~/.bash_profile  Script de démarrage spécifique d’un utilisateur
~/.profile            Idem, mais standard (ISO). Pris en compte que si le .bash_profile n’existe pas.
$ENV                 Script déclenché pour toute instance de Shell y compris le Shell déconnexion

Notion de variable d’environnement:

set                   Affiche l’ensemble des variables
env                  Affiche uniquement les variables d’environnement
unset               Détruit une variable
export              Met une variable du Shell dans l’espace d’environnement
echo, printf      Affichent un message, une variable
read                Lecture d’une variable au clavier

Les paramètres:

$0        Le nom du script
$1,$2   Le 1er paramètre, le 2nd
$#        Le nombre de paramètre
$*,$@ L’ensemble des paramètres

twitterlinkedin

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*