top -d 10 > top.log &搭配-b如何使用
时间: 2024-03-18 11:41:17 浏览: 73
可以将 `top -b` 的标准输出通过管道传递给 tee 命令,然后将 tee 命令的输出重定向到 top.log 文件中,实现将标准输出保存到 top.log 文件中的效果。同时,使用 `top -d 10` 参数每隔 10 秒钟更新一次进程信息。具体命令如下:
```
top -d 10 -b | tee top.log &
```
其中,`-b` 表示以批处理模式运行 top 命令,输出结果为纯文本格式,适合用于后续处理;`-d 10` 表示每隔 10 秒钟更新一次进程信息;`|` 表示将前面命令的输出作为后面命令的输入,`tee top.log` 表示将输入内容同时输出到控制台和 top.log 文件中,`&` 表示将命令放入后台运行。这条命令的作用是每隔 10 秒钟输出一次系统进程信息,并将输出结果保存到 top.log 文件中。
相关问题
top -d 10 > top.log &搭配tee如何使用
可以将 `top -d 10` 的标准输出通过管道传递给 tee 命令,然后将 tee 命令的输出重定向到 top.log 文件中,实现将标准输出保存到 top.log 文件中的效果。具体命令如下:
```
top -d 10 | tee top.log &
```
其中,`|` 表示将前面命令的输出作为后面命令的输入,`tee top.log` 表示将输入内容同时输出到控制台和 top.log 文件中,`&` 表示将命令放入后台运行。这条命令的作用是每隔 10 秒钟输出一次系统进程信息,并将输出结果保存到 top.log 文件中。
为什么执行 top -d 60 > top.log & 终端输出# top -d 60 > top.log &
在执行 `top -d 60 > top.log &` 命令时,终端会输出 `# top -d 60 > top.log &` 的信息,这是因为命令解释器在解析命令时,会先将 `>` 等符号进行重定向操作,将标准输出重定向到指定的文件 `top.log` 中,然后再执行 `top -d 60` 命令。
因此,终端会先输出重定向的命令,再执行 `top -d 60` 命令。`#` 符号表示这是一个 shell 的注释符号,说明后面的内容是注释,不会被执行。
如果不想在终端输出 `# top -d 60 > top.log &` 的信息,可以使用 `nohup` 命令和子shell的方式来执行命令,例如:
```
nohup sh -c 'top -d 60 > top.log' >/dev/null 2>&1 &
```
这样,终端就不会输出 `# top -d 60 > top.log &` 的信息了,同时也能够将 `top -d 60` 放到后台运行,避免被终端的控制机制终止。希望这个解决方法能够帮到您!