답변:
콘솔 에서이 명령을 실행하는 것이 가장 분명하지만 100 % 올바른 방법은 아닙니다.
$ tmux -V
tmux 2.9a
현재 실행되고 있지 않은 tmux INSTALLED 버전으로 이와 같은 출력을 수신합니다 . 99 %의 경우 충분하지만 미묘한 뉘앙스가있을 수 있습니다.
명령 tmux -V
은 / usr / bin / tmux 또는 PATH 변수 내의 다른 디렉토리에 설치된 tmux 버전을 반환합니다. tmux가 이미 실행중인 경우 다른 버전의 바이너리 및 다른 위치에서 tmux를 시작할 수 있습니다 (예 : tmux는에서 시작할 수 있음 /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 바이너리 CURRENTLY RUNNING에 대한 경로를 얻은 후 (내 경우에는 /usr/bin/tmux
) 플래그 -V를 사용하여이 바이너리를 실행하여 버전을 얻을 수 있습니다.
/usr/bin/tmux -V
또는 제한된 사용자가 tmux를에 설치 한 경우 /home/user/bin/tmux
,
/home/user/bin/tmux -V
결과적으로 설치된 TMUX 버전이 아니라 현재 실행중인 tmux 버전을 얻게됩니다.
tmux
주어진 프로세스가 시작된 후 업그레이드 된 경우 에는 작동하지 않는다는 점을 언급 할 가치가 있습니다.
ps: option requires an argument -- u
tmux -V
, 우분투 및 OSX에서 테스트
which tmux
길을 찾는 데 사용할 수 있습니다
주석에서 지적했듯이 tmux -V
버전을 반환합니다.
$ tmux -V
# tmux 1.8
Centos 7 및 OSX 10.11.5에서 테스트되었습니다.
실행중인 tmux의 실제 버전을 찾으려면 tmux의 PID를 찾아야합니다.
pgrep tmux
이 정보를 사용하여 다음을 실행하여 버전을 확인할 수 있습니다.
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "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 서버 의 버전을 얻으려면 표시 메시지를 사용할 수 있습니다.
./tmux2.3 display-message -p "#{version}"
서버 버전을 보여줄 것입니다 (필자의 경우 2.7)
-p는 stdout의 출력을 지시하므로이를 사용하여 스크립트를 작성할 수 있으며 {version}은 매뉴얼 페이지의 FORMATS 섹션에서 무엇이든 될 수 있습니다.
다음은 tmux 서버의 실행 파일을 제공합니다.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
, 해킹은 (그러나 일반적으로 이식 할 수 없습니다 아마도 솔라리스 등) 리눅스입니다
tmux -V