使用Linux时,传输文件是经常做的事情,传输文件有很多种方式、也有很多种协议,最常用的是rsync、scp 和 sftp,在本文,瑞哥将给大家介绍一下scp,无论您是支持工程师、系统管理员还是开发人员,都可能需要使用 scp 传输文件。
让我们直接开始!
scp,英文全称:Secure Copy Protocol
,中文名称:安全复制协议,用于在计算机网络上的主机之间安全地传输文件。
scp通过使用SSH(Secure Shell)机制传输文件来确保数据的真实性、加密和机密性。因此,传输中的数据可以免受窥探攻击,客户端可以使用此协议向服务器上传和下载文件和目录,它需要密码或密钥进行身份验证,scp 的默认端口是 TCP 端口 22,这也是 SSH 的默认端口。
scp 协议的好处是您无需启动 FTP 会话或显式登录远程主机进行文件传输。
将文件从本地复制到远程主机:
scp [选项] 源文件 用户名@目的主机:目的路径
将文件从从远程主机复制到本地:
scp [选项] 用户名@源主机:源文件路径 目标文件
这里的选项有好多,我们执行命令scp --help
看看:
这个看起来不全,我们执行命令man scp
:
这里我选几个常用的解释一下:
我在远程服务器上新建了一个wljlsmz的文件夹,并且在此文件夹中新建了一个文件hello_wljslmz,文件内容为“hello , i am wljlsmz”:
root@ecs-adf0-0003:/tmp# mkdir wljslmz
root@ecs-adf0-0003:/tmp# cd wljslmz/
root@ecs-adf0-0003:/tmp/wljslmz# ls
root@ecs-adf0-0003:/tmp/wljslmz# touch hello_wljslmz
root@ecs-adf0-0003:/tmp/wljslmz# vim hello_wljslmz
root@ecs-adf0-0003:/tmp/wljslmz# ls
hello_wljslmz
root@ecs-adf0-0003:/tmp/wljslmz# more hello_wljslmz
hello , i am wljlsmz
现在我将通过scp命令将此文件下载到本地,在本地输入:
scp root@124.70.203.57:/tmp/wljslmz/hello_wljslmz
执行过程:
通过上图显示,已经成功将远程的文件复制到本地了,是不是很简单?
scp是个非常重要且基础的命令,本文介绍了scp的基础知识、语法、参数选项以及例子,希望本文对您认识和学习scp有所帮助,如果您有任何问题,欢迎在下方评论区与我讨论,最后感谢您的阅读,您的点赞和转发就是我不断创作的动力!