首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Tmux:如何找到当前运行的tmux版本?

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

Stack Overflow用户
提问于 2014-11-03 07:37:12
回答 3查看 111K关注 0票数 173

我知道我可以运行tmux -V来查找我的PATH中的tmux版本,但是如何获得当前正在运行的tmux版本

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-03 07:39:35

最明显但不是100%正确的方法是在控制台中执行此命令

代码语言:javascript
复制
$ tmux -V

在安装了tmux版本但当前未运行的情况下,接收类似于此tmux 2.9a的输出。在99%的情况下,这是足够的,但可以有微妙的细微差别。

命令tmux -V将返回安装在/usr/bin/tmux或PATH变量中的任何其他目录中的tmux版本。如果您已经在运行tmux,那么可以从其他版本的二进制文件和不同的位置启动tmux (例如,可以从/home/user/bin/tmux启动tmux )。在这种情况下,您必须调用

代码语言:javascript
复制
$ ps  -e | grep tmux

查看当前运行的所有tmux进程的PID。它将输出如下所示的内容

代码语言:javascript
复制
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0    00:00:00 tmux: client
19701 ?        00:00:00 tmux: server

这里,数字19701描述当前运行的tmux服务器的进程id (PID)。

在获得tmux服务器的PID之后,您可以运行命令

代码语言:javascript
复制
$ lsof -p 19701

为了获得关于当前正在运行的tmux服务器进程(在我的例子中是19701)的信息,它将输出如下所示(图1)

代码语言:javascript
复制
COMMAND     PID       USER   FD   TYPE             DEVICE  SIZE/OFF     NODE NAME
tmux:\x20 19701 vodolaz095  cwd    DIR               8,33      4096 22544385 /home/vodolaz095
tmux:\x20 19701 vodolaz095  rtd    DIR                8,1      4096        2 /
tmux:\x20 19701 vodolaz095  txt    REG                8,1    677760  3675332 /usr/bin/tmux
tmux:\x20 19701 vodolaz095  mem    REG                8,1   6406312   131327 /var/lib/sss/mc/group

如您所见,当前运行的tmux是从/usr/bin/tmux中的二进制文件执行的。

或者,您可以调用一个liner

代码语言:javascript
复制
    lsof -p `pgrep 'tmux: server'`

实现与图1相同的输出

在获取当前运行的tmux二进制文件的路径(在我的示例中,它是/usr/bin/tmux)之后,可以使用-V标志执行该二进制文件以获取其版本

代码语言:javascript
复制
/usr/bin/tmux -V

或者,如果tmux由受限用户安装到/home/user/bin/tmux中,

代码语言:javascript
复制
/home/user/bin/tmux -V

因此,您将获得当前运行的tmux版本,而不是安装的版本。

票数 132
EN

Stack Overflow用户

发布于 2016-06-11 09:30:40

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

代码语言:javascript
复制
$ tmux -V
# tmux 1.8

在Centos 7和OSX 10.11.5上测试。

票数 159
EN

Stack Overflow用户

发布于 2015-05-07 18:06:45

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

代码语言:javascript
复制
pgrep tmux

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

代码语言:javascript
复制
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"

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

如果它导致文件被“(删除)”,则您正在运行旧的、未安装的版本。如果您使用的是linux,可以通过运行以下命令找出它是什么:

代码语言:javascript
复制
/proc/$tmuxPID/exe -V`

如果你使用的是OS操作系统,你只能使用文件名路径中的任何信息,可能是像Cellar/tmux/<version number>/bin/tmux这样的信息。

您可以将这些步骤中的许多步骤组合成以下一行程序:

代码语言:javascript
复制
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done

或者,如果您使用的是Linux,则此方法始终有效:

代码语言:javascript
复制
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26705755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档