我希望 /tmp/shared 中的套接字上始终有一个 tmux 会话,会话数为 0。这样我就可以始终通过 SSH 连接到会话:
ssh user@www.example.com -t tmux -S /tmp/shared attach-session -t 0
Run Code Online (Sandbox Code Playgroud)
我希望它可以与其他用户共享,并且如果知识较少或粗心的用户在离开会话时使用 exit 而不是 [ctrl] + d ,则能够重新创建它自己。
我确信可以在 cron 中做到这一点,但我不知道没有更好的方法。
我正在尝试根据从父 shell(即 bash)继承的值来设置TERM我的 tmux 会话的环境变量。请注意,我的文件中有以下行,因此实际上会被继承:.tmux.confTERM.tmux.confTERM
set -g update-environment '...some variables... TERM'
Run Code Online (Sandbox Code Playgroud)
基本上,TERM在xterm-256color父 shell 中,我检测到并default-terminal使用以下命令设置选项:
if "[[ ${TERM} =~ 256color ]]" 'set -g default-terminal screen-256color'
Run Code Online (Sandbox Code Playgroud)
该行在我的工作 PC (RHEL 6.6) 上的 tmux 1.9a 中工作,并正确设置TERM为screen-256color,但在其他 PC 上(包括运行 tmux 1.8 的工作 Ubuntu PC 和运行 tmux 2.1 的家用 Ubuntu PC),“condition”命令始终似乎返回 false,因此TERM仍在screen新的 tmux 会话中。
我也尝试过这样做if 'true' 'set -g default-terminal screen-256color',但这也不起作用!(TERM仍在screen新的 …
tmux 中的许多命令处理目标和源窗口/窗格,我知道有时您可以提供诸如1:2指定窗口 1 的窗格 2 之类的东西,但是现在我正在寻找更高级的用法,会话现在似乎适合这也是。
我经常忘记语法,并且在文档中找不到有关它的详细信息。
任何人都可以帮助阐明一些情况吗?
我明白为什么 systemd 在我登出时想要杀死我的东西。我想为 tmux 做个例外。这是我到目前为止所得到的:
/etc/logind.conf
[Login]
KillUserProcesses=no
Run Code Online (Sandbox Code Playgroud)
.xinitrc
loginctl enable-linger $USER
Run Code Online (Sandbox Code Playgroud)
还有别名...
$ alias tmux
tmux='systemd-run --scope --user tmux'
Run Code Online (Sandbox Code Playgroud)
各种谷歌搜索告诉我,每一个都应该独立工作。从来没有。我可以使用其他一些设置来保留我的 tmux 会话吗?
我正在尝试在 linux 服务器上设置 tmux 以进行共享会话。
我已经在服务器上复制了我的 .tmux.conf。
在我的 Mac 上,我有 tmux 1.6
在服务器上,我的配置中的某些选项不起作用。有没有办法找出安装了哪个版本的tmux?
screen 的一个很好的功能是它能够将键盘快捷键分配给称为“类”的组。使用bind -c,您可以将该快捷方式分配给特定类,并且绑定command -c <class>到一个键允许您选择该类。这允许多层键盘快捷键。例如,我用x键来选择一个类专用的常用命令。通过在它们自己的类中拥有这些启动器快捷方式,可以使用助记键而不必担心与正常的键绑定集冲突。有什么办法可以复制这个功能tmux吗?
# from my .screenrc
bind -c execute o screen -t imap 10 offlineimap.sh -o
bind -c execute m screen -t mpd ncmpcpp
bind -c execute w screen -t vw vimwiki
# ... more application launchers
bind x command -c execute
Run Code Online (Sandbox Code Playgroud)
用法:prefixx进入启动器键类,我将所有应用程序键盘快捷键都放在这里。
自从去了小牛队后,我就失去了在 tmux 下运行时在 vim 中使用剪贴板的能力。
我通过 brew 安装 vim。作为参考,是的,肯定设置了 +clipboard 选项。
当我直接在终端内运行 vim 时,我可以通过*和正常访问系统剪贴板+。但是在 tmux 中运行 vim 时,没有这样的运气。我还在 tmux 中打开了剪贴板支持,所以这可能是问题的一部分。
以供参考:
在我的 .tmux.conf 中:
set -g set-clipboard on
Run Code Online (Sandbox Code Playgroud)
我的 .vimrc 中没有设置任何内容来明确打开支持。但是,我会注意到添加通常推荐的选项(我以前从未需要过):
set clipboard=unnamed
Run Code Online (Sandbox Code Playgroud)
没有效果。
我有几个终端打开。我想将这些终端中的进程发送到tmux会话,而不是在 下保存、关闭、重新启动tmux,然后将进程恢复到当前所处的状态。
如何将正在运行的非 tmux 进程附加到tmux会话?
我有兴趣劫持笔记本电脑上的 Fn 键并将其用作 tmux 的 mod 键,但在对 xmodmap 和 tmux.config 进行了一系列修改之后,我并没有进一步让它发挥作用。
我尝试从 bash 文件在 2 个不同的 TMUX 窗格中运行 2 个脚本。问题是它们都是阻塞的,所以一旦我从一个窗格执行一个进程,我就无法移动到另一个窗格来执行另一个作业。
我怎样才能克服这个问题?
我将发布代码示例。
#! /bin/bash
tmux split-window -v
tmux select-pane -t 0
./blocking_script_1
tmux select-pane -t 1 #doesnt happen
./blocking-script_2 #doesnt happen
Run Code Online (Sandbox Code Playgroud)
谢谢
利亚姆
我在远程终端上使用 tmux。我发现当远程终端异常断开时(例如,我只是关闭了我的笔记本电脑而没有正常退出远程终端),如果我滚动鼠标或点击我的iTerm终端会开始输出随机字符。
任何建议如何解决它?
在 linux 上运行以下命令时,我得到了奇怪的输出,包括旧的 makefile 输出和进程树
ps axuwfw
另外,以下命令有什么用处以及它是如何工作的?
ps axuwfw | grep -v grep | grep -i screen
ps axuwfw | grep -v grep | grep -i tmux
以上两个命令在示例中返回 431 和 7 来自此处,但在我的系统中,它返回一些以前运行过的较旧的 makefile 输出和截断的进程树。