gpt4 book ai didi

bash - 使用 set -o vi 作为第一个交互命令的 ssh

转载 作者:行者123 更新时间:2023-11-29 09:08:30 25 4
gpt4 key购买 nike

我有一个用于登录服务器的小脚本。我交换了 key 。adminstirator 默认设置的是 emacs。我有点上瘾了vi 键绑定(bind)。我不能以我自己的身份登录,我必须以组用户身份登录。大多数时候,我做的第一件事就是输入 set -o vi 。有时我忘记并开始使用 vi 键绑定(bind),但它们工作正常,然后我必须使用 emacs 键绑定(bind)。我的肌肉内存搞砸了。当我使用登录脚本登录时自动设置键绑定(bind)会很棒。

无论如何,我正在尝试将 set 命令添加到我的 ssh 脚本中。

这个不行。

#!/bin/bash
ssh -q -T bighost <<EOF
set -o vi
EOF
~

这个不行

#!/bin/bash
ssh bighost bash -c "'
set -o vi
'"

这让我可以通过 ssh 连接到主机,但 vi 未设置为键绑定(bind)。

#!/bin/bash
ssh -t bighost "$(< set -o vi )"




corp_user@bighost:~$ set -o
allexport off
braceexpand on
emacs on
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi off
xtrace off
corp_user@big_host:~$

我什至尝试过这样的事情:

ssh corp_user@bighost "$( < . ~/woogie)

woogie 中有“set -o vi”的地方。这能做到吗?

最佳答案

当我在这里使用这个脚本时它起作用了:

#!/bin/bash

ssh [host] -t bash -o vi

[host] 应该是您要连接的主机。 ssh-t 选项告诉 ssh 强制使用 tty。如果您不这样做,bash 将不会像普通的交互式 shell 那样工作。您正在寻找的选项是 -o vi,这与您给 set 的选项相同。 bashman 页面提到您可以在命令行上提供与set 相同的内容。

这不需要您在远程主机上创建任何文件。

关于bash - 使用 set -o vi 作为第一个交互命令的 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26559283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com