Jawaban:
Paling jelas, tetapi tidak 100% cara yang benar adalah dengan menjalankan perintah ini di konsol
$ tmux -V
dan terima keluaran seperti ini tmux 2.9a
dengan versi tmux INSTALLED, saat ini tidak berjalan. Dalam 99% kasus sudah cukup, tetapi mungkin ada nuansa halus.
Perintah tmux -V
akan mengembalikan versi tmux yang diinstal di / usr / bin / tmux atau direktori lain di dalam variabel PATH Anda. Jika Anda telah menjalankan tmux, ada kemungkinan tmux dapat dimulai dari biner versi lain dan dari tempat yang berbeda (misalnya, tmux dapat dimulai dari /home/user/bin/tmux
). Dalam hal ini, Anda harus menelepon
$ ps -e | grep tmux
untuk melihat PID dari semua proses tmux yang sedang berjalan. Ini akan menampilkan sesuatu seperti ini
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
Di sini, angka 19701 menggambarkan proses id (PID) dari server tmux yang sedang berjalan.
Setelah mendapatkan PID dari server tmux, Anda dapat menjalankan perintah
$ lsof -p 19701
untuk mendapatkan informasi tentang proses server tmux SAAT INI MENJALANKAN (dalam kasus saya tahun 19701) yang akan menampilkan sesuatu seperti ini (Gambar 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
seperti yang Anda lihat, tmux yang sedang berjalan dijalankan dari binary yang ditempatkan di / usr / bin / tmux.
Atau, Anda dapat menghubungi satu liner
lsof -p `pgrep 'tmux: server'`
untuk mencapai hasil yang sama seperti Gambar 1
Setelah Anda mendapatkan path ke tmux binary SAAT INI MENJALANKAN, (dalam kasus saya, itu /usr/bin/tmux
), Anda dapat menjalankan biner ini dengan flag -V untuk mendapatkan versinya
/usr/bin/tmux -V
atau, jika tmux diinstal oleh pengguna terbatas ke /home/user/bin/tmux
,
/home/user/bin/tmux -V
Dan, sebagai hasilnya, Anda akan mendapatkan versi tmux yang sedang berjalan, bukan versi yang diinstal.
tmux
telah ditingkatkan sejak proses yang diberikan dimulai.
ps: option requires an argument -- u
tmux -V
, diuji pada Ubuntu dan OSX
which tmux
untuk mencari tahu jalannya
Seperti yang ditunjukkan dalam komentar, tmux -V
kembalikan versi:
$ tmux -V
# tmux 1.8
Diuji pada Centos 7 dan OSX 10.11.5.
Untuk menemukan versi aktual tmux yang sedang berjalan, Anda harus menemukan PID dari tmux:
pgrep tmux
Dengan info ini, Anda dapat memeriksa versi dengan menjalankan:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Jika tidak ada (dihapus) di sebelah file tmux yang terdaftar, Anda bisa menjalankan file itu dengan a -V
.
Jika itu menghasilkan file yang "(dihapus)", Anda menjalankan versi lama, yang dihapus. Jika Anda menggunakan linux, Anda dapat mengetahui apa itu dengan menjalankan:
/proc/$tmuxPID/exe -V`
Jika Anda menggunakan OS X, Anda terjebak dengan informasi apa pun yang ada di jalur ke nama file, mungkin sesuatu seperti Cellar/tmux/<version number>/bin/tmux
.
Anda dapat menggabungkan banyak langkah ini ke dalam satu-baris berikut:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
Atau jika Anda menggunakan Linux, ini selalu berhasil:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Untuk mendapatkan versi server tmux Anda dapat menggunakan tampilan-pesan.
./tmux2.3 display-message -p "#{version}"
Akan menampilkan versi server (2,7 dalam kasus saya)
-p akan mengarahkan output stdout sehingga Anda dapat skrip dengannya dan {version} bisa apa saja dari bagian FORMATS di halaman manual.
Berikut ini akan memberi Anda executable dari server tmux Anda.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
hack adalah Linux saja (dan mungkin Solaris dll, tetapi umumnya tidak portabel)
tmux -V