Нет вывода некоторых разбитых на страницы команд (man, git log)

Что-то пошло не так с обоими командами man и git log в моей системе Ubuntu в праздничные дни. Ни один из них не производит никакого вывода, и я не имею ни малейшего представления о том, в чем заключается проблема, за исключением того, что они оба должны создавать постраничные команды. Пример ниже.

Некоторые моменты

  • Я обновился с Ubuntu 17.04 до 17.10 прошлой ночью, но это ничего не изменило.
  • less и more работают нормально, как и все остальное, что я думал попробовать, включая остальные команды git.
  • Проблема сохраняется как на bash, так и на sh.

Любая помощь приветствуется!

>>> echo Hello world > Foo.txt

>>> git init
Initialised empty Git repository in /home/eoin/GitHub/Fake/.git/

>>> git add Foo.txt 

>>> git commit -m "Init"
[master (root-commit) 9e53556] Init
 1 file changed, 1 insertion(+)
 create mode 100644 Foo.txt

>>> git log

>>> git status
On branch master
nothing to commit, working tree clean

>>> ls
Foo.txt

>>> man
What manual page do you want?

>>> man --version
man 2.7.6.1

>>> man man

>>> man git

>>> man ls

>>> which man
/usr/bin/man

>>> which git
/usr/bin/git

>>> which less
/usr/bin/less

>>> which more
/bin/more

Обновления

(Спасибо всем, кто прокомментировал)

  • Переустановка git или man не работает.
  • $MANPAGER не установлен в новом терминале.
    • При запуске MANPAGER=/usr/bin/less man man открывается страница справочника, как и ожидалось. Отлично!
    • MANPAGER=/usr/bin/less git log ничего не делает.
    • man man один по-прежнему ничего не делает после запуска этого, хотя $MANPAGER был установлен в этом терминале. Думаю, мне нужно каким-то образом сделать MANPAGER постоянным, но пока не знаю как. Хороший прогресс, хотя.
  • sudo update-alternatives --config pager вызывает следующие опции

    There are 3 choices for the alternative pager (providing /usr/bin/pager).
    
      Selection    Path            Priority   Status
    ------------------------------------------------------------
    * 0            /bin/less        77        auto mode
      1            /bin/less        77        manual mode
      2            /bin/more        50        manual mode
      3            /usr/bin/w3m     25        manual mode
    

    , но я попробовал их все, и man man по-прежнему ничего не делает.

  • less и more нормально работают.

  • less и pager кажутся разумными, насколько я могу судить

    >>> ls -l /usr/bin/less
    lrwxrwxrwx 1 root root 9 Jul 18  2016 /usr/bin/less -> /bin/less
    
    >>> eoin@eoin-SATELLITE-S50-B:~/GitHub/Fake$ ls -l /bin/less
    -rwxr-xr-x 1 root root 170728 Mar 24  2017 /bin/less
    
    >>> file /usr/bin/pager
    /usr/bin/pager: symbolic link to /etc/alternatives/pager
    
    >>> file /etc/alternatives/pager
    /etc/alternatives/pager: symbolic link to /bin/less
    
  • man man | cat печатает страницу руководства!

    • man man | less работает также
    • , как и git log | less.
    • 1162 Это разумный обходной путь, но я до сих пор не знаю, в чем проблема на самом деле.

Гораздо позднее обновление

Я только что снова столкнулся с той же проблемой на своем рабочем ноутбуке под управлением Ubuntu 16.04. В основном я использую этот компьютер для научных вычислений на python и R, так что в этом наборе программ, вероятно, есть что-то, что вызывает эту проблему. Решение ниже все еще исправляет это.

4
задан 7 June 2018 в 19:58

1 ответ

Похоже, ваша альтернативная система сломана. Вы должны быть в состоянии обновить альтернативные ссылки с помощью:

sudo update-alternatives --auto pager

После этого выберите свой любимый пейджер с помощью:

sudo update-alternatives --config pager

Если это не помогает, вы можете установить, например:

export PAGER=/usr/bin/less

и оба man и git log должны уважать и использовать это (хотя MANPAGER используется только man, как вы уже обнаружили).

Краткий краткий курс по установке переменных:

  • устанавливает переменную только для одной команды, например:

    PAGER=/usr/bin/less man man
    
  • set переменная для текущего терминала, например:

    export PAGER=/usr/bin/less
    
  • установить переменную для каждого нового терминала (хотя вы также можете получить файл с помощью . ~/.bashrc в любом существующем терминале), Например:

    PAGER=/usr/bin/less
    
3
ответ дан 7 June 2018 в 19:58
  • 1
    I' m главным образом настольный пользователь, но I' замеченные опции ve в некоторых программах для пробуждения системы для выполнения некоторого действия, таким образом, я предполагаю, что, если Вы приостанавливаете, а не выключаете, существует путь. Я don' t знают бесцеремонно, все же. Между прочим, что you' поиск ре является " след на RTC" (часы реального времени). – Marty Fried 1 June 2012 в 05:24
  • 2
    I' m главным образом настольный пользователь, но I' замеченные опции ve в некоторых программах для пробуждения системы для выполнения некоторого действия, таким образом, я предполагаю, что, если Вы приостанавливаете, а не выключаете, существует путь. Я don' t знают бесцеремонно, все же. Между прочим, что you' поиск ре является " след на RTC" (часы реального времени). – Marty Fried 1 June 2012 в 05:24

Другие вопросы по тегам:

Похожие вопросы: