如何在使用 less 命令或在手册页中执行 Linux 命令?

如何在使用 less 命令或在手册页中执行 Linux 命令?

ls我通常使用管道命令less,并希望在分页时执行命令,例如,我遇到一个我想删除的文件,所以我想在rm {filename}分页时执行命令。我还希望在浏览手册页时可以使用相同的方法。如果不行,那有什么不同?

答案1

您可以使用 less 中的 bang ( ) 访问命令行!

例如,如果你输入:

touch temp.txt
ls | less
!rm temp.txt

并且 temp.txt 应该消失了。

编辑:默认情况下,man 现在使用的页面较少(出于某种原因,我认为它使用了more,也许过去确实如此)。您可以使用相同的技巧,但它需要完整路径(例如 /home/user/...)才能使其工作。

这是因为调用 man 会更改当前工作目录。在我的计算机(xubuntu,使用xfce-terminal)上,它会转到/usr/share/man。如果您的控制台显示 CWD,您可以看到它发生了变化,或者您可以通过输入以下内容从内部查看它man

!pwd

答案2

实现此目的的通用方法是暂停当前作业,执行命令并恢复旧作业。

ls | less (阅读文本,注意文件名)
Control-z暂停当前活动命令

您应该得到类似这样的一行:[1]+ Stopped ls | less
([1] 是职位编号。)

rm testfile

fgfg %1 (1 为职位编号)

您可以同时暂停多个进程。例如
ls | less
Control-z (output: [1]+ Stopped ls | less)
man rm
Control-z (output: [2]+ Stopped man rm)
rm -i testfile*

fg %1恢复作业 1(将手册页留在后台打开),或
fg %2恢复作业 2(man rm)

如果您有多个暂停的进程,您可以使用 列出它们jobs

相关内容