Ich würde nicht empfehlen, einen Bash-Alias für das zu verwenden, was Sie erreichen möchten. Sie können einfach alle Informationen in die Konfigurationsdatei von SSH eingeben und fertig. Lesen Sie die Manpage, ssh_config
wenn Sie neugierig sind, woher diese stammen. Sie können einige nette Dinge mit machenssh_config
Die Datei befindet sich hier ~/.ssh/config
Verwenden Sie Ihren bevorzugten Editor, erstellen Sie die Datei und passen Sie diese dann an Ihre Situation an.
Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22
Sie können jetzt den folgenden Befehl eingeben:
$ ssh nameOfBashAlias
Ich wette, Sie wussten nicht, wie integriert das alles ist. Nachdem Sie dieses Setup vorgenommen haben, funktionieren auch die folgenden Befehle
$ scp /some/file nameOfBashAlias:/path/to/storage/location/
Nicht mehr daran denken, dass scp "-P" für port und ssh "-p" verwendet. Dieser "Alias" funktioniert auch in OS X-GUI-Apps wie Transmit.
OpenSSH bezieht Konfigurationsdaten aus den folgenden Quellen in der folgenden Reihenfolge:
- Befehlszeilenoptionen
- Konfigurationsdatei des Benutzers
~/.ssh/config
- systemweite Konfigurationsdatei
/etc/ssh_config
scp
Bash läuft nicht. Sie müssten dies ausführen:Wenn Sie nur den Alias haben und der obige Code für Sie nicht möglich ist, können Sie ihn folgendermaßen ausführen:
Auf diese Weise rufen Sie
ssh
den Dateiinhalt tatsächlich auf und leiten ihn an eine Datei auf der Festplatte weiter. Dies kann für Uploads auch anders geschrieben werden.quelle
Aliase werden ersetzt, wenn sie das erste Wort eines Bash-Befehls sind. Ihr Alias erscheint am Anfang des dritten Wortes.
Ich würde dafür eine Shell-Variable verwenden.
Übrigens denke ich, dass Ihr ursprünglicher Alias kein ssh enthalten sollte. Und das letzte Codebeispiel enthält ein>, das auch falsch aussieht.
quelle
Nein, Ihre Beispiele werden nicht funktionieren, da
BASH
Aliase nicht so funktionieren. Ich schlage vor, Sie verwenden eine Variable. Fügen Sie dies in Ihr~/.profile
oder~/.bashrc
[was auch immer Sie verwenden] ein:site="[email protected]"
Dann funktioniert dies in Ihrem Terminal:
scp favicon.ico $site:/dir/
Oder Sie könnten ein Skript schreiben, wie ich es für meinen iPod mache. In meinem BashRC habe ich
ipod=192.168.2.60
, dann in meinem Skript bekomme ichsource ~/.bashrc
meine Variablen im Skript, dann im Skript:scp $1 $ipod
Der Nachteil ist, dass ich das Skript bearbeiten muss, um rekursiv zu arbeiten. und ich kann nur 1 datei machen. aber wenn ich beides brauche benutze ich normalerweise
scp
direkt vom terminal aus!~ Matt
quelle