限制所有Linux命令的输出

时间:2011-12-01 01:19:09

标签: linux bash

我正在寻找一种方法来限制Linux中所有命令行程序产生的输出量,最好告诉我它何时受限制。

我正在使用显示器滞后的服务器。偶尔我会不小心运行一个向终端输出大量文本的命令,例如大文件上的cat或许多文件的目录上的ls。然后,我必须等待所有输出打印到终端。

那么有没有办法自动将所有输出传输到headwc之类的命令,以防止必须将多少输出打印到终端?

5 个答案:

答案 0 :(得分:3)

我不知道一般情况,但对于每个众所周知的命令(cat,ls,find?) 你可以做到以下几点:

  • 将副本硬链接到现有实用程序
  • 写一个小的bash函数,调用实用程序和管道(或wc,或其他)
  • 别名用于调用您的函数的实用程序的名称。

所以沿着这些方向(完全未经测试):

$ ln `which cat` ~/bin/old_cat

function trunc_cat () {
   `old_cat $@ | head -n 100`
}

alias cat=trunc_cat

答案 1 :(得分:1)

制作所有命令的别名将是一个良好的开端。像

这样的东西
alias lm="ls -al | more"
alias cam="cat $@ | more"

答案 2 :(得分:1)

也许使用screen会有所帮助吗?

答案 3 :(得分:1)

这让我想到了bash-completion。

使用bash中的complete命令可以在找不到程序时指定处理程序,

如何编写自己的处理程序并清除$PATH,以便通过重定向执行每个命令到过滤管道?

#Did不要自己尝试。

答案 4 :(得分:0)

假设您正在通过网络连接(如ssh)进入远程服务器,然后尝试将命令输出传递给less。这样,您可以更好地管理和导航服务器上的程序输出。使用'j'和'k'每行上下移动,'ctrl-u'和'ctrl-d'上下移动1/2页。当您这样做时,只会通过网络传输相关文本(即适合屏幕的文本)。