====== Astuces pour le terminal ====== * Objet : découvrir et partager ces astuces qui rendent le terminal agréable * Niveau requis : {{tag>débutant}} * Commentaires : //Pour tous les utilisateurs d'un terminal (tous les débianistes non ? :-) )// * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-completer à-tester}} * Création par [[user>sogal]] 22/08/2015 * Testé par <...> le <...> FIXME * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=134586 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== 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[1;32m' \ 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// Plus haut a été utilisé la syntaxe **termcap** (la librairie termcap, chez GNU/Debian est obsolète).\\ Elle est remplacée par la librairie **terminfo** (qui pour rétrocompatibilité, prend en charge la syntaxe de termcap). Ici est proposé d'utiliser **terminfo**, pour obtenir le même rendu qu'avec le pager **most** (non installé par défaut).\\ Un fichier de capacité **terminfo** est un fichier binaire, obtenu (compilé) par la commande **tic**. Créer le fichier ''~/.terminfo/mostlike.src'' en y ajoutant le code source suivant : # 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[J, 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[J\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 le compiler avec la commande **tic**. Il n'est pas question ici,\\ De faire compiler un code obscure, sans en établir la confiance.\\ \\ **__Origine du code__ :**\\ Ce code provient du fichier de capacité terminfo du type ''xterm-pcolor''.\\ Il est obtenu par la commande ''infocmp xterm-pcolor''.\\ __Notes__ : Il peut légèrement différer, d'une distribution à l'autre, ou avec l'évolution dans le temps.\\ \\ **__Modifications apportées__ :**\\ * Les paramètres ''bold'', ''smso'', ''smul'' ont été modifiés, pour y indiquer les couleurs du pager most. * Et pour compatibilité avec les consoles virtuelles((Les types de capacité terminfo ''xterm'' sont spécifiques aux terminaux (fenêtres). Les consoles (virtuelles), sont de type ''linux''.)) la séquence d'échappement de l'effacement de l'écran ''2J'', a été modifiée en ''J'', pour les paramètres ''clear'' et ''rmcup''. tic ~/.terminfo/mostlike.src Et créer l'alias suivant (dans ''~/.bash_aliases'') : alias man="TERM=mostlike PAGER=less man" Ici la variable ''PAGER'' est définie avec la valeur ''less'' (le pager installé et utilisé par défaut).\\ \\ Si vous n'avez pas installé et n'utilisez pas d'autre pager (tel-que most), son renseignement est inutile. Ne reste plus qu'à réinterpréter ''.bash_aliases'' source ~/.bash_aliases ==== 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' \ -c 'map ' -c 'map b ' \ -c 'nmap K :Man =expand(\\\"\\\")' -\"" ==== 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. {{https://debian-facile.org/images/file-R4f4c772661e90e13dd320ca75eb69289.png}} === 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 {{https://debian-facile.org/images/file-Rf862dc3dc86ac81af8f88630ffc1fb33.png}} --- //[[sogal@member.fsf.org|Sogal]] 22/08/2015 12:22//