假设我正在运行一个在 tmux 会话中运行 irssi 的 Linux 服务器。(已分离)我的问题是,当我 ssh 进入服务器并重新附加会话时,我在第二台 PC 上使用的快捷方式会生效吗?那么 irssi 和 tmux 会话会遵循我在进行访问的电脑中的设置,还是会遵循服务器设置?
我要求设置 tmux 和 irssi。
答案1
对于刚接触 Unix 的人以及从一个 Unix 系统远程连接到另一个 Unix 系统的整个业务来说,这种类型的困惑很常见,所以这里有一个规范的答案,希望将来也能对其他人有所帮助。
假设这是您的场景:
.----------. .----------.
| Server S | | Client C |
| | | |
| | | |
'----------' '----------'
/home/user1 /home/user1
/home/user1/.tmux.conf /home/user1/.tmux.conf
/home/user1/.irssi/config /home/user1/.irssi/config
用户帐户
在上述情况中,我们有 2 台计算机和 2 个用户帐户。 2个账户?是的,即使这两个系统具有相同的用户,用户1,这些帐户除了碰巧具有相同的名称之外,彼此完全无关。
软件
如果您在两个系统上都安装了软件,则两个系统上的软件彼此完全无关。例如,您可以使用tmux
版本 1服务器S, 尽管客户C可能有版本2。
您可以检查计算的版本,如下所示:
$ tmux -V
tmux 1.4
$ irssi -v
irssi 0.8.15 (20100403 1617)
设置和主目录
大多数 Unix 软件都使用设置文件。配置文件。这些文件通常驻留在用户的“主”目录中。/home/user1
,在我们上面的例子中。
笔记:其他用户有自己的主目录,又名。/home/user2
, ETC。
因此,每个应用程序通常都会在您的“主”目录中保留一组默认设置,例如:
/home/user1/.tmux.conf
或者
/home/user1/.irssi/config
它们的命名方式并没有真正的一致性。您会注意到它们前面包含一个句点(“.”)。这样,当您ls
在“home”目录中执行操作时,这些配置文件将从输出中省略。
例如:
$ ls
adir1 adir2 afile1 afile2
$ ls -a
. .. adir1 adir2 afile1 afile2 .irssi .tmux.conf
第一个命令显示减去这些句点的所有内容(也称为点文件),而该命令的第二个版本包括一个开关 ,-a
它显示这些“隐藏”文件。
设置(配置这个花哨的词)
现在有了一些基础,我们可以更好地理解你的问题。希望此时很明显,一个系统上的配置设置完全独立于另一个系统上的设置。
例如:
服务器 S 上的版本
tmux
可能是版本 1,同时tmux
客户端 C 上的版本可能是版本 2,并且也许这 2 个版本具有不同的特性和/或功能,因此这 2 个系统上的设置文件将与一个系统完全不同其他。
因此,人们通常会做的是将文件维护在主位置,然后将它们复制(或推送)到他们使用它们的各种系统。注意维护他们可能遇到的各个版本之间的任何差异。
这可能看起来很痛苦,但实际上很好,因为它迫使您作为用户以一种更周到和受控的方式管理文件,而不是让它们只是疯狂地漂浮,就像帆船上的舵一样,没有人在场。舵。
还有一些工具(scp 和/或 rsync)可以帮助促进文件的管理和/或移动,但这是另一个主题了。
使用了哪些设置?
所以当你ssh
进入服务器S并启动一个tmux
您正在使用的tmux
设置的会话用户1这是本地的服务器S。如果您断开连接服务器S,然后从客户C,您仍在使用来自的配置文件服务器S。
请记住这一点。将使用的设置是软件运行位置的本地设置。tmux
正在本地运行服务器S,所以它将使用本地设置服务器S。也同样如此irssi
。
连接ssh
。您正在ssh
本地运行客户端客户C, 连接到服务器S,因此ssh
正在使用的配置是本地的配置客户C。
答案2
澄清后:那两个人随服务器“旅行”;您连接的客户端不会影响两者。