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 !
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.