小编fer*_*raz的帖子

tmux:共享会话,一个用户在一个窗格中,另一个在另一个窗格中,两个不同的光标

我决定尝试 tmux:一直在阅读文档和谷歌搜索,试图找到一种方法让两个用户共享一个会话,每个用户都有不同的光标。

但是,为套接字授予 777 权限,或创建一个组,chgrp调用套接字并将两个用户添加到其中,似乎让同一个套接字用于仅使用一个游标共享会话:两个用户都可以写入,但始终在相同的光标位置。

现在,两个用户都通过 ssh 在同一个家庭服务器中,他们的想法是能够拥有:

  • 比方说,左窗格中的终端,我可以在其中键入命令
  • 右窗格中的另一个终端,我可以看到另一个用户在他自己的终端中键入命令
  • 其他用户也一样

什么我目前做的是使用两个会话(不共享)和script -ftail -f组合还挺读取对方的击键工作,但我认为有可能是这样使用TMUX共享能力的办法。

有没有办法让这个想法在彼此的终端中使用写支持?

什么是更好的方法来做到这一点?

ssh terminal-multiplexer terminal tmux console

22
推荐指数
1
解决办法
8878
查看次数

是否有类似 zsh 的闭包之类的东西?

我刚刚决定尝试 zsh(通过 oh-my-zsh),现在我正在precmd尝试模拟一个两行提示,该提示不仅仅在最后一行中有正确的提示。

所以我克隆了默认主题,并受到这篇文章的启发(我也用它来学习很多东西),我做这样的事情(我稍后会添加颜色):

function precmd {
    local cwd="${(%):-[%~]}"
    local who_where="${(%):-%n@%m}"
    local git_info=${(%)$(git_prompt_info)}
    local right_prompt="     $git_info [$who_where]"
    local left_prompt="${(r:(($COLUMNS - ${#${right_prompt}})):: :)cwd}"

    echo "$left_prompt$right_prompt"
}
Run Code Online (Sandbox Code Playgroud)

它有效。但我不禁想知道:每次调用 precmd 时,zsh 是否都定义了所有这些变量?

我一直在搜索与 zsh 相关的闭包、范围和命名空间,希望将本地变量作为数据附加到 precmd,因此不需要每次都重新定义变量,但我什么也没找到。有什么方法可以做我正在尝试的事情,还是应该放弃它?

作为旁注,并且仅当它相关时,“加载函数”是什么意思?

shell zsh function

8
推荐指数
2
解决办法
1015
查看次数

Bash 长字符串,没有分词?

我想用长命令整理一些脚本,例如:

{ somecheck || somecomand "reallyreallyreallyreallyreallyreallylongstring" } &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

变成这样:

{ somecheck ||                   \
    somecomand "reallyreally"    \
        "reallyreally"           \
        "reallyreally"           \
        "longstring"             \
} &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

但我担心分词。为了避免这种情况,我正在考虑:

{ somecheck ||                   \
    somecomand  "$(echo          \
        "reallyreally"           \
        "reallyreally"           \
        "reallyreally"           \
        "longstring"             \
    )"                           \
} &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

有没有人知道在 bash/zsh 中处理多行字符串的其他方法?我在谷歌搜索这个信息时遇到了麻烦,我认为这意味着至少三个进程(脚本、后台块和命令替换子shell);也许有更好的方法?

提前致谢!

command-line shell bash zsh shell-script

6
推荐指数
1
解决办法
5686
查看次数