回答:
最も明白ですが、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
現在実行中の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に配置されたバイナリから実行されました。
または、1つのライナーを呼び出すことができます
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
、Ubuntuと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 サーバーのバージョンを取得するには、display-messageを使用できます。
./tmux2.3 display-message -p "#{version}"
サーバーのバージョンが表示されます(私の場合は2.7)
-pはstdoutの出力を指示するので、それを使用してスクリプトを作成でき、{version}はmanページのFORMATSセクションからの任意のものにすることができます。
以下は、tmuxサーバーの実行可能ファイルを提供します。
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
ハックはLinuxのみである(そしておそらくSolarisなど;ではなく、一般的にポータブル)
tmux -V