Table des matières

Astuces pour le terminal

Introduction

Le terminal (ou émulateur de terminal si on est sous X) peut paraître de prime abord assez austère. Les quelques astuces qui suivent visent à le rendre plus agréable, voire à en faire un environnement de travail stylé et séduisant.

Installation

La plupart des astuces fonctionneront sous votre émulateur habituel (xterm, konsole, gnome-terminal, sakura, terminal XFCE…) et avec le shell Bash.

Utilisation

Avoir de la couleur dans les manpages avec less

Il faut rajouter la fonction suivante dans votre .bashrc :

man() {
     env LESS_TERMCAP_mb=$'\E[01;32m' \
     LESS_TERMCAP_md=$'\E[01;32;5;74m' \
     LESS_TERMCAP_me=$'\E[0m' \
     LESS_TERMCAP_se=$'\E[0m' \
     LESS_TERMCAP_so=$'\E[1;31m' \
     LESS_TERMCAP_ue=$'\E[0m' \
     LESS_TERMCAP_us=$'\E[1;33m' \
     man "$@"
}

Ce qui permet d'utiliser LESS avec les en-têtes de catégories et texte en gras en vert, les éléments soulignés en jaune et les résultats de recherche en rouge gras.

Coloriser le code lu avec less

Pour cela, installer le paquet source-highlight :

apt-get install source-highlight

puis ajouter dans son .bashrc les lignes suivantes :

export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Ouvrez un nouveau terminal ou re-éxecuter le .bashrc :

source .bashrc

et hop, magie les fichiers de code que vous consultez avec less disposent de la couleur ! ;)

Définir le titre de son terminal

Pour Bash

Le .bashrc fournit par Debian dispose déjà de cette fonction mais nous allons l'améliorer. Chercher les lignes suivantes :

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

et ajouter en dessous :

    show_command_in_title_bar()
    {
        case "$BASH_COMMAND" in
            *\033]0*)
                 ;;
            *)
                echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD} > ${BASH_COMMAND}\007"
                ;;
        esac
    }
    trap show_command_in_title_bar DEBUG

Ainsi le titre de votre terminal comprend votre login, le nom de la machine, le dossier actuel et, le cas échéant, le nom du programme en cours d'éxecution.

Pour Zsh

Cela ne fonctionnera pas pour les utilisateurs de zsh qui préféreront ajouter le code suivant à leur .zshrc :

if [ "$SHELL" = '/bin/zsh' ]
then
    case $TERM in
         st*|*term)
         precmd() { print -Pn "\e]0;%n@%m:%~\a" }
         preexec () { print -Pn "\e]0;%n@%m:$1\a" }
         ;;
    esac
fi

Sogal 22/08/2015 12:22