Basp takma adı ile scp kullanılamıyor


15

Bu kod çalışmıyor:

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

Takma ad:

alias nameOfBashAlias='ssh myUsername@11.11.11.111'

Bu sorunu nasıl çözerim?

Düzenle

Aşağıdaki koda benzer bir şey olabilir, örneğin birçok örneğini çalıştırmak gibi bash?

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

Yukarıdaki kodu çalışmak için alamadım.

Yanıtlar:


22

Yapmaya çalıştığınız şey için bir Bash takma adı kullanmanızı tavsiye etmem. Tüm bilgileri SSH'nin yapılandırma dosyasına girebilir ve onunla işlerinizi yapabilirsiniz. ssh_configBunların nereden geldiğini merak ediyorsanız kılavuz sayfasını okuyun . İle düzgün şeyler yapabilirsinssh_config

Dosya burada bulunuyor ~/.ssh/config

Favori düzenleyicinizi kullanın ve dosyayı oluşturun ve bunları durumunuza göre ayarlayın.

Host nameOfBashAlias
HostName 11.11.11.11
User myUsername
Port 22

Şimdi aşağıdaki komutu vermek üzere ayarlandınız:

$ ssh nameOfBashAlias 

Bahse girerim bilmediğiniz bir şey, bunların ne kadar entegre olduğu. Artık bu kuruluma sahip olduğunuza göre, aşağıdaki komutlar da çalışır

$ scp /some/file nameOfBashAlias:/path/to/storage/location/ 

Artık scp'nin port için "-P" kullandığını ve ssh "-p" kullandığını hatırlamaya gerek yok. Ayrıca bu "takma ad" Transmit gibi OS X gui uygulamalarında da çalışır.

OpenSSH, aşağıdaki kaynaklardan yapılandırma verilerini aşağıdaki sırayla alır:

  1. komut satırı seçenekleri
  2. kullanıcının yapılandırma dosyası ~/.ssh/config
  3. sistem çapında yapılandırma dosyası /etc/ssh_config

Evet, tamamen katılıyorum. Günümüzde de bu yöntemi kullanıyorum, çünkü diğer sistem ve diğer araçlarla çok daha iyi senkronize oluyor.
Léo Léopold Hertz 준영


@JabranSaeed Lütfen, işletim sisteminiz, sürümünüz, kabuğunuz vb. Hakkında bir parça bilgi ile, davanızla ilgili bir cevap olarak yeni bir soru veya burada bir topluluk wiki açın. Bu konu GNU scp ile ilgilidir.
Léo Léopold Hertz 준영

FWIW bu OS X üzerinde çalışıyor gibi görünüyor (en azından benimki yaptı, El Capitain 10.11.6)
Alex W

5

scpbash çalıştırmaz. Bunu çalıştırmanız gerekir:

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

Sahip olduğunuz tek şey takma adsa ve yukarıdaki kod sizin için mümkün değilse, bu şekilde çalıştırmayı düşünün:

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

Bu şekilde, aslında sshdosya içeriğini diskteki bir dosyaya çağırıyor ve yönlendiriyorsunuz. Bu yükleme işlemleri için başka bir yolla yazılabilir.


İlk komut scp ~ / Desktop / favicon.ico kullanıcı adı@11.11.11.111: / public_html / mySite / templates / blog /
Léo Léopold Hertz 준영

2

Takma adlar, bir bash komutunun ilk sözcüğü olduklarında değiştirilir . Takma adınız üçüncü kelimenin başında görünür.

Bunun için bir kabuk değişkeni kullanırdım.

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

Btw, bence orijinal takma adın içinde ssh olmamalı. Son kod örneğinde de yanlış görünen bir> vardır.


@mataap: Cevabınız için çok teşekkür ederim!
Léo Léopold Hertz 준영

0

Hayır, örnekleriniz çalışmaz, çünkü BASHtakma adlar bu şekilde çalışmaz. Bir değişken kullanmanızı öneririm. Bunu kendinize ~/.profileveya ~/.bashrc[hangisini kullanırsanız kullanın] koyun :
site="user@site.com"
terminalinize bu işe yarar :
scp favicon.ico $site:/dir/


Ya da iPod'um için yaptığım gibi bir senaryo yazabilirsiniz. benim bashrc var ipod=192.168.2.60, o zaman benim senaryo ben source ~/.bashrcbu yüzden benim kodda değişkenlerimi alır, sonra kod: scp $1 $ipod
dezavantajı ben özyinelemeli yapmak için komut dosyasını düzenlemek zorunda kalacak. ve sadece 1 dosya yapabilirim. ama bunlardan birine ihtiyacım olduğunda genellikle scpdoğrudan terminalden kullanıyorum!
~ Mat

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.