【问题标题】:How can I use the watch command with a customized nvidia-smi output message?如何将 watch 命令与自定义的 nvidia-smi 输出消息一起使用?
【发布时间】:2021-03-27 02:44:35
【问题描述】:

我经常使用nvidia-smi 命令,并且我的 .bashrc 中有一个单独的别名用于监视它 (alias gpu='watch -n 3 nvidia-smi')。

我最近了解了如何自定义 nvidia-smi 的输出消息,并且正在使用以下内容:nvidia-smi | tee /dev/stderr | awk '/ C / {print $3}' | xargs -r ps -up,我从 this Stack Overflow question 获得。

我想在我的 watch 别名中替换原来的 nvidia-smi 命令,但我想知道我该怎么做。简单地替换它是行不通的,我尝试用引号将新命令括起来,但这会导致原始的 nvidia-smi 消息以及

error: user name does not exist

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).

就在它的正下方。

我应该如何实现我想要的?任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 在没有观看成功的情况下运行nvidia-smi | tee /dev/stderr | awk '/ C / {print $3}' | xargs -r ps -up 吗?
  • 是的,它会打印出我想要的消息。它打印出nvidia-smi 的原始输出,并在其下方有行,列是用户名、运行的命令等。
  • 你的新别名是什么?
  • 现在它看起来像这样:"watch -n 3 \"nvidia-smi | tee /dev/stderr | awk '/ C / {print $3}' | xargs -r ps -up\""。我试过删除 nvidia-smi full 命令周围的引号,但这也不起作用。

标签: linux command nvidia watch


【解决方案1】:

试试这个看看它是否产生预期的结果:

alias gpu='watch -n 1 "nvidia-smi | tee /dev/stderr | awk '"'"'/ C / {print \$3}'"'"' | xargs -r ps -up"'

'"'"' 是在单引号内转义单引号。

【讨论】:

  • 如果我只想查看输出的底部,有什么方法可以将其输出到tail 命令中?
  • 尝试删除tee /dev/stderr |
  • 删除该部分会导致error: user name does not exist 消息没有nvidia-smi 的输出。现在我尝试运行别名alias gpu='watch -n 1 "nvidia-smi | awk '"'"'/ C / {print \$3}'"'"' | xargs -r ps -up | tail -n $(($LINES - 2))"'
  • 你需要把\$((LINES - 2))
  • 不幸的是,这不起作用。 :(我会弄清楚的。
猜你喜欢
  • 2018-10-20
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 2019-08-17
  • 2023-03-31
  • 2021-12-27
  • 2018-01-21
相关资源
最近更新 更多