不适合放在一页上的 bash 命令 - 使输出可滚动

不适合放在一页上的 bash 命令 - 使输出可滚动

可能在某处已经得到解答,但是很难构建搜索短语。

我正在运行 bash 终端窗口,某些命令太大,页面容纳不下(例如ps -A

我隐约记得有一个命令行参数/方法,可以逐页显示命令输出,以便我可以滚动浏览输出,但我不记得它是什么......有什么指示吗?

答案1

对于我经常使用的命令,我一般function在我的.bashrc如果长度超过一个屏幕,则使它们分页。

就像你的例子:(ps -A)

function ps { command ps "$@" |& less -F; }

这将替换ps为一个名为的函数ps,该函数使用命令行中给出的任何参数调用原始ps命令,然后通过管道输出(stdoutstderr,使用|&管道)进入less -F,如果超过一个屏幕则暂停,但如果不足一个屏幕则立即退出。

非常方便,不会干扰我迄今为止所做的任何工作,而且很酷!

您甚至还可以将常用的选项添加到命令/功能中:

function nm { command nm --demangle "$@" |& less -F; }

这使得nm总是对 C++ 符号进行解混淆。 对输出进行分页。耶!

我在跑Debian所以我apt-cache经常使用这个命令,搜索展示大部分情况下。此功能使这些特定选项分页,搜索输出已排序,并且所有内容均分页:

function apt-cache { case  "$1" in "search") command apt-cache "$@" | sort | less -F;; *) command apt-cache "$@" | less -F;; esac; }

如果命令是“搜索”,则对输出进行排序,然后使用 分页less -F,但如果命令是其他内容,则仅分页,而不进行排序。

有时我会忘记我已经拥有了这些功能,然后我会做类似的事情:

apt-cache search gcc | less

该功能不会干扰,一切都按预期工作,无论如何都不会造成损害。

另一个小调整是,我在所有系统上使用相同的方法.bashrc,因此有时可能未安装实用程序,因此不需要该功能。我使它们具有条件性,如下所示:

which apt-cache &>/dev/null && function apt-cache { case  "$1" in "search") command apt-cache "$@" |& sort | less -F;; *) command apt-cache "$@" |& less -F;; esac; }

这只是使用which命令来确定程序是否可用,如果不可用,它会悄悄失败并跳过安装该功能。Taa Daa!

答案2

正常方法是将输出通过管道传输到“less”。

ls -R / | less

q是退出的键,就像手册页一样。

如果该命令可能产生错误或其他输出到 stderr,您可能也希望将其直接发送到管道。

ls -R 2>&1 | less

任何装有 bash 的机器也应该有 less。在旧的 Linux 机器上,该程序是更多的,但每次只能处理一页,较少的将允许您随意滚动。

答案3

将输出传输到“more”

output | more -d


Enter - > Scroll by line
Space - > Scroll by Page
q     - > Quit

在基于 rpm 的操作系统上测试。

相关内容