On a Debian system, one can type pager
in order to use whatever pager program happens to be default/available. By default, less
is used, and if not available, the lesser more
gets to do the job. Is such a thing available in other Unix and Linux systems?
The unix tradition is for applications that want to call a pager to call $PAGER
, i.e. use the contents of the environment variable PAGER
as a command name. (Whether shell metacharacters are expanded in $PAGER
is not consistent between applications.) The unix tradition further uses more
if the PAGER
variable is not set. There is a similar tradition for text editors: use $EDITOR
(or, for historical reasons, $VISUAL
), falling back to vi
.
Having a command named pager
is specific to Debian (and derivatives, including Ubuntu). /usr/bin/pager
is in fact a symbolic link to /etc/alternatives/pager
, which points to the the “best” available pager (the Debian maintainers decide which is best, and the system administrator can override their choice), using the alternatives framework.
Debian also provides /usr/bin/sensible-pager
. This script runs $PAGER
if the variable is set, and falls back to pager
otherwise. Its purpose is to be used in programs where a single pager path has to be hard-coded. This behavior is documented in the Debian policy manual.
-
1Just as an addendum, while not included by default, a
pager
generic could be used by the alternative system that is found in Red Hat derivatives such as Fedora. Also, if one really wanted to, I'll bet one could implement such a system on other Unixes since I've seen alternative frameworks implemented in perl. – Steven D Jan 4 '11 at 20:42 -
@Steven: It's not surprising that Red Hat's alternatives look like Debian's. And the framework is implemented as a Perl script (
/usr/bin/update-alternatives
) — or was. – Gilles 'SO- stop being evil' Jan 4 '11 at 21:13 -
POSIX specifies that
man
shall interpret$PAGER
as an string passed tosh -c
. So at leastman
recognises metachars in$PAGER
. – Tom Hale Aug 29 '20 at 10:00
$ update-alternatives --list pager /bin/less /bin/more /usr/bin/pg /usr/bin/w3m
YMMV depending on what you have installed, but this is Debian-specific (well, and derivatives too).
Customarily one uses $PAGER
with a fallback to more
.
All Linux-Distributions I have used so far (Gentoo, Debian, Slackware, Fedora, OpenSuse) had an Environment-Variable called PAGER which set the pager (default, as said, less).
It's set in your shell environment.
I think the command man
uses this variable..