Я бы не рекомендовал использовать псевдоним Bash для того, чего вы пытаетесь достичь. Вы можете просто ввести всю информацию в конфигурационный файл SSH и покончить с этим. Прочитайте справочную страницу, ssh_config
если вам интересно, откуда они берутся. Вы можете сделать некоторые аккуратные вещи сssh_config
Файл находится здесь ~/.ssh/config
Используйте ваш любимый редактор и создайте файл, а затем настройте его в соответствии с вашей ситуацией.
Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22
Теперь вы можете выполнить следующую команду:
$ ssh nameOfBashAlias
Бьюсь об заклад, вы не знали, насколько это все интегрировано. Теперь, когда у вас есть эта настройка, следующие команды также работают
$ scp /some/file nameOfBashAlias:/path/to/storage/location/
Больше не нужно помнить, что scp использует «-P» для порта, а ssh использует «-p». Этот псевдоним также работает в приложениях с графическим интерфейсом OS X, таких как Transmit.
OpenSSH получает данные конфигурации из следующих источников в следующем порядке:
- параметры командной строки
- файл конфигурации пользователя
~/.ssh/config
- общесистемный файл конфигурации
/etc/ssh_config
scp
не работает Bash. Вам нужно будет запустить это:Если все, что у вас есть, это псевдоним и приведенный выше код невозможен для вас, попробуйте запустить его следующим образом:
Таким образом, вы фактически вызываете
ssh
и перенаправляете содержимое файла в файл на диске. Это может быть написано другим способом для загрузки.источник
Псевдонимы заменяются, когда они являются первым словом команды bash. Ваш псевдоним появляется в начале третьего слова.
Я бы использовал переменную оболочки для этого.
Кстати, я думаю, что ваш первоначальный псевдоним не должен содержать ssh. И последний пример кода содержит>, что тоже выглядит неправильно.
источник
Нет, ваши примеры не будут работать, потому что это не так, как
BASH
псевдонимы работают. Я предлагаю вам использовать переменную. Поместите это в ваш~/.profile
или~/.bashrc
[в зависимости от того, что вы используете]:site="user@site.com"
тогда в вашем терминале это будет работать:
scp favicon.ico $site:/dir/
Или вы можете написать сценарий, как я делаю для моего iPod. в моем bashrc
ipod=192.168.2.60
, а затем в моем сценарии яsource ~/.bashrc
получаю переменные в сценарии, а затем в сценарии:scp $1 $ipod
недостатком является то, что мне придется редактировать сценарий, чтобы сделать его рекурсивным. и я могу сделать только 1 файл. но когда мне нужен любой из них, я обычно использую
scp
прямо из терминала!~ Matt
источник