溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在ssh里面把服務器的文本復制到本地電腦

發(fā)布時間:2021-07-27 11:13:44 來源:億速云 閱讀:206 作者:chen 欄目:編程語言

這篇文章主要講解了“怎么在ssh里面把服務器的文本復制到本地電腦”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么在ssh里面把服務器的文本復制到本地電腦”吧!

使用 macOS 的同學,應該熟悉一個命令pbcopy,它可以在命令行中把一段內(nèi)容寫入到剪貼板,例如:

echo "kingname" | pbcopy

就能把字符串kingname復制到剪貼板里面。我們也可以使用這個方法把一個文件中的內(nèi)容寫入到剪貼板:

cat xxx.txt | pbcopy

這樣我們就不需要把文件打開再手動復制的。

有時候,我要把服務器上面的日志復制下來。原來都是進入服務器以后,用 vim 打開日志文件,用鼠標選中再復制。且不說服務器是  Linux,沒有pbcopy這個命令,即使有這個命令,服務器上又怎么能訪問本地的剪貼板呢?

在網(wǎng)上一搜,竟然還真有辦法。使用OSC52實現(xiàn)iTerm2遠程pbcopy - 風雪之隅[1]這篇文章借助 iterms 的一個功能和幾個特殊的字符,通過  php 實現(xiàn)了這個功能。我們來把它改寫成 Python 版本。

首先打開 iterms 的設置,把方框框住的這一項勾上:

怎么在ssh里面把服務器的文本復制到本地電腦

然后,在 iterms 里面,通過 ssh 連上服務器。

然后,我們來寫一段 Python 代碼:

import base64  print('\033]52;c;' + base64.b64encode('青南'.encode()).decode() + '\007')

然后在服務器上運行這段代碼,運行效果如下圖所示:

怎么在ssh里面把服務器的文本復制到本地電腦

什么都沒有打印出來?但不要擔心,現(xiàn)在,你隨便找一個可以打字的輸入框,按下鍵盤上面的Command +V鍵。你會發(fā)現(xiàn),青南兩個字竟然被粘貼出來了!

有了這個機制,我們就來人工寫一個pbcopy.py,接收管道的輸入:

怎么在ssh里面把服務器的文本復制到本地電腦

其中,#! /usr/bin/python3是遠程服務器上面 Python 的地址。你可以通過命令which python3找到這個地址。

保存完成以后,給他添加可執(zhí)行權限:chmod +x pbcopy.py。

現(xiàn)在,我們試一試把遠程的多行文本復制到本地的剪貼板中:

怎么在ssh里面把服務器的文本復制到本地電腦

我這里復制的就是這個代碼自身。大家也可以使用其他文件來測試。復制完成以后,我們隨便找個地方粘貼,發(fā)現(xiàn)復制成功!

現(xiàn)在,我們使用軟連接,把這個可執(zhí)行文件變得更像命令一些:

sudo ln -s /home/ubuntu/pbcopy.py /usr/bin/pbcopy

運行效果如下圖所示:

怎么在ssh里面把服務器的文本復制到本地電腦

完美滿足要求。

需要注意的是,這個程序會把管道輸入的所有內(nèi)容全部接收完成以后才會復制,所以,如果你輸入的文本內(nèi)容太大,可能會撐爆內(nèi)存。

感謝各位的閱讀,以上就是“怎么在ssh里面把服務器的文本復制到本地電腦”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對怎么在ssh里面把服務器的文本復制到本地電腦這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI