Что-то пошло не так с обоими командами man
и git log
в моей системе Ubuntu в праздничные дни. Ни один из них не производит никакого вывода, и я не имею ни малейшего представления о том, в чем заключается проблема, за исключением того, что они оба должны создавать постраничные команды. Пример ниже.
Некоторые моменты
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, так что в этом наборе программ, вероятно, есть что-то, что вызывает эту проблему. Решение ниже все еще исправляет это.
Похоже, ваша альтернативная система сломана. Вы должны быть в состоянии обновить альтернативные ссылки с помощью:
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