在Linux系統中,文件傳輸是日常運維和開發工作中不可或缺的一環。除了常見的SCP、SFTP等基於SSH的協議,rz 和 sz 命令作為 lrzsz 軟體包的核心組件,提供了一種在本地終端與遠程伺服器之間進行文件傳輸的便捷方式。它們尤其在沒有圖形界面、SFTP/SCP不便或網路環境受限時,顯得尤為重要。本文將詳細介紹 linuxrz命令,即 rz 和 sz 的安裝、使用方法、常用選項、協議原理以及終端配置等方方面面,助您輕鬆駕馭這一高效工具。
什麼是 linuxrz命令?——rz 與 sz 的深度解析
linuxrz命令 實際上指的是 rz 和 sz 這兩個獨立的命令,它們是成對出現的,共同服務於Zmodem協議下的文件傳輸。
rz 命令:從本地上傳文件到遠程Linux伺服器
rz 命令(receive Zmodem)用於將本地計算機上的文件上傳到您當前連接的遠程Linux伺服器。當您在SSH會話中執行 rz 命令后,您的本地終端模擬器會彈出一個文件選擇對話框,您可以從中選擇一個或多個文件上傳到伺服器當前所在的目錄。
sz 命令:從遠程Linux伺服器下載文件到本地
sz 命令(send Zmodem)則與 rz 相反,它用於將遠程Linux伺服器上的文件下載到您的本地計算機。您只需在伺服器上指定要下載的文件,執行 sz 文件名,文件便會傳輸到本地終端預設的下載目錄。
這兩條命令都依賴於 Zmodem 協議,這是一種高效且帶有錯誤檢測機制的文件傳輸協議,相比Xmodem和Ymodem,它在錯誤恢復和批處理文件方面具有顯著優勢。
lrzsz 軟體包的安裝與配置
在使用 rz 和 sz 命令之前,首先需要確保您的Linux伺服器上安裝了 lrzsz 軟體包。默認情況下,許多Linux發行版可能沒有預裝。
為什麼需要安裝 lrzsz?
rz 和 sz 命令是 lrzsz(Linux ReZmodem SeZmodem)軟體包提供的可執行文件。若未安裝該軟體包,您將無法直接使用這些命令。
不同Linux發行版上的安裝方法
根據您使用的Linux發行版,安裝 lrzsz 的方法略有不同:
-
Debian/Ubuntu 系列:
sudo apt update
sudo apt install lrzsz -
CentOS/RHEL/Fedora 系列:
sudo yum install lrzsz(CentOS/RHEL 7及更早版本)
sudo dnf install lrzsz(Fedora及CentOS/RHEL 8+) -
Arch Linux 系列:
sudo pacman -S lrzsz -
其他發行版:
請查閱對應發行版的包管理器文檔進行安裝。
安裝完成後,您可以通過運行 which rz 或 which sz 來驗證命令是否已成功安裝並可在PATH中找到。如果返回了命令的路徑(如 /usr/bin/rz),則說明安裝成功。
rz 命令詳解:上傳文件到Linux伺服器
rz 命令的基本用法
在需要上傳文件的遠程伺服器目錄中,直接執行:
rz
執行此命令后,您的本地終端模擬器(如Xshell、SecureCRT、iTerm2等)會立即響應,通常會彈出一個文件選擇對話框。您可以在該對話框中選擇一個或多個要上傳的文件,確認后,文件便會開始傳輸到遠程伺服器的當前工作目錄。
rz 命令的常用選項
-
-E:轉義控制字元。當傳輸二進位文件時,建議使用此選項,以防止某些特殊字元被終端誤解釋,導致文件損壞。rz -E -
-y:覆蓋目標文件。如果伺服器上已存在同名文件,使用此選項可以強制覆蓋而不進行提示。rz -y -
-b:二進位模式傳輸。儘管Zmodem協議默認對二進位文件進行處理,但在某些特殊情況下,明確指定此選項可以確保傳輸的完整性。與-E類似,但-E更側重於轉義。rz -b -
-e:強制8位清潔傳輸。這有助於處理某些具有非ASCII字元的文件,確保數據完整性。rz -e
rz 命令使用示例
-
最簡單的上傳:
rz執行后在本地文件選擇框中選擇要上傳的文件。
-
強制覆蓋上傳:
rz -y如果伺服器上已有同名文件,會直接覆蓋。
-
上傳二進位文件(推薦):
rz -E例如上傳一個壓縮包
.zip或可執行文件.bin,使用-E更安全。
sz 命令詳解:從Linux伺服器下載文件
sz 命令的基本用法
在遠程伺服器上,指定要下載的文件名或文件路徑,執行:
sz [文件名1] [文件名2] ...
執行此命令后,伺服器會將指定的文件通過Zmodem協議發送到您的本地終端模擬器,終端模擬器會自動接收並將文件保存到預設的下載目錄中。
sz 命令的常用選項
-
-a:ASCII模式傳輸。用於傳輸文本文件,但現代系統通常自動處理字元編碼,一般無需手動指定。sz -a myfile.txt -
-b:二進位模式傳輸。與rz -b類似,儘管Zmodem默認處理二進位,此選項可顯式確保。sz -b myarchive.tar.gz -
-E:轉義控制字元。與rz -E相同,可有效防止二進位文件在傳輸過程中因特殊字元解析問題而損壞。sz -E mybinary.exe -
-y:覆蓋目標文件。如果本地下載目錄中已存在同名文件,使用此選項可以強制覆蓋而不進行提示。sz -y important_doc.pdf -
-e:強制8位清潔傳輸。sz -e utf8_file.txt
sz 命令使用示例
-
下載單個文件:
sz my_log_file.txt將伺服器上的
my_log_file.txt下載到本地。 -
下載多個文件:
sz report.pdf image.jpg一次性下載多個指定文件。
-
下載目錄(需先打包):
sz命令本身不支持直接下載目錄。您需要先將目錄打包成一個壓縮文件(如.tar.gz或.zip),然後再下載該壓縮文件。tar -czvf my_directory.tar.gz my_directory/ sz my_directory.tar.gz這將創建一個
my_directory.tar.gz壓縮包,然後將其下載到本地。 -
強制覆蓋下載已存在的本地文件:
sz -y config.ini
Zmodem 協議:rz 和 sz 的核心
rz 和 sz 命令之所以能夠進行文件傳輸,其核心在於 Zmodem 協議。
Zmodem 的優勢
- 高效傳輸: 相比Xmodem和Ymodem,Zmodem在傳輸速度和效率上有所提升。
- 錯誤檢測與恢復: 具有更強的錯誤檢測和自動重傳機制,能夠有效應對傳輸過程中出現的噪音和錯誤。
- 批處理文件: 支持一次性傳輸多個文件,提高了操作便利性。
- 斷點續傳(部分支持): 在某些實現中,Zmodem可以支持簡單的斷點續傳。
其他協議(簡述)
在Zmodem之前,還有Xmodem和Ymodem。Xmodem是最早的協議,每次傳輸一個數據塊,效率較低且錯誤恢復能力差;Ymodem在此基礎上有所改進,支持批處理,但仍然不如Zmodem強大。因此,在需要通過終端進行文件傳輸時,Zmodem是首選。
重要提示:
rz和sz命令的效率和安全性不如 SCP 或 SFTP。對於大文件、大量文件傳輸或對安全性要求極高的場景,強烈建議優先使用 SCP (scp) 或 SFTP (通過sftp命令或圖形化工具如WinSCP、FileZilla)。rz/sz更適合在命令行界面下快速傳輸小到中等大小的文件。
關鍵一步:終端模擬器的配置
rz 和 sz 命令的成功運行,除了伺服器端安裝 lrzsz 軟體包外,您的本地終端模擬器也必須支持 Zmodem 協議,並正確配置了文件接收和發送路徑。
常見終端模擬器的Zmodem配置
1. Xshell (Windows)
Xshell 對 Zmodem 有非常好的原生支持。通常,您無需額外配置,只需在命令行執行 rz 或 sz 后,Xshell 會自動彈出相應的操作界面。
接收文件: 在執行 rz 后,Xshell 會彈出「接收文件」對話框,您可以選擇本地保存路徑。
發送文件: 在執行 sz 文件名 后,Xshell 會自動將文件下載到默認的下載目錄。您也可以通過右鍵菜單 -> 「Zmodem 發送」 來主動上傳文件。
2. SecureCRT (Windows)
SecureCRT 也內置了 Zmodem 支持。通常,在會話屬性中可以找到「X/Y/Zmodem」選項,可以配置默認的上傳和下載目錄。
接收文件: 執行 rz 后,會話窗口會提示您選擇文件保存位置。
發送文件: 執行 sz 文件名 后,文件會下載到預設的目錄。您也可以通過菜單欄的「Transfer」->「Zmodem」來手動操作。
3. iTerm2 (macOS)
iTerm2 本身不直接內置 Zmodem 支持,但可以通過安裝第三方腳本來實現。
安裝步驟:
- 確保已安裝
lrzsz:brew install lrzsz - 安裝 iTerm2 Zmodem 腳本:
curl -L https://iterm2.com/misc/iterm2-zmodem.sh > /usr/local/bin/iterm2-zmodem chmod +x /usr/local/bin/iterm2-zmodem - 配置 iTerm2:打開 iTerm2 Preferences -> Profiles -> Advanced -> Semantic History。將「Run command...」設置為
/usr/local/bin/iterm2-zmodem L
rz 或 sz 文件名 時,iTerm2 會調用該腳本,並打開 Finder 對話框進行文件選擇或保存。
4. PuTTY (Windows)
PuTTY 本身不支持 Zmodem 協議。 若您使用 PuTTY,建議改用 SCP、SFTP 客戶端(如 WinSCP、FileZilla)進行文件傳輸,或考慮使用其他支持 Zmodem 的終端模擬器(如Xshell)。如果您堅持使用 PuTTY 風格的工具,可以考慮使用第三方的PuTTY魔改版或者使用SSH內置的SCP/SFTP功能。
linuxrz命令 使用的最佳實踐與注意事項
-
小文件優先:
rz/sz更適用於傳輸幾十MB以內的小文件。對於GB級別的大文件,SCP/SFTP通常更穩定和高效。 -
目錄傳輸需打包:
rz和sz不直接支持目錄傳輸。如需傳輸目錄,請務必先使用tar、zip等命令將其打包成一個文件,然後再進行傳輸。 - 網路穩定性: 在網路不穩定或帶寬較低的環境下,Zmodem的重傳機制可能導致傳輸效率下降,甚至中斷。
- 文件許可權: 確保上傳或下載的文件在伺服器端或本地有足夠的讀寫許可權。
- 字元編碼: 傳輸文本文件時,盡量確保伺服器和本地終端的字元編碼一致,以避免亂碼問題。
-
使用
-E選項: 傳輸任何非純文本的二進位文件(如壓縮包、圖片、可執行文件等)時,強烈建議使用rz -E或sz -E,以避免數據損壞。 -
安全性考量: Zmodem協議本身不提供加密功能。傳輸敏感數據時,應始終優先考慮基於SSH加密的SCP或SFTP。
rz/sz僅在SSH會話內部進行傳輸,間接獲得了SSH的加密保護,但其協議本身的簡易性決定了它不適合作為獨立的安全傳輸方案。
常見問題與故障排除
rz/sz 命令未找到
這通常是由於 lrzsz 軟體包未安裝所致。請參考本文檔的「lrzsz 軟體包的安裝與配置」部分,根據您的Linux發行版進行安裝。
文件傳輸失敗或卡住
- 檢查終端模擬器配置: 確保您的本地終端模擬器支持 Zmodem 協議,並且相關設置正確(如下載路徑)。
- 網路問題: 檢查網路連接是否穩定。
- 使用
-E選項: 如果傳輸的是二進位文件,嘗試使用rz -E或sz -E。 - 文件許可權: 檢查伺服器上目標目錄的寫入許可權(
rz)或源文件的讀取許可權(sz)。
錯誤提示 "Transfer Aborted" 或 "Zmodem transfer was canceled"
這意味著傳輸被中止。最常見的原因是:
- 本地終端模擬器不支持 Zmodem,或者未正確配置。
- 文件過大,導致超時或傳輸中斷。
- 網路連接不穩定,或代理/防火牆干擾了Zmodem協議的數據流。
大文件傳輸慢或失敗
rz/sz 並非為大文件傳輸而設計。如果文件大小超過幾十MB,建議:
- 改用 SCP (
scp命令) 或 SFTP (如 WinSCP, FileZilla)。 - 將大文件分割成小塊,分多次傳輸(但不推薦,效率低)。
- 先在伺服器端壓縮文件,再傳輸壓縮包。
總結
linuxrz命令 中的 rz 和 sz 是Linux系統下用於文件上傳和下載的經典工具,它們基於 Zmodem 協議,在命令行界面提供了便捷的文件傳輸能力。儘管在安全性、大文件傳輸效率方面不及現代的SCP/SFTP,但在特定場景下(如僅有純文本SSH連接、快速傳輸小文件等),它們依然是不可或缺的利器。掌握其安裝、基本用法和終端配置,將大大提高您的工作效率。務必記住,對於重要數據和大文件,優先考慮更為穩健和安全的SCP/SFTP解決方案。
常見問題(FAQ)
-
如何檢查我的Linux伺服器是否安裝了
lrzsz包?您可以嘗試執行
which rz或which sz命令。如果返回了命令的路徑(如/usr/bin/rz),則表示已安裝。否則,您可能需要使用包管理器(如apt,yum,dnf,pacman)進行安裝。 -
為何我在PuTTY中無法使用
rz或sz命令進行文件傳輸?PuTTY 本身不原生支持 Zmodem 協議。它是一個純粹的SSH客戶端,不包含Zmodem處理功能。若您使用PuTTY,建議改用SCP(通過PuTTY自帶的
pscp命令行工具)或專業的SFTP客戶端(如WinSCP、FileZilla)進行文件傳輸。 -
如何避免
rz或sz傳輸時出現亂碼或文件損壞?傳輸二進位文件(非純文本)時,請務必使用
-E選項,例如rz -E或sz -E filename,這有助於正確轉義控制字元。同時,確保本地終端和遠程伺服器的字元編碼設置一致,可以減少文本文件傳輸時的亂碼風險。 -
如何傳輸一個完整的目錄?
rz和sz命令不直接支持目錄傳輸。您需要先在遠程伺服器上將目錄打包成一個壓縮文件(如使用tar -czvf mydir.tar.gz mydir/),然後再使用sz mydir.tar.gz命令下載該壓縮包。 -
為何
rz/sz在傳輸大文件時表現不佳,有時甚至中斷?Zmodem 協議最初是為串列埠設計,雖然效率較高,但相較於現代基於TCP/IP優化的SFTP/SCP協議,它在大文件傳輸、網路不穩定的環境下性能和穩定性會受限。對於大文件,SCP或SFTP是更可靠、更高效的選擇,它們支持併發傳輸、斷點續傳(通過客戶端實現)且通常擁有更好的錯誤處理能力。

