Personnalisez le shell !

shell en couleur

La console, outil de torture pour les débutants sous Linux en aura fait cauchemarder plus d’un.

Pourtant c’est un outil très puissant, quasi-indispensable, qui permet de gagner beaucoup de temps. Voici quelques tuyaux pour être à l’aise avec sa console…

 

Première chose à savoir : le nom de votre shell. En effet il y en a plusieurs, csh, tcsh, ksh, bash, et chacun ont leur spécificités !  Le nom du shell est stocké dans la variable d’environnement SHELL, il suffit donc d’un echo $SHELL pour le connaitre.

Chez moi c’est bash, il est probable que ce soit pareil pour vous car il est très répandu (c’est le shell du projet GNU).

 Pour bash, le fichier de préférence est $HOME/.bashrc. On peut l’éditer avec gedit, par exemple : gedit ~/.bashrc.

Toutes les modifications expliquées ici doivent avoir lieu dans ce fichier.

 

1°) Personnaliser l’invite de commande :

 Une console en noir & blanc, vous l’avez remarqué, c’est pas très lisible ! On pourrait donc commencer par mettre quelques couleurs, histoire que se soit un peu plus « user-friendly » ;). 

 On commence par définir les couleurs :

# ——————————————–
# Définition des couleurs
# ——————————————–

    # couleurs de base
    rouge= »\[\033[31m\] »
    vert= »\[\033[32m\] »
    jaune= »\[\033[33m\] »
    bleu= »\[\033[34m\] »
    magenta= »\[\033[35m\] »
    defaut= »\[\033[00m\] »

    # couleurs brillantes
    h_rouge= »\[\033[1;31m\] »
    h_vert= »\[\033[1;32m\] »
    h_jaune= »\[\033[1;33m\] »
    h_bleu= »\[\033[1;34m\] »
    h_magenta= »\[\033[1;35m\] »
    h_defaut= »\[\033[1;00m\] »

 Pas de panique, ne vous affolez pas !

C’est simple: « \[\033[numerom\] » permet de changer la couleur de la police. La nouvelle couleur dépend du numero donné :

 30  Noir
 31  Rouge
 32  Jaune
 33  Vert
 34  Bleu
 35  Magenta
 36  Cyan
 37  Blanc
 00  Réinitialiser (noir)

Lorsqu’on utilise un des codes ci-dessus, tous les caractères qui suivent seront affichés avec la couleur correspondante, c’est pour ça qu’il faut réinitialiser le système de couleurs.

D’ailleurs, on peut également changer la couleur de fond avec les codes suivants :

 40  Noir  
 41  Rouge
 42  Jaune
 43  Vert
 44  Bleu
 45  Magenta
 46  Cyan
 47  Blanc

On peut également combiner couleur de fond et couleur des caractères : exemple : blanc_sur_fond_noir= »\[\033[40;37m\] »

On peut remarquer que les couleurs brillantes ont un « 1; » en plus : h_rouge= »\[\033[1;31m\] ».

Ce paramètre permet d’augmenter la luminosité des caractères.

Maintenant qu’on a les couleurs, on peut définir la façon d’afficher le prompt. C’est la variable d’environnement PS1 qui définie la façon dont est affiché l’invite de commande. 

 # ———————————————————————-
# Définition du prompt en couleur
# ———————————————————————-
PS1= »$jaune\t $vert\u$defaut@$rouge\h$defaut:\w \$ « 

On utilise donc les couleurs définies précédemment (les variables doivent être précédées du signe « $ » pour qu’elles soient remplacées par leur valeur), ainsi que des caractères spéciaux. Voici les plus utiles, mais sachez qu’il en existent une trentaine :

  • \t : l’heure système, au format 24h 
  • \T :  l’heure système, au format 12h 
  • \u :le nom de l’utilisateur courant
  • \h : le nom de la machine hôte
  • \w : le répertoire courant (avec $HOME= »~ »)
  • \$ : affiche, un « $ », sauf si vous êtes root, alors vous avez un « # »

Voila, on a déjà une console un peu plus sexy !

 shell en couleur

2°) Les alias :

Les alias permettent de créer des « raccourcis » pour les commandes que vous utilisez souvent. Cela évite de devoir taper des commandes longues, sources d’erreurs.
Définir un alias est très simple : alias commande= »raccourci »

Voici la liste d’alias que j’utilise :

alias ..=’cd ..’                                                  #remonter d’un cran
alias …=’cd ../..’                                              #remonter de deux crans
alias cd..=’cd ..’                                              #remonter d’un cran
alias df=’df -h’                                                #afficher l’espace libre lisiblement
alias du=’du -h’                                             #afficher l’espace utilisé lisiblement
alias editRC=’gedit $HOME/.bashrc &’    #éditer le .bashrc
alias install=’sudo apt-get install’              #installer un paquet
alias la=’ls -a’                                                #afficher les fichiers cachés
alias ll=’ls -lh’                                                #affichage détaillé et lisible
alias ls=’ls –color=auto’
alias ps=’ps aux’
alias reloadRC=’. $HOME/.bashrc’             #Prendre en compte les modifications du bashrc   
alias remove=’sudo apt-get autoremove’  #supprimer un paquet
alias removeall=’sudo apt-get remove –purge’     #supprimer un paquet et ses fichiers de configurations
alias search=’apt-cache search’                 #faire une recherche dans les paquets
alias show=’apt-cache show’                      #afficher les informations d’un paquet
alias untarbz2=’tar -jxvf’                               #decompresser une archive .tar.bz2 
alias untargz=’tar -zxvf’                                #decompresser une archive .tar.gz 
alias update=’sudo apt-get update’           #mettre à jour la liste des paquets
alias upgrade=’sudo apt-get updgrade’   #installer les mises à jour des paquets

Pour afficher la liste des alias disponibles il suffit de taper « alias » dans une console.

3°) Les variables d’environnements :

 Les variables d’environnements doivent êtres définies dans le bashrc pour qu’elles soient persistantes. 

Pour bash, la définition d’une variable se fait simplement : nom_variable=valeur

Généralement il est de bon ton de précéder la définition de la variable par le mot clef export, qui permet d’étendre la définition de la variable aux shells créés à partir du shell courant. Exemples :

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.06
export PATH=.:$PATH   Aattention, l’ajout du répertoire courant au path est souvent considéré comme une faille de sécurité… néamoins, c’est pratique 
export VISUAL=nano       #la variable visual définie l’éditeur par défaut de la crontab 
export HISTSIZE=3000    #la variable histsize définie le nombre de commandes gardées dans l’historique

 Pour afficher la liste des variables d’environnements définies il suffit de taper « env » dans une console.

 

4°) Les fonctions :

 Il est possible de programmer des fonctions. Elles sont introduites par le mot clef function et les paramètres sont accessibles par l’intermédiaire des variables $1 $2 … $9 ${10} ${11}…  C’est à dire que les 9 premiers paramètres sont $1 à $9. Si le numéro du paramètre comporte plus d’un chiffre, il faut l’entourer de {} : le 10ièm est donc ${10}. Le nombre de paramètres est donné par $#. 

Un petit exemple est surement le bienvenu :

#Créé le répertoire et va dedans
function mkcd() {
mkdir $1 && cd $1
}

ici $1 est le premier (et le seul) paramètre de la fonction. C’est le nom du répertoire à créer et où l’on doit aller.

 

Laisser un commentaire

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