我正在寻找为以下两个命令写一个别名:
sudo su - user
ssh somewhere
我试过了
alias jump='sudo su - user; ssh '
然后使用它作为
jump somewhere
但这不起作用。还有其他选择吗?还是不可能?
答案1
你ssh
会在比赛sudo su
结束后跑,这就是你的方法行不通的原因。如果你被允许跑,sudo ssh
那么这可能会奏效:
alias jump='sudo -u user ssh '
jump somewhere
或者su -c
。它不分配 tty,但ssh -tt
可以强制分配。但我不确定一切都会正常工作。别名需要一些繁重的引用和转义狂潮,使用函数会更容易:
function jump { sudo su - -c 'ssh -tt "$@"' user su "$@"; }
jump somewhere
unalias jump
如果别名仍然定义,请不要忘记。