Linoux

  Accueil

Zoom   

Accueil > Debian console > Shell > Environnement
Environnement
LinuxInfo
Dezoom

Environnement

Mise à jour : Debian 9.1

L'environnement du shell est configuré par

Ces éléments permettent par exemple de définir ou redéfinir

Ce document indique comment afficher et modifier les composantes de l'environnement.

1 - Composantes de l'environnement

1.1 - Variables

La commande set (avec l'option posix) affiche la liste des variables avec leur valeur :

$ (set -o posix; set)
....
XDG_CURRENT_DESKTOP=XFCE
XDG_DATA_DIRS=/usr/share/xfce4:/usr/local/share/:/usr/share/:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/philippe
XDG_MENU_PREFIX=xfce-
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
...
SHELL: 	nom du shell
HOME : nom du répertoire de l'utilisateur
PWD : nom du répertoire de travail courant
OLD_PWD : nom du répertoire de travail précédent
USER : nom de login de l'utilisateur
PATH : liste de répertoires dans lesquels le shell cherche les commandes
LANG : langue de saisie et d'affichage
PS1 : définition du prompt
$ echo $SHELL
/bin/bash

$ echo $BASH_VERSION
4.4.12(1)-release

Dans l'exemple, le programme de shell est bash version 4.4.12.

1.2 - Options du shell

Les options du shell sont réparties entre les commandes set et shopt.

Voir : https://bash.cyberciti.biz/guide/Setting_shell_options

1.2.1 - Liste et état des options set

$ set -o 
allexport off
braceexpand on
emacs on
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
....

1.2.2 - Liste et état des options shopt

$ shopt 
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize on
cmdhist on
.....

La description des options est disponible dans le manuel de bash.

1.3 -Alias

La commande alias fournit la liste ... des alias pour l'utilisateur courant

$ alias
ls='ls --color=auto'
grep='grep --color=auto'

2 - Personnalisation

2.1 - Principe

Il est possible de modifier l'environnement du shell, en modifiant / ajoutant / supprimant des variables, des options du shell, des alias, des fonctions.

/etc/bash.bashrc
/etc/profile
~/.bashrc et ~/.bash_aliases

2.2.1 /etc/bash.bashrc

  • /etc/bash.bashrc est utilisé pour les configurations communes à tous les shells, tous les utilisateurs et les types de connexion (connexion ou non)

  • 2.2.2 /etc/profile

  • /etc/profile est utilisé pour les configurations spécifiques aux shells de connexion, communes à tous les utilisateurs

  • 2.2.3 ~/.bashrc

  • ~/.bashrc et ~/.bash_aliases sont utilisés pour les configurations des shells de connexion spécifiques à un utilisateur

  • 2.2 - Variables

    Certaines variables sont modifiables par l'utilisateur, par exemple PATH, LANG,PS1, ...

    $ echo $LANG
    fr_FR.utf8
    $ date
    jeudi 3 août 2017, 16:08:36 (UTC+0200)
    $ LANG=en_US date
    Thu Aug 10 04:03:48 CEST 2017
    $ LANG='en_US.utf8'
    $ date
    Thu Aug 3 16:00:43 CEST 2017
    # echo "LANG='eng_US.utf8'" >>~/.bashrc

    2.3 - Options du shell

    2.3.1 - Cas d'une option set

    $ set -o posix
    $ set +o posix

    2.3.2 - Cas d'une option shopt

    $ shopt -s cdspell
    $ shopt -u cdspell
    $ echo "shopt -u cdspell" >> ~/.bashrc

    2.4 - Alias

    $ alias bureau='cd ~/Bureau'
    $ alias documents='cd ~/Documents'
    $ alias home='cd ~'
    $ alias téléchargement='cd ~/Téléchargements'

    $ alias nano='nano -mS'
    $ monip='dig +short myip.opendns.com @resolver1.opendns.com'

    $ alias radiosuisse='cvlc http://www.radioswissclassic.ch/live/aacp.m3u'
    $ alias rtorrent='rtorrent -n -p 55718-55718 -s ./ -d ./ -o download_rate=200,upload_rate=28,check_hash=yes'
    $ alias bureau document home téléchargement nano monip radiosuisse rtorrent >> ~/.bash_aliases

    3 - Exemples de personnalisation

    3.1 - Pour un utilisateur

    $ nano ~/.bashrc

    #### Adapter les lignes existantes suivantes dans le fichier ~/.bashrc de l'utilisateur

    # ne pas dupliquer les lignes et ne pas inclure les lignes commençant par un espace dans l'historique
    HISTCONTROL=ignoreboth

    # ajouter dans le fichier historique, ne pas l'écraser
    shopt -s histappend

    # adapter la taille de l'historique en mémoire et du fichier historique
    HISTSIZE=1000
    HISTFILESIZE=2000

    # tester la taille de la fenêtre après chaque commande et adapter le nombre de lignes et de colonnes si nécessaire
    shopt -s checkwinsize

    # forcer un prompt coloré
    force_color_prompt=yes

    # utiliser sortie ls, grep colorée
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'

    #### Ajouter les lignes suivantes

    # Correction orthographique cd :
    shopt -s cdspell

    # ajouter les commandes dans l'historique au fur et à mesure
    export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

    # désactiver l'utilisation du protocole xon/xoff (ctrl s /ctrl q), afin de libérer ctrl s pour la gestion de la recherche dans l'historique
    stty -ixon
    # solution alternative désactiver ctrl s (stop)
    # stty stop undef

    # quelques raccourcis cd
    alias bureau='cd ~/Bureau'
    alias documents='cd ~/Documents'
    alias home='cd ~'
    alias téléchargement='cd ~/Téléchargements'
    # éditeur nano : ajouter options défilement continu et prise en compte de la souris
    alias nano='nano -mS'

    # téléchargement rtorrent, avec options personnalisées
    alias rtorrent='rtorrent -n -p 55718-55718 -s ./ -d ./ -o download_rate=200,upload_rate=28,check_hash=yes'

    # raccourci mon ip
    alias monip='dig +short myip.opendns.com @resolver1.opendns.com'

    # raccourci radiosuisse
    alias radiosuisse='cvlc http://www.radioswissclassic.ch/live/aacp.m3u'

    3.2 - Pour le super-utilisateur

    # nano ~/.bashrc

    #### Adapter les lignes existantes suivantes dans le fichier /root/.bashrc :

    # Ne pas dupliquer les lignes et ne pas inclure les lignes commençant par un espace dans l'historique
    HISTCONTROL=ignoreboth

    # ajouter dans le fichier historique, ne pas l'écraser
    shopt -s histappend

    # adapter la taille de l'historique en mémoire et du fichier historique
    HISTSIZE=1000
    HISTFILESIZE=2000

    # tester la taille de la fenêtre après chaque commande et adapter le nombre de lignes et de colonnes si nécessaire
    shopt -s checkwinsize

    # You may uncomment the following lines if you want `ls' to be colorized:
    export LS_OPTIONS='--color=auto'
    eval "`dircolors`"
    alias ls='ls $LS_OPTIONS'

    #### Ajouter les lignes suivantes :

    # Correction orthographique cd
    shopt -s cdspell

    # ajouter les commandes dans l'historique au fur et à mesure
    export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

    # désactiver l'utilisation du protocole xon/xoff (ctrl s /ctrl q), afin de libérer ctrl s pour la gestion de la recherche dans l'historique
    stty -ixon
    # solution alternative désactiver ctrl s (stop)
    # stty stop undef

    # grep coloré
    alias grep='grep $LS_OPTIONS'

    # quelques raccourcis cd
    alias bureau='cd ~/Bureau'
    alias documents='cd ~/Documents'
    alias home='cd ~'
    alias téléchargement='cd ~/Téléchargements'
    # éditeur nano : ajouter options défilement continu et prise en compte de la souris
    alias nano='nano -mS