Нет вывода некоторых разбитых на страницы команд (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
, - Это разумный обходной путь, но я все еще не знаю, в чем проблема на самом деле.
Много позже обновлений
Я только что столкнулся с той же проблемой снова, на моем рабочем ноутбуке под управлением Ubuntu 16.04. В основном я использую этот компьютер для научных вычислений на python и R, так что в этом наборе программ, вероятно, есть что-то, что вызывает эту проблему. Решение ниже все еще исправляет это.
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
установить переменную для текущего терминала, например:
export PAGER=/usr/bin/less
установить переменную для каждого нового терминала (хотя вы можете получить файл с помощью
. ~/.bashrc
в любом существующем терминале), например:PAGER=/usr/bin/less