27

What is the default PAGER used by man pages.

I,e what is the program runs the man pages?

It look some like more or less. I'm sure it's not more since more doesn't support reverse backward.

Maythux
  • 82,867
  • 54
  • 239
  • 271

2 Answers2

28

From man man:

                                                  ... The pager can  be
specified  in  a number of ways, or else will fall back to a default is
used (see option -P for details). 

...
-P pager, --pager=pager
       Specify  which  output pager to use.  By default, man uses pager
       -s.  This option overrides the $MANPAGER  environment  variable,
       which  in turn overrides the $PAGER environment variable.  It is
       not used in conjunction with -f or -k.

pager (/usr/bin/pager) is set using the Debian alternatives system (via /etc/alternatives/pager), and defaults to less.

$ update-alternatives --display pager
pager - auto mode
  link currently points to /bin/less
/bin/less - priority 77
  slave pager.1.gz: /usr/share/man/man1/less.1.gz
/bin/more - priority 50
  slave pager.1.gz: /usr/share/man/man1/more.1.gz
/usr/bin/pg - priority 10
  slave pager.1.gz: /usr/share/man/man1/pg.1.gz
/usr/bin/w3m - priority 25
  slave pager.1.gz: /usr/share/man/man1/w3m.1.gz
Current 'best' version is '/bin/less'.

Apparently, this particular default (using a command named pager) is a Debian-derivative trait. See Which systems have 'pager' shortcut/alias? over on Unix & Linux.

muru
  • 193,181
  • 53
  • 473
  • 722
  • Thanks.. I'm confused which one to mark as answer. Both were quick with good information and two different methods to check the symlink of pager. – Maythux May 15 '15 at 09:28
  • 1
    @NewUSer Toss a coin. :) – muru May 15 '15 at 09:29
  • In addition I think you can change this with the `MANPAGER` in the environment. – Ron May 15 '15 at 09:30
  • @Ron oh, yes. But that variable is not set by default, AFAICT. – muru May 15 '15 at 09:31
  • @muru I'm considering yours, you answered first. Eventhough the other answer is perfect – Maythux May 15 '15 at 09:32
  • 2
    @NewUSer ah, don't. Pick the best answer, not the earliest. – muru May 15 '15 at 09:33
  • @muru both answers are perfect. almost same – Maythux May 15 '15 at 09:33
  • @muru yeah, from `man man` : `-P` overrides `MANPAGER` which overrides `PAGER` – Ron May 15 '15 at 09:35
  • If once I change the pager then how to back in default? – alhelal Sep 18 '17 at 13:31
  • @BandaMuhammadAlHelal how did you change it? – muru Sep 18 '17 at 14:02
  • @muru actually I don't know for which that was happend because of I have done many [things](https://tex.stackexchange.com/questions/390724/how-to-create-pdf-from-linux-man-pages-so-that-style-is-presereved?answertab=votes#tab-top) at a time. – alhelal Sep 18 '17 at 16:38
  • @BandaMuhammadAlHelal in that case, you should post a new question with the output of `env` and `update-alternatives --display pager`, and the effect when you run `man -D `, and any changes you did that you can remember. – muru Sep 19 '17 at 11:40
  • @muru what does mean by the `priority`? – alhelal Oct 05 '17 at 16:29
  • From Debian 9.8.0, if you do `man pager` it'll point you to the man page of `less`. That sums it up (Debian-wise). – Fabián Aug 11 '19 at 18:28
20

By default, it's less. As explained in man man:

-P pager, --pager=pager

Specify which output pager to use. By default, man uses pager
-s
. This option overrides the $MANPAGER environment variable, which in turn overrides the $PAGER environment variable. It is not used in conjunction with -f or -k.

The value may be a simple command name or a command with argu‐
ments, and may use shell quoting (backslashes, single quotes, or
double quotes). It may not use pipes to connect multiple com‐
mands; if you need that, use a wrapper script, which may take the file to display either as an argument or on standard input.

On Debian-based systems, including Ubuntu, pager is a symlink to less:

$ readlink -f /usr/bin/pager 
/bin/less

This means that man's default, pager -s, is less -s. You can change this by i) using the -P option of man; ii) setting the MANPAGER or PAGER environmental variables.

terdon
  • 98,183
  • 15
  • 197
  • 293
  • Thanks.. I'm confused which one to mark as answer. Both were quick with good information and two different methods to check the symlink of pager. – Maythux May 15 '15 at 09:28
  • Sorry Friend I'm considering @muru answer since he was the first to answer.. But I wish I could choose both, you desrve – Maythux May 15 '15 at 09:29
  • 1
    @NewUSer don't worry about it. Both Muru and I have enough rep to keep us happy :) Just accept whichever one you feel answers your question better. I assure you that nobody will be offended. – terdon May 15 '15 at 09:34
  • both of answers are good enough. Thanks for your sportsman soul – Maythux May 15 '15 at 09:35
  • @terdon `readlink -f /usr/bin/pager` shows `/bin/less` but when I run `man` command it opens in `more` pager. why? – alhelal Oct 05 '17 at 16:33
  • @alhelal because of the MANPAGER or PAGER environment variables, or you have man aliased to include a -P parameter. – Vi Pau Mar 14 '18 at 13:50
  • @TheGatorade Now what can I do(e.g.`man -P less` results error)? – alhelal Mar 15 '18 at 01:06