在Linux系统文件上次及下载
在Linux系统文件上次及下载
在Linux系统中,文件上传和下载的方法有很多,常见的包括基于SSH的`scp`/`sftp`、本地终端工具`lrzsz`,以及网络下载工具`wget`/`curl`等。以下是详细介绍:
一、基于SSH的文件传输(最常用,适用于远程服务器)
Linux服务器通常默认开启SSH服务,基于SSH的`scp`和`sftp`是最常用的跨机器文件传输工具(无需额外安装,依赖SSH服务)。
1. `scp`:简单高效的单次传输(非交互式)
`scp`(Secure Copy)通过SSH协议在本地和远程机器间复制文件/目录,支持跨平台(Linux、Windows、Mac)。
- 本地文件 → 远程服务器:`scp [本地文件路径] [远程用户]@[远程IP]:[远程保存路径]`
- 远程文件 → 本地:`scp [远程用户]@[远程IP]:[远程文件路径] [本地保存路径]`
- 传输目录(加`-r`参数):`scp -r [本地目录] [远程用户]@[远程IP]:[远程目录]`
示例:
- 把本地`/home/test.txt`传到远程服务器(用户`root`,IP`192.168.1.100`)的`/tmp`目录:
>bash
scp /home/test.txt root@192.168.1.100:/tmp/
>
- 从远程服务器下载`/root/data.zip`到本地`./download`目录:
>bash
scp root@192.168.1.100:/root/data.zip ./download/
>
- 传输本地`/home/docs`目录到远程`/opt`:
>bash
scp -r /home/docs root@192.168.1.100:/opt/
>
2. `sftp`:交互式传输(适合多文件/目录操作)
`sftp`(Secure File Transfer Protocol)是交互式工具,类似FTP但基于SSH加密,适合需要多次上传/下载的场景。
步骤:
1. 连接远程服务器:`sftp [远程用户]@[远程IP]`(回车后输入密码)
>bash
sftp root@192.168.1.100
>
2. 上传文件:`put [本地文件路径] [远程保存路径]`(默认保存到远程当前目录)
>bash
put /home/test.txt 上传到远程当前目录
put /home/image.jpg /tmp/pic/ 上传到远程/tmp/pic/目录
>
3. 下载文件:`get [远程文件路径] [本地保存路径]`(默认保存到本地当前目录)
>bash
get /root/logs.tar.gz 下载到本地当前目录
get /root/report.pdf ./docs/ 下载到本地./docs/目录
>
4. 传输目录(需先在远程创建目录,再用`-r`参数):
>bash
先在远程创建目录(sftp内支持部分Linux命令,如mkdir)
sftp> mkdir /opt/docs
上传本地目录
sftp> put -r /home/local_docs /opt/docs
>
5. 退出:`exit` 或 `quit`
二、本地终端直接上传下载(`lrzsz`工具)
如果通过终端(如Xshell、SecureCRT)直接连接服务器,可安装`lrzsz`工具实现“拖拽式”上传下载(需终端支持)。
步骤:
1. 服务器安装`lrzsz`:
- CentOS/RHEL:`yum install -y lrzsz`
- Ubuntu/Debian:`apt install -y lrzsz`
2. 上传文件:在服务器终端输入 `rz`,会弹出本地文件选择窗口,选择文件即可上传到当前目录。
3. 下载文件:在服务器终端输入 `sz [文件名]`,文件会下载到本地终端的默认目录(可在终端设置中修改下载路径)。
>bash
sz test.txt 下载test.txt到本地
sz /root/data/* 下载多个文件
三、从网络下载文件(`wget`/`curl`)
如果需要从网络URL(如HTTP/HTTPS/FTP)下载文件到Linux服务器,常用`wget`或`curl`。
1. `wget`:专注下载的工具
语法:`wget [URL]`(默认保存到当前目录,支持断点续传`-c`)
示例:
>bash
下载文件到当前目录
wget https://example.com/file.zip
自定义保存文件名(-O参数)
wget -O myfile.zip https://example.com/file.zip
断点续传(中断后继续下载)
> wget -c https://example.com/largefile.iso
2. `curl`:多功能工具(支持下载)
语法:`curl -O [URL]`(`-O`保留原文件名,`-o`自定义文件名)
示例:
>bash
下载文件(保留原文件名)
curl -O https://example.com/image.png
自定义保存文件名
> curl -o myimg.png https://example.com/image.png
四、注意事项
1. 权限问题:上传到远程目录需确保远程用户有写入权限;下载远程文件需确保有读取权限。
2. 端口问题:若SSH非默认端口(22),需指定端口(如`scp -P 2222 ...`、`sftp -P 2222 ...`)。
3. 大文件传输:建议用`scp`或`sftp`,避免`lrzsz`(可能不稳定)。