如何找到当前运行的tmux版本?

qua*_*ant 110 tmux

我知道,我可以运行tmux -V找到的版本tmux是在我PATH,但我怎么能得到的版本tmux当前正在运行

six*_*bit 147

正如评论中指出的那样,tmux -V返回版本:

$ tmux -V
# tmux 1.8
Run Code Online (Sandbox Code Playgroud)

在Centos 7和OSX 10.11.5上测试过.

  • 我不认为这回答了这个问题.我不确定为什么它的评价如此之高.该命令只返回我路径中tmux的版本. (7认同)
  • 既然问题本身提到“-V”是不可接受的,为什么你认为这回答了问题???它特别排除了这个作为答案! (6认同)
  • 这是错误的!正确答案来自用户whatintheworld (5认同)
  • 这是因为这显示为*如何获得tmux版本*的第一个结果. (4认同)
  • 这应该是选定的答案.还在Amazon Linux上测试了这个 (2认同)
  • @ssi-anik:它似乎有效。该开关是在某个时刻添加的,因此它开始向您显示_在您的路径中找到的第一个安装的版本,_这不一定与_您正在运行的版本相同。_随着时间的推移,您会越来越少并且不太可能遇到不支持“-V”的“tmux”版本,并且大多数时候您不太可能运行一个版本而另一个版本首先出现在您的路径中。但如果你真的特别想知道_**当前运行的**_版本,那么这不可靠,原因有两个。 (2认同)

vod*_*095 45

$ tmux -V
Run Code Online (Sandbox Code Playgroud)

通过这条路径运行tmux tmux 2.9a (大写字母V).

  • 只需运行`tmux -V`,在Ubuntu和OSX上测试 (55认同)
  • 值得一提的是,如果自从给定进程启动以来`tmux`已经升级,这将不起作用. (6认同)
  • 在MacOsX中我有一个错误`ps:选项需要一个参数 - u` (3认同)
  • 此方法将要求您首先执行 tmux;相反,您可以使用“which tmux”来查找路径 (2认同)
  • 这是错误的!正确答案来自用户whatintheworld (2认同)

Cla*_*nny 12

要查找正在运行的tmux的实际版本,您必须找到tmux的PID:

pgrep tmux
Run Code Online (Sandbox Code Playgroud)

有了这些信息,您可以通过运行来检查版本:

lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Run Code Online (Sandbox Code Playgroud)

如果列出的tmux文件旁边没有(已删除),则可以使用a运行该文件-V.

如果它导致文件"(已删除)",则表示您正在运行旧的未安装版本.如果你在Linux上,你可以通过运行来弄清楚它是什么:

/proc/$tmuxPID/exe -V`
Run Code Online (Sandbox Code Playgroud)

如果您使用的是OS X,那么您可能会遇到文件名路径中的任何信息,可能就像这样Cellar/tmux/<version number>/bin/tmux.

您可以将以下一行中的许多步骤组合在一起:

for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
Run Code Online (Sandbox Code Playgroud)

或者如果你在Linux上,这总是有效的:

for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Run Code Online (Sandbox Code Playgroud)


小智 12

要获取 tmux服务器的版本,您可以使用 display-message。

./tmux2.3 display-message -p "#{version}"
Run Code Online (Sandbox Code Playgroud)

将显示服务器的版本(在我的情况下为 2.7)

-p 将引导 stdout 的输出,因此您可以使用它编写脚本,{version} 可以是手册页中 FORMATS 部分中的任何内容。

以下将为您提供 tmux 服务器的可执行文件。

realpath /proc/$(tmux display-message -p "#{pid}")/exe
Run Code Online (Sandbox Code Playgroud)

  • 在正在运行的 tmux 客户端中,您可以执行 `:display-message -p "#{version}"` (3认同)
  • @quant 这应该是选定的答案,因为显示消息方法实际上返回正在运行的 tmux 版本,并且正如所指出的,如果启动实例后有更新,则可能与当前安装的版本不同。尽管如此,我只是使用 &lt;prefix&gt;: 在 tmux 本身中运行“display-message -p “#{version}”,而不是调用二进制文件。 (3认同)

Luk*_*zki 8

发送前缀(默认:ctrl-B),然后键入:

:display-message "#{version}"
Run Code Online (Sandbox Code Playgroud)

这将在状态栏中显示版本