ftp客户端使用详细说明【linux和windows】,2024年最新2024年展望Linux运维原生开发的现状

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

  • 文件夹中使用【推荐(最简单方便)】

    • 登陆
  • 增删改操作【需要有对应权限】

  • 如果没有权限,报错如下

  • 浏览器使用【不推荐】

  • ftp服务端配置

ftp使用前提

======================================================================

  • linux上使用,仅需要 安装ftp包:yum install -y ftp

  • 客户端访问的前提是,ftp服务端需要配置完毕,配置完毕以后 客户端可以直接访问的。

注:ftp服务端只需要把vsftpd服务启动,客户端就可以访问了哦。

  • ftp配置方法见最下面“ftp服务端配置”分类哈。

linux【客户端使用】

===========================================================================

linux命令行使用【推荐】


最简单的登陆方式:ftp ip 回车输入用户名和密码即可 也可以加入参数使用:ftp -参数 ip【参数介绍见下面】

[root@centos76_1 ~]# ftp 192.168.59.129

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb1

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

linux命令行_参数说明

  • 参数使用:ftp [-v] [-n] [-i] [-d] [-g] [-s:filename] [-a] [-w:windowsize] [computer]

  • 参数说明

  • -v 禁止显示远程服务器响应。

  • -n 禁止自动登录到初始连接。

  • -I 多个文件传送时关闭交互提示。

  • -d 启用调试、显示在客户端和服务器之间传递的所有 ftp 命令。

  • -g 禁用文件名组,它允许在本地文件和路径名中使用通配符字符(* 和 ?)。(请参阅联机“命令参考”中的 glob 命令。)

  • -s: filename指定包含 ftp 命令的文本文件;当 ftp 启动后,这些命令将自动运行。该参数中不允许有空格。使用该开关而不是重定向 (>)。

  • -a 在捆绑数据连接时使用任何本地接口。

  • -w:windowsize 替代默认大小为 4096 的传送缓冲区。

  • Computer 指定要连接到远程计算机的计算机名或 IP 地址。如果指定,计算机必须是行的最后一个参数。

linux命令行_命令说明

  • 命令使用

登陆上ftp服务器以后直接输入命令执行相关功能

全部命令说明
  • 登陆后输入可以显示全部命令,输入 ? 命令可以查看介绍【英文看不懂?下面有中网介绍】。

在这里插入图片描述

  • 按字母顺序总结的【基本这就是全部了】

  • ![cmd]: 从ftp子系统退出到系统外壳【在本地机中执行交互shell,并不是所有命令都支持,常用于 !ls查看本地文件】

  • $ macro-ame[args]: 执行宏定义macro-name。

  • account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。

  • append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

  • ascii:使用ascii类型传输方式。

  • lcd: 更换本地目录,若无参数,将显示当前目录

  • bell:每个命令执行完毕后计算机响铃一次。

  • bin:使用二进制文件传输方式。

  • bye: 结束与远程计算机的 FTP 会话并退出 ftp

  • case:在使用mget时,将远程主机文件名中的大写转为小写字母。

  • cd remote-dir:进入远程主机目录。

  • cdup:进入远程主机目录的父目录。

  • chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a。

  • close:中断与远程服务器的ftp会话(与open对应)。

  • cr:使用asscii方式传输文件时,将回车换行转换为回行。

  • delete remote-file:删除远程主机文件。

  • debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。

  • dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件

  • disconnection:同close。

  • form format:将文件传输方式设置为format,缺省为file方式。

  • get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。

  • glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

  • hash:每传输1024字节,显示一个hash符号(#)。

  • help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

  • idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

  • image:设置二进制传输方式(同binary)。

  • lcd[dir]:将本地工作目录切换至dir。

  • ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。

  • macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

  • mdelete[remote-file]:删除远程主机文件。

  • mdir remote-files local-file:与dir类似,但可指定多个远程文件,如 :mdir *、o、*、zipoutfile

  • mget remote-files:传输多个远程文件。

  • mkdir dir-name:在远程主机中建一目录。

  • mls remote-file local-file:同nlist,但可指定多个文件名。

  • mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。

  • modtime file-name:显示远程主机文件的最后修改时间。

  • mput local-file:将多个文件传输至远程主机。

  • newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。

  • nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。

  • nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1、$2、$3[$1,$2]、[$2,$3],则传输文件a1、a2、a3时,文件名变为a1,a2。 该命令特别适用于远程主机为非UNIX机的情况。

  • ntrans[inchars[outchars>:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。

  • open host[port]:建立指定ftp服务器连接,可指定连接端口。

  • passive:进入被动传输方式。

  • prompt:设置多个文件传输时的交互提示。

  • proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。

  • put local-file[remote-file]:将本地文件local-file传送至远程主机。

  • pwd:显示远程主机的当前工作目录。

  • quit:同bye,退出ftp会话。

  • quote arg1,arg2、、、:将参数逐字发至远程ftp服务器,如:quote syst、

  • recv remote-file[local-file]:同get。

  • reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。

  • rhelp[cmd-name]:请求获得远程主机的帮助。

  • rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。

  • rename[from][to]:更改远程主机文件名。

  • reset:清除回答队列。

  • restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。

  • rmdir dir-name:删除远程主机目录。

  • runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀、1, 、2等。

  • send local-file[remote-file]:同put。

  • sendport:设置PORT命令的使用。

  • site arg1,arg2、、、:将参数作为SITE命令逐字发送至远程ftp主机。

  • size file-name:显示远程主机文件大小,如:site idle 7200。

  • status:显示当前ftp状态。

  • struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。

  • sunique:将远程主机文件名存储设置为只一(与runique对应)。

  • system:显示远程主机的操作系统类型。

  • tenex:将文件传输类型设置为TENEX机的所需的类型。

  • tick:设置传输时的字节计数器。

  • trace:设置包跟踪。

  • type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。

  • umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3

  • user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。

  • verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on、

  • ? [cmd]:同help、

如果linux是图形化安装,也可以打开浏览器,像Windows一样在浏览器访问或下载文件的

在这里插入图片描述

常用命令说明

常用的无法就是登陆上去,切换远程和本地目录,上传、下载、删除和新增文件罢了。

  • ![cmd]: 从ftp子系统退出到系统外壳【在本地机中执行交互shell,并不是所有命令都支持,常用于 !ls!pwd查看本地文件和路径】

  • ? [cmd]: 显示ftp说明,跟help一样

  • cd: 更换远程目录

  • lcd: 更换本地目录,若无参数,将显示当前目录

  • open: 与指定的ftp服务器连接 open computer [port]【这个可以指定端口】

  • close:结束与远程服务器的 FTP 会话并返回命令解释程序

  • bye: 结束与远程计算机的 FTP 会话并退出 ftp

  • dir: 结束与远程计算机的 FTP 会话并退出 ftp

  • get 和 recv:下载文件,使用当前文件转换类型将远程文件复制到本地计算机 get remote-file [local-file]

  • put 和 send: 上传文件:send local-file [remote-file]

  • delete remote-file:删除远程主机文件。

  • mget remote-files:传输多个远程文件。

  • mkdir dir-name:在远程主机中建一目录。

  • modtime file-name:显示远程主机文件的最后修改时间。

  • mput local-file:将多个文件传输至远程主机。

  • pwd:显示远程主机的当前工作目录。

  • rename[from][to]:更改远程主机文件名。

ftp使用实例

如果不熟悉上面的使用方法,可以把上面常用命令截图钉在屏幕上,边看命令变使用,效率更高哦。

在这里插入图片描述

直接登陆ftp
  • 说明见代码后面

[root@centos76_1 ~]# ftp 192.168.59.129

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb1 # 输入用户名

331 Please specify the password.

Password: #输入密码

230 Login successful. #提示230登陆成功

Remote system type is UNIX.

Using binary mode to transfer files.

进入ftp后登陆【常用于指定端口】
  • 说明见代码后面

[root@centos76_1 ~]# ftp # 输入ftp回车

ftp> open 192.168.59.129

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb1 #输入用户名

331 Please specify the password.

Password: #输入密码

230 Login successful. #登陆成功

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> pwd

257 “/”

ftp> close # 断开链接

221 Goodbye.

ftp> open 192.168.59.129 21 #指定端口21

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb2 # 输入用户名

331 Please specify the password.

Password:#输入密码

230 Login successful.

Remote system type is UNIX. # 登陆成功

Using binary mode to transfer files.

ftp> pwd

257 “/”

ftp> bye # 退出ftp

221 Goodbye.

[root@centos76_1 ~]#

登陆后查看目录、切换目录、上传、下载、删除
  • 注:上传下载删除在服务端配置的时候需要给这个用户相应的权限,如果没有权限,报错如下所示

[root@centos76_1 ~]# ftp 192.168.59.129

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb1 #这个用户只有查看权限,没有其他任何权限

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> put ip_tool.sh # 上传文件报错如下

local: ip_tool.sh remote: ip_tool.sh

227 Entering Passive Mode (192,168,59,129,88,57).

553 Could not create file.

ftp>

ftp> get share1 # 下载文件报错如下

local: share1 remote: share1

227 Entering Passive Mode (192,168,59,129,187,85).

150 Opening BINARY mode data connection for share1 (0 bytes).

226 Transfer complete.

ftp>

ftp> delete share1 # 删除文件报错如下

550 Delete operation failed.

  • 各个功能代码上面有介绍,下面记得看代码后面说明

[root@centos76_1 ~]# ftp 192.168.59.129 # 登陆

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb2 #这是一个满权限用户

331 Please specify the password.

Password: # 密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls # 查看远程目录

227 Entering Passive Mode (192,168,59,129,140,86).

150 Here comes the directory listing.

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare4

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare5

drwxr-xr-x 2 1009 1009 6 May 08 03:09 新建文件夹

226 Directory send OK.

ftp> !pwd# 查看本地路径

/root

ftp> !ls #查看本地文件

anaconda-ks.cfg ccx initial-setup-ks.cfg ip_tool.sh share1 test1 公共 模板 视频 图片 文档 下载 音乐 桌面

ftp> lcd /var/ftp/ #切换本地目录

Local directory now /var/ftp

ftp> !ls #查看查看本地文件

file1 file2 file3 pub test4 test5 test6

ftp> ls # 查看远程文件

227 Entering Passive Mode (192,168,59,129,197,117).

150 Here comes the directory listing.

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare4

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare5

drwxr-xr-x 2 1009 1009 6 May 08 03:09 新建文件夹

226 Directory send OK.

ftp> cd /var/ftp # 切换远程路径

550 Failed to change directory. # 报错了,没有权限,配置的时候限制在家目录了

ftp> !ls

file1 file2 file3 pub test4 test5 test6

ftp> put test4 # 上传本地文件到远程

local: test4 remote: test4

227 Entering Passive Mode (192,168,59,129,211,170).

150 Ok to send data. #上传成功

226 Transfer complete.

ftp> put file1 #上传文件夹,报错,只能上传文件

local: file1 remote: file1

file1: not a plain file.

ftp> ls # 上传的test4文件已经有了

227 Entering Passive Mode (192,168,59,129,247,222).

150 Here comes the directory listing.

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare4

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare5

-rw-r–r-- 1 1009 1009 0 May 08 08:23 test4

drwxr-xr-x 2 1009 1009 6 May 08 03:09 新建文件夹

226 Directory send OK.

ftp> delete file1_new #删除一个文件夹,报错,为了安全,是不允许删除文件夹的

550 Delete operation failed.

ftp> delete test4 #删除test4这个文件

250 Delete operation successful.

ftp> ls #已经被删除

227 Entering Passive Mode (192,168,59,129,48,66).

150 Here comes the directory listing.

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare4

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare5

drwxr-xr-x 2 1009 1009 6 May 08 03:09 新建文件夹

226 Directory send OK.

ftp>

ftp> get noshare4 #下载远程文件到本地

local: noshare4 remote: noshare4

227 Entering Passive Mode (192,168,59,129,186,157).

150 Opening BINARY mode data connection for noshare4 (0 bytes).

226 Transfer complete.

ftp> !ls # 本地文件中已经有这个文件了

file1 file2 file3 noshare4 pub test4 test5 test6

ftp>

登陆后新建修改远程目录、下载上传多个文件

[root@centos76_1 ~]# ftp 192.168.59.129

Connected to 192.168.59.129 (192.168.59.129).

220 Welcom to ccx_ftp.

Name (192.168.59.129:root): yb2 #这是一个满权限用户

331 Please specify the password.

Password: #输入密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls # 查看远程文件

227 Entering Passive Mode (192,168,59,129,111,76).

150 Here comes the directory listing.

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare4

-rw-r–r-- 1 0 0 0 May 07 03:25 noshare5

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-j84Igf05-1713325161332)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 17
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是在Linux系统上使用Socket编程技术实现简化的FTP服务器和客户端的程序的步骤: 1. 定义FTP协议。FTP协议包括命令通道和数据通道。命令通道用于传输FTP命令和响应,数据通道用于传输文件数据。你需要定义FTP命令和响应格式,并确定使用哪种数据传输模式(二进制或ASCII)。 2. 编写FTP服务器程序。服务器程序需要监听指定的端口,等待客户端的连接请求。一旦连接建立,服务器应该创建一个新的线程或进程来处理客户端的请求。服务器需要实现一些基本的FTP命令,如LIST、RETR、STOR等。服务器程序需要使用Socket编程技术创建Socket、绑定Socket到端口、监听Socket、接受连接请求、发送和接收数据等。 3. 编写FTP客户端程序。客户端程序需要连接到FTP服务器,并发送FTP命令。客户端需要实现一些基本的FTP命令,如LIST、RETR、STOR等。客户端程序需要使用Socket编程技术创建Socket、连接到FTP服务器、发送和接收数据等。 4. 实现FTP命令通道。FTP命令通道用于传输FTP命令,例如LIST、RETR、STOR等。服务器和客户端需要通过该通道进行交互。你需要使用Socket编程技术创建Socket、发送和接收数据等。 5. 实现FTP数据通道。FTP数据通道用于传输文件数据。客户端和服务器需要使用该通道进行文件传输。你需要使用Socket编程技术创建Socket、监听Socket、接受连接请求、发送和接收数据等。 6. 测试程序。你可以使用自己编写的FTP客户端程序连接到本地或远程FTP服务器,并测试FTP命令的正确性和文件传输的可靠性。 在实现FTP客户端和服务器程序时,需要使用Socket接口进行网络编程。你需要了解Socket编程的基本知识,包括创建Socket、绑定Socket到端口、监听Socket、接受连接请求、发送和接收数据等。你还需要了解一些FTP协议的基本知识,如FTP命令和响应格式、FTP数据传输模式等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值