给出的答案(Ctrl-b D 或 Ctrl-b : list-clients RET)将为您提供一个包含(虚拟)tty 终端和窗口大小的客户端列表,但不会告诉您相关的用户名。在 tmux 会话之外,您还可以使用“tmux -S /tmp/pair list-clients”
列出已连接的实际用户的一种方法是在命名套接字上运行 lsof,即:“lsof /tmp/pair”
或者您可以使用“who”命令查看与虚拟终端关联的用户列表。如果您只是区分自己的连接,则可以使用别名来过滤:“who | awk '{print $2,$NF}' |grep -v '(:[0-9]'"
这是一个快速的 Perl 脚本,它将 tmux 和 'who' 输出放在一起。对于共享套接字的使用,将套接字文件作为唯一参数传递,即:“tmux_ls.pl /tmp/shared”:
my $sock="";
$sock = "-S ".$ARGV[0] if $ARGV[0];
my $clients = `tmux $sock list-clients`;
# Use open to loop like a file
open my $fh, '<', \$clients or die $!;
printf("%-10.10s\t%-10.10s\t%-10.10s\t%-16.16s\t%s\n", "Session", "TTY", "Username", "Timestamp", "Origin");
while(<$fh>) {
my @cols = split(' ');
my ($tty) = $cols[0] =~ /^\/dev\/(pts\/\d+)/;
my $session = $cols[1];
my $who = `who | grep $tty`;
my @whoc = split(' ',$who);
printf("%-10.10s\t%-10.10s\t%-10.10s\t%-16.16s\t%s\n", $session,$tty,$whoc[0], "$whoc[2] $whoc[3]", $whoc[4]);
}