一、基本知识

1、 FTP是 TCP/IP协议族 的协议之一,简称文件传输协议,主要用于远距离文件传输,如文件的上传和下载

2、 下面都是以VSFTP服务器为例

VSFTP服务器的用户有三种形式:

匿名用户:  用户名为 FTP 或 anonymous , 密码为空 , 工作目录为 /var/ftp

本地用户: Linux中的用户(但是默认root用户不行)  , 访问根目录为 这个用户的主目录

虚拟用户: 将 用户名 和 口令 保存在数据库文件 或 数据库服务器中

3、 FTP的文本传输模式分为  ASCII传输模式(文本模式) 和 二进制传输模式(binary)

ASCII传输模式: 比较适合文本传输,它可以在双方不是同一类型操作系统 数据传输时自动储存为本地的文本文件格式,

但是不适合传输 程序、数据库、字处理文件、压缩文件等不是文本文件。

二进制传输模式:  适合传输 程序、数据库、字处理文件、压缩文件等不是文本文件

在FTP客户端可以用bin命令切换到二进制传输模式,

使用ascii命令切换到ASCII传输模式

二、通过二种模式 下载文件

1、[root@localhost root]#  chkconfig  --list  vsftpd   (查看vsftpd服务开启的状态)

2、开启ASCII传输模式(文本模式)

[root@localhost root]#  vi   /etc/vsftpd/vsftpd.conf

ascii_upload_enable=YES
ascii_download_enable=YES
(把上面二个 前面的#号去掉) 如下图

3、重启服务,使更改生效

[root@localhost root]# service   vsftpd    restart
关闭 vsftpd:                                              [  确定  ]
为 vsftpd 启动 vsftpd:                                [  确定  ]

4、切换到yanji,创建word.txt

[root@localhost root]# su  -  yanji

[yanji@localhost yanji]$ cat  >  word.txt
第一行
第二行
第三行

5、开始下载

第一种方法  (二进制传输模式)

在Windows中资源管理器中 地址栏 输入 ftp://192.168.170.4/,回车
    文件--》 登录 ,输入帐号和密码登录(除了root用户)


    把文件复制粘贴或者拖拉出

(但是 这种方法 只是一行文本,没有  换行)
   

第二种方法:
    windows中的  命令行(或者Linux里面的也一样)

去D盘查看

正常显示

三、通过二种模式 上传文件

把D盘的word.txt上传到FTP

windows中的  命令行(或者Linux里面的也一样)

第一种方法 (二进制传输模式):

在Windows中资源管理器中 地址栏 输入 ftp://192.168.177.4,回车
    文件--》 登录 ,输入帐号和密码登录(除了root用户)
    把文件复制粘贴或者拖拉进去

但是这种方法,在Linux查看

如果word.txt 编码不是UTF-8就会乱码

如果word.txt 编码是UTF-8,样式也是有点问题

第二种方法:

这种结果跟上面的一样

8、FTP,二种文本传输模式的更多相关文章

  1. FTP文件乱码和传输模式解释

    转: FTP文件乱码和传输模式解释 2017年02月18日 10:50:03 -Hermes- 阅读数:12112更多 所属专栏: 异常解决方案急诊室   版权声明:大侠,在转载时请注明出处,小弟不胜 ...

  2. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

  3. Java使用SFTP和FTP两种连接方式实现对服务器的上传下载 【我改】

    []如何区分是需要使用SFTP还是FTP? []我觉得: 1.看是否已知私钥. SFTP 和 FTP 最主要的区别就是 SFTP 有私钥,也就是在创建连接对象时,SFTP 除了用户名和密码外还需要知道 ...

  4. 计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件)

    文本文件是可以看到的字符, 二进制文件是不可视字符,如图片. 二进制文件: 包含在 ASCII及扩展 ASCII 字符中编写的数据或程序指令的文件.计算机文件基本上分为二种:二进制文件和 ASCII( ...

  5. mysql 远程连接数据库的二种方法

    http://blog.csdn.net/freecodetor/article/details/5799550 一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5 ...

  6. IIS7.5使用web.config设置伪静态的二种方法

    转自 网上赚钱自学网 .http://www.whosmall.com/post/121 近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现.这两 ...

  7. CSS中常见的6种文本样式

    前面的话 CSS文本样式是相对于内容进行的样式修饰.由于在层叠关系中,内容要高于背景.所以文本样式相对而言更加重要.有些人对文本和字体样式之间的不同不太了解,简单地讲,文本是内容,而字体则用于显示这个 ...

  8. Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法

    CRM里有二种方式实现字段change事件,一种是在form里,一种完全通过js来实现.本文介绍下二者的用途及区别. 1. Form里用法 这种方式估计其实也是添加一个js的function. 这种方 ...

  9. SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式

    前言: spring容器以xml的形式注入bean,然后可以在类中获取,获取的形式主要有二种:第一种最简单--采用@Resource 或@Autowired关键字在加载spring文件时将bean注入 ...

随机推荐

  1. PhantomJS快速入门

    本文简要介绍了PhantomJS的相关基础知识点,主要包括PhantomJS的介绍.下载与安装.HelloWorld程序.核心模块介绍等.由于鄙人才疏学浅,难免有疏漏之处,欢迎指正交流. 1.Phan ...

  2. Java Selenium封装--RemoteWebDriver

    package com.selenium.driver; import java.io.File; import java.io.IOException; import java.net.URL; i ...

  3. Java经典实例:处理单个字符串

    使用for循环和String对象的charAt()方法:或者,使用"for each"循环和String对象的toCharArray()方法. /** * Created by F ...

  4. C++之面向对象的三个基本特征

    三大特性是:封装,继承,多态 所谓封装 就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性. ...

  5. 20款时尚的 WordPress 企业模板【免费主题下载】

    在这篇文章中,我们收集了20款时尚的 WordPress 企业模板.WordPress 作为最流行的博客系统,插件众多,易于扩充功能.安装和使用都非常方便,而且有许多第三方开发的免费模板,安装方式简单 ...

  6. Junit单元测试笔记

    什么是单元测试? 单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确. 单元测试目的? 执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致. 白盒测试和单 ...

  7. javascript --- 设计模式之创造者模式

    在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成:由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定.如何应 ...

  8. 一步一步教你如何解锁被盗的iPhone 6S

    即使你的iPhone6S设置了六位数的密码,甚至还设置了touch ID,但我要告诉你的是:你的手机仍然能被犯罪分子解锁. 事件背景 三天前,一位苹果用户的iPhone6S被偷了.随后,小偷重置了该用 ...

  9. 关于web软件信息安全问题防护资料的整理(二)

    想要做好软件的安全防护,首先就得了解web系统的安全威胁,那么web系统都存在哪些威胁呢? 应用层攻击.网络层攻击和混合攻击. 传统被动.单点以及彼此孤立的防护手段已不能应对越来越严峻的安全威胁. 改 ...

  10. RxJava 和 RxAndroid 二(操作符的使用)

    前言:对Rx不了解的朋友可以先看我的第一篇博文 RxJava 和 RxAndroid 一 (基础),是对Rxjava的基本介绍 1.merge操作符,合并观察对象 List<String> ...