Je ne recommanderais pas d'utiliser un alias Bash pour ce que vous essayez d'accomplir. Vous pouvez simplement entrer toutes les informations dans le fichier de configuration de SSH et en finir avec. Lisez la page de manuel pour savoir ssh_config
si vous voulez en savoir plus. Vous pouvez faire de belles choses avecssh_config
Le fichier se trouve ici ~/.ssh/config
Utilisez votre éditeur préféré et créez le fichier, puis ajustez-le à votre situation.
Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22
Vous êtes maintenant configuré pour émettre la commande suivante:
$ ssh nameOfBashAlias
Je parie que vous ne saviez pas à quel point tout cela est intégré. Maintenant que vous avez cette configuration, les commandes suivantes fonctionnent également
$ scp /some/file nameOfBashAlias:/path/to/storage/location/
Plus besoin de se rappeler que scp utilise "-P" pour le port et ssh utilise "-p". De plus, cet "alias" fonctionne également dans les applications OS X gui comme Transmit.
OpenSSH obtient les données de configuration des sources suivantes dans l'ordre suivant:
- options de ligne de commande
- fichier de configuration de l'utilisateur
~/.ssh/config
- fichier de configuration à l'échelle du système
/etc/ssh_config
scp
ne fonctionne pas bash. Vous devez exécuter ceci:Si tout ce que vous avez est l'alias et que le code ci-dessus n'est pas possible pour vous, envisagez de l'exécuter comme ceci:
De cette façon, vous invoquez
ssh
et dirigez le contenu du fichier vers un fichier sur le disque. Cela peut être écrit dans l'autre sens pour les téléchargements.la source
Les alias sont substitués lorsqu'ils sont le premier mot d'une commande bash. Votre alias apparaît au début du troisième mot.
J'utiliserais une variable shell pour cela.
Btw, je pense que votre alias d'origine ne devrait pas contenir de ssh. Et le dernier exemple de code contient un> qui semble incorrect aussi.
la source
Non, vos exemples ne fonctionneront pas, car ce n'est pas ainsi que fonctionnent les
BASH
alias. Je vous suggère d'utiliser une variable. Mettez ceci dans votre~/.profile
ou~/.bashrc
[celui que vous utilisez]:site="[email protected]"
puis dans votre terminal, cela fonctionnera:
scp favicon.ico $site:/dir/
Ou vous pouvez écrire un script comme je le fais pour mon iPod. dans mon bashrc, j'ai
ipod=192.168.2.60
, puis dans mon script, je reçoissource ~/.bashrc
donc mes variables dans le script, puis dans le script:scp $1 $ipod
l'inconvénient est que je devrais éditer le script pour le faire récursif. et je ne peux faire qu'un seul fichier. mais quand j'ai besoin de l'un de ceux que j'utilise habituellement
scp
directement depuis le terminal!~ Matt
la source