我正在寻找一种方法来限制Linux中所有命令行程序产生的输出量,最好告诉我它何时受限制。
我正在使用显示器滞后的服务器。偶尔我会不小心运行一个向终端输出大量文本的命令,例如大文件上的cat
或许多文件的目录上的ls
。然后,我必须等待所有输出打印到终端。
那么有没有办法自动将所有输出传输到head
或wc
之类的命令,以防止必须将多少输出打印到终端?
答案 0 :(得分:3)
我不知道一般情况,但对于每个众所周知的命令(cat,ls,find?) 你可以做到以下几点:
所以沿着这些方向(完全未经测试):
$ 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页。当您这样做时,只会通过网络传输相关文本(即适合屏幕的文本)。