Linux命令之sftp

Linux命令之sftp

本文链接:/blog/985744 (转载请注明出处)

用途说明

sftp命令可以通过ssh来上传和下载文件,是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多。

常用方式

格式:sftp <host>

通过sftp连接<host>,端口为默认的22,用户为Linux当前登录用户。

格式:sftp -oPort=<port> <host>

通过sftp连接<host>,指定端口<port>,用户为Linux当前登录用户。

格式:sftp <user>@<host>

通过sftp连接<host>,端口为默认的22,指定用户<user>。

格式:sftp -oPort=<port> <user>@<host>

通过sftp连接<host>,端口为<port>,用户为<user>。

sftp连接成功之后常用操作命令如下:

help/? 打印帮助信息。

pwd 查看远程服务器当前目录;

lpwd 查看本地系统的当前目录。

cd <dir> 将远程服务器的当前目录更改为<dir>;

lcd <dir> 将本地系统的当前目录更改为<dir>。

ls 显示远程服务器上当前目录的文件名;

ls -l 显示远程服务器上当前目录的文件详细列表;

ls <pattern> 显示远程服务器上符合指定模式<pattern>的文件名;

ls -l <pattern> 显示远程服务器上符合指定模式<pattern>的文件详细列表。

lls 显示本地系统上当前目录的文件名;

lls的其他参数与ls命令的类似。

get <file> 下载指定文件<file>;

get <pattern> 下载符合指定模式<pattern>的文件。

put <file> 上传指定文件<file>;

get <pattern> 上传符合指定模式<pattern>的文件。

progress 切换是否显示文件传输进度。

mkdir <dir> 在远程服务器上创建目录;

lmkdir <dir> 在本地系统上创建目录。

exit/quit/bye 退出sftp。

! 启动一个本地shell。

! <commandline> 执行本地命令行。

其他命令还有:chgrp, chmod, chown, ln, lumask, rename, rm, rmdir, symlink, version。

使用示例

示例一

[root@jfht ~]# stty erase ^H

[root@jfht ~]# sftp 192.168.1.181

Connecting to 192.168.1.181...

root@192.168.1.181's password:

sftp> ls -l *.gz

-rw-r--r-- 0 0 0 7770116 May 14 2010 mini.tar.gz

sftp> lls *.gz

cn.tar.gz ct08.min.tar.gz files.20101216a.tar.gz

sftp> get mini.tar.get

Couldn't stat remote file: No such file or directory

File "/root/mini.tar.get" not found.

sftp> ^[[A

Invalid command.

sftp> get mini.tar.gz

Fetching /root/mini.tar.gz to mini.tar.gz

/root/mini.tar.gz 100% 7588KB 7.4MB/s 00:01

sftp> lls mini.tar.gz -l

-rw-r--r-- 1 root root 7770116 04-03 15:20 mini.tar.gz

sftp> quit

[root@jfht ~]#

问题思考

1. 在 sftp 登入之后的命令行中,如果按 Backspace 将会出现怪字符 ^H, 怎样才能使

Backspace 产生它应有的作用?(2012.06.11)

2. 怎样才能做到 sftp 免登录?这样做之后,一是可以免去输入密码的麻烦,二是可以在脚

本中使用了。(2012.06.11)

3. 怎样用 sftp 来调用一系列已经编写好的命令,比如先进入某个目录,然后下载其下的文

件,然后退出。(2012.06.11)

相关资料

【1】gloryme linux下如何使用sftp命令。

/blog/418829

【2】心剑龙鹰 linux下SSH远程登录另一台LINUX,并且用sftp上传下载文件 /nxswxxg/blog/item/ec4674cc26e21d1801e92884.html

【3】Linuxeden Linux下sftp自动上传文件

/html/softuse/20100709/103727.html

 

第二篇:linux使用sftp与windows交换文件

很多用户还是经常在WINDOWS下完成日常工作的,但是同时在管理或测试LINUX系统的时候需要经常与远程LINUX服务器交换数据。一般情况下通过以下几种。

1、是通过NFS通过MOUNT来挂接远程WINDOWS共享的网络文件系统CFIS进行数据交换。

2、通过HTTP单方面交换数据。

3、通过FTP来交换数据。

4、通过SFTP使用SSH交换数据,这个功能利用了Secure CRT和SSH的功能来实现,非常简单也需要中转服务器。

A、当您安装好SSH服务器的时候就可以使用SFTP功能了。我的LINUX服务器上的SSH版本如下:

[root@mx1 ~]# rpm -qa |grep ssh

openssh-4.3p2-36.el5_4.4

openssh-clients-4.3p2-36.el5_4.4

openssh-server-4.3p2-36.el5_4.4

[root@mx1 ~]#

B、假设您在WINDOWS电脑上通过Secure CRT的SSH控制您的LINUX服务器正在需要一个文件需要从您的WINDOWS下发送到LINUX服务器上。

现在我们进入文件--连接SFTP标签

linux使用sftp与windows交换文件

出现SFTP>提示符号。

::::::常用命令

lls 列出windows电脑上的本地目录的文件 lcd 进入WINDOWS的某个目录或驱动

put 上传Windows中的某个文件

get 下载Linux服务器上的某个文件到windows主机; 更详细的信息请输入

linux使用sftp与windows交换文件

linux使用sftp与windows交换文件

help

sftp> help

可用命令:

cd 路径 更改远程目录到“路径”

lcd 路径 更改本地目录到“路径”

chgrp group path 将文件“path”的组更改为“group” chmod mode path 将文件“path”的权限更改为“mode” chown owner path 将文件“path”的属主更改为“owner” exit 退出 sftp

help 显示这个帮助文本

get 远程路径 下载文件

ln existingpath linkpath 符号链接远程文件

ls [选项] [路径] 显示远程目录列表

lls [选项] [路径] 显示本地目录列表

mkdir 路径 创建远程目录

lmkdir 路径 创建本地目录

mv oldpath newpath 移动远程文件

open [用户@]主机[:端口] 连接到远程主机

put 本地路径 上传文件

pwd 显示远程工作目录

lpwd 打印本地工作目录

linux使用sftp与windows交换文件

quit 退出 sftp

rmdir 路径 移除远程目录

lrmdir 路径 移除本地目录

rm 路径 删除远程文件

lrm 路径 删除本地文件

symlink existingpath linkpath 符号链接远程文件

version 显示协议版本

当然如果用Winscp也更方便

具体方法:

一、进行目录转换,将远程和本地的机器的目录转换为打算上传和下载文件的目录,命令为:

1、远程主机上:可以使用所有shell中的目录和文件操作命令:ls,pwd,cd等来对远程主机上的目录进行更改操作,不能使用vi等文件编辑工具

2、本地主机上:对本地目录进行操作需在以上命令前加上"l",

即:ls-》lls,pwd-》lpwd,cd-》lcd

二、进行文件传输

上传文件: put file 上传目录:put -r dir

下载文件: get file 下载目录:get -r dir

注:这里file可以使用*等通配符

sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。 如果远程主机到IP是172.26.30.222,或者域名是www.,用户名是hf,在命令行模式输入:sftp hf@www.

[root@huafang office]# sftp root@172.26.30.222

sftp> ls查看远程主机当前目录下到文件

sftp> pwd查看远程主机当前目录

Remote working directory: /root

sftp> cd /home/rpm在远程主机上转换目录路径

sftp> ls

sftp> lls只要是在本地主机上执行命令,前面都加上"l",L的小写字母

sftp> lpwd查看本地主机的当前目录

Local working directory: /home/rpm

sftp> lcd office本地主机上转换目录

sftp> lls

sftp> put ./EIOffice_Personal_Lin EIOffice_Personal_Lin.rar

将本地主机到当前目录下到EIOffice_Personal_Lin 上传到远程主机到当前目录

Uploading ./EIOffice_Personal_Lin.rar to /home/rpm/EIOffice_Personal_Lin.rar ./EIOffice_Personal_Lin.rar 100% 53MB 1.0MB/s 00:52 Fetching /home/rpm/EIOffice_Personal_Lin.rar to /tmp/EIOffice_Personal_Lin.rar

/home/rpm/EIOffice_Personal_Lin.rar 100% 53MB 990.1KB/s 00:55 sftp> get EIOffice_Personal_Lin.rar /tmp/ 将远程主机当前目录下到EIOffice_Personal_Lin.rar下载到本地主机到/tmp/目录下

Fetching /home/rpm/EIOffice_Personal_Lin.rar to /tmp/EIOffice_Personal_Lin.rar /home/rpm/EIOffice_Personal_Lin.rar 100% 53MB 990.1KB/s 00:55

[root@huafang rpm]# scp rar/rarlinux-3.9.1.tar.gz root@172.26.30.222:/home/rpm/将本地主机的rar安装包发送到远程主机的/home/rpm/目录下

root@172.26.30.222's password:

rarlinux-3.9.1.tar.gz 100% 812KB 812.4KB/s 00:00

同样的,我们也可以将远程主机到文件copy到我们自己到主机上,当然你得知道ta到密码哈!!!