Eu não recomendaria o uso de um alias do Bash para o que você está tentando realizar. Você pode simplesmente inserir todas as informações no arquivo de configuração do SSH e concluir o processo. Leia a página de manual para ssh_config
saber se de onde eles vêm. Você pode fazer algumas coisas legais comssh_config
O arquivo está localizado aqui ~/.ssh/config
Use seu editor favorito, crie o arquivo e ajuste-o à sua situação.
Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22
Agora você está configurado para emitir o seguinte comando:
$ ssh nameOfBashAlias
Algo que aposto que você não sabia é como tudo isso é integrado. Agora que você tem essa configuração, os seguintes comandos também funcionam
$ scp /some/file nameOfBashAlias:/path/to/storage/location/
Não é mais necessário lembrar que scp usa "-P" para porta e ssh usa "-p". Além disso, esse "alias" também funciona em aplicativos de interface gráfica do OS X, como o Transmit.
O OpenSSH obtém dados de configuração das seguintes fontes na seguinte ordem:
- opções de linha de comando
- arquivo de configuração do usuário
~/.ssh/config
- arquivo de configuração em todo o sistema
/etc/ssh_config
scp
não executa bash. Você precisaria executar o seguinte:Se tudo o que você tem é o alias e o código acima não for possível, considere executá-lo assim:
Dessa forma, você está realmente chamando
ssh
e direcionando o conteúdo do arquivo para um arquivo no disco. Isso pode ser escrito de outra maneira para envios.fonte
Os aliases são substituídos quando são a primeira palavra de um comando bash. Seu alias aparece no início da terceira palavra.
Eu usaria uma variável de shell para isso.
Btw, acho que seu apelido original não deveria ter ssh nele. E o último exemplo de código tem um> que também parece errado.
fonte
Não, seus exemplos não funcionarão, porque não é assim que os
BASH
aliases funcionam. Eu sugiro que você use uma variável. Coloque isso no seu~/.profile
ou~/.bashrc
[o que você usar]:site="[email protected]"
depois no seu terminal, isso funcionará:
scp favicon.ico $site:/dir/
Ou você pode escrever um script como eu faço para o meu iPod. no bashrc eu tenho
ipod=192.168.2.60
, depois no meu script,source ~/.bashrc
para que minhas variáveis sejam inseridas no script e depois no script:scp $1 $ipod
a desvantagem é que eu teria que editar o script para fazer recursividade. e eu posso fazer apenas 1 arquivo. mas quando preciso de um desses, costumo usar
scp
diretamente do terminal!~ Matt
fonte