Неможливо використовувати scp з псевдонімом bash


15

Цей код не працює:

scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/

Псевдонім:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

Як вирішити цю проблему?

Редагувати

Чи можливо щось подібне до наведеного нижче коду, як, наприклад, запуск багатьох екземплярів bash?

scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/

Я не отримав вищезгаданий код для роботи.

Відповіді:


22

Я б не рекомендував використовувати псевдонім Баша для того, що ви намагаєтеся досягти. Ви можете просто ввести всю інформацію в конфігураційний файл 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 gui, як Transmit.

OpenSSH отримує дані конфігурації з таких джерел у такому порядку:

  1. Параметри командного рядка
  2. файл конфігурації користувача ~/.ssh/config
  3. загальносистемний файл конфігурації /etc/ssh_config

Так, я повністю згоден з вашими. Зараз я також використовую цей метод, оскільки він набагато краще синхронізується з іншими системними та іншими інструментами.
Лео Леопольд Герц 준영

не працює для мене на MacOSX
Jabran Saeed

@JabranSaeed Будь ласка, відкрийте нове запитання або тут вікі спільноти як відповідь про ваш випадок із інформацією про вашу ОС, версію, оболонку тощо. Будь ласка, також надайте посилання про ваш виклик тут у коментарі. Ця нитка є актуальною для GNU scp.
Лео Леопольд Герц 준영

FWIW це, здається, працює на OS X (принаймні, це було на моєму, El Capitain 10.11.6)
Alex W

5

scpне запускає баш. Вам потрібно запустити це:

 scp ~/Desktop/favicon.ico 11.11.11.111:/public_html/mySite/templates/blog/

Якщо у вас є тільки псевдонім, і вказаний вище код не можливий для вас, подумайте про його виконання так:

nameOfBashAlias cat /public_html/mySite/templates/blog/ > ~/Desktop/favicon.ico

Таким чином, ви фактично викликаєте sshта спрямовуєте вміст файлу до файлу на диску. Це можна записати іншим способом для завантажень.


Першою командою має бути scp ~ / Desktop / favicon.ico username@11.11.11.111: / public_html / mySite / templates / blog /
Лео Леопольд Герц 준영

2

Псевдоніми замінюються, коли вони є першим словом команди bash. Ваш псевдонім з’являється на початку третього слова.

Я б використав для цього змінну оболонки.

blah='myUsername@11.11.11.111'
scp ~/Desktop/favicon.ico ${blah}:/public_html/mySite/templates/blog/

До речі, я думаю, що ваш оригінальний псевдонім не повинен мати в ньому ssh. І останній зразок коду містить в собі>, що теж виглядає неправильно.


@mataap: Дуже дякую за вашу відповідь!
Лео Леопольд Герц 준영

0

Ні, ваші приклади не спрацюють, бо так не 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безпосередньо з терміналу!
~ Метт

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.