Para o caso de uso específico de SSH, os aliases em ~/.ssh/config
são o caminho a percorrer. Esta é a maneira de abreviar um parâmetro do host e um conjunto de opções para o SSH. Eles não apenas não exigem um $
anterior, mas não serão usados em contextos que não chamam nomes de host acessados por SSH e serão usados em outros contextos que exigem nomes de host acessados por SSH, como como SSHFS, rsync, etc.
Host r1
HostName remote_server_1
UserName vassilis
Host r2
HostName remote_server_2
UserName vp
Host r2test
HostName remote_server_2
UserName guest
Para outros casos de uso em que um alias na linha de comando é realmente chamado, o zsh possui aliases globais, definidos com alias -g
. Bash não tem tal coisa.
alias -g r1=remote_server_1
ssh r1
O principal problema com aliases globais é que eles serão acionados em qualquer lugar, mesmo quando não fizerem sentido.
% echo r1
remote_server_1
Mas eles não serão acionados se fizerem parte de uma palavra, então scp r1:/some/path .
não funcionará.
Se você quiser algo que funcione em qualquer lugar na linha de comando do shell, defina uma variável e digite $
. Se é realmente difícil digitar no teclado, você pode mapeá-lo para uma tecla mais acessível. Por exemplo, para fazer M-v
inserir um $
, coloque isso no seu .bashrc
:
readline_insert () {
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}${1}${READLINE_LINE:$READLINE_POINT:}"
((READLINE_POINT += ${#1}))
}
bind -x '\ev: readline_insert \$'