您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么在ssh里面把服務器的文本復制到本地電腦”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么在ssh里面把服務器的文本復制到本地電腦”吧!
使用 macOS 的同學,應該熟悉一個命令pbcopy,它可以在命令行中把一段內容寫入到剪貼板,例如:
echo "kingname" | pbcopy
就能把字符串kingname復制到剪貼板里面。我們也可以使用這個方法把一個文件中的內容寫入到剪貼板:
cat xxx.txt | pbcopy
這樣我們就不需要把文件打開再手動復制的。
有時候,我要把服務器上面的日志復制下來。原來都是進入服務器以后,用 vim 打開日志文件,用鼠標選中再復制。且不說服務器是 Linux,沒有pbcopy這個命令,即使有這個命令,服務器上又怎么能訪問本地的剪貼板呢?
在網上一搜,竟然還真有辦法。使用OSC52實現iTerm2遠程pbcopy - 風雪之隅[1]這篇文章借助 iterms 的一個功能和幾個特殊的字符,通過 php 實現了這個功能。我們來把它改寫成 Python 版本。
首先打開 iterms 的設置,把方框框住的這一項勾上:
然后,在 iterms 里面,通過 ssh 連上服務器。
然后,我們來寫一段 Python 代碼:
import base64 print('\033]52;c;' + base64.b64encode('青南'.encode()).decode() + '\007')
然后在服務器上運行這段代碼,運行效果如下圖所示:
什么都沒有打印出來?但不要擔心,現在,你隨便找一個可以打字的輸入框,按下鍵盤上面的Command +V鍵。你會發現,青南兩個字竟然被粘貼出來了!
有了這個機制,我們就來人工寫一個pbcopy.py,接收管道的輸入:
其中,#! /usr/bin/python3是遠程服務器上面 Python 的地址。你可以通過命令which python3找到這個地址。
保存完成以后,給他添加可執行權限:chmod +x pbcopy.py。
現在,我們試一試把遠程的多行文本復制到本地的剪貼板中:
我這里復制的就是這個代碼自身。大家也可以使用其他文件來測試。復制完成以后,我們隨便找個地方粘貼,發現復制成功!
現在,我們使用軟連接,把這個可執行文件變得更像命令一些:
sudo ln -s /home/ubuntu/pbcopy.py /usr/bin/pbcopy
運行效果如下圖所示:
完美滿足要求。
需要注意的是,這個程序會把管道輸入的所有內容全部接收完成以后才會復制,所以,如果你輸入的文本內容太大,可能會撐爆內存。
感謝各位的閱讀,以上就是“怎么在ssh里面把服務器的文本復制到本地電腦”的內容了,經過本文的學習后,相信大家對怎么在ssh里面把服務器的文本復制到本地電腦這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。