我知道我可以运行tmux -V以找到我的版本,但tmux我PATH怎样才能获得当前tmux正在运行的版本?
最明显但不是 100% 正确的方法是在控制台中执行此命令
$ tmux -V
tmux 2.9a并使用当前未运行的 tmux INSTALLED 版本接收这样的输出。在 99% 的情况下,这就足够了,但可能存在细微差别。
tmux 2.9a
命令tmux -V 将返回安装在 /usr/bin/tmux 或 PATH 变量内的任何其他目录中的 tmux 版本。如果您已经运行了 tmux,则 tmux 可能可以从其他版本的二进制文件和不同的位置启动(例如,tmux 可以从 启动/home/user/bin/tmux)。在这种情况下,您必须致电
tmux -V
/home/user/bin/tmux
$ ps -e | grep tmux
查看当前运行的所有 tmux 进程的 PID。它会输出这样的东西
[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 后,可以运行命令
$ lsof -p 19701
获取有关 CURRENTLY RUNNING tmux 服务器进程(在我的情况下为 19701)的信息,该进程将输出类似这样的内容(图 1)
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 中的二进制文件执行的。
或者,你可以叫一个班轮
lsof -p `pgrep 'tmux: server'`
实现与图 1 相同的输出
在获得 tmux binary CURRENTLY RUNNING 的路径后(在我的情况下,它是/usr/bin/tmux),您可以使用标志 -V 执行此二进制文件以获取其版本
/usr/bin/tmux
/usr/bin/tmux -V
或者,如果 tmux 是由受限用户安装到的/home/user/bin/tmux,
/home/user/bin/tmux -V
结果,您将获得当前运行的 tmux 版本,而不是已安装的版本。