Chapitre 6. Configurer le shell

Table des matières
1. Qu'est-ce qu'un shell ?
2. Installer et configurer zsh
2.1. Installer le package et les fichiers de configuration
2.2. Configurer le proxy
2.3. Changer de Shell
2.4. Shell par défaut pour les nouveaux utilisateurs
2.5. Qu'est-ce que le PATH ?

1. Qu'est-ce qu'un shell ?

Le shell est ce qui s'exécute quand vous vous logguez. C'est lui qui vous présente le prompt, qui envoie vos commandes au système, qui enregistre certaines variables. Il est encore là quand vous vous délogguez.

Vous avez un vaste choix de shells différents. Le shell par défaut sous Linux s'appelle bash. Mais il existe aussi csh, tcsh, zsh, sash, etc...

Je vais vous proposer d'installer le shell zsh, de télécharger des fichiers de configuration et ensuite de passer de bash à zsh.

2. Installer et configurer zsh

2.1. Installer le package et les fichiers de configuration

Installez le package zsh, qui contient le shell du même nom :


# apt-get install zsh

Remplacez les fichiers de configuration par défaut par mes fichiers de configuration :


# cd ~/config
# cp zshrc zshenv zlogin zlogout /etc/zsh/
# cp dir_colors /etc/

ou, si vous ne suivez pas ma formation depuis le début :


% wget http://people.via.ecp.fr/~alexis/formation-linux/config/zshrc
% wget http://people.via.ecp.fr/~alexis/formation-linux/config/zshenv
% wget http://people.via.ecp.fr/~alexis/formation-linux/config/zlogin
% wget http://people.via.ecp.fr/~alexis/formation-linux/config/zlogout
% wget http://people.via.ecp.fr/~alexis/formation-linux/config/dir_colors
# mv zshrc zshenv zlogin zlogout /etc/zsh/
# mv dir_colors /etc/

2.2. Configurer le proxy

Si vous devez passer par un proxy pour accéder à Internet, au lieu de taper à chaque fois export http_proxy=..., vous allez éditer en root le fichier /etc/zsh/zshenv puis décommenter et personnaliser les lignes adéquates :

  • si votre proxy ne requière pas d'authentification par login et mot de passe :

    
# Proxy HTTP / FTP sans mot de passe
    export http_proxy="http://proxy.exemple.org:8080"
    export ftp_proxy="ftp://proxy.exemple.org:8080"
    
    # Ne pas passer par le proxy pour les domaines locaux
    export no_proxy="exemple.org"
    

    proxy.exemple.org est le nom DNS de votre proxy et 8080 son port.

  • si votre proxy requière une authentification par login et mot de passe :

    
# Proxy HTTP / FTP avec mot de passe
    export http_proxy="http://login:password@proxy.exemple.org:8080"
    export ftp_proxy="ftp://login:password@proxy.exemple.org:8080"
    
    # Ne pas passer par le proxy pour les domaines locaux
    export no_proxy="exemple.org"
    

    proxy.exemple.org est le nom DNS de votre proxy, 8080 son port, login et password votre login et mot de passe pour le proxy.

Enregistrez et quittez.

2.3. Changer de Shell

Pour changer de shell, un utilisateur doit exécuter la commande chsh et préciser où se trouve son nouveau shell. Il bénéficiera alors des fichiers de configuration par défaut que vous venez d'installer. Il pourra aussi mettre ses propres fichiers de configuration dans son home (même nom mais précédé d'un point).

Pour passer à zsh, un utilisateur doit donc taper :


% chsh
Enter the new value, or press return for the default
    Login Shell [/bin/bash]:/bin/zsh

Pour que le changement soit effectif, il faut se délogger (Ctrl-d) et se relogguer. Vous pouvez alors admirer la différence !

2.4. Shell par défaut pour les nouveaux utilisateurs

Pour changer le shell par défaut pour les nouveaux utilisateurs, il faut modifier le fichier de configuration de la commande adduser qui sert à ajouter un utilisateur au système. En root, éditez le fichier /etc/adduser.conf avec vim :


# vim /etc/adduser.conf

Changez la ligne :

DSHELL=/bin/bash

par la ligne :

DSHELL=/bin/zsh

Enregistrez et quittez. Comme ça, quand le root rajoutera un nouvel utilisateur avec la commande :


# adduser toto

ce nouvel utilisateur aura un shell zsh bien configuré.

2.5. Qu'est-ce que le PATH ?

PATH est une variable d'environnement. Pour afficher le contenu d'une variable d'environnement, on utilise la commande echo :


% echo $PATH
/usr/local/bin:/usr/local/sbin:/bin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:
/sbin:/home/alexis/bin

La variable PATH contient la liste de tous les répertoires dans lesquels le système va chercher les exécutables des commandes que vous tapez au prompt, séparés par des "deux points". Par exemple, le répertoire /bin/ contient les commandes Unix de base, et vous pouvez vérifier qu'il est bien dans le PATH.

Pour modifier le PATH, éditez le fichier de configuration /etc/zsh/zshenv et ajoutez ou supprimez un répertoire à la ligne qui commence par export PATH=.