Şu anda çalışan tmux sürümünü nasıl bulabilirim?


138

Ben çalıştırabilirsiniz biliyoruz tmux -Vsürümünü bulmak için tmuxo benim, olduğunu PATH, ancak sürümü nasıl alabilirim tmuxyani Çalışmakta ?


124
Sayın Google çalışanları: tmux -V
Mateen Ulhaq

Yanıtlar:


89

En bariz, ancak% 100 doğru olmayan yol, bu komutu konsolda yürütmektir.

$ tmux -V

ve tmux 2.9aşu anda çalışmayan tmux INSTALLED sürümüyle bunun gibi çıktı alırsınız . % 99 durumlarda bu yeterlidir, ancak ince nüanslar olabilir.

Komut tmux -V , / usr / bin / tmux veya PATH değişkeninizin içindeki herhangi bir dizinde kurulu tmux sürümünü döndürür. Zaten çalışmakta olan tmux'nuz varsa, tmux'un başka bir sürümün ikilisinden ve farklı bir yerden başlatılması mümkündür (örneğin, tmux'dan başlatılabilir /home/user/bin/tmux). Bu durumda aramalısınız

$ ps  -e | grep tmux

şu anda çalışan tüm tmux işlemlerinin PID'sini görmek için. Böyle bir şey çıkacak

[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0    00:00:00 tmux: client
19701 ?        00:00:00 tmux: server

Burada, 19701 sayısı şu anda çalışan tmux sunucusunun işlem kimliğini (PID) göstermektedir.

Tmux sunucusunun PID'sini aldıktan sonra komut çalıştırabilirsiniz.


$ lsof -p 19701

ŞU ANDA ÇALIŞAN tmux sunucu süreci (benim durumumda 19701) hakkında bilgi almak için böyle bir şey çıkacak (Şekil 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

görebileceğiniz gibi, şu anda çalışan tmux / usr / bin / tmux içine yerleştirilmiş ikilik dosyadan yürütüldü.

Veya bir astar çağırabilirsiniz


    lsof -p `pgrep 'tmux: server'`

Şekil 1 ile aynı çıktıyı elde etmek için

Tmux ikili CURRENTLY RUNNING yolunu aldıktan sonra (benim durumumda öyleydi /usr/bin/tmux), sürümünü almak için bu ikiliyi -V bayrağıyla çalıştırabilirsiniz.


/usr/bin/tmux -V

veya tmux, sınırlı bir kullanıcı tarafından /home/user/bin/tmux,


/home/user/bin/tmux -V

Ve sonuç olarak, kurulu olanı değil, şu anda çalışan tmux sürümünü alacaksınız.


7
tmuxVerilen işlem başladığından beri yükseltilirse bunun işe yaramayacağını belirtmekte fayda var .
kimse

3
MacOsX'te bir hatam varps: option requires an argument -- u
alexserver

55
sadece çalıştırın tmux -V, Ubuntu ve OSX üzerinde test edildi
Mauricio Poppe

1
bu yöntem önce tmux'u çalıştırmanızı gerektirecektir; bunun yerine which tmuxyolu bulmak için kullanabilirsiniz
Shiva

1
@Shiva - soru yazarı "şu anda çalışan tmux sürümü?" - yani tmux zaten çalışıyor
vodolaz095

148

Bir yorumda belirtildiği gibi tmux -V, sürümü döndürür:

$ tmux -V
# tmux 1.8

Centos 7 ve OSX 10.11.5 üzerinde test edilmiştir.


2
Bu seçilen cevap olmalıdır. Bunu Amazon Linux'ta da test ettim 👍
Brady Dowling

7
Bunun soruyu yanıtladığını sanmıyorum. Neden bu kadar yüksek derecelendirildiğinden emin değilim. Bu komut, yolumdaki tmux'un sürümünü döndürür.
Quant

4
Bunun nedeni, tmux sürümü nasıl edinilir'in ilk sonucu olarak ortaya çıkıyor .
Derek 朕 會 功夫

oyuncudan nefret etme, oyundan nefret et
sixty4bit

13

Çalışmakta olan tmux'un gerçek sürümünü bulmak için tmux'un PID'sini bulmanız gerekir:

pgrep tmux

Bu bilgilerle, aşağıdakileri çalıştırarak sürümü kontrol edebilirsiniz:

lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"

Listelenen tmux dosyasının yanında (silinmiş) yoksa, bu dosyayı bir -V.

Bu, "(silinmiş)" dosyalara neden oluyorsa, eski, kaldırılmış bir sürümü çalıştırıyorsunuz demektir. Linux'taysanız, şunu çalıştırarak bunun ne olduğunu anlayabilirsiniz:

/proc/$tmuxPID/exe -V`

OS X kullanıyorsanız, dosya adına giden yolda herhangi bir bilgi, muhtemelen buna benzer bir şeyle takılıp kalıyorsunuz Cellar/tmux/<version number>/bin/tmux.

Bu adımların çoğunu aşağıdaki tek satırda birleştirebilirsiniz:

for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done

Veya Linux'taysanız, bu her zaman çalışır:

for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done

6

Tmux sunucusunun sürümünü almak için display- message'ı kullanabilirsiniz.

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

Sunucunun sürümünü gösterecek (benim durumumda 2.7)

-p, stdout'un çıktısını yönlendirir, böylece onunla komut dosyası oluşturabilirsiniz ve {version}, kılavuz sayfasındaki FORMATLAR bölümünden herhangi bir şey olabilir.

Aşağıdakiler size tmux sunucunuzun çalıştırılabilir dosyasını verecektir.

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

/proc; Kesmek sadece (fakat genellikle taşınabilir değil ve muhtemelen Solaris vb) Linux
tripleee

display-message, sunucu versiyonunu almak için mükemmel bir çözümdür!
Ben Bernard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.