Bash (Français)

From ArchWiki

Cet article ou section a besoin d'être traduit(e).

Notes: Traduction en cours (Discuss in Talk:Bash (Français)#)

Bash (Bourne-again Shell) est un interpréteur de commandes (shell) et un langage de programmation de GNU Project. Son nom fait allusion à son prédécesseur, l'interpréteur de commandes Bourne, depuis longtemps obsolète. Bash peut être exécuté sur la plupart des systèmes d'exploitation de type UNIX, y compris GNU/Linux.

Bash est l'interpréteur de commandes par défaut sur Arch Linux.


Invocation

Le comportement de Bash peut changer en fonction de comment il est invoqué. Voici quelques descriptions des différents modes.

Si Bash a été lancé par une connexion dans un TTY, par un daemon SSH, ou d'un manière similaire, il est considéré comme un interpréteur de commandes (shell) de connexion. Ce mode peut également être appelé en utilisant le paramètre de ligne de commande -l/--login.

Bash est considéré comme un interpréteur de commandes interactif quand ses flux d'entrée/sortie et d'erreur sont connectés à un terminal (par exemple, quand il est utilisé dans un emulateur de terminal), et qu'il n'a pas été éxécuté avec l'option -c ou d'argument n'étant pas une option (par exemple, un script bash). Tous les interpréteurs de commandes intéractifs sourcent /etc/bash.bashrc et ~/.bashrc, alors que les interpréteurs de commandes intéractifs de connexion sourcent également /etc/profile et ~/.bash_profile.

Note: Dans Arch, /bin/sh (ce qui était auparavant l'éxécutable pour l'interpréteur de commandes Bourne) est lié symboliquement à bash. Si Bash est éxécuté avec le nom sh, il essaiera d'imiter le comportement de démarrage d'anciennes versions de sh, incluant une compatiblité POSIX.

Fichiers de configuration

Bash essaiera d'éxécuter un nombre de fichiers de configuration en fonction de comment il a été invoqué. Veuillez regarder la section des fichiers de démarrage bash pour une description complète.

Fichier Description Shell de connexion (voir notes) Interpréteur sans connexion intéractif
/etc/profile Source les paramètres d'applications dans /etc/profile.d/*.sh et /etc/bash.bashrc. Oui Non
~/.bash_profile Par utilisateur, après /etc/profile. Si ce fichier n'existe pas, ~/.bash_login et ~/.profile seront vérifiés dans cet ordre. Le fichier squelette /etc/skel/.bash_profile source également ~/.bashrc. Oui Non
~/.bash_logout Par utilisateur, après la sortie d'un shell de connexion. Oui Non
/etc/bash.bash_logout Dépend de l'option de compilation -DSYS_BASH_LOGOUT="/etc/bash.bash_logout". Après la sortie d'un shell de connexion. Oui Non
/etc/bash.bashrc Dépend de l'option de compilation -DSYS_BASH_LOGOUT="/etc/bash.bash_logout". Source /usr/share/bash-completion/bash_completion. Non Oui
~/.bashrc Par utilisateur, après /etc/bash.bashrc. Non Oui
Note:
  • Les shell de connexion peuvent être non-intéractifs lorsqu'ils sont appelés avec l'argument --login.
  • Lorsqu'ils sont intéractifs, les shells de non-connexion ne sourcent pas ~/.bash_profile, ils hérient tout de même de l'environement de leur processus parent (qui peut être un shell de connexion). Voir pour les processus, environnements et héritage pour plus de détails.

Shell et variables d'environnement

Le comportement de Bash et des programmes éxécutés avec celui-ci peuvent être influencés par un nombre de variables d'environnement. Les variables d'environnement sont utilisés pour stocker des valeurs utiles tels que des répertoires pour où chercher les commandes, ou quel navigateur utiliser. Lorsqu'un nouveau shell ou script est lancé, il hérite des variables du parent, commençant alors avec un nombre de variables shell [1].

Ces variables shell dans Bash peuvent être exportées afin de devenir des variables d'environnement:

VARIABLE=contenu
export VARIABLE

ou avec un raccourci

export VARIABLE=contenu

Les variables d'environnement sont souvent placées dans ~/.profile ou /etc/profile afin que d'autres shells compatibles avec Bourne peuvent les utiliser.

Voir variables d'environnement pour plus d'informations générales.