Нет вывода некоторых разбитых на страницы команд (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/lessman 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