web-dev-qa-db-ja.com

ページ分割されたコマンド(man、git log)からの出力がありません

休日に私のUbuntuシステムでmanコマンドとgit logコマンドの両方で何かがおかしくなりました。どちらも出力を生成せず、問題が何であるかについての手がかりはありませんが、どちらもページネーションされたコマンドを生成する必要があります。以下に例を示します。

いくつかのポイント

  • 昨夜Ubuntu 17.04から17.10にアップグレードしましたが、これで何も変わりません。
  • lessおよびmoreは、他のgitコマンドを含め、私が試した他のすべてのものと同様に、正常に機能します。
  • 問題はbashshの両方で持続します。

どんな助けも大歓迎です!

>>> 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 man | lessも機能します
    • git log | lessも同様です。
    • これは合理的な回避策ですが、問題が実際に何であるかについて私はまだ賢明ではありません。

ずっと後の更新

Ubuntu 16.04を実行している職場のラップトップで、同じ問題に再び遭遇しました。私は主にpythonとRの科学計算にこのコンピューターを使用しているため、このプログラムのセットにはこの問題を引き起こす可能性があります。以下の解決策はまだそれを修正します。

4
Eoin

代替システムが壊れているようです。次の方法で代替リンクを更新できるはずです。

Sudo update-alternatives --auto pager

その後、次の方法でお気に入りのページャーを選択します。

Sudo update-alternatives --config pager

それでうまくいかない場合は、たとえば.

export PAGER=/usr/bin/less

mangit logの両方は、それを尊重して使用する必要があります(MANPAGERは、すでに発見したように、manのみで使用されます)。

変数の設定に関する短いクラッシュコース:

  • 単一のコマンドだけに変数を設定します、例:

    PAGER=/usr/bin/less man man
    
  • 現在の端末に変数を設定します、例:

    export PAGER=/usr/bin/less
    
  • 新しい端末ごとに変数を設定します(ただし、既存の端末でも. ~/.bashrcを使用してファイルを取得できます)。例:

    PAGER=/usr/bin/less
    
3
dessert