Bash は常に less に出力しますが、これをオフにするにはどうすればよいでしょうか?

Bash は常に less に出力しますが、これをオフにするにはどうすればよいでしょうか?

最近の更新後、bash常に に出力されるようになりless、多くのコマンドでページ区切りが発生するようになりました。オフにする方法を知っている人はいますかless?

出力例systemctl status

systemctl statusの出力

答え1

systemctl( )のマニュアルページではman systemctlこの動作が明確に説明されており、変更するためのオプションも提供されています。

$SYSTEMD_PAGER--no-pagerが指定されていない場合に使用するページャー。 が を上書きします$PAGER。 も も設定されていない場合は$SYSTEMD_PAGER、(1) と(1)$PAGERを含む既知のページャー実装のセットが、見つかるまで順に試されます。ページャー実装が見つからない場合は、ページャーは呼び出されません。この環境変数を空の文字列または値 " " に設定すると、 を渡すのと同じです。lessmorecat--no-pager

したがって、あなたの場合の解決策は、ログイン時に環境変数を設定することです。

export SYSTEMD_PAGER=cat

答え2

さらに広く言えば、bashランタイム設定でPAGER環境を定義することができます。

# In .bashrc or .bash_profile

export PAGER='cat'

答え3

~/root/.bashrc、などを変更するのが得策ではないシステムにログインすることがよくあります。/etc/profileまた、パラメータ名 を常に覚えているわけではありませんSYSTEMD_PAGER

そこで、私は怠惰なハックとして、次のように出力をcatまたはless(私の好みのページャー) にパイプするだけです。

systemctl status | cat
systemctl status | less

このトリックはcat他の多くのプログラムでも同様に機能します。たとえば、infoページをナビゲートする方法を扱いたくない場合は、次のようにするだけです。

info bash | less

関連情報