4.vi和vim编辑器
4.1 vi和vim的基本介绍
- 所有Linux系统都会内置vi文本编辑器
- vim是vi的升级版,可以主动以字体颜色分辨语法的正确性,代码补完和编译,错误跳转等功能。
4.2 vi和vim的三种模式
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
4.2.1 正常模式
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
4.2.2 插入/编辑模式
-
在命令模式下按下i就进入了输入模式。 在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
4.2.3 命令行模式
-
在命令模式下按下:(英文冒号)就进入了底线命令模式。 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。 在底线命令模式中,基本的命令有(已经省略了冒号):
按ESC键可随时退出底线命令模式。
4.2.4 三种模式转换示意图
4.3 vi/vim 使用实例
使用 vi/vim 进入一般模式
如果你想要使用 vi 来建立一个名为 runoob.txt 的文件时,你可以这样做:
$ vim runoob.txt
直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!
在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
按下 ESC 按钮回到一般模式
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vi
OK,我们要存档了,存盘并离开的指令很简单,输入 :wq 即可保存离开!
4.4 Vim 按键说明
除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。
4.4.1 一般模式的光标移动、搜索替换、复制粘贴
移动光标的方法 | |
---|
h 或 向左箭头键(←) | 光标向左移动一个字符 | j 或 向下箭头键(↓) | 光标向下移动一个字符 | k 或 向上箭头键(↑) | 光标向上移动一个字符 | l 或 向右箭头键(→) | 光标向右移动一个字符 | [Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) | [Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) | [Ctrl] + [d] | 屏幕『向下』移动半页 | [Ctrl] + [u] | 屏幕『向上』移动半页 | + | 光标移动到非空格符的下一行 | - | 光标移动到非空格符的上一行 | n | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。 | 0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) | $ 或功能键[End] | 移动到这一行的最后面字符处(常用) | H | 光标移动到这个屏幕的最上方那一行的第一个字符 | M | 光标移动到这个屏幕的中央那一行的第一个字符 | L | 光标移动到这个屏幕的最下方那一行的第一个字符 | G | 移动到这个档案的最后一行(常用) | nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) | gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) | n | n 为数字。光标向下移动 n 行(常用) |
搜索 | |
---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) | ?word | 向光标之上寻找一个字符串名称为 word 的字符串。 | /^abc | 查找以 abc 为行首的行 | /abc$ | 查找以 abc 为行尾的行 | n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! | N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
在查找过程中需要注意的是,要查找的字符串是严格区分大小写的,如查找 “shenchao” 和 “ShenChao” 会得到不同的结果。
如果想忽略大小写,则输入命令 “:set ic”;调整回来输入":set noic"。
如果在字符串中出现特殊符号,则需要加上转义字符 “”。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 “10$”,则需要在命令模式中输入 “/10$”。
替换文本 | 功能描述 |
---|
r | 替换光标所在位置的字符 | R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束 | 😒/a1/a2/g | 将当前光标所在行中的所有 a1 用 a2 替换 | :n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 | :g/a1/a2/g | 将文件中所有的 a1 都用 a2 替换例如,要将某文件中所有的 “root” 替换为 “liudehua”,则有两种输入命令,分别为: |
:1, $s/root/liudehua/g
或
:%s/root/liudehua/g
上述命令是在编辑模式下操作的,表示的是从第一行到最后一行,即全文查找 “root”,然后替换成 “liudehua”。
如果刚才的命令变成 :10,20 s/root/liudehua/g ,则只替换从第 10 行到第 20 行的 “root”。
复制粘贴 | 功能描述 |
---|
p | 将剪贴板中的内容粘贴到光标后 | P(大写) | 将剪贴板中的内容粘贴到光标前 | y | 复制已选中的文本到剪贴板 | yy | 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行 | yw | 将光标位置的单词复制到剪贴板 |
删除文本 | 功能描述 |
---|
x | 删除光标所在位置的字符 | dd | 删除光标所在行 | ndd | 删除当前行(包括此行)后 n 行文本 | dG | 删除光标所在行一直到文件末尾的所有内容 | D | 删除光标位置到行尾的内容 | :a1,a2d | 函数从 a1 行到 a2 行的文本内容 |
注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 “p” 键,就可以将刚才删除的内容又粘贴到此处。
4.4.2 一般模式切换到编辑模式
进入输入或取代的编辑模式 | |
---|
i, I | 进入输入模式(Insert mode): i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用) | a, A | 进入输入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用) | o, O | 进入输入模式(Insert mode): 这是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行; O 为在目前光标所在的上一行处输入新的一行!(常用) | r, R | 进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) | [Esc] | 退出编辑模式,回到一般模式中(常用) |
4.4.3 一般模式切换到指令行模式
指令行的储存、离开等指令 | |
---|
:w | 将编辑的数据写入硬盘档案中(常用) | :w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! | :q | 离开 vi (常用) | :q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 | 注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ | | :wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) | ZZ | 这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出) | ZQ | 不保存,强制退出。效果等同于 :q!。 | :w [filename] | 将编辑的数据储存成另一个档案(类似另存新档) | :r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 | :n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案。 | :! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! |
vim 环境的变更 | |
---|
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 | :set nonu | 与 set nu 相反,为取消行号! |
4.5 总结Vim 的常见指令
必须掌握
- yy:复制光标当前一行
- 5yy:拷贝当前5行
- p:箭头移动到目的行粘贴
- u:撤销上一步
- dd:删除当前行
- 5dd:删除当前行向下的5行
- x:剪切一个字母,相当于del
- X:剪切一个字母,相当于退格键
- yw:复制一个词
- dw:删除一个词
- 在文件中查找某个单词:命令行输入 /(查找内容),按n查找下一个
- 设置文件行号:set nu,取消文件行号:set nonu
- 编辑文件,正常模式下使用快捷键到达文档最末行:G,最首行:gg
- 编辑文件,光标移动到某行:shift+g
- 显示行号:set nu
- 输入行号这个数
- 输入shift+g
- w:向前移动一个单词(光标停在单词首部)
- b:向后移动一个单词 2b 向后移动2个单词
插入命令
指令 | 说明 |
---|
i | 在当前位置生前插入 | I | 在当前行首插入 | a | 在当前位置后插入 | A | 在当前行尾插入 | o | 在当前行之后插入一行 | O | 在当前行之前插入一行 |
游标移动
指令 | 说明 |
---|
gg | 移动到文件头。 = [[ | G(shift + g) | 移动到文件尾。 = ]] | 行數 → G | 移動到第 n 行 | 冒号+行号,回车 | 比如跳到240行就是 :240回车 | h | 左移一个字符 | l | 右移一个字符,这个命令很少用,一般用w代替。 | k | 上移一个字符 | j | 下移一个字符 | w | 向前移动一个单词(光标停在单词首部) | b | 向后移动一个单词 2b 向后移动2个单词 | e | 同w,只不过是光标停在单词尾部 | ge | 同b,光标停在单词尾部。 | ^ | 移动到本行第一个非空白字符上。 | 0 | 移动到本行第一个字符上 | HOME | 移动到本行第一个字符。同0健。 | $ | 移动到行尾 3$ 移动到下面3行的行尾 | f(find) | fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。 | F | 同f,反向查找 |
撤销和重做
指令 | 说明 |
---|
u | 撤销(Undo) | U | 撤销对整行的操作 | Ctrl + r | 重做(Redo),即撤销的撤销。 |
删除命令
指令 | 说明 |
---|
x | 删除当前字符 | 3x | 删除当前光标开始向后三个字符 | X | 删除当前字符的前一个字符。X=dh | dl | 删除当前字符, dl=x | dh | 删除前一个字符 | dd | 删除当前行 | dj | 删除上一行 | dk | 删除下一行 | 10d | 删除当前行开始的10行。 | D | 删除当前字符至行尾。D=d$ | d$ | 删除当前字符之后的所有字符(本行) | kdgg | 删除当前行之前所有行(不包括当前行) | jdG(jd shift + g) | 删除当前行之后所有行(不包括当前行) | :1,10d | 删除1-10行 | :11,$d | 删除11行及以后所有的行 | :1,$d | 删除所有行 | J(shift + j) | 删除两行之间的空行,实际上是合并两行。 |
拷贝,剪贴和粘贴
指令 | 说明 |
---|
yy | 拷贝当前行 | nyy | 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。 | p | 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。 | shift+p | 在当前行前粘贴 | :1,10 co 20 | 将1-10行插入到第20行之后。 | :1,$ co $ | 将整个文件复制一份并添加到文件尾部。 | ddp | 交换当前行和其下一行 | xp | 交换当前字符和其后一个字符 | ndd | 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴 | :1,10d | 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。 | :1, 10 m 20 | 将第1-10行移动到第20行之后。 |
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制
退出命令
指令 | 说明 |
---|
:wq | 保存并退出 | ZZ | 保存并退出 | :q! | 强制退出并忽略所有更改 | :e! | 放弃所有修改,并打开原来文件。 | :q | 未修改直接退出 |
5.网络配置
5.1 三种网络模式详解
vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。
打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那么这些都是有什么作用呢?其实,我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。
同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。
小伙伴看到这里,肯定有疑问,为什么在真机上没有VMware Network Adapter VMnet0虚拟网卡呢?那么接下来,我们就一起来看一下这是为什么。
5.1.1 Bridged(桥接模式)
什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关DNS需要与主机网卡一致。其网络结构如下图所示:
点击“网络适配器”,选择“桥接模式”,然后“确定”
在进入系统之前,我们先确认一下主机的ip地址、网关、DNS等信息。
然后,进入系统编辑网卡配置文件,在终端输入命令vim /etc/sysconfig/network-scripts/ifcfg-eth0
添加内容如下:
编辑完成,保存退出,然后重启虚拟机网卡,使用ping命令ping外网ip,测试能否联网。
基本语法: ping [主机地址]
例如: ping www.baidu.com
能ping通外网ip,证明桥接模式设置成功。
能ping通外网ip,证明桥接模式设置成功。
那主机与虚拟机之间的通信是否正常呢?我们就用远程工具来测试一下。
主机与虚拟机通信正常。
这就是桥接模式的设置步骤,相信大家应该学会了如何去设置桥接模式了。桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了。这时,我们就来认识vmware的另一种网络模式:NAT模式。
5.1.2 NAT(地址转换模式)
如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示:
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。那么我们会觉得很奇怪,为什么需要虚拟网卡VMware Network Adapter VMnet8呢?原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们可以加以验证。
首先,设置虚拟机中NAT模式的选项,打开vmware,点击“编辑”下的“虚拟网络编辑器”,设置NAT参数及DHCP参数。
将虚拟机的网络连接模式修改成NAT模式。
点击“网络适配器”,选择“NAT模式”
然后开机启动系统,编辑网卡配置文件,在终端输入命令vim /etc/sysconfig/network-scripts/ifcfg-eth0
具体配置如下:
编辑完成,保存退出,然后重启虚拟机网卡,动态获取ip地址,使用ping命令ping外网ip,测试能否联网。
之前,我们说过VMware Network Adapter VMnet8虚拟网卡的作用,那我们现在就来测试一下。
如此看来,虚拟机能联通外网,确实不是通过VMware Network Adapter VMnet8虚拟网卡,那么为什么要有这块虚拟网卡呢?
之前我们就说VMware Network Adapter VMnet8的作用是主机与虚拟机之间的通信,接下来,我们就用远程连接工具来测试一下。
然后,将VMware Network Adapter VMnet8启用之后,发现远程工具可以连接上虚拟机了。
那么,这就是NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的。
5.1.3 Host-Only(仅主机模式)
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的。接下来,我们就来测试一下。
首先设置“虚拟网络编辑器”,可以设置DHCP的起始范围。
设置虚拟机为Host-Only模式。
开机启动系统,然后设置网卡文件。
保存退出,然后重启网卡,利用远程工具测试能否与主机通信。
主机与虚拟机之间可以通信,现在设置虚拟机联通外网。
我们可以看到上图有一个提示,强制将VMware Network Adapter VMnet1的ip设置成192.168.137.1,那么接下来,我们就要将虚拟机的DHCP的子网和起始地址进行修改,点击“虚拟网络编辑器”
重新配置网卡,将VMware Network Adapter VMnet1虚拟网卡作为虚拟机的路由。
重启网卡,然后通过 远程工具测试能否联通外网以及与主机通信。
测试结果证明可以使得虚拟机连接外网。
5.2 查看网络 IP 和 网关
1)查看虚拟网络编辑器
2)修改虚拟网卡 Ip
3)查看网关
4)查看 windows 环境的中 VMnet8 网络配置
5.3 配置网络 ip 地址
5.3.1 自动抓取
缺点: 每次自动获取的ip地址可能不一样,不适用于做服务器
5.3.2 指定ip地址
ifconfig 查看当前网络配置
BOOTPROTO=“static” #IP 的配置方法[none|static|bootp|dhcp](引导 时不 使用协议|静态分配 IP|BOOTP 协议|DHCP 协议)
ONBOOT=“yes” #系统启动的时候网络接口是否有效(yes/no)
#IP 地址 IPADDR=192.168.2.100 #网段必须符合要求,后面的主机地址自己设置 #网关 GATEWAY=192.168.2.2 #网关要和vm8虚拟交换机网关一样 #域名解析器 DNS1=192.168.2.2 #这个设置成和网关一样就行
子网掩码默认255.255.255.0
直接修改配置文件来指定IP,并可以连接到外网,编辑:vim /etc/sysconfig/network-scripts/ifcfg-ens160
重启网络服务:service network restart
centos8重启网卡的方法
1.重启?卡之前?定要重新载??下配置?件,不然不能?即?效
nmcli c reload
2.重启?卡(下?的三条命令都可以):
nmcli c up ens160
nmcli d reapply ens160
nmcli d connect ens160
5.3 修改 IP 地址后可能会遇到的问题
(1)物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的 防火墙问题,把防火墙关闭就行 (
(2)虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有 问题
(3)虚拟机 Ping www.baidu.com 显示域名未知等信息,一般查看 GATEWAY 和 DNS 设 置是否正确
(4)如果以上全部设置完还是不行,需要关闭 NetworkManager 服务
- systemctl stop NetworkManager 关闭
- systemctl disable NetworkManager 禁用
(5)如果检查发现 systemctl status network 有问题 需要检查 ifcfg-ens160
5.4 配置主机名
修改主机名称
hostname (功能描述:查看当前服务器的主机名称)
如果感觉此主机名不合适,我们可以进行修改。通过编辑vim /etc/hostname 文文件
修改完成后重启生效。
如果想立即生效可以通过hostnamectl set-hostname dselegent-study【要修改的主机名】 这个命令,然后重启终端就可以看到效果了
修改 hosts 映射文件
1)修改 linux 的主机映射文件(hosts 文件) 后续在 hadoop 阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置, 比较简单方便。 不用刻意记 ip 地址。vim /etc/host
添加如下内容
192.168.2.100 ds100
192.168.2.101 ds101
192.168.2.102 ds102
192.168.2.103 ds103
192.168.2.104 ds104
192.168.2.105 ds105
重启设备,重启后,查看主机名,已经修改成功
2)修改 windows 的主机映射文件(hosts 文件)
? 进入 C:\Windows\System32\drivers\etc 路径
? 打开 hosts 文件并添加如下内容
192.168.2.100 ds100
192.168.2.101 ds101
192.168.2.102 ds102
192.168.2.103 ds103
192.168.2.104 ds104
192.168.2.105 ds105
先将该文件只读关闭,然后写入内容保存,最后恢复到只读状态
这时可以在windows通过ping ds100 来测试是否连通虚拟机
6.远程登录
通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之 外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不 可缺的,目前,比较主流的有 Xshell,SSH Secure Shell,SecureCRT,FinalShell 等,同学们 可以根据自己的习惯自行选择,以下以 Xshell5 为例。
6.1 远程登录方法
两个文件的安装步骤都在01文章中的2.3centos安装 下的网盘链接中
配置 Xshell 终端
1)打开安装好的 Xshell
2) 编辑新链接
3)测试链接
4)连接成功
5)断开连接
6)添加右键点击粘贴和选中复制
工具 -> 选项
6.2 ftp文件传输
主要用于向服务上传或下载文件
配置 Xftp
1)创建新链接
2)编辑新链接
如果配置hosts,主机可以填和名称一样的
出现以上界面表示链接成功,可以进行 windows 和 linux 系统互传数据。
注:有可能会有部分人右边是乱码,可以使用以下方式修改,修改后重启 Xftp。
文件-当前会话属性--选项--编码:UTF-8
|