Я знаю , что я могу работать , tmux -Vчтобы найти вариант , tmuxчто в моем PATH, но как я могу получить версию tmux, которая в настоящее время работает ?
Наиболее очевидный, но не на 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. Будет выведено что-то вроде этого
Здесь номер 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 в списке нет (удаленного), вы можете просто запустить этот файл с расширением -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 -V
Ответы:
Наиболее очевидный, но не на 100% правильный способ - выполнить эту команду в консоли.
и получите такой вывод
tmux 2.9a
с УСТАНОВЛЕННОЙ версией tmux, которая в данный момент не запущена. В 99% случаев этого достаточно, но могут быть тонкие нюансы.Команда
tmux -V
вернет версию tmux, установленную в / usr / bin / tmux или любой другой каталог внутри вашей переменной PATH. Если у вас уже запущен tmux, возможно, что tmux можно запустить из двоичного файла другой версии и из другого места (например, tmux можно запустить из/home/user/bin/tmux
). В этом случае вам необходимо позвонитьчтобы увидеть PID всех запущенных процессов tmux. Будет выведено что-то вроде этого
Здесь номер 19701 обозначает идентификатор процесса (PID) текущего запущенного сервера tmux.
После получения PID сервера tmux вы можете запустить команду
чтобы получить информацию о ВЫПОЛНЯЮЩЕМСЯ ТЕКУЩЕЕ серверном процессе tmux (в моем случае это 19701), который выведет что-то вроде этого (рисунок 1)
Как видите, запущенный в данный момент tmux был выполнен из двоичного файла, размещенного в / usr / bin / tmux.
Или вы можете назвать один лайнер
для достижения того же результата, что и на рисунке 1
После того, как вы получите путь к двоичному файлу tmux, ВЫПОЛНЯЮЩЕМСЯ В НАСТОЯЩЕЕ ВРЕМЯ (в моем случае так и было
/usr/bin/tmux
), вы можете выполнить этот двоичный файл с флагом -V, чтобы получить его версию.или, если tmux был установлен ограниченным пользователем в
/home/user/bin/tmux
,И в результате вы получите версию tmux, которая работает в данный момент, а не ту, которая была установлена.
источник
tmux
он был обновлен с момента запуска данного процесса.ps: option requires an argument -- u
tmux -V
, протестировано на Ubuntu и OSXwhich tmux
чтобы узнать путьКак указано в комментарии,
tmux -V
возвращает версию:Проверено на Centos 7 и OSX 10.11.5.
источник
Чтобы найти актуальную версию запущенного tmux, вам нужно найти PID tmux:
Имея эту информацию, вы можете проверить версию, запустив:
Если рядом с файлом tmux в списке нет (удаленного), вы можете просто запустить этот файл с расширением
-V
.Если это приводит к тому, что файлы «(удалены)», вы используете старую, неустановленную версию. Если вы используете Linux, вы можете выяснить, что это такое, запустив:
Если вы используете OS X, вы застряли с любой информацией, содержащейся в пути к имени файла, возможно, что-то вроде
Cellar/tmux/<version number>/bin/tmux
.Вы можете объединить многие из этих шагов в следующий однострочник:
Или, если вы работаете в Linux, это всегда работает:
источник
Чтобы получить версию сервера tmux, вы можете использовать display-message.
Покажет версию сервера (в моем случае 2.7)
-p направит вывод stdout, чтобы вы могли использовать его в сценарии, а {версия} может быть чем угодно из раздела ФОРМАТЫ на странице руководства.
Следующее даст вам исполняемый файл вашего сервера tmux.
источник
/proc
Хак Linux только (и , возможно , Solaris и т.д., но в целом не портативный)