Logo Guilde Retour à Trucs & Astuces    bash

BASH

par E. Rouat pour Guilde

Introduction

Le shell est un programme qui vous permet de lancer des applications, d'interroger votre babasse, de dialoguer avec votre système en quelque sorte. C'est la base de n'importe quel système UNIX. Des shells, il en existe plusieurs: ksh (Korn Shell) bsh (Bourne Shell), csh (C Shell)... chacun avec ses avantages, ses inconvénients, ses particularités.

Lorsque vous travaillez en mode texte (donc sans X), vous êtes en réalité directement en relation avec le shell. En mode X (donc avec des fenêtres), il faut d'abord exécuter un programme spécial pour pouvoir utiliser un shell - Xterm est l'un de ces programmes (et un des plus répandus).

Avec le shell, vous pouvez exécuter n'importe quelle commande unix/linux classique (comme find , ou gzip, ou mkdir ..) plus quelques autres qui sont propres au shell (comme ulimit ou umask).

Pourquoi BASH (Bourne Again Shell) ?

  1. parce que c'est le shell par défaut de Linux
  2. parce que c'est celui que j'utilise
  3. commencez pas, hein !!

Quel est mon shell par défaut ?

Pour connaitre votre shell par défaut, il suffit de regarder dans le fichier /etc/passwd . Dans la ligne qui correspond à votre nom d'utilisateur, vous verrez à la fin votre shell par défaut.

Pour changer de shell par défaut, utilisez la commande chsh (CHange SHell).

Configuration

Se loger sur un compte (utilisateur ou root) revient en fait à lancer un shell, nommé le 'login shell' (c'est en tout cas vrai si on se loge avec 'login', c'est à dire en mode texte. Si on se loge via xdm, donc en mode graphique, c'est un peu plus compliqué). Au moment de son lancement, ce login shell va lire un certain nombre de fichiers dans lesquels sont positionnées ou déterminées des variables d'environnements. Le premier fichier que Bash va lire est /etc/profile . Il est lu une seule fois, au login. Ceci étant vrai pour tous les utilisateurs, il peux donc servir à déterminer un certain nombre de variables communes à tous les utilisateurs de votre système. Voici un exemple de /etc/profile. Attention: le /etc/profile est commun à tous les shells (sauf csh/tcsh) il ne faut donc rien y mettre de particulier à Bash.

Ensuite, bash lira le fichier ~/.bash_profile, qui est en fait votre /etc/profile personnel. Il est également lu une fois, au login. Voici un exemple de fichier .bash_profile. Il peux également s'appeler ~/.profile . (note : le symbole ~ (tilda) est un raccourci pour désigner votre répertoire racine personnel - ex., pour moi, ~ = /home/rouat )

Ensuite,, bash lira ensuite votre fichier ~/.bashrc dans lequel vous pouvez définir des raccourcis (alias) ou des fonctions plus complexes. L'exemple que voici commence par exécuter un autre bashrc, en l'occurence /etc/bashrc . C'est une astuce très simple pour permettre à l'administrateur système de définir des alias universels. Voici un exemple de /etc/bashrc. Le fichier .bashrc est lu à chaque fois qu'on lance bash, pas uniquement au login.

Il reste 3 fichiers qui peuvent être utiles:

Trucs et astuces

Quelques trucs à connaitre sur bash:

Voilà, ceci n'est qu'un premier jet. N'hésitez pas à réagir constructivement à cet article, en m'envoyant par exemple un petit mel (missive électronique)