昨天, 師弟告訴我可以在xshell中使用sz進行下載, 想要上傳的話用rz就行了. 然後我竟然沒有聽過. 學習最好的方法就是寫一篇博客, 比如這篇.
1. 從putty到xshell
最開始, 是使用putty進行的服務器連接,痛點在於多窗口要開多個putty,切換麻煩。
xshell其實是有社區版的,註冊一下就可以免費下載使用,xshell的各種好說不盡。
putty
xshell
2. FileZilla, Winscp到scp
FileZilla和Winscp都是窗口化的解決方案,scp命令可以在終端種執行, 想要下載到特定文件種,在文件中右鍵打開git bash,打開cmd
- 上傳文件file.txt到服務器: 然後運行
scp file -P 22 [email protected]:/home/dengfei/xxx
- 下載文件file.txt到本地:
scp -P 22 [email protected] :/home/dengfei/xxx/file.txt .
- 如果端口是22, 那麼
-P 22
可以省略
爲了不每一次輸入dengfei@192....
之類的代碼, 以及輸入文件的絕對路徑, 我編寫了一個perl腳本, 自動定位文件所在的絕對路徑, 並且加入scp的命令, 這樣就可以生成一個命令,可以直接在本地的shell中下載服務器的內容:
#!/usr/bin/perl
use strict;
chomp(my $pwd = `pwd`);
print "scp dengfei\@192.168.3.44:$pwd/$ARGV[0] .\n";
現在看起來, 還是太複雜了. 怎麼簡單?
使用sz和rz啊.
3. sz和rz上傳和下載
首先你的Linux上需要安裝安裝lrzsz工具包,(如果沒有安裝請執行以下命令,安裝完的請跳過)
yum install lrzsz
安裝完畢即可使用。
3.1 下載
- 服務器當前目錄有一個hello.txt文檔, 我要下載到本地的桌面上, 鍵入:
sz hello.txt
- 然後彈出保存文件的對話框, 默認是桌面, 點擊確定即可
3.2 上傳
- 本地桌面上有個hello(2).txt文件, 想要上傳到服務器本地文件中, 在服務器中鍵入:
rz
- 彈出一個對話窗口, 選擇需要上傳的文件, 點擊確定
4. 太長不看篇
- sz是下載命令
- rz是上傳命令
- 如果沒有這兩個命令, 就安裝
lrzsz
服務器是centos的安裝命令:
yum install lrzsz
服務器是ubuntu的安裝命令:
apt install lrzsz
5. sz和rz分不清楚
- sz中的s意爲send(發送),告訴客戶端,我(服務器)要發送文件 send to cilent,就等同於客戶端在下載
- rz中的r意爲received(接收),告訴客戶端,我(服務器)要接收文件 received by cilent,就等同於客戶端在上傳
- 記住一點,不論是send還是received,動作都是在服務器上發起的