Відповіді:
Найбільш очевидним, але не на 100% правильним способом є виконання цієї команди в консолі
$ tmux -V
і отримувати такий вихід tmux 2.9a
із версією tmux ВСТАНОВЛЕНО, наразі не працює. У 99% випадків цього достатньо, але можуть бути тонкі нюанси.
Команда tmux -V
поверне версію tmux, встановлену в / usr / bin / tmux або будь-який інший каталог всередині вашої змінної PATH. Якщо у вас вже запущено tmux, можливо, tmux можна запустити з двійкової іншої версії та з іншого місця (наприклад, tmux можна запустити з /home/user/bin/tmux
). У цьому випадку вам доведеться зателефонувати
$ ps -e | grep tmux
щоб побачити PID усіх запущених процесів tmux. Це виведе щось подібне
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
Тут номер 19701 зображує ідентифікатор процесу (PID) поточного запущеного сервера tmux.
Після отримання PID сервера tmux, ви можете запустити команду
$ lsof -p 19701
щоб отримати інформацію про СУЧАСНЕ РУНЕННЯ 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 бінарного СУЧАСНОГО ЗАПУСКУВАННЯ, (у моєму випадку це було /usr/bin/tmux
), ви можете виконати цей бінарний файл із прапором -V, щоб отримати його версію
/usr/bin/tmux -V
або, якщо tmux був встановлений обмеженим користувачем у /home/user/bin/tmux
,
/home/user/bin/tmux -V
І, як результат, ви отримаєте версію tmux, що працює зараз, а не ту, яку встановлено.
tmux
оновлено з моменту запуску даного процесу.
ps: option requires an argument -- u
tmux -V
, протестували на Ubuntu та OSX
which tmux
б дізнатися шлях
Як зазначено в коментарі, tmux -V
повертає версію:
$ tmux -V
# tmux 1.8
Тестовано на Centos 7 та OSX 10.11.5.
Щоб знайти реальну версію tmux, яка працює, ви повинні знайти PID tmux:
pgrep tmux
За допомогою цієї інформації ви можете перевірити версію, запустивши:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Якщо поруч із переліченим файлом tmux немає (видалено), ви можете просто запустити цей файл із символом a -V
.
Якщо це призведе до файлів, які "(видалено)", ви запускаєте стару, деінсталяційну версію. Якщо ви перебуваєте в Linux, ви можете зрозуміти, що це таке, запустивши:
/proc/$tmuxPID/exe -V`
Якщо ви перебуваєте на 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
Або якщо ви працюєте в Linux, це завжди працює:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Щоб отримати версію сервера tmux, ви можете використовувати display-message.
./tmux2.3 display-message -p "#{version}"
Показуватиметься версія сервера (в моєму випадку 2.7)
-p спрямовуватиме висновок stdout, щоб ви могли сценаріювати з ним, і {версія} може бути будь-чим із розділу FORMATS на сторінці man.
Нижче наведено виконуваний файл вашого tmux-сервера.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
Хак Linux тільки (і , можливо , Solaris і т.д., але в цілому не портативний)
tmux -V