현재 실행중인 tmux 버전을 어떻게 알 수 있습니까?


138

내가 실행할 수 있다는 것을 알고 tmux -V버전 찾을 tmux그건 내에 PATH있지만 버전 어떻게 얻을 수 있습니다 tmux현재 실행중인 ?


124
친애하는 Google 직원 : tmux -V
Mateen Ulhaq

답변:


88

콘솔 에서이 명령을 실행하는 것이 가장 분명하지만 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 버전을 얻게됩니다.


7
tmux주어진 프로세스가 시작된 후 업그레이드 된 경우 에는 작동하지 않는다는 점을 언급 할 가치가 있습니다.
아무도

3
MacOsX에서 오류가 발생했습니다ps: option requires an argument -- u
alexserver

55
방금 실행 tmux -V, 우분투 및 OSX에서 테스트
Mauricio Poppe

1
이 방법을 사용하려면 먼저 tmux를 실행해야합니다. 대신 당신은 which tmux길을 찾는 데 사용할 수 있습니다
시바

1
@Shiva-질문 작성자는 "현재 실행중인 tmux의 버전?" -그래서 tmux는 이미 실행 중입니다
vodolaz095

148

주석에서 지적했듯이 tmux -V버전을 반환합니다.

$ tmux -V
# tmux 1.8

Centos 7 및 OSX 10.11.5에서 테스트되었습니다.


2
선택한 답변이어야합니다. 또한 이것을 Amazon Linux에서 테스트했습니다
Brady Dowling

7
나는 이것이 질문에 대답하지 않는다고 생각한다. 왜 그렇게 높은 등급인지 잘 모르겠습니다. 이 명령은 내 경로에있는 tmux의 버전을 반환합니다.
quant

4
이것이 tmux 버전을 얻는 방법 의 첫 번째 결과로 표시되기 때문 입니다.
Derek 朕 會 功夫

게임 싫어, 플레이어를 미워하지 않아요
sixty4bit

13

실행중인 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

6

tmux 서버 의 버전을 얻으려면 표시 메시지를 사용할 수 있습니다.

./tmux2.3 display-message -p "#{version}"

서버 버전을 보여줄 것입니다 (필자의 경우 2.7)

-p는 stdout의 출력을 지시하므로이를 사용하여 스크립트를 작성할 수 있으며 {version}은 매뉴얼 페이지의 FORMATS 섹션에서 무엇이든 될 수 있습니다.

다음은 tmux 서버의 실행 파일을 제공합니다.

realpath /proc/$(tmux display-message -p "#{pid}")/exe

/proc, 해킹은 (그러나 일반적으로 이식 할 수 없습니다 아마도 솔라리스 등) 리눅스입니다
tripleee

디스플레이 메시지는 서버 버전을 얻는 완벽한 솔루션입니다!
벤 버나드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.