cap*_*ser 4 vi ssh bash keyboard-shortcuts
我有一个用于登录服务器的小脚本.我换了钥匙.adminstirator设置的默认值为emacs.我有点沉迷于vi键绑定.我无法以自己身份登录,我必须以群组用户身份登录.大部分时间我做的第一件事就是输入set -o vi.我忘了并开始使用vi键绑定,但它们工作,然后我必须使用emacs键绑定.我的肌肉记忆搞砸了.当我使用登录脚本登录时,自动设置密钥绑定会很棒.
无论如何我试图将set命令添加到我的ssh脚本中.
这个不起作用.
#!/bin/bash
ssh -q -T bighost <<EOF
set -o vi
EOF
~
Run Code Online (Sandbox Code Playgroud)
这个不起作用
#!/bin/bash
ssh bighost bash -c "'
set -o vi
'"
Run Code Online (Sandbox Code Playgroud)
这让我ssh到主机,但vi没有设置为键绑定.
#!/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:~$
Run Code Online (Sandbox Code Playgroud)
我甚至试过这样的事情:
ssh corp_user@bighost "$( < . ~/woogie)
Run Code Online (Sandbox Code Playgroud)
woogie中有"set -o vi".可以这样做吗?
这个脚本在我在这里使用时有效:
#!/bin/bash
ssh [host] -t bash -o vi
Run Code Online (Sandbox Code Playgroud)
这里[host]应该是要连接到主机.tell 的-t选项强制使用tty.如果不这样做,将不会像普通的交互式shell那样运行.您正在寻找的选项与您给予的选项相同.您可以在命令行中提到的页面与您提供的内容相同.sshsshbash-o visetmanbashset
这不需要您在远程主机上创建任何文件.
在不影响共享远程帐户的其他用户的情况下,最简单的方法是使用Expect。例如:
expect -c 'spawn ssh localhost; expect "$ "; send "set -o vi\r"; interact return'
Run Code Online (Sandbox Code Playgroud)
这将登录并等待提示,然后尝试设置 vi 键绑定,然后将控制权交还给您。
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |