Le Hollandais Volant

GNU/Linux : améliorer le terminal

Sous GNU/Linux, le terminal est un programme central pour les utilisateurs, pour sa rapidité et sa simplicité. Il peut donc être intéressant de le personnaliser et de l’améliorer un peu.

Ces astuces ici sont pratiquement toutes inspirées de ce qui se fait dans la distribution Linux Mint, qui intègre tout ça par défaut.

Les couleurs dans le terminal


Par défaut sous Ubuntu (et ailleurs), le texte dans le terminal est tout de la même couleur. C’est difficilement lisible. Il est possible, entre autre, de mettre en couleur le texte au début d’une nouvelle ligne, le « nom@machine ~ $ » pour le rendre plus visible.
Pour cela, éditez le fichier caché .bashrc qui se trouve dans votre dossier personnel et ajoutez tout à la fin sur une nouvelle ligne :
PS1='\e[1;35m\u@\h\e[1;32m \w $ \e[0m'

Résultat :

terminal with another PS1 colors
Personnellement, j’ajoute même une nouvelle ligne avant un nouveau prompt, pour bien espacer chaque ligne (remplacez la ligne précédente par celle là) :
PS1='\n\e[1;35m\u@\h\e[1;32m \w $ \e[0m'

Pour que ça marche, éditez le fichier .bashrc, sauvegardez les changements puis ouvrez un nouveau terminal. Chaque changement dans le fichier n’est pris en compte qu’en ouvrant un nouveau terminal.
ÉDIT : pas besoin de relancer le terminal, Nono me signale la méthode où il suffit de lancer « . ~/.bashrc »

En plus, je préfère que le titre du terminal affiche le chemin courant (PWD) plutôt que « Terminal » :

PS1='\[\e]0;\w\a\]\n\e[1;35m\u@\h\e[1;32m \w $ \e[0m'[/code]
Si vous voulez changer de couleurs, sachez que ce sont les « 35 » et « 32 » que vous voyez qui font référence aux couleurs. La liste est donnée sur cette page. Le « 1; » devant la code couleur correspond au gras. Pour que les caractères ne soient pas en gras, mettez « 0; ».

ÉDIT : Kyriog me signale ce site pour créer des lignes PS1 pour bashrc. Glissez-déposez les éléments dans la ligne au dessus et récupérez le code en bas !

Command not found


Lorsque vous tapez une commande qui n’existe pas, le terminal affiche une erreur. Il est possible de lui faire suggérer l’installation d’un paquet logiciel qui contient cette commande.
Par exemple, si Firefox n’est pas installé et que vous tapez « firefox », il vous proposera alors d’installer Firefox.

Installez les paquets suivants :

sudo apt-get install command-not-found command-not-found-data

Puis ajoutez le à votre bashrc (si ça n’est pas ajouté tout seul par le fait de l’avoir installé) :

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found ]; then
	function command_not_found_handle {
	        # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
		   /usr/bin/python /usr/lib/command-not-found -- $1
                   return $?
		else
		   return 127
		fi
	}
fi


Cowsay


Cowsay couplé à Fortune permet d’afficher un petit dessin en ASCII qui affiche une citation. Quand j’ouvre un terminal, je vois affiché une citation au hasard énoncée par un animal au hasard : une vache, un renne, un hellokitty ou un tux.
Il faut pour cela avoir installé les paquets cowsay et fortune (et activé les paquets universe) :
sudo apt-get install cowsay fortune

Puis placer cette ligne dans le bashrc :
fortune -a | cowsay -f $(shuf -n1 -e hellokitty default tux moose)

Normalement, quand vous ouvrirez le terminal, ça fera quelque chose comme ça :

cowsay + fortunes trick

L’autocompletion


Sous Ubuntu ça semble avoir été corrigé dans la version 14.04, mais avant l’autocomplétion avec la touche de tabulation ne marchait pas ou de façon incomplète. Pourtant, en ajoutant ceci à votre fichier .bashrc, vous pouvez activer l’autocomplétion qui est quand même très pratique.

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

Maintenant, au lieu de taper « sudo aptitude install firefox », vous taperez « sudo apti<tab> i<tab> firef<tab> » ce qui fait gagner pas mal de temps.

Voilà, avec tout ça vous aurez un terminal plus joli.
Une petite astuce finale : il est possible d’ajouter n’importe quelle commande au lancement du terminal. Pour cela, il suffit de placez la commande dans le fichier .bashrc. C’est aussi simple que cela.
Par exemple pour afficher l’heure d’ouverture du terminal tout en haut, mettez « date » tout seul sur une ligne. Pour afficher les dernières commandes tapées, mettez « cat .bash_history | tail »