这可能很简单,但我真的不知道你是如何做到的。我已经阅读了手册页并在没有结果的情况下进行了谷歌搜索。
问题:如何在分离的 tmux 窗口中运行命令?
示例:我希望我的分离窗口 'foo' 运行 'ls',但我想从另一个终端执行此操作。
我试过这样的东西: 'tmux -t foo ls' 没有结果。
如果我以 root 身份运行 tmux,它会正常运行且功能齐全。我创建了几个用户,它不会作为任何用户运行。
create session failed: : No such file or directory
Run Code Online (Sandbox Code Playgroud)
我检查了外部 $TERM 是 xterm,内部 $TERM 是屏幕,因为常见问题解答表明这是最常见的问题原因。
我经常在许多不同的系统上使用 tmux,但我在这个 VPS 上我不知道发生了什么......请帮助一下?
编辑:感谢Jay对 strace的有用建议,我发现 /dev/pty* 存在权限问题。我担心这对许多其他人来说不会是一个有用的帖子,因为它似乎是一个一次性的问题。
strace -f -e trace=file tmux
Run Code Online (Sandbox Code Playgroud)
32000 open("/dev/ptmx", O_RDWR) = -1 EACCES (Permission denied)
32000 open("/dev/ptyp0", O_RDWR) = -1 EACCES (Permission denied)
.....
32000 open("/dev/ptypf", O_RDWR) = -1 EACCES (Permission denied)
32000 open("/dev/ptyq0", O_RDWR) = -1 ENOENT (No such file or directory)
CentOS 6.0 能够将其 TERM 设置为screen-256color. 但是,它在 CentOS 5.7 中不起作用。
如何让 CentOS 5.7 支持screen-256color?
我byobu意外终止了一个会话(kill -9 byobuSessionId),现在当我尝试启动另一个byobu命令时失败并显示“无法创建套接字”。
还tmux new-session返回:“无法创建套接字”
我试过sudo service screen-cleanup start没有成功!
知道我该如何解决吗?
我正在对在 Ubuntu 14.04 机器上侦听外部接口的服务进行快速审计,并且 tmux 正在绑定 TCP *:50994 和 *:59147,如netstat -l.
我可以从网络上的另一台计算机连接到这个端口(除非有任何防火墙设置),但我找不到任何关于它为什么绑定外部端口的文档。这样做的目的是什么,有没有办法阻止它?
我正在考虑从 screen 切换到 tmux,但我已经投入了大量时间开发了一个广泛的 .screenrc,而且我不想在将它移植到 tmux 几个小时后发现 tmux 不能做一些重要的事情对我来说。
我查看了两者的几个在线比较,但没有一个深入或回答许多(对我来说是什么)重要问题,可以归结为两个问题:
(客户端-服务器架构很好,但在我看来并没有提供任何新功能。许可证显然更好。更小更精简显然很好,但对我来说不是游戏规则改变者。)
由于这2个问题非常广泛,让我举一些具体的例子:
我可以自己寻找这些特定问题的答案,但它们只是 2 个更大问题的示例,而且我还想听到那些不一定适合我的任何示例的更大问题的答案。如果 tmux 中缺少某些东西,我完全有可能在花费大量时间切换后不会发现它,这就是我想要避免的。谢谢!
所以我是GNU Screen和Tmux等多路复用器的忠实粉丝,但即使使用 Screen 多年,我仍然认识到那里有很多我不知道的东西(而且我只使用 Tmux 几个月,所以它更糟)。
您在这些软件上使用了哪些配置、提示和技巧(两者或每个软件都无关紧要)?
我使用它作为我的屏幕配置(我想我是从 Ubuntu 的默认设置中改编的screenrc):
shell -$SHELL
startup_message off
defscrollback 1000
hardstatus alwayslastline '%{= wk}%?%-Lw%?%{r}(%{k}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %m/%d %C%A'
activity ''
termcapinfo xterm* 'hs:ts=\\E]2;:fs=\\007:ds=\\E]2;screen\\007'
Run Code Online (Sandbox Code Playgroud)
这是一个简单的配置,可以让状态栏显示一些颜色,但我确信我可以用 screen 和 Tmux 做更多的事情,并且很想知道它。
我正在尝试从远程文件在 tmux 中运行一系列命令,如下所示:
tmux $(wget -qO- http://example.com/tmux)
Run Code Online (Sandbox Code Playgroud)
该文件包含类似split-window和的命令send-keys
问题是,send-keys正在剥离空格。发送密钥命令是:
send-keys ssh example.com C-m;
Run Code Online (Sandbox Code Playgroud)
但相反它发送 sshexample.com
知道为什么吗?
干杯!
每隔一段时间,我就会不小心将一些控制代码注入到我的终端会话中(要么是错误的编码,要么是意外的gpg --export)。这有时会导致我的 tmux 会话丢失其格式并将控制字符打印到 tmux 窗口的边框中。之后所有 tmux 窗口都变得非常混乱。即使只是聚焦一个窗口也会弄乱其他窗口。终端的传统重置技巧(reset、echo [CTRL]+V [CTRL]+C)无法修复它,因此我最终注销了所有活动会话并必须重新启动 tmux。
有人知道一种在不终止 tmux 的情况下重置/刷新所有 tmux 窗格的方法吗?
如果我想向 tmux 中正在运行的窗格发送命令,我可以这样做:
tmux send -t foo ls ENTER
Run Code Online (Sandbox Code Playgroud)
我想我可以做类似的事情来做同样的事情,但在一个新的窗格中:
tmux send ls ENTER
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以在窗格中运行?