man
假期期间,我的 Ubuntu 系统上的和命令都出了问题git log
。它们都没有产生任何输出,我不知道问题是什么,除了它们都应该产生分页命令。下面是一个例子。
几点
- 我昨晚将 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
运行此命令后,alone 仍然不会执行任何操作,即使$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