Antworten:
Die naheliegendste, aber nicht 100% korrekte Methode besteht darin, diesen Befehl in der Konsole auszuführen
$ tmux -V
und erhalten Sie eine Ausgabe wie diese tmux 2.9a
mit der Version von tmux INSTALLED, die derzeit nicht ausgeführt wird. In 99% der Fälle reicht es aus, aber es kann subtile Nuancen geben.
Der Befehl tmux -V
gibt die Version von tmux zurück, die unter / usr / bin / tmux oder einem anderen Verzeichnis in Ihrer PATH-Variablen installiert ist. Wenn tmux bereits ausgeführt wird, kann tmux möglicherweise von einer Binärdatei einer anderen Version und von einem anderen Ort aus gestartet werden (z. B. kann tmux von dort aus gestartet werden /home/user/bin/tmux
). In diesem Fall müssen Sie anrufen
$ ps -e | grep tmux
um die PID aller aktuell ausgeführten tmux-Prozesse anzuzeigen. Es wird so etwas ausgeben
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
Hier zeigt Nummer 19701 die Prozess-ID (PID) des aktuell ausgeführten tmux-Servers.
Nachdem Sie die PID des tmux-Servers erhalten haben, können Sie den Befehl ausführen
$ lsof -p 19701
um Informationen über den aktuell laufenden tmux-Serverprozess (in meinem Fall 19701) zu erhalten, der so etwas ausgibt (Abbildung 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
Wie Sie sehen können, wurde tmux, das gerade ausgeführt wird, von einer Binärdatei ausgeführt, die in / usr / bin / tmux abgelegt ist.
Oder Sie können einen Liner anrufen
lsof -p `pgrep 'tmux: server'`
um die gleiche Leistung wie in Abbildung 1 zu erzielen
Nachdem Sie den Pfad zu tmux binary CURRENTLY RUNNING erhalten haben (in meinem Fall war es das /usr/bin/tmux
), können Sie diese Binärdatei mit dem Flag -V ausführen, um ihre Version zu erhalten
/usr/bin/tmux -V
oder, wenn tmux von einem eingeschränkten Benutzer in installiert wurde /home/user/bin/tmux
,
/home/user/bin/tmux -V
Als Ergebnis erhalten Sie eine Version von tmux, die derzeit ausgeführt wird, nicht die, die installiert wurde.
tmux
es seit dem Start des angegebenen Prozesses aktualisiert wurde.
ps: option requires an argument -- u
tmux -V
, getestet auf Ubuntu und OSX
which tmux
den Weg herausfinden
Gibt, wie in einem Kommentar erwähnt, tmux -V
die Version zurück:
$ tmux -V
# tmux 1.8
Getestet unter Centos 7 und OSX 10.11.5.
Um die aktuelle Version des laufenden tmux zu finden, müssen Sie die PID des tmux ermitteln:
pgrep tmux
Mit diesen Informationen können Sie die Version überprüfen, indem Sie Folgendes ausführen:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Wenn neben der aufgelisteten tmux-Datei keine (gelöschte) Datei angezeigt wird, können Sie diese Datei einfach mit einer ausführen -V
.
Wenn dies zu Dateien führt, die "(gelöscht)" sind, führen Sie eine alte, deinstallierte Version aus. Wenn Sie unter Linux arbeiten, können Sie herausfinden, was es ist, indem Sie Folgendes ausführen:
/proc/$tmuxPID/exe -V`
Wenn Sie unter OS X arbeiten, bleiben Sie bei den Informationen im Pfad zum Dateinamen hängen, möglicherweise bei so etwas Cellar/tmux/<version number>/bin/tmux
.
Sie können viele dieser Schritte in den folgenden Einzeiler kombinieren:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
Oder wenn Sie unter Linux arbeiten, funktioniert dies immer:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Um die Version des tmux- Servers zu erhalten , können Sie display-message verwenden.
./tmux2.3 display-message -p "#{version}"
Zeigt die Version des Servers an (2.7 in meinem Fall)
-p steuert die Ausgabe von stdout, damit Sie damit ein Skript erstellen können, und {version} kann alles aus dem Abschnitt FORMATS in der Manpage sein.
Im Folgenden finden Sie die ausführbare Datei Ihres tmux-Servers.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
Hack ist nur Linux (und möglicherweise Solaris usw .; aber nicht allgemein portabel)
tmux -V