将Linux top命令输入到指定文件时的乱码问题

来源:互联网 发布:centos6 yum 安装php7 编辑:程序博客网 时间:2024/05/21 08:03

   根据需求,项目需要读取linux系统环境参数,所以需要将top命令的输出结果输入到文件中。用重定向命令如下:top > result.txt 。用vi打开文件: vi result.txt 。显示的结果却是这样的,看图更方便:

wKiom1MxPWzzR4XUAAktiSag7_8295.jpg

于是分析出一下几个原因:

   1.其他命令是否出现相同问题?

   2.是否是文件编码格式问题导致?

   3.是否是系统平台问题导致?

下面一个一个测试:

1.测试命令:ls > testls.txt

结果如图:

wKiom1MxPkKjX8GnAAFHspDa1II564.jpg

测试命令:ps -ef > testps.txt

结果如图:

wKioL1MxPinAg8exAAYCwgdnvik018.jpg

可以得出结论,其他命令没有出现这样的情况,排除原因1.

2.看看result.txt文件的编码格式

vi result.txt进入文件输入: ":set fileencoding" 后按回车显示utf-8,如下图:

wKioL1MxPnjR04i1AAupnZaZA7I567.jpg

于是也可以排除不是文件编码的问题;排除原因2;

3.将 result.txt 文件拿到windows系统中打开,显示如下图:

wKiom1MxPuCj3cfNAAqq5-SlOj4138.jpg

也出现了乱码情况,所以也不是系统平台的原因。。。这下原因3也排除了。

这下该怎么办呢???

最后能想到的只有命令本身了,因为其他命令没有出现这种情况,所以会想到在top命令的参数中会有蹊跷。

下面是linux top命令的详解:http://rockhooray.blog.51cto.com/938613/832621

可以发现,在想要输出内容到文件中则需要使用批处理模式。详细介绍如下:


-b 批处理模式操作

开启top工作在批处理模式,这样在需要将top的输出信息输出 到其他程序或文件时非常有用。在这种模式下,top不接受任何输入操作,直到通过-n 设置的重复次数后,或者退出top才终止。

在终端中输入top -b top将不断重复地显示任务信息,知道按Ctrl+C终止为止,在终端中输入top -b -n 10 ,top将显示10次后终止,也就是分10个批次显示完后就退出。


所以只需要在命令中指定为批处理模式问题就解决啦: top -b > result.txt 结果就不在展示了。


本文出自 “一个风向” 博客,请务必保留此出处http://lanffy.blog.51cto.com/6452125/1383906

0 0
原创粉丝点击