Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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 (stterm (suckless st, le choix de votre serviteur :-) ), xterm, konsole, gnome-terminal, sakura, terminal XFCE…) et avec le shell Bash.

Utilisation

Avoir de la couleur dans les manpages avec less

Couleurs simples

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.

Couleur à la most

Merci à captnfab pour ça

Créer un fichier ~/.terminfo/mostlike et y ajouter :

# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
mostlike|manpages with color looking like most,
  am, hs, km, mir, msgr, xenl,
  cols#80, it#8, lines#24, wsl#40,
  acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
  bel=^G, bold=\E[1m\E[31m, clear=\E[H\E[2J, cr=^M,
  csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
  cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
  cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
  dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
  dsl=\E]0;\007, ed=\E[J, el=\E[K, enacs=\E)0, fsl=^G,
  home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
  is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H,
  kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
  kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
  kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
  kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
  kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
  kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
  kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
  kslt=\E[4~, rc=\E8, rev=\E[7m\E[34m, ri=\EM, rmacs=^O,
  rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
  rmso=\E[m, rmul=\E[m,
  rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
  sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
  smkx=\E[?1h\E=, smso=\E[1;30m\E[47m, smul=\E[32m,
  tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n,
  u8=\E[?1;2c, u9=\E[c, 

puis rajouter l'alias suivant (dans .bash_aliases) :

alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"

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 ! ;)

Utiliser vim en tant que pager

Pour lire les manpages (et autres) avec vim, ajouter ceci dans votre .bashrc

export PAGER="/bin/sh -c \"unset PAGER;col -b -x | \
   vim -R -c 'set ft=man nomod nolist' -c 'map q :q<CR>' \
   -c 'map <SPACE> <C-D>' -c 'map b <C-U>' \
   -c 'nmap K :Man <C-R>=expand(\\\"<cword>\\\")<CR><CR>' -\""

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

1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/systeme/terminal/trucs_et_astuces.txt · Dernière modification: 03/11/2016 15:26 par bendia

Pied de page des forums

Propulsé par FluxBB