#1 Le 12/02/2021, à 17:43
- Francis Gernet
[Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Bonjour à toutes et à tous,
Je suis sous Ubuntu 20.4
Quand j'ouvre une terminal (gnome-terminal-server), mes commandes passent par un pager
echo $PAGER renvoie most,
mais printenv | grep PAGER ne me renvoie rien (printenv | grep most non plus) !
Mon problème n'est ni grave ni urgent, simplement j'aimerais bien avoir une piste pour un début d'explication.
Cordialement,
Dernière modification par Francis Gernet (Le 13/02/2021, à 15:09)
Francis
Hors ligne
#2 Le 12/02/2021, à 18:02
- MicP
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Bonjour
Sur mon système Xubuntu,
la variable PAGER n'est pas définie.
=======
Regarde la page man de la commande update-alternatives
man update-alternatives
Regarde aussi le retour de la ligne de commande suivante :
update-alternatives --get-selections
=======
Sur ma machine, c'est la commande less qui est utilisé comme pager
michel@debT450:~$ which pager
/usr/bin/pager
michel@debT450:~$ file /usr/bin/pager
/usr/bin/pager: symbolic link to /etc/alternatives/pager
michel@debT450:~$ file /etc/alternatives/pager
/etc/alternatives/pager: symbolic link to /bin/less
michel@debT450:~$ file /bin/less
/bin/less: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=6d0d4abd1777981660120e47aa351fed96bd3d46, stripped
michel@debT450:~$
En plus court, on aurait pu faire :
michel@debT450:~$ readlink -f $(which pager)
/usr/bin/less
michel@debT450:~$
Donc, quand je tape la commande suivante :
pager ~/.bashrc
c'est en fait la commande less qui affiche le contenu de mon fichier ~/.bashrc
less ~/.bashrc
J'ai le choix parmi 2 alternatives :
michel@debT450:~$ update-alternatives --list pager
/bin/less
/bin/more
michel@debT450:~$
et je peux faire ce choix en lançant la ligne de commande suivante :
update-alternatives --config pager
michel@debT450:~$ update-alternatives --config pager
Il existe 2 choix pour l'alternative pager (qui fournit /usr/bin/pager).
Sélection Chemin Priorité État
------------------------------------------------------------
* 0 /bin/less 77 mode automatique
1 /bin/less 77 mode manuel
2 /bin/more 50 mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
michel@debT450:~$
Dernière modification par MicP (Le 12/02/2021, à 18:25)
Hors ligne
#3 Le 12/02/2021, à 19:22
- Francis Gernet
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Merci MicP pour cette piste intéressante, j'avais oublié l'existence d'/etc/alternatives/
Mais ma variable PAGER n'est toujours pas affectée dans mon environnement. Y aurait-il une affectation par défaut ? Si sur ta station elle n'est pas définie, mais que less est utilisé par défaut, c'est sans doute le cas.
Du coté d'alternatives, sur ma station :
francis@tito2:~$ update-alternatives --config pager
There are 3 choices for the alternative pager (providing /usr/bin/pager).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/less 77 auto mode
1 /bin/more 50 manual mode
2 /usr/bin/less 77 manual mode
3 /usr/bin/most 60 manual mode
donc le choix par défaut sur ma station serait less, comme sur la tienne,
et, bien que ma variable PAGER n'est toujours pas affectée dans mon environnement, une fois lancé mon terminal, cette variable a pour valeur most. D'où cela peut-il bien venir ?
Merci de ta réponse,
Bonne soirée,
Francis
Hors ligne
#4 Le 12/02/2021, à 20:05
- Watael
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
PAGER est bien assignée, puisque tu peux en faire un echo qui retourne most.
mais, printenv ne montre pas toutes les variables d'environnement; essaie la commande set
si PAGER n'est pas définie dans ton .bashrc, c'est qu'elle est définie globalement dans un fichier sous /etc/
tu peux surcharger cette valeur en assignant la variable dans ton ~/.bashrc.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 13/02/2021, à 08:16
- serged
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Moi non plus, j'ai pas de PAGER, mais un MANPAGER :
serge@slibovix:~$ printenv|grep PAGER
MANPAGER=most
serge@slibovix:~$ echo $PAGER
serge@slibovix:~$
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#6 Le 13/02/2021, à 09:13
- FrancisFDZ
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Bonjour,
A ma connaissance, il existe au moins 3 pager, qui sont
- more : le plus ancien, présent dans unix
- less : plus "léger" ?
- most : le plus récent des 3, avec une gestion des couleurs dans l'intention de le rendre plus lisible.
Ces trois pager sont (AMHA) des versions plus ou moins améliorées (au sens de l'utilisateur) de la version de base "more" qui n'est toujours pas considérée comme obsolète.
Dernière modification par FrancisFDZ (Le 13/02/2021, à 09:13)
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne
#7 Le 13/02/2021, à 15:07
- Francis Gernet
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Merci Watael,
comme tu l'écris :
printenv ne montre pas toutes les variables d'environnement; essaie la commande set
Une fois compris que printenv n'affichait pas tout, j'ai regardé la différence avec set :
printenv n'affiche que les variables exportées, transmises à tous les programmes, alors que
set affiche les variables exportées, et les variables locales (celles du shell en cours), et aussi les fonctions shell.
Merci de votre aide. On maîtrise mieux un système si on comprend bien comment il fonctionne,
Cordialement
Francis
Hors ligne
#8 Le 13/02/2021, à 15:57
- MicP
Re : [Résolu] Variable d'environnement PAGER (résolu car printenv ≠ set)
Désolé, je n'avais pas compris la question.
Hors ligne