Xshell提供熟悉终端环境的高级用户使用的与UNIX/Linux的FTP相类似的指令。各指令说明内容如下,具体使用方法请用SFTP提示的help命令进行确认。

在进行远程主机与本机文件传输时,只支持文件或压缩包的传输,不支持文件夹的传输;

几个常用的简单的linux命令

  • linux下文件打包命令:tar

      tar -cvf <压缩后的文件名>.tar <需要压缩的文件或文件夹、多个文件用空格分隔>
    
  • ls [-a] [-l] 显示当前目录下的文件及文件夹;[-a] 显示所有文件包括隐藏的;[-l]以列表形式显示,并显示文件相关的其他信息;

  • cd [directory] 打开指定的目录;cd .. 回到上一级目录;cd / 回到根目录;

  • pwd,显示当前所在位置的绝对路径;

      reg@Express:~$ cd jayself/
      reg@Express:~/jayself$ ls
      _config.yml  db.json  node_modules  package.json  public  scaffolds  source  themes
      reg@Express:~/jayself$ pwd
      /home/reg/jayself
      reg@Express:~/jayself$
    

实例演示

比如,我要把远程主机 /home/reg/jayself 目录内指定的文件进行打包然后传送给我本地主机

  1. 首先 cd 进入到 jayself 目录

     $ cd /home/reg/jayself
    
  2. 然后 ls 可以查看一下我的 jayself目录内所有的文件及文件夹

     $ ls -al
     总用量 300
     drwxrwxr-x  8 reg reg   4096  7月 30 09:18 .
     drwxr-xr-x 30 reg reg   4096  8月  1 13:58 ..
     -rwxrwxr-x  1 reg reg   1974  7月 30 09:06 _config.yml
     -rw-rw-r--  1 reg reg 260832  8月  1 13:54 db.json
     drwxrwxr-x 15 reg reg   4096  7月 30 09:18 .deploy
     -rw-rw-r--  1 reg reg     68  7月 27 19:41 .gitignore
     drwxrwxr-x  5 reg reg   4096  7月 27 19:41 node_modules
     -rwxrwxr-x  1 reg reg    186  7月 27 19:53 package.json
     drwxrwxr-x 14 reg reg   4096  7月 30 09:35 public
     drwxrwxr-x  2 reg reg   4096  7月 28 10:43 scaffolds
     drwxrwxr-x  8 reg reg   4096  7月 29 18:36 source
     drwxrwxr-x  4 reg reg   4096  7月 27 19:45 themes
    
  3. 选择要传输的文件进行打包(比如,这里我们要传输 package.jsonpublicsource以及themes)

     $ tar -cvf jayself.tar package.json public/ source/ themes/
     //完成后,可以 ls 查看当前目录是否有一个 jayself.tar 的包
     $ ls
    
  4. 打包完成后,ctrl + alt + f,新建文件传输窗口;

     sftp:/home/reg>
     // shell 下已 sftp: 显示说明文件传输窗口新建成功;
    
  5. lcd选择本地主机的目录

     sftp:/home/reg> lcd
     Local directory is now E:\
     //上面的信息,我们可以知道当前的远程主机目录为 /home/reg/ 目录,而本地主机目录为 E:\ 盘
    
  6. 因为我们要传输的远程主机压缩包在 /home/reg/jayself目录内,所以需要 cd 进入到 jayself 目录内

    sftp: 下的所有的命令并不是linux的命令,而是Xshell自带的一些命令

     sftp:/home/reg> cd jayself/
     sftp:/home/reg/jayself>
    
  7. 远程主机的目录已经切换到jayself,那我们本地主机的当前目录呢?可以使用lpwd查看当前本机主机目录的绝对路径

     sftp:/home/reg/jayself> lpwd
     Local directory is E:\
     sftp:/home/reg/jayself>
    
  8. 本地主机目录还是在E:\盘,我们可以lcd进入到E:\test目录内

     sftp:/home/reg/jayself> lcd test
     Local directory is now E:\\test
     sftp:/home/reg/jayself> pwd
     Remote directory is /home/reg/jayself
     sftp:/home/reg/jayself> lpwd
     Local directory is E:\\test
     sftp:/home/reg/jayself>
    
  9. 最后使用 get 把远程主机的文件导入到本地主机

     sftp:/home/reg/jayself> get jayself.tar
     Fetching /home/reg/jayself/jayself.tar to jayself.tar
     sftp: received 3.60 MB in 0.22 seconds
     sftp:/home/reg/jayself>
    
  10. 文件传输完后,可以打开E:\test目录查看是否有jayself.tar

  11. 如果是要把本地主机的文件传输到远程主机的话,只需要最后一步改用 put

    sftp:/home/reg/jayself> put test.txt
    Uploading test.txt to remote:/home/reg/jayself/test.txt
    sftp: sent 0 ؖ½ؠin 0.02 seconds
    sftp:/home/reg/jayself>
    

Xshell SFTP指令说明

  • get file1 [file2] [file3] ...

    把远程主机的指定文件导入到本地主机;(如果是win下连接的虚拟机,那win就是我们的本地主机)

  • put file1 [file2] [file3] ...

    把本地主机的指定文件发送到远程主机

  • mkdir directory

    创建远程主机指定的Directory

  • rmdir directory

    删除远程主机指定的Directory

  • rm file

    删除远程主机指定的文件

  • cd directory

    打开远程主机指定的目录

  • lcd directory

    打开本地主机指定的目录

  • pwd

    显示远程主机当前目录的绝对路径

  • lpwd

    显示本地主机当前目录的绝对路径

  • ls [directory]

    显示远程主机的文件目录

  • lls [directory]

    显示本地主机的文件目录

  • explore [directory]

    用Windows资源管理器浏览当前(或指定的)Directory

  • bye/exit/quit

    终止SFTP连接