小编kkm*_*kkm的帖子

tmux 选项`xterm-keys` 不启用控制+箭头

我无法让 tmux 识别Ctrl-Left-arrow序列与左箭头不同,右箭头也相同。在我的 中~/.inputrc,我已经映射了这些序列(由 2 个不同的终端模拟器发出,即 putty 和 mobaxterm)以跳过命令行中的单词:

"\eOD": backward-word
"\e[1;5D": backward-word
Run Code Online (Sandbox Code Playgroud)

这在 ssh 会话中工作得很好,但是 screen 和 tmux 都不区分箭头和控制箭头。自然,推荐的解决方案是通过将全局选项添加到 tmux 中启用选项 xterm-keys ~/.tmux.conf,并且有直接证据(除了对上述解决方案的“感谢”评论)这对其他人有效。但对我来说,Ctrl-Left-arrow发送相同的代码,ESC DLeft-arrow

我已经确认该选项确实是通过检查 tmux 选项设置的

:show-window-options -g
Run Code Online (Sandbox Code Playgroud)

甚至手动设置它以防万一当前窗口

:set-window-option xterm-keys on
Run Code Online (Sandbox Code Playgroud)

但这一切都无济于事。tmux 报告版本号为 1.8,带有tmux -V.

我还可以检查什么来解决此问题?

tmux inputrc

8
推荐指数
1
解决办法
4052
查看次数

如何理解 Debian linux-image 软件包版本?

TL;DR:为什么会有相同版本的内核镜像包但破折号不同?目前,对于“常规”amd64 版本,主要和安全更新源提供的更新包括:

  • linux-image-4.19.0-6 - amd64
  • linux-image-4.19.0-8 - amd64

并在向后移植源上

  • linux-image-5.4.0-0.bpo。2 -amd64
  • linux-image-5.4.0-0.bpo。3 -amd64
  • linux-image-5.4.0-0.bpo。4 -amd64
  • linux-image-5.5.0-0.bpo。2 -amd64-unsigned(尚未签名)

对于 4.19,我应该如何处理破折号(6 和 8)之后的数字,-bpo.对于向后移植内核,我应该如何处理(2、3、4)之后的数字?他们似乎在每个专业都从 2 重新开始(为什么是 2?我们这些极客从 0 开始计数,而其他人从 1 开始计数,这已经很不方便了。但是 2 ???)


带有 apt-cache 数据的较长版本。我在 x64 VM 上安装了 Buster,并在不久前将内核从向后移植存档更新到了版本 5.3,以解决 HyperV 的问题。直到今天这一切都有效。我在运行开发和生产系统方面都有丰富的经验,坚持“如果没有损坏,就不要修复它”的格言,如果我想做这样的事情,请阅读发行说明。

但是,我找不到有关 Debian 内核映像包编号实践的文档。不是这些数字的含义(这在 Debian 软件包构建者指南中),而是内核团队为什么使用这个编号,以及我作为用户可以从中获得什么好处。

最近我注意到 5.3 版本不再提供,因为它可能在主线中过期了。我想也许我应该选择 5.4,特别是考虑到它是一个相对长期的内核,所以我可以在这个开发虚拟机上运行它一段时间,然后坚持使用它并考虑它在生产中可能带来的好处。这时我意识到同一个镜像包有多个可用的包。然后,Buster 的原始内核软件包 4.19 有两个软件包版本。原来是-6,现在仅在安全维护中,并且-8,在主要和安全源上。这我至少可以理解^H^H^H一个这样的故事(4.19也是“短期”长期,支持到2020-12,必须在-6持续期间从上游接收安全补丁更新)。

但是 3 个不同的 bpo.N 版本又如何呢?但是,我找不到有关 Debian 内核映像包编号实践的文档。不是这些数字的 …

debian

4
推荐指数
1
解决办法
2787
查看次数

如何在附加时将环境变量从当前附加的客户端传递到 tmux 会话

在纯文本 SSH pty 中远程工作时,我经常(并且主要)使用 tmux;这在连接断开的情况下非常有用。我运行长时间(数小时到数天)的计算任务,并从不同的远程主机连接以检查它。这几乎是我用 tmux 做的唯一一件事;我远非专业人士,所以我的问题可能非常基本,但我找不到答案。

我在主机上有一个命令,它从$SSH_CONNECTIONshell 变量中读取和解析客户端地址,以某种方式与我当前客户端机器上的守护进程进行通信(直接,没有 ssh 隧道)¹。当我附加到最初在另一台机器上启动的会话时,这会在 tmux 下中断。tmux 会话中最底层的 shell 已经在其启动时捕获了该变量,并且具有启动会话的客户端机器的地址,而不是当前附加到它的地址。

一个简单的解决方案是在 my 中完全重置此变量.bashrc,因此该工具甚至不会尝试与 tmux 会话内的客户端连接进行通信(毕竟,如果它失败,我可以在其命令行中为该工具提供一个 IP猜一猜)。我相信我可以依靠$TMUXenv 变量的存在来避免在我的 .bashrc 中完全捕获 IP 地址。

但正确的做法是以某种方式从我执行tmux attach命令的 bash 中解除这个变量。我知道它不能完全自动,因为远程上的 tmux 可能无法修改已经运行的第一个 shell 的环境。但也许我可以使用一些花哨的 tmux 脚本从tmux运行attach命令的进程中提取环境变量(附加的 SSH 会话机器在其环境中正确设置了它们),将值存储在会话 tmux 变量中的某处(它们甚至存在吗? ?),然后让我运行自定义命令以export SSH_SESSION=....在我知道安全时(即在会话内的 bash 提示符下)通过击键取消获取(即,假输入会话的 bash )?

TL; DR:我想要一种方法,在我附加到的会话中设置 env 变量,基于另一个 pty 连接中的 env 变量值,我在其中运行tmux attach命令,以最不麻烦的方式,就像一个熟练的tmuxer 会。


¹ 这不是一个好的或安全的方法,但它就是这样。我们必须在科学计算中使用很多奇怪的东西,这些东西是由科学家同行编写的,他们中的一些人,或者他们中的一些人,在这种情况下,不一定是优秀的软件工程师。在这个世纪我会做不同的事情,但这件事就像 …

tmux

3
推荐指数
1
解决办法
966
查看次数

标签 统计

tmux ×2

debian ×1

inputrc ×1